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\nicole>android.bat list targets  

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

3.2 创建android项目,举例:

C:\Users\nicole>android create project -k com.android.nicole -a AntDemo -t  -p D:\project\Ant_Demo

Created project directory: D:\project\Ant_Demo
Created directory D:\project\Ant_Demo\src\com\android\nicole
Added file D:\project\Ant_Demo\src\com\android\nicole\AntDemo.java
Created directory D:\project\Ant_Demo\res
Created directory D:\project\Ant_Demo\bin
Created directory D:\project\Ant_Demo\libs
Created directory D:\project\Ant_Demo\res\values
Added file D:\project\Ant_Demo\res\values\strings.xml
Created directory D:\project\Ant_Demo\res\layout
Added file D:\project\Ant_Demo\res\layout\main.xml
Created directory D:\project\Ant_Demo\res\drawable-xhdpi
Created directory D:\project\Ant_Demo\res\drawable-hdpi
Created directory D:\project\Ant_Demo\res\drawable-mdpi
Created directory D:\project\Ant_Demo\res\drawable-ldpi
Added file D:\project\Ant_Demo\AndroidManifest.xml
Added file D:\project\Ant_Demo\build.xml
Added file D:\project\Ant_Demo\proguard-project.txt

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

3.3 Undate已有的Android工程

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

C:\Users\nicole>android update project --name MainActivity -t  -p D:\project\Android_demo
Updated project.properties
Updated local.properties
Added file D:\project\Android_demo\build.xml
Updated file D:\project\Android_demo\proguard-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\nicole>android update project --name SecontActivity -t 9 -p D:\project\Android_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:\ant\AntTest ,执行 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:\project\Ant_Demo\build.xml

D:\project\Ant_Demo>ant debug
Buildfile: D:\project\Ant_Demo\build.xml -set-mode-check: -set-debug-files: -check-env:
[checkenv] Android SDK Tools Revision 23.0.
[checkenv] Installed at D:\android\adt-bundle-windows-x86-\sdk -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.
[echo] Resolving Build Target for AntDemo...
[gettarget] Project Target: Android 5.0
[gettarget] API level:
[gettarget] WARNING: No minSdkVersion value set. Application will install on all Android versions.
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: D:\project\Ant_Demo\bin\res
[mkdir] Created dir: D:\project\Ant_Demo\bin\rsObj
[mkdir] Created dir: D:\project\Ant_Demo\bin\rsLibs
[mkdir] Created dir: D:\project\Ant_Demo\gen
[mkdir] Created dir: D:\project\Ant_Demo\bin\classes
[mkdir] Created dir: D:\project\Ant_Demo\bin\dexedLibs
[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:\project\Ant_Demo\bin\AntDemo-debug.apk
[propertyfile] Creating new property file: D:\project\Ant_Demo\bin\build.prop
[propertyfile] Updating property file: D:\project\Ant_Demo\bin\build.prop
[propertyfile] Updating property file: D:\project\Ant_Demo\bin\build.prop
[propertyfile] Updating property file: D:\project\Ant_Demo\bin\build.prop


-post-build:


debug:


BUILD SUCCESSFUL
Total time: 8 seconds

 6. 安装apk

D:\project\Ant_Demo>adb install bin\AntDemo-debug.apk
KB/s ( bytes in .026s)
pkg: /data/local/tmp/AntDemo-debug.apk
Success

使用ant编译Android APK的更多相关文章

  1. [转] Ant 编译 Android 项目为 Apk 实战, 常见问题解决

    补充,自行安装Ant, 配置ant环境变量, 在android 项目 根目录下使用 android update project 可以自动生成 build.xml 和 local.peoperties ...

  2. [Android Pro] ant 编译android工程

    参考文章: http://blog.csdn.net/xyz_lmn/article/details/7268582?reload http://hubingforever.blog.163.com/ ...

  3. 反编译Android APK及防止APK程序被反编译

    怎么逆向工程对Android Apk 进行反编译 google Android开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式 ...

  4. Ant编译android程序

    http://blog.csdn.net/xyz_lmn/article/details/7268582 这一篇主要做了创建android项目.update已存在项目.ant编译项目. 一,准备ant ...

  5. 【FAQ】Ubuntu环境下ant编译android代码问题

    在Ubuntu14.04环境下,编译android程序时候,运行ant debug的时候出现如下异常:

  6. 『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse

    一.使用apktool 将 apk反编译生成程序的源代码和图片.XML配置.语言资源等文件 具体步骤: (1)下载反编译工具包:apktool 官方的打不开 http://apktool.shouji ...

  7. 实例具体解释:反编译Android APK,改动字节码后再回编译成APK

    本文具体介绍了怎样反编译一个未被混淆过的Android APK,改动smali字节码后,再回编译成APK并更新签名,使之可正常安装.破译后的apk不管输入什么样的username和password都能 ...

  8. linux下反编译android apk

    1.所需要的工具 1)apktool,功能:反编译出apk所需要的资源文件和布局设置文件等, 下载地址:https://code.google.com/p/android-apktool/downlo ...

  9. Mac 下反编译Android APK

    准备工作:安装ApkTool.dex2jar.JD-GUI 安装ApkTool 1.下载ApkTool.大家可以从 https://ibotpeaches.github.io/Apktool/inst ...

随机推荐

  1. 随机访问RandomAccessFile

    public native long getFilePointer() throws IOException;//当前文件的指针位置是 import java.io.IOException; impo ...

  2. 山西汽车销量(hive)

    1.创建数据库create database db_cart; 2.使用数据库use db_cart; 3.创建表create table t_cart(province STRING,month I ...

  3. mysql5.7密码登录的那些坑

    mysql5.7密码策略及修改技巧 繁著 关注 2017.08.18 22:41* 字数 522 阅读 10184评论 0喜欢 4 mysql升级5.7版本以后,安全性大幅度上升. MySQL5.7为 ...

  4. 执行 bower -v 时出现内部错误

    安装nodejs ,我的位置是D:\node.js_install.全局模块安装默认放在C:\Users\Administrator\AppData\Roaming\npm\node_modules里 ...

  5. Java中StringHelp

    import java.util.Collection; import java.util.Map; import java.util.UUID; public class StringHelper ...

  6. oracle--增删改、表备份、集合运算

    truncate 插入数据学习及数据的备份 单表查询语句(select) 1.插入数据(insert) 1.语法规范 insert into 表名(字段1,字段2,字段3,....)values('值 ...

  7. JDK11 | 第一篇 : JDK11 介绍

    文章首发于公众号<程序员果果> 地址 : https://mp.weixin.qq.com/s/cOqRVlDgOqfDfKtkk1JGxw 一.简介 北京时间 2018年9 月 26 日 ...

  8. Java学习day2关键字

    java的基本语法(1) 一.关键字 定义:被Java语言赋予特殊含义,用做专门用途的字符串 特点:关键字中的所有字母都为小写 二.标识符 定义:java对各种变量.方法和类等要素命名时所使用的的字符 ...

  9. day16 django 笔记

    一 jQuery是什么? [1]   jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. [2]   jQuery是继prototy ...

  10. 用命令行远程导出MySQL数据

    mysqldump -h10.10.9.197 -uroot -proot --default-character-set=utf8 0610_eshop >C:/Users/Adm inist ...