初入Android--环境搭建
Android SDK
可以下载adt-bundle:包含了装好插件的eclipse和android sdk。下载好后,首先设置ANDROID_HOME环境变量:ANDROID_HOME=/home/ronry/softs/android/sdk,并将/home/ronry/softs/android/sdk/platform-tools和/home/ronry/softs/android/sdk/tools加入到PATH中。
如果使用的是64位版本的Linux系统,则可能还需要安装ia32-libs软件包。要确认是否需要安装这个软件包,可以运行adb命令。如果系统提示无法找到adb命令(虽然在 platformtools目录下确实存在该命令),这表示当前版本的adb命令及一些其他工具如果不安装i a32-l i b s软件包很可能就无法运行。安装ia32-libs软件包的命令是:
sudo apt-get install ia32-libs
SDK build target
在构建任何Android应用或者创建一个来尝试构建Android应用的项目之前,都必须首先安装一个或多个build target。为此,需要使用SDK和Android虚拟设备(AVD)管理器。该管理器有助于安装SDK中的软件包,通过这些软件包SDK可以支持多个版本的Android操作系统和不同级别的API。
有两个方法可以打开AVD:
- 直接命令行执行android命令
- eclipse中打开
最简单的方式是直接安装AVD中的所有软件包,但这会耗费大量的时间和硬盘空间,所以可选的方式是安装最新版本的软件包和几个比较经典版本的软件包,对于每个版本的包,最好至少安装以下几项目: - SDK Platform
- Google API (如果有)
- 系统镜像(System Image)
至于示例包和源代码则可是情况安装。
另外,还可以视需要安装tools和extras选项下的包。
还有一种快捷的安装sdk build target的方式是使用Maven Android SDK Deployer(未尝试)
cd maven-android-sdk-deployer-master
默认运行mvn clean install会安装全部平台的apis,android 1.5, android 2,.....
所以如果你没有完全下载这些apis会报错。
如果需要指定版本,可以加-P参数,下面的命令只会安装android 4.0
mvn clean install -P 4.0
eclipse及插件安装
如果是独立的eclipse需要确保安装如下插件:
+ ADT: android develper tools
+ m2e:集成maven的插件
+ m2e android connector:适配adt和m2e插件的插件,主页http://rgladwell.github.io/m2e-android/,安装方式:
+ 直接在eclipse marketplace搜索m2e android安装
+ Preferences -> Maven -> Discovery and click "Open Catalog".然后选择 m2e android connector(未试)
Maven
需要安装maven3,因为使用maven管理和构建android通常需要用到android-maven-plugin,而改插件的高版本要求使用maven3。
一个简单的android的pom文件可能如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ronrytest</groupId>
<artifactId>helloandroid</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>hello android</name>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
<version>r7</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<sourceDirectory>src</sourceDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.8.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<run>
<debug>true</debug>
</run>
<sdk>
<path>${env.ANDROID_HOME}</path>
<!--当前项目的sdk版本-->
<platform>16</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
</plugin>
</plugins>
</build>
</project>
当将maven项目导入到eclipse时,可能遇到如下错误:
Plugin execution not covered by lifecycle configuration:
com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:consume-aar (execution:
default-consume-aar, phase: compile)
解决办法是:
- 打开 'Problems'视图: 'Window' -> 'Show View' -> 'Problems'
- 右键点击报错的地方,选择'Quick Fix'
- 点击选择'Permanently mark goal generate in pom.xml as ignored in Eclipse build' -> 'Finish' -> 'OK'
- 修改完后,右键项目—> Maven —> Update Project
网上也还有另外一种解决方案,但是我试了没成功,就是配置另外一个plugin:
<!--This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<versionRange>[3.8.1,)</versionRange>
<goals>
<goal>consume-aar</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
也有人说是没有安装m2e android connector插件或者插件安装错误导致的问题。但是我自己试的时候插件应该是已经安装上了的,也有待考证。