使用ant编译Android APK

ANT —— Apache Ant is a Java library and command-line tool that help building software.

1. 部署ANT的使用环境

① 登录ant的官方网站http://ant.apache.org/bindownload.cgi,下载apache-ant-1.10.1-bin.zip。这是ant要使用的类库。

② 在windows环境中,主要配置两个环境ant_home和path

    ANT_HOME :apache-ant-1.10.1-bin.zip的解压文件(apache-ant-1.10.1)所在的位置;

    path路径设置为:PATH = %ANT_HOME%/bin; %ANT_HOME%/lib

③ 这两个路径的设置方法:

    右键点击“我的电脑”---属性---高级系统设置---高级---环境变量---在"系统变量“中点击”新建“---

    变量名:ANT_HOME   变量值:D:apache-ant-1.10.1      (可以用同样的方法设置path路径)

④  在dos窗口中输入 ant  -version,检查ant是否已经配置完成。

2. Android的环境配置

      platform-tools —— 执行adb命令的环境变量;

      sdk目录下的tool —— 执行android命令的环境变量,利用ant构建apk所必须的;

      

到目前为止,ANT和Android的环境配置成功

3. Ant的简单命令及创建Android工程

      参数说明:

      -n --name :      Project name.

      -a --activity :    Name of the default Activity that is created.   [required]

      -k --package :  Android package name for the application. [required]

      -v --gradle-version: Gradle Android plugin version.

      -t --target :       Target ID of the new project. [required]

      -g --gradle :     Use gradle template.

      -p --path :        The new project's directory. [required]

3.1 列出不同版本平台对应的ID编号:

C:Users
icole>android.bat list targets  

id: 1 or "android-15"
Name: Android 4.0.3
Type: Platform
API level: 15
Revision: 3
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800
Tag/ABIs : no ABIs.
----------

id: 8 or "android-21"
Name: Android 5.0
Type: Platform
API level: 21
Revision: 1
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.
----------
id: 9 or "android-23"
Name: Android 6.0
Type: Platform
API level: 23
Revision: 1
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.

3.2 创建android项目,举例: 

C:Users
icole>android create project -k com.android.nicole -a AntDemo -t 8 -p D:projectAnt_Demo

Created project directory: D:projectAnt_Demo
Created directory D:projectAnt_Demosrccomandroid icole
Added file D:projectAnt_Demosrccomandroid icoleAntDemo.java
Created directory D:projectAnt_Demo es
Created directory D:projectAnt_Demoin
Created directory D:projectAnt_Demolibs
Created directory D:projectAnt_Demo esvalues
Added file D:projectAnt_Demo esvaluesstrings.xml
Created directory D:projectAnt_Demo eslayout
Added file D:projectAnt_Demo eslayoutmain.xml
Created directory D:projectAnt_Demo esdrawable-xhdpi
Created directory D:projectAnt_Demo esdrawable-hdpi
Created directory D:projectAnt_Demo esdrawable-mdpi
Created directory D:projectAnt_Demo esdrawable-ldpi
Added file D:projectAnt_DemoAndroidManifest.xml
Added file D:projectAnt_Demouild.xml
Added file D:projectAnt_Demoproguard-project.txt

 运行成功后会在D盘的projectAnt_Demo目录下生成一个Android工程,里面有我们需要的build.xml文件

 3.3 Undate已有的Android工程

对已经存在的android工程,我们可以update下(修改平台的版本),这样会自动添加build.xml 等ant 的配置文件

C:Users
icole>android update project --name MainActivity -t 9 -p D:projectAndroid_demo
Updated project.properties
Updated local.properties
Added file D:projectAndroid_demouild.xml
Updated file D:projectAndroid_demoproguard-project.txt
It seems that there are sub-projects. If you want to update them
please use the --subprojects parameter.

编译:直接使用ant命令 是不会有文件输出的,所以后面一定要带上参数

4.  使用ant打包时,添加第三方jar包

 4.1  libs 库中的第三方jar包

如果项目只是引用了第三方jar包,只要将jar包放在libs文件夹下就ok了,ant会在编译打包过程中会自动将第三方jar加进去的。

但是当我们的android 项目参考了其他library项目,这时候我们最初在输入android update 命令的时候应该多一个参数 --subprojects。

例: C:Users icole>android update project --name SecontActivity -t 9 -p D:projectAndroid_demo

        若有报错,是因为那个library 还不支持ant自动编译,需要先让它也支持:

        进入到library项目所在的目录,输入命令 android update lib-project -p ./  (注意是 lib-project);

   再回到原项目,输入命令” android update project --name MenudrawSample -p ./ --subprojects ",这样就OK了。

4.2   user library库中第三方jar包

https://my.oschina.net/yunfound/blog/169288

4. 利用Ant打包

如果是利用测试签名打包:cmd命令进入项目根目录,如:E:antAntTest ,执行 ant debug,会在项目的bin目录下生成使用debug签名的apk

如果是自定义签名:则在项目根目录下添加ant.properties(也有会自动生成local.properties)文件,配置密钥的路径和别名

具体配置如下:

key.store=路径
key.store.password=
key.alias=
key.alias.password=

同样进入根目录下,运行 ant release就可以打包了

5. 编译

     参数说明:

     debug:  带调试用签名的构建

     release:生成的apk必须签名才可以发布

     install:  安装调试构建的包到运行着的模拟器或者设备

     reinstall 

     uninstall:  卸载安装包

ant debug:   生成一个测试版apk,默认使用 debug key 进行签名,生成的apk(your_project_name-debug.apk)在bin目录下。

ant release: 生成一个未签名和未aligned的apk包, project_name-release-unsigned.ap和project_name-release-unaligned.apk 在bin目录下。

例:进入到项目根目录中使用ant命令时,或者ant debug Buildfile: D:projectAnt_Demouild.xml

D:projectAnt_Demo>ant debug
Buildfile: D:projectAnt_Demouild.xml

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 23.0.2
 [checkenv] Installed at D:androidadt-bundle-windows-x86-20140702sdk

-setup:
     [echo] Project Name: AntDemo
  [gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 20.0.0
     [echo] Resolving Build Target for AntDemo...
[gettarget] Project Target:   Android 5.0
[gettarget] API level:        21
[gettarget] WARNING: No minSdkVersion value set. Application will install on all Android versions.
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: D:projectAnt_Demoin
es
    [mkdir] Created dir: D:projectAnt_Demoin
sObj
    [mkdir] Created dir: D:projectAnt_Demoin
sLibs
    [mkdir] Created dir: D:projectAnt_Demogen
    [mkdir] Created dir: D:projectAnt_Demoinclasses
    [mkdir] Created dir: D:projectAnt_DemoindexedLibs
     [echo] ----------
     [echo] Resolving Dependencies for AntDemo...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------
     [echo] ----------
     [echo] Building Libraries with 'debug'...
   [subant] No sub-builds to iterate on

-code-gen:
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.

此处省略......

-post-package:


-do-debug:
[zipalign] Running zip align on final apk...
[echo] Debug Package: D:projectAnt_DemoinAntDemo-debug.apk
[propertyfile] Creating new property file: D:projectAnt_Demoinuild.prop
[propertyfile] Updating property file: D:projectAnt_Demoinuild.prop
[propertyfile] Updating property file: D:projectAnt_Demoinuild.prop
[propertyfile] Updating property file: D:projectAnt_Demoinuild.prop


-post-build:


debug:


BUILD SUCCESSFUL
Total time: 8 seconds

 6. 安装apk

D:projectAnt_Demo>adb install binAntDemo-debug.apk
1408 KB/s (37509 bytes in 0.026s)
        pkg: /data/local/tmp/AntDemo-debug.apk
Success
原文地址:https://www.cnblogs.com/nicoleTeng/p/7421536.html