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. CDN分发

    CDN 是Content Delivery Network,即内容分发网络. 未完待续..

  2. git_03_git可视化工具github Desktop使用教程

    前言 github desktop是github的桌面客户端,支持Windows和Mac OS版本.使用简单,可以查看.切换和创建分支,以及提交.合并或部署代码. 下载 由于电脑限制,这里以mac o ...

  3. layui的分页使用(前端分页)

    <div id="one"></div>//显示数据库中数据的<ul id="ones"></ul>//显示分页 ...

  4. Linux 文件创建、插入、替换

    创建文件 touch newfile.txt 插入字符串 echo "aaa" >>/newfile.txt 替换字符串 sed -i "s/aaa/ccc/ ...

  5. CentOS7 修复grub.cfg文件

    为了达到实验目的,首先删除grub.cfg文件 重启后发现系统进不去了,这正是我们想要的 进入系统救援模式,通过输入以下命令修复grub.cfg文件 重启后发现能正常引导进入系统了

  6. 让鼠标滚轮在WINDOWS系统中也和MAC一样滚动(WIN系统鼠标滚轮反向)

    用习惯MAC系统偶尔要用用WINDOWS系统,或者由于各种原因总之时不时需要由MAC转向WIN系统或同时需要两个平台机器上倒腾来倒腾去的同学,一般来说最痛苦的就是鼠标滚轮方向不一致. 基本上我们知道苹 ...

  7. 23、前端知识点--webpack的使用详解

    Webpack 是当下最热门的前端资源模块化管理和打包工具. https://www.cnblogs.com/zhangruiqi/p/7656206.html

  8. maven 打包Scala代码到jar包

    idea的pom.xml文件配置 <dependencies> <dependency> <groupId>org.scala-lang</groupId&g ...

  9. JavaScript基础7——动态生成表格

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. Java中的集合详解及代码测试

    1:对象数组 (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. 2:集合(Collection) (1)集合的由来 我们学习的是Java -- 面向对象 ...