使用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\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的更多相关文章
- [转] Ant 编译 Android 项目为 Apk 实战, 常见问题解决
补充,自行安装Ant, 配置ant环境变量, 在android 项目 根目录下使用 android update project 可以自动生成 build.xml 和 local.peoperties ...
- [Android Pro] ant 编译android工程
参考文章: http://blog.csdn.net/xyz_lmn/article/details/7268582?reload http://hubingforever.blog.163.com/ ...
- 反编译Android APK及防止APK程序被反编译
怎么逆向工程对Android Apk 进行反编译 google Android开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式 ...
- Ant编译android程序
http://blog.csdn.net/xyz_lmn/article/details/7268582 这一篇主要做了创建android项目.update已存在项目.ant编译项目. 一,准备ant ...
- 【FAQ】Ubuntu环境下ant编译android代码问题
在Ubuntu14.04环境下,编译android程序时候,运行ant debug的时候出现如下异常:
- 『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse
一.使用apktool 将 apk反编译生成程序的源代码和图片.XML配置.语言资源等文件 具体步骤: (1)下载反编译工具包:apktool 官方的打不开 http://apktool.shouji ...
- 实例具体解释:反编译Android APK,改动字节码后再回编译成APK
本文具体介绍了怎样反编译一个未被混淆过的Android APK,改动smali字节码后,再回编译成APK并更新签名,使之可正常安装.破译后的apk不管输入什么样的username和password都能 ...
- linux下反编译android apk
1.所需要的工具 1)apktool,功能:反编译出apk所需要的资源文件和布局设置文件等, 下载地址:https://code.google.com/p/android-apktool/downlo ...
- Mac 下反编译Android APK
准备工作:安装ApkTool.dex2jar.JD-GUI 安装ApkTool 1.下载ApkTool.大家可以从 https://ibotpeaches.github.io/Apktool/inst ...
随机推荐
- Windows Server 2008 R2 为用户“IIS APPPOOL\DefaultAppPool”授予的权限不足,无法执行此操作
报表开发与部署好后,也嵌入到aspx页面中了,使用VS自带的Web服务器组件,一切正常,当部署到IIS中的时,出现了如下错误: 为用户“IIS APPPOOL\DefaultAppPool”授予的权限 ...
- 我的常用的Linux命令
环境:centos7 主要应用Linux命令是为了搭建环境,所以记录一下我的常用的Liunx命令 一.常用目录.文件操作命令 1.显示目录列表命令 ls 显示当前目录下的可见文件 ls - ...
- Learn Python the hard way, ex42 物以类聚
依然少打很多剧情,并修改了很多,还好,能运行 #!urs/bin/python #coding:utf-8 from sys import exit from random import randin ...
- linux之shell脚本
1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ? 1 2 3 4 ./show.sh file1.txt cat show.sh #!/bin/bash ...
- 关于mysql的使用命令(持续更新中...)
特别提示 本说明中的mysql 是基于windwos平台下的5.5 版本 安装完成后 请到mysql中设置配置文件 链接分享:链接:https://pan.baidu.com/s/1tv4ulZ ...
- DB2创建库 数据恢复
例:数据库:PRODB2用户 :DB2ADMIN/DB2ADMIN备份库路径:D:/bank 一.恢复数据库1.启动数据库运行->db2cmd->db2Db2=>start db m ...
- Java对象多态性——对象的转型(引用类型之间的类型转换)
Java引用变量有两个类型:编译时类型和运行时类型.编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定. 若编译时类型和运行时类型不一致,就出现多态 正常的方法调用(本态调用 ...
- java反射, 不看你可别后悔
开发中, 难免遇到些私有的属性和方法, 就好比下面的实体一样, 我们该怎么获得她, 并玩弄于手掌呢? 我们先来个实体瞧瞧, 给你个对象你也new不了, hahaha- 单身wang public cl ...
- UDP千兆光通信(一)、整体认知与概述
前几天看到群里的一个前辈说FPGA的入门就是搭建一个完整的以太网通信平台,颇有感触,就在博客平台上搭建一个以太网平台,包含多个模块,先整体驯熟一下实现的功能,再分别叙述各个模块的功能与实现. 整体功能 ...
- k3 cloud出现应收单下推收款单,把收款单是结算方式修改成银行承兑汇票之后保存提示:收款单明细中结算方式为票据业务的实收金额之和不等于票据的当前占用金额之和,请检查数据!
收款单结算方式选择[银行承兑汇票],系统就默认该笔业务在系统中要存在一张应收票据.则在应收票据页签,需要选择一张出纳的应收票据(要先存在应收票据,才能保存单据,相当于是根据这张票据审核生成的这张收单单 ...