文章翻译自《Maven: The Complete Reference》第14章1 简介Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于便携设备,如智能手机和平板电脑。2005年由Google收购注资,并组建开放手机联盟开发改良随后,逐渐扩展到平板电脑及其他领域上。Android的中间层基本上用Java 实现,采用Dalvik JAVA虚拟机。在运行时,将Java字节码转换为Dalvik 虚拟机可以识别的.dex文件。JAVA是默认的开发语言,API是基于JAVA。
大多数情况下,开发Android应用使用基于Eclipse的Android Development Toolkit ADT。也可以使用Apache Ant来代替IDE的编译工作。Android Maven Plugin则可以利用Apache Maven提供的功能,使开发团队完成编译,部署和发布Android应用,还可以使用Maven强大的特性,如依赖管理,报表,代码分析等等。
名词解释: 开放手机联盟:开放手机联盟(Open Handset Alliance)是美国Google公司与2007年11月5日宣布组建的一个全球性的联盟组织。这一联盟将会支持Google可能发布的手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。
Java字节码(Java bytecode):Java bytecode is the form of instructions that the Java virtual machineexecutes. Each bytecode opcode is one byte in length, although some require parameters, resulting in some multi-byte instructions. Not all of the possible 256 opcodes are used. 51 are reserved for future use. Beyond that, Sun Microsystems, the original developer of the Java platform, has set aside three values to be permanently unimplemented
opcode:In computer science, an opcode (operation code) is the portion of a machine language instructionthat specifies the operation to be performed. Their specification and format are laid out in the instruction set architecture of the processor in question (which may be a general CPU or a more specialized processing unit). Apart from the opcode itself, an instruction normally also has one or more specifiers for operands (i.e. data) on which the operation should act, although some operations may have implicit operands, or none at all. There are instruction sets with nearly uniform fields for opcode and operand specifiers, as well as others (the x86architecture for instance) with a more complicated, varied length structure Android NDK:The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. For certain types of apps, this can be helpful so you can reuse existing code libraries written in these languages, but most apps do not need the Android NDK.
参考: Android: http://baike.baidu.com/view/1241829.htm JAVA: http://baike.baidu.com/view/374952.htm http://developer./tools/sdk/ndk/index.html 2 配置android-maven-plugin 在尝试开发或编译Android应用之前,你需要安装和配置JDK,Android SDK,Maven。 必备条件: JDK 1.6+。 Android SDK (r17 or later) 支持所有版本的开发。http://developer./sdk/index.html Maven 3.0.3+。http://maven./download.html
配置步骤: JDK: JDK的安装配置不在本文介绍,可参考http://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html 在CMD中键入java -version。测试是否安装成功: java version "1.6.0_22" Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Maven For Windows:
假定下载Maven后,解压到目录c:\Program Files\apache-maven-3.0.3。 使用Windows控制面板配置环境变量(可参照JDK配置): 配置M2_HOME:M2_HOME=c:\Program Files\apache-maven-3.0.3+ 配置PATH:PATH=%PATH%;%M2_HOME%\bin+ …
在CMD中键入mvn -v。测试是否安装成功: Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800) Maven home: C:\Program Files\apache-maven-3.0.3\bin\.. Java version: 1.6.0_22, vendor: Sun Microsystems Inc. Java home: C:\Program Files\Java\jdk1.6.0_22\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"
Android SDK For Windows:
在Android官网(Android Developer web site)下载SDK。 假定下载Android后,解压到目录D:\android\android-sdk-windows 使用Windows控制面板配置环境变量(可参照JDK配置): 配置 配置PATH:PATH=%PATH%;%
参考: http://code.google.com/p/maven-android-plugin/wiki/GettingStarted http://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html http://www./books/mvnref-book/reference/installation-sect-test-install.html http://www./books/mvnref-book/reference/android-dev-sect-config-build.html http://developer./sdk/exploring.html 使用Android Maven Archetypes 创建新项目在看完Maven开发Android指南 2 配置android-maven-plugin后,有人会疑惑怎么没有讲android-maven-plugin。这是Maven的特性之一,不需要手工下载plugin,配置pom.xml文件,只要是Maven Central 中有的,maven会自动下载对应的插件。 创建项目分两种:手工创建和使用Maven Archetypes
手工创建:
使用android提供的工具创建项目: http://developer./tools/projects/projects-cmdline.html
android create project \ --target <target_ID> \ --name <your_project_name> \ --path path/to/your/project \ --activity <your_activity_name> \ --package <your_package_namespace>
Maven Archetypes:
开始一个新的项目可以使用Maven Archetype Plugin来创建项目的基本构架。有很多Android Maven Archetypes。如 android-with-test-archetype:创建包含测试代码的Android工程;android-release-archetype创建包含发布功能的Android工程。 本例中将使用android-quickstart这个Maven Archetype Plugin。在Maven Central中搜索android-quickstart查询Latest Version,目前最新的是1.0.8,在-DarchetypeVersion=1.0.8
archetypeArtifactId:Maven Archetype Plugin的ID archetypeGroupId:Maven Archetype Plugin的类别 archetypeVersion:Maven Archetype Plugin的版本号 groupId:工程的类别(可以理解为JAVA包名) artifactId:工程的ID(可以理解为工程的名称)
mvn archetype:generate -DarchetypeArtifactId=android-quickstart -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.8 -DgroupId=com.study.android -DartifactId=HelloMavenAndroid
Generating project in Interactive mode
一路回车就可以创建HelloMavenAndroid工程
在HelloMavenAndroid文件内,打开pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven./POM/4.0.0" xmlns:xsi="http://www./2001/XMLSchema-instance" xsi:schemaLocation="http://maven./POM/4.0.0 http://maven./maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.study.android</groupId> <artifactId>HelloMavenAndroid</artifactId> <version>1.0-SNAPSHOT</version> <packaging>apk</packaging> <name>HelloMavenAndroid</name> <properties> <platform.version> 2.3.3 </platform.version> </properties> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.1.1</version> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>10</platform> </sdk> <undeployBeforeDeploy>true</undeployBeforeDeploy> </configuration> <extensions>true</extensions> </plugin>
<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>
在这个pom.xml文件中高亮部分,分别是: 打包的类型:apk 使用Android平台:2.3.3(指向properties.platform.version) 配置Android Maven Plugin:3.1.1
一般的JAVA工程打包的类型是jar或者是war,而android工程打包的类型是apk。在执行中,告诉Android Maven Plugin生成的文件类型是apk。Android Maven Plugin会负责调用Android SDK将JAVA字节码转换成Dalvik 虚拟机识别的内容。在配置plugin中,Android Maven Plugin必须声明这是扩展的插件(<extensions>true</extensions>)。平台的版本和平台号码需要对应,<version>2.3.3</version>和<platform>10</platform>,可以在API Level找到对应的关系。 依赖的Android平台可以在Maven Central查询到。在依赖中声明<scope>provided</scope>是很有必要的。意思是告诉Maven在打包是不用将Android SDK提供的jar打包到应用中。
创建AVD:
参考:详解如何创建和使用AVD 请注意在Target栏位选择:Android 2.3.3 – API Level 10 运行:
使用AVD Manager.exe创建好AVD,并Start后, 进入HelloMavenAndroid,输入maven命令,最后在模拟器中看到Hello HelloMavenAndroid cd HelloMavenAndroid mvn android:emulator-start mvn clean package android:deploy android:run
名词解释: Maven Archetype Plugin:The Archetype Plugin allows the user to create a Maven project from an existing template called an archetype.
参考: http://www./books/mvnref-book/reference/android-dev-sect-helloandroidexample.html http://www./books/mvnref-book/reference/android-dev-sect-archetype.html http://code.google.com/p/maven-android-plugin/wiki/GettingStarted http://developer./tools/projects/projects-cmdline.html http://maven./archetype/maven-archetype-plugin/ http://blog.csdn.net/yaowj2/article/details/6794129 http://www./android/environment/269.html 与Eclipse整合(m2e-android )Android官方开发团队致力于为Ecilpse插件提供可靠的支持,而android-maven-plugin致力于将Maven,Android和Eclipse串联在一起。 m2e-android是一个 Maven Integration for Eclipse (m2e) plug-in,为Android Developer Tools (ADT)和 Maven Android Plugin添加Maven支持,为ADT提供Maven依赖管理的特性。 安装m2e-android需要Eclipse Indigo or Juno (低版本的Eclispe未提供Eclipse Marketplace) Help -> Eclipse Marketplace... 输入 "android m2e".点击Install(包含了Android Development Toolkit 和Maven for Eclipse m2e plug-in)。 创建项目: 如果是已经使用《Maven开发Android指南 3 使用Android Maven Archetypes 创建新项目》的方法创建项目,直接使用Eclipse Import:File->Maven->Existing Maven Projects 也可以使用m2e-android利用Maven Android archetypes创建新的项目:
参考: http://rgladwell.github.com/m2e-android/ http://code.google.com/p/maven-android-plugin/wiki/EclipseIntegration
|
|