读书人

Ant自动封装2(打特殊厂商的包)

发布时间: 2012-09-08 10:48:07 作者: rapoo

Ant自动打包2(打特殊厂商的包)

? 由于公司内置的需要,我们的程序要针对不同的厂商打不同的apk,而且不同厂商之间还有一些差别,所以我在原来打包的基础上进行了扩展,支持不同厂商。

? 为了便于扩展和维护,我把特殊厂商的代码与原来正常打包的代码进行分离,同时让打包者可以自动选择当前要打包的厂商。

?

改动的几个地方:

? 1. 把不同厂商要改动的地方写在宏(就相当于java里的方法)里面,而这些所有的宏,都放在一个当独的special_company.xml文件里:

在这个文件里,有几个要注意的地方:

? *. 在这个独立的文件里,一定不要忘了加<project>标签,这个是必需的

? *.?在使用ant替换命令replaceregexp时,在我们的查找范围里有很多要进行替换时,默认情况下,只会给我们替换其中的一部分,不会是我们想的那样,把所有查找到的都进行替换,解决办法是:加上属性flags="g",这个属性的意思就是把查找到的,都时行替换。

? *. 替换后的文件的编码,默认情况下,是与运行ant命令的系统有关,如果为windows系统,则为gbk编码,如果为linux系统,则为utf-8编码。所以如果你的代码的编码原来就是utf-8,如果还想在windows里运行ant命令,在替换的命令里要加上encoding="utf-8"

? 2. 把宏写好后,就要把代码链接到原来的build.xml文件上,这个厂商的改动,是在代码从svn上下载下来后,就要执行的。

??? *. 在build.xml文件里使用这些宏之前,要先引入这个文件:

??? *. 其次就根据当前的厂商,来选择执行不同的宏,这段代码是在svn标签后

??? *. 最后就是在build.properties文件里进行选择

#是哪个特殊厂商 a, bwhich_company=a

????*. 同时为把打好后的包,便于区分,我就把生成的文件夹的后面加上了which_company后缀。

?

其他的打包流程和以前的一样,没有变化。

?

1 楼 luzhengdong 2011-12-26 兄弟,我最近也有这方面的需求,可否将你的xml及相应的.properties文件共享一下
联系方式:tiankong860906@126.com 非常感谢!

读书人网 >移动开发

热点推荐