使用 Ant 编译 Android 工程(Linux 系统)

#移动开发 #Android

一、问题
同一套 Android 代码,希望通过配置文件的形式,制作成不同包名的多个 package(多包名,多版本号,多市场 logo,多广告商)。

二、解决方法
使用 Ant 编译

三、Ant 安装和使用

1. 环境:Ubuntu 10.04

2. 安装工具

  1. 安装 jdk 1.6 及 android-sdk-linux-r15(见 android sdk 相关文档)

  2. 安装 ant 1.83 版本
    由于 android-sdk-linux-r15 需要 ant 1.8.0 以上版本,在 ubuntu 10.04 上使用 apt-

get 自动安装的版本太低,所以使用源码包安装方法

  1. 下载
    ant 最新版(当前为 1.8.3) 下载 junit-4.9.jar 包,ant 编译时需要此包

  2. 安装
    ** $ tar xvzf../tgz/apache-ant-1.8.3-src.tar.gz
    $ cd apache-ant-1.8.3
    $ cp /usr/lib/jvm/java-6-sun/lib/junit-4.9.jar lib/optional/
    $ export JAVA_HOME=/usr/lib/jvm/java-6-sun
    $. build.sh
    $. build.sh install **

3. 建立工程

  1. 列出目标平台 ID
    ** $ $ANDROID_SDK_DIR/tools/android list targets **

  2. 建立新的 android 工程(效果同使用 eclipse 新建 android 工程一致) ** $ $ANDROID_SDK_DIR/tools/android create project–k 包名–a 项目名–t 目标平台

ID–p 路径 **

  1. 编译工程
    ** $ ant debug **
    此时在 bin 目录下生成相应的 apk 文件
    (jar 包和 so 库都放在 libs 目录下即可被打入 apk 包,位置同 android 源码编译中位置一致)

  2. 在虚拟机中安装并运行
    ** $ $ANDROID_SDK_DIR/tools/android list avd **
    列出所有的 AVD
    ** $ $ANDROID_SDK_DIR/tools/emulator–avd 指定 AVD 名称 **
    操作模拟器时,键盘 F2 对应菜单键,Home 键对应设备的 Home 键
    ** $ $ANDROID_SDK_DIR/platform-tools/adb install xxx.apk **
    在虚拟机中打开应用即可

4. 对原有工程用 ant 编译

  1. 建立 ant 编译脚本 build.xml
    ** $ $ANDROID_SDK_DIR/tools/android update project --name 项目名–t 目标平台 ID

–p 路径 **

  1. 编译工程
  1. 编译 debug 版本
    ** $ ant debug **
    生成带 debug 签名的 apk

  2. 生成 release 版本
    ** $ ant release **
    生成带未签名的 apk,之后手动签名即可
    编辑 build.properties 文件,其中指定签名相关资源,可自动签名

5. 将一套代码通过简单配置自动生成多个 apk 包(此处只介绍最简单的方法)

  1. 原理
    使用 ** ant–f ** 参数指定运行脚本,在该脚本中修改代码,资源,脚本的内容,然后再运行 ant 编译出相应的 apk,原理和手动替换资源一样。

  2. 方法
    参见:http://bbs.chinaunix.net/thread-3637817-1-1.html