ant打包相关参考资料:

http://hi.baidu.com/%F5%CC%C4%A7/blog/item/3f9bc5ec2338ad3726979186.html

http://www.diybl.com/course/3_program/java/javajs/20090201/154692.html

Androidant打包相关:

http://marshal.easymorse.com/archives/1665

http://handsomeliuyang.iteye.com/blog/1156070

http://www.bangchui.org/simple/?t13358.html

下面分享一些我个人在ant打包过程中的一些学习所得以及用于这个项目的build文件的大体思路.

首先配置好整个系统所需的ant编译环境,build.property中配置好相关的参数.(build.property文件主要包涵了一些在编译中需要用到工具的路径,以及一些需要配置的参数,如应用包名,项目名,以及一些需要传入的参数.写在build.property中主要是为了方便配置文件的集中管理)在这次ant打包的需求中,需要修改一个java文件中的两个常量属性.根据这样的需求,首先从http://blog.csdn.net/to_cm/article/details/6051470中拿到普通android项目打包的build.xml,build.property.在这里需要指出的是,由于androidsdktool,platformtools的一些升级,一部分android的压缩编译工具被转移到了platform_tools目录下,所以,在配置的时候需要稍微改动一下build.property中的内容

然后,开始动手实现我们的需求吧.由于对ant理解得不算深入,用的方法比较死,可能效率上来说不是最高的,下面说一下我的思路

<targetname=”CopyReplaceJava”>

<copyfile=”${basedir}\${srcdir}\${file.replace.path}\${fileName}”todir=”..\temp\build\META-INF”/>

<replacefile=”${basedir}\${srcdir}\${file.replace.path}\${fileName}”token=”@[email protected]”value=”${company.name}”encoding=”utf-8″/>

<replacefile=”${basedir}\${srcdir}\${file.replace.path}\${fileName}”token=”@[email protected]”value=”${app.id}”encoding=”utf-8″/>

</target>

首先,我们复制我们需要修改的java文件到一个临时的temp文件夹中,然后对位于src中的java文件进行字符的替换,我们这用@[email protected]这类特殊字符来代替替换位置,防止替换了正常的文件代码.替换完毕,然后执行后续的编译,压缩,打包,这时打出的包中的常量数值就是我们传如参数的数值了.由于替换了文件中@[email protected]这类特殊字符,为了下次能正常打包,需要将复制到temp中的java文件替换回来.在打包完之后,我们用这段代码来实现(注意depends参数决定了target的执行顺序,这里我们给的是在compile之后)

<targetname=”replaceJava”depends=”compile”>

<deletefile=”${basedir}\${srcdir}\${file.replace.path}\${fileName}”/>

<copyfile=”..\temp\build\META-INF\${fileName}”todir=”${basedir}\${srcdir}\${file.replace.path}”/>

</target>

接下来,我们需要对生成的不需要的中间文件进行清理,classes文件夹等.

<deletedir=”${basedir}\${outdir}\classes”/>

<deletefile=”${basedir}\${outdir}\classes.dex”/>

<deletefile=”${basedir}\${outdir}\jjdd.ap_”/>

清理完毕,自动生成一个修改了属性值的apk包就生成了.接下来,需求有了进一步的加强,我们需要10几个相同公司名,不同id的包.那么我们怎么自动生成这么一些包呢,这里我用到了dos命令来完成我们的需求(ant虽然也能实现,但是好像ant中执行for需要有插件支持,并且对ant不算太熟,所以,这里我采用dos来做),一下代码是生成指定公司名的不同iddos代码.

cd/dF:\WorkSpace\online\trunk\project_name

@echooff

set/px=请输入产品投放的市场名称:

set/pmin=最小id值是:

set/pmax=最大id值是:

for/l%%iin(%min%,1,%max%)doant-fbuild.xml-Dcompany.name=%x%-Dapp.id=%%i

ant-fbuild.xml-Dcompany.name=%x%-Dapp.id=%%i,这条命令是执行ant,并给build.xml中的company.name赋值输入的x,app.id赋值i.同时用一个循环完成输入的minmax次调用ant打包,生成id不同的多个ant.

Own Website:http://www.stay4it.com/

QQ:104816053

Android QQ Group: 点击加入

转载请注明出处http://stay.cnblogs.com/请尊重个人劳动成果。

更多相关文章

  1. android 2.2 apidemos 赏析笔记 6
  2. android之helloworld详解
  3. android中使用arial字体
  4. Android(安卓)getResources的作用和需要注意点
  5. Android(安卓)Studio使用.so库的方式(科大飞讯为例)
  6. android gridview 组件 及九宫格的简单编写
  7. android GPS HAL 回调函数实现
  8. Android.mk简要说明
  9. android TextView 设置部分文字背景色和文字颜色

随机推荐

  1. android 学习之---Android之GoogleMap(转
  2. Android home键和back键区别
  3. Android中使用SVG矢量图打造多边形图形框
  4. android重写finish实现是否退出提示功能
  5. Android UI 设计秘笈
  6. Android(安卓)Logcat输出为何能自动换行
  7. Android Bluetooth蓝牙开发:Bluetooth蓝牙
  8. Android(安卓)Volley 框架的使用(一)
  9. Android采用操作xml
  10. Android快速实现二维码扫描--Zxing