Android.Ant.Python之批量打包(一)
来源:互联网 发布:云淘网络 编辑:程序博客网 时间:2024/05/16 01:28
最近遇到一个项目是面对多个商家共用的,但每个商家用单独的icon和程序名,所以需要必须建立N个工程,然后引用同一个library,如果有100个商家的话就要导出100个.apk文件,如果library每更新一次,又要重新打包N个.apk文件,工作量非常非常的大!
后来去搜索了关于很多批量打包的网页,发现都找不到一个明确的解决方法
分享一下我的方法,配置好后只需要执行一个shell文件就可以全自动打包到指定的文件夹(我在Mac平台,Windows的童鞋请用.bat代替)
看之前可以参考一下官网资料 http://developer.android.com/tools/building/building-cmdline.html
简单说明一下步骤:
1、搭建Apache Ant
2、对Android项目提供ant支持
3、提供签名所需的信息、单个项目自动打包
4、修改build.xml脚本,自定义打包信息
5、批量打包!!
1、搭建Apache Ant
如果没有搭建过ant的请到官网下载 http://ant.apache.org/
然后打开终端输入 open -e~/.bash_profile
增加
export PATH=${PATH}:/Volumes/dylan/adt-bundle-mac-x86_64-20130522/sdk/tools
exportANT_HOME=/Volumes/dylan/adt-bundle-mac-x86_64-20130522/apache-ant-1.9.1
export PATH=$PATH:${ANT_HOME}/bin
路径替换成你自己所在的路径
保存后,在终端输入 ant -version,如果如图显示出版本号就成功了
Windows的话把bin目路增加到在PATH就行了
2、对Android项目提供ant支持
终端输入
android update project --name 项目名称 --target 版本id --path 项目路径
比如
android update project --name com.wtapp.hk.sunmas --target 8 --path /Volumes/dylan/work/workspace_weizhan/com.wtapp.hk.sunmas/
如图
选中项目按F5刷新,发现新增了build.xml、local.properties
重要提示:如果你的项目有引用其他项目(library),那么被引用的library项目也需要执行android update project命令来提供ant支持!如果你忘记了,终端会提示哪个项目缺少build.xml等支持ant的文件
3、提供签名所需的信息、单个项目自动打包
打开local.properties文件
增加并修改几个属性
key.store=keystore的路径
key.alias=keystore的Alias(别名)
key.store.password=密码
key.alias.password=密码
也可以不要密码,到时候打包的时候会自动提示输入,不过自动打包的意义就没了,PS:你的密码会暴露请小心
到这里你就可以通过命令行进行打包了,马上试一试吧!
在终端cd到项目的根目录,然后执行ant release命令
然后就会稀里哗啦的一对文字在窗口滚动,最终显示如下
哈哈!显示耗时6秒,如果是引用太多项目,而且是第一次编译的话耗时可能比较久
这时候你可以在按F5刷新bin目录下被编译的apk文件了,里面很多东西但我们最终需要的是以-release结尾的文件
这样就可以自动打包是不是很神奇?!但这只是单个项目的打包,并不是批量打包,后面我会讲这么批量打包
4、修改build.xml脚本,自定义打包信息
你可以打开项目根目录下的build.xml脚本文件,里面有很多注释,可以理解一下各个文件的用处
.apk打包就是靠这个脚本来执行的,这个脚本并没有多少代码,但是你会在末尾发现这一句 <import file="${sdk.dir}/tools/ant/build.xml" />
执行的脚本最终会导入并执行"${sdk.dir}/tools/ant/build.xml"下的脚本文件
而我们真正要修改的也就是这个文件了,打开它发现有1500多行的代码,可想而知编译打包并不是一件简单的事啊
首先修改一个简单的,修改打包的存放目录,统一放在一个地方吧
请先备份${sdk.dir}/tools/ant/build.xml!!!以防万一
打开${sdk.dir}/tools/ant/build.xml,
然后command+F(或Ctrl+F)搜索 -release.apk 我们找到了
<property name="out.final.file" location="${out.absolute.dir}/${ant.project.name}-release.apk"/>
我们直接把路径改了,${out.absolute.dir}其实就是bin目录,替换就行
比如
<property name="out.final.file" location="/Volumes/dylan/work/weizhan_apk/${ant.project.name}-release.apk"/>
然后再执行ant release命令,你会发现apk出现在了你替换的目录中!!
还有很多其他的东西可以修改的,比如versionCode、versionName等等自己去研究一下吧
5、批量打包!!
到这里,我们都配置好了,我们一共用了三个命令而已,对于新的项目我们只需执行一下三步即可
android update project --name com.wtapp.hk.sunmas --target 8 --path /Volumes/dylan/work/workspace_weizhan/com.wtapp.hk.sunmas/
cd /Volumes/dylan/work/workspace_weizhan/com.wtapp.hk.sunmas
ant release
我的方法比较笨,就是把每个项目的命令行都放进shell里面,然后执行这个shell就可以全自动批量打包了(Windows可以用bat批处理文件)
android update project 命令是提供ant支持用的,执行一次就行,批量打包就不加进去了
shell创建如下
指定目录、新建shell、修改权限、编辑并保存要执行的命令行、执行shell
这样就可以是实现批量自动打包了
我的是笨方法、我认为还可以列出工作空间所有项目、之后智能匹配出相应的命令,然后自动执行全部命令行
听说AppleScripte很强大,有待研究,如果有懂的大牛看到的话请指点指点:P
更多细节请参考官网资料 http://developer.android.com/tools/building/building-cmdline.html
- Android.Ant.Python之批量打包(一)
- android ant批量打包
- android ant 批量打包
- android ant批量打包
- Android:Ant 批量多渠道打包
- android Ant 批量多渠道打包!
- android ant 多渠道批量打包
- android Ant 批量多渠道打包
- Android使用Ant批量打包
- Android 使用 Ant 批量打包
- android ant 多渠道批量打包
- Android ant 批量打包研究
- Android使用Ant批量打包
- Android学习 - ant批量打包
- android Ant 批量多渠道打包
- Android采用Ant批量打包
- Android批量打包,利用Ant打包
- Android批量打包,利用Ant打包
- 09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider
- mongodb 学习笔记 07 -- 数据备份、恢复
- codeforces 257 div1
- IDA一日速成整理笔记
- php 用for循环做,金字塔,菱形,空三角
- Android.Ant.Python之批量打包(一)
- Mybatis一对一和一对多配置
- 单页图片和文字一起滑动的效果
- 关于 Java 常用工具您不知道的 5 件事
- 【生活】感谢那些曾经帮助过我的你们
- Android Studio 添加注解模板,解决办法。
- 关于 Java 性能监控您不知道的 5 件事,第 2 部分
- JAVA工具简绍路径
- 扩展 Spring 的 JMX 支持