User Tools

Site Tools


android:build-with-ant

如何使用ant编译Android工程

很早就知道Android支持命令行方式创建和编译工程,但大多数情况下我们都是直接使用Eclipse+ADT的方式来处理的。

最近做的项目就是使用ant来编译的,之前也没研究过ant怎么样,所以一直不知道怎么用ant来编译Android工程。

今天在Gentoo下试了下,没有做任何设置ant就可以用了,应该是以前我不知不觉就安装好了。

安装ant

如果是在Windows下,需要到网站上去下载:http://ant.apache.org/bindownload.cgi

再设置好环境变量,这个就不说了。

使用android命令创建工程

ant编译需要依赖于build.xml文件,如果是用Eclipse生成的工程,是没有这个文件的。显然Google支持ant编译自然不会让我们去手动生成的文件了,她为我们准备了android命令:

输入android create project查看如何创建一个Android工程:

pjq@gentoo-pjq ~/android/workspace $ android create project
Error: The parameters --target, --path, --package, --activity must be defined for action 'create project'

Usage:
  android [global options] action [action options]

Global options:
  -v --verbose  Verbose mode: errors, warnings and informational messages are printed.
  -h --help     Help on a specific command.
  -s --silent   Silent mode: only errors are printed out.

Action "create project":
  Creates a new Android Project.
Options:
  -n --name     Project name
  -t --target   Target id of the new project [required]
  -p --path     Location path of new project [required]
  -k --package  Package name [required]
  -a --activity Activity name [required]
使用命令:

android create project -n AndroidAnt -t android-8 -p ./AndroidAnt -k net.impjq.androidant -a HelloAndroidAnt

Created project directory: ./AndroidAnt
Created directory /home/pjq/android/workspace/AndroidAnt/src/net/impjq/androidant
Added file ./AndroidAnt/src/net/impjq/androidant/HelloAndroidAnt.java
Created directory /home/pjq/android/workspace/AndroidAnt/res
Created directory /home/pjq/android/workspace/AndroidAnt/bin
Created directory /home/pjq/android/workspace/AndroidAnt/libs
Created directory /home/pjq/android/workspace/AndroidAnt/res/values
Added file ./AndroidAnt/res/values/strings.xml
Created directory /home/pjq/android/workspace/AndroidAnt/res/layout
Added file ./AndroidAnt/res/layout/main.xml
Created directory /home/pjq/android/workspace/AndroidAnt/res/drawable-hdpi
Created directory /home/pjq/android/workspace/AndroidAnt/res/drawable-mdpi
Created directory /home/pjq/android/workspace/AndroidAnt/res/drawable-ldpi
Added file ./AndroidAnt/AndroidManifest.xml
Added file ./AndroidAnt/build.xml
很明显目录结构和用Eclipse生成的一样,只是多了build.xml,这个就是为了在命令行用ant编译而准备的。

使用ant编译Android工程

编译这个新生成的工程

pjq@gentoo-pjq ~/android/workspace $ cd AndroidAnt/
pjq@gentoo-pjq ~/android/workspace/AndroidAnt $ ls
AndroidManifest.xml  build.xml           local.properties
bin                  default.properties  res
build.properties     libs                src
pjq@gentoo-pjq ~/android/workspace/AndroidAnt $ ant
Buildfile: /home/pjq/android/workspace/AndroidAnt/build.xml
    [setup] Android SDK Tools Revision 6
    [setup] Project Target: Android 2.2
    [setup] API level: 8
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.
    [setup] Importing rules file: platforms/android-8/ant/ant_rules_r2.xml

help:
     [echo] Android Ant Build. Available targets:
     [echo]    help:      Displays this help.
     [echo]    clean:     Removes output files created by other targets.
     [echo]    compile:   Compiles project's .java files into .class files.
     [echo]    debug:     Builds the application and signs it with a debug key.
     [echo]    release:   Builds the application. The generated apk file must be
     [echo]               signed before it is published.
     [echo]    install:   Installs/reinstalls the debug package onto a running
     [echo]               emulator or device.
     [echo]               If the application was previously installed, the
     [echo]               signatures must match.
     [echo]    uninstall: Uninstalls the application from a running emulator or
     [echo]               device.

BUILD SUCCESSFUL
Total time: 2 seconds
使用ant debug来生成用debug key签名的APK。

ant debug

pjq@gentoo-pjq ~/android/workspace/AndroidAnt $ ant debug
Buildfile: /home/pjq/android/workspace/AndroidAnt/build.xml
    [setup] Android SDK Tools Revision 6
    [setup] Project Target: Android 2.2
    [setup] API level: 8
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.
    [setup] Importing rules file: platforms/android-8/ant/ant_rules_r2.xml

-compile-tested-if-test:

-dirs:
     [echo] Creating output directories if needed...
    [mkdir] Created dir: /home/pjq/android/workspace/AndroidAnt/gen
    [mkdir] Created dir: /home/pjq/android/workspace/AndroidAnt/bin/classes

-resource-src:
     [echo] Generating R.java / Manifest.java from the resources...

-aidl:
     [echo] Compiling aidl files into Java classes...

compile:
    [javac] /home/pjq/android/android-sdk-linux_86/platforms/android-8/ant/ant_rules_r2.xml:255: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 2 source files to /home/pjq/android/workspace/AndroidAnt/bin/classes

-dex:
     [echo] Converting compiled files and external libraries into /home/pjq/android/workspace/AndroidAnt/bin/classes.dex...

-package-resources:
     [echo] Packaging resources
 [aaptexec] Creating full resource package...

-package-debug-sign:
[apkbuilder] Creating AndroidAnt-debug-unaligned.apk and signing it with a debug key...
[apkbuilder] Using keystore: /home/pjq/.android/debug.keystore

debug:
     [echo] Running zip align on final apk...
     [echo] Debug Package: /home/pjq/android/workspace/AndroidAnt/bin/AndroidAnt-debug.apk

BUILD SUCCESSFUL
Total time: 8 seconds
呃,这个过程好熟悉,想起来了,之前TweeQ就是这样编译的。

安装APK

再使用adb install 安装APK

adb install bin/AndroidAnt-debug.apk

参考

/var/www/dokuwiki/wiki/data/pages/android/build-with-ant.txt · Last modified: 2016/05/05 13:07 by 127.0.0.1