Android Ant批量打包
一、配置Ant环境变量
JAVA_HOME=/software/jdk1.6.0_24
ANT_HOME=/software/apache-ant-1.9.2
Android_Home=/software/android-sdk-linux
export JAVA_HOME ANT_HOME Android_Home PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$ANDROID_HOME/tools$Android_Home/tools/proguard/bin:$/software/decompile/dex2jar-0.0.9.13:$PATH
export PATH CLASSPATH=/software/apache-ant-1.9.2/lib
export CLASSPATH
二、copy以下三个文件到工程根目录
文件一:ant.properties
out.absolute.dir=输出apk目录
ant.project.name=工程名字
gos.path=输出mapping文件等编译相关目录
key.alias=alias名称
java.encoding=utf-8
key.store.password=密码
application.package=cn.ibm.moa.android.cf
key.store=keystore目录
key.alias.password=alias密码
market_channels=a01,a02,a03(渠道名,多渠道以逗号隔开)
app_version=应用版本
文件二:build.xml(红色部分需要根据自己的情况修改)
<?xml version="1.0" encoding="UTF-8"?>
<project
name="工程名"
default="help" > <property file="local.properties" /> <property file="ant.properties" /> <loadproperties srcFile="project.properties" /> <!-- quick check on sdk.dir --> <fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
unless="sdk.dir" /> <taskdef resource="net/sf/antcontrib/antcontrib.properties" > <classpath>
<!-- ant目录下的lib -->
<pathelement location="/software/apache-ant-1.9.2/lib/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef> <import file="${sdk.dir}/tools/ant/build.xml" /> <import
file="custom_rules.xml"
optional="true" /> <target name="clean_bin_gen" > <echo>
Cleaning the project...
</echo> <delete dir="${report.dir}" /> <delete dir="${build.dir}" /> <delete
includeemptydirs="true"
verbose="true" > <fileset
dir="bin"
includes="**/*" >
</fileset>
</delete> <delete
includeemptydirs="true"
verbose="true" > <fileset
dir="gen"
includes="**/*" >
</fileset>
</delete>
</target> <target
name="deploy"
depends="clean" > <foreach
delimiter=","
list="${market_channels}"
param="channel"
target="modify_manifest" >
</foreach>
</target> <target name="modify_manifest" > <replaceregexp byline="false" > <regexp pattern="android:debuggable="(.*)"" /> <substitution expression="" /> <fileset
dir=""
includes="AndroidManifest.xml" />
</replaceregexp> <replaceregexp
byline="false"
flags="g" > <regexp pattern="android:name="APP_CHANNEL" *(\r\n)? *android:value="(.*)"" /> <substitution expression="android:name="APP_CHANNEL" android:value="${channel}"" /> <fileset
dir=""
includes="AndroidManifest.xml" />
</replaceregexp> <replaceregexp
byline="false"
flags="g" > <regexp pattern="android:name="APP_CHANNEL01" *(\r\n)? *android:value="(.*)"" /> <substitution expression="android:name="APP_CHANNEL01" android:value="${channel}"" /> <fileset
dir=""
includes="AndroidManifest.xml" />
</replaceregexp> <antcall target="release" /> <copy tofile="${gos.path}/应用名称_${channel}.apk" > <fileset
dir="${out.absolute.dir}/"
includes="应用名称-release.apk" />
</copy> <echo message="-------------------------------------------------------" />
</target> </project>
文件三:local.properties
#sdk根目录
sdk.dir=/software/android-sdk-linux
三、在终端中切换到工程根目录下执行命令:ant deploy
打包成功后会显示以下提示
BUILD SUCCESSFUL
Total time: 1 minute 58 seconds
Android Ant批量打包的更多相关文章
- 【Android开发经验】使用Ant批量打包Android应用全然指南
本文章由Socks完毕.博客地址:http://blog.csdn.net/zhaokaiqiang1992 转载请说明. 折腾了一下午.百度了一下午,最终实现了使用Ant对Android应用的批量打 ...
- cocos2d-x使用ant批量打包
当项目需要在多渠道上线时,要打很多的渠道包,少则几十个,多种几百个.它们的区别一般只是渠道id或部分配置信息不同,这些信息均可写在配置文件中. 例如常见的渠道id不同,一般定义在AndroidMani ...
- CygWin模拟Linux环境进行Ant批量打包
运行环境:Windows7 + Cygwin + ant 第一种:有源码 这种方式比较 简单.利用ant打包.直接shell脚本修改 配置渠道号的文件.我们目前是用的umeng的.在AndroidMa ...
- Android ant自动打包脚本:自动替换友盟渠道、版本号、包名
本文最后修改时间:2014-3-10 Android项目开发时,给公司人员安装,频繁升级,版本号总需要改,太麻烦,跟着时间变,自动升级才方便. Android项目开发新版时,手机上可能要装两个版本,一 ...
- cocos2dx Android 使用ant 批量打包
参考文章: 例子:http://www.2cto.com/kf/201305/208139.html http://blog.csdn.net/ljb_blog/article/details/127 ...
- Android ant自动打包 crunch 报错
解决办法: 修改SDK_HOME/tool/ant/build.xml. <property name="aapt.ignore.assets" value="&l ...
- Android中利用ant进行多渠道循环批量打包
公司负责Android开发的小伙伴学习能力稍微偏弱,交代给他的自动化打包的任务,弄了好久依然没有成效.无奈只好亲自出手. 没有想到过程很顺利,我完全按照如下文章的步骤进行: 主要参考: Android ...
- Android批量打包提速 - 1分钟900个市场不是梦
版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4152323.html 黎明前的黑暗 使用Ant或者Gradl ...
- 基于apktool项目的android批量打包工具,多平台支持
好久木有写博客了,今天有点兴致就写一下,献上一个没怎么用的批量打包工具,python实现的,虽然说现在android的批量打包有一个很好的工具可以使用gradle,这个灰常牛叉的工具和android ...
随机推荐
- Android核心分析之十八Android电话系统之RIL-Java
Android RIL-Java 123.jpg (2.09 KB, 下载次数: 1) 下载附件 保存到相册 2012-3-21 10:47 上传 RIL-Java在本质上就是一个RIL代理,起 ...
- 分布式 Key-Value 存储系统:Cassandra 入门
Apache Cassandra 是一套开源分布式 Key-Value 存储系统.它最初由 Facebook 开发,用于储存特别大的数据. Cassandra 不是一个数据库,它是一个混合型的非关系的 ...
- QT中可以用QProgressBar或着QProgressDialog来实现进度条
QProgressBar的使用 首先在designer中拖一个按钮和进度条部件,按下面初始化 //补充:下面两句写在MainWindow的构造函数里进行初始化 ui->progressBar-& ...
- wordpress自定义栏目
开启自定义栏目:点击头顶的“显示选项”,勾选“自定义栏目” 然后编辑文章时,即可看见 实验: 定义名称为:play_url ,值为:http://www.xiami.com/widget/635357 ...
- JVM加载class文件的原理
当Java编译器编译好.class文件之后,我们需要使用JVM来运行这个class文件.那么最开始的工作就是要把字节码从磁盘输入到内存中,这个过程我们叫做[加载 ].加载完成之后,我们就可以进行一系列 ...
- CentOS中的chkconfig命令
chkconfig: chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接.语法: ...
- Java:基本数据类型包装类
基本数据类型对象包装类 基本数据类型(关键字) 引用数据类型(类) byte Byte short ...
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统
开篇:从50开始系统已经由MVC4+EF5+UNITY2.X+Quartz 2.0+easyui 1.3.4无缝接入 MVC5+EF6+Unity4.x+Quartz 2.3 +easyui 1.4. ...
- Getting Started with Mongoose and Node.js – A Sample Comments System | Dev Notes
In this post, we’re going to be creating a sample comments system using Node, Express and Mongoose. ...
- 每天一个小算法(Heapsort)
#include "stdio.h" #include "stdlib.h" #define Num 10 Heap(int arr[],int i,int n ...