二、基本使用
2.1、使用android create创建项目
参数说明:
-k/--package为命名空间(包名)
-a/--name工程名
-p/--path项目
-t为目标平台的版本编号
实例1
C:\Users\hubin5\Desktop\temp\0503>android create project -k com.android.Tank -a Tank -t 4 -p G:\projects\tank Error: Project folder 'G:\projects\tank' is not empty. Please consider using 'android.bat update' instead. Updated file G:\projects\tank\src\com\android\Tank\Tank.java Updated file G:\projects\tank\res\values\strings.xml Updated file G:\projects\tank\res\layout\main.xml Updated file G:\projects\tank\AndroidManifest.xml Updated file G:\projects\tank\build.xml Updated file G:\projects\tank\proguard-project.txt
可以通过android-sdk\tools下的android.bat列出不同版本平台的对应id编号
命令1::android.bat list targets
命令2:android list
2.2、android update更新现有项目
对已经存在的android工程,我们可以update下(修改平台的版本),这样会自动添加build.xml 等ant 的配置文件
示例1
C:\Documents and Settings\Administrator>android update project --name Tank -t 11 -p F:\tank
示例2
G:\temp>android update project --name Test -t 15 -p D:\workspace\test
Updated project.properties
Updated local.properties
Updated file D:\workspace\test\build.xml
<wbr></wbr>
D:\workspace\test>ant release
Buildfile: D:\workspace\test\build.xml
在使用antrelease或antdebug打apk包时,默认使用当前目录的build.xml配置来进行打包。
当然我们可以使用-buildfile选项来制定build.xml配置文件。
实例3
call ant release -buildfile test\build.xml
实例4
文件1
config.bat
set out_dir=.\out
set out_file_name=Appstore5_Phone
set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2%
set t=%Time%
if "%t:~0,1%" ==" " (
set t=0%t:~1%
)
set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2%%t:~0,2%%t:~3,2%%t:~6,2%
set out_file_name=%out_file_name%_%NO%.apk
文件2
build.bat
call config.bat
pushd dependency
call build.bat
popd
call android update project -p Appstore5_Utils -t android-8
call ant release -buildfile Appstore5_Utils\build.xml
call android update project -p Appstore5_Download_Install -t android-8
call ant release -buildfile Appstore5_Download_Install\build.xml
call android update project -p Appstore5_Common -t android-8
call ant release -buildfile Appstore5_Common\build.xml
call android update project -p Appstore5_Phone -t android-9
call ant release -buildfile Appstore5_Phone\build.xml
if not exist %out_dir%\ mkdir %out_dir% if exist %out_dir%\%out_file_name% del %out_dir%\%out_file_name% /q copy /y Appstore5_Phone\bin\Loft-release.apk %out_dir%\%out_file_name% pause
文件3
dependency\build.bat
call android update project -p lepay_Res -t android-8
call ant release -buildfile lepay_Res\build.xml
call android update project -p lepush_Res -t android-8
call ant release -buildfile lepush_Res\build.xml
call android update project -p leuser_Res -t android-8
call ant release -buildfile leuser_Res\build.xml
三、签名
只要在Android工程的project.properties进行示例3类似的配置,在使用Ant打包时,Ant就会对生成的apk文件进行签名.
示例3
文件project.properties中
has.keystore=true
has.password=true
key.store=debug.keystore
key.alias=androiddebugkey
key.store.password=android
key.alias.password=android
这里的数字签名文件debug.keystore和project.properties处于同一目录。
关于请签名参考《Android应用程序签名简介》
四、混淆打包
关于使用Ant混淆打包的知识请参考《Android的代码混淆》
五、其他
- Android中利用ant进行多渠道循环批量打包(一)
目前国内的安卓渠道有几百家,我们要根据不同的渠道打不同渠道的apk来统计每个渠道带来的用户数,统计每个渠道用户的存活率和活跃度等等信息,但是手动对每个渠道的APK进行签名打包实在是让人感到厌烦且低效, ...
- ant混淆编译java web,Android中使用ant混淆编译
搞了好几天,查看了上百个网站,最后摸索出一套很简单的ant混淆编译的方法.下面开始: 1.拿一个普通项目来说,首先为它加上ant编译功能. android update project --name ...
- [Android]转-Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!
原文地址 一.前言: 大家好,今天给大家分享一下Android中的拿来主 义,我们时常会碰到一个自己觉得很漂亮很帅气的应用(apk),所以我们会尝试用WinRAR等之类工具查看,而一般的应用程序打包后 ...
- Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!
一.前言: 大家好,今天给大家分享一下Android中的拿来主 义,我们时常会碰到一个自己觉得很漂亮很帅气的应用(apk),所以我们会尝试用WinRAR等之类工具查看,而一般的应用程序打包后的目录通常 ...
- ant 编译java 项目_使用ant编译打包、部署简单的javaweb项目 --01
目录结构: D:\code\kongee\ant_web_hello λ tree /f 卷 软件 的文件夹 PATH 列表 卷序列号为 000D-CD8E D:. │ .classpath │ .p ...
- Go编译android,在Android中引用golang编译的aar包
gomobile是在安卓中使用golang的工程,既可以全部代码用golang,也可以引用部分golang的代码,但是现在还不成熟,还是试验阶段. 配置gomobile的环境 $ go get gol ...
- Android中导入项目编译时报错:Java home supplied via ‘org.gradle.java.home‘ is invalid. Invalid directory...
编写不易,如有转载,请声明出处:http://blog.csdn.net/zxc514257857/article/details/73500775 报错内容 Error:Failed to comp ...
- linux下的ant编译,linux 中部署ant编译的包中缺少问题
Youth -Samuel Ullman Samuel Ullman(塞缪尔.厄尔曼) Youth is not a time of life,it is a state of mind;青春不是年华 ...
- android apk 的信息,Android中获取apk基本信息
一 PackageManager可以获得的所有包节点信息: 1,所有节点的基类:PackageItemInfo: 2,PackageInfo:package的全面信息,与AndroidManifest ...