http://www.tuicool.com/articles/A36rmeU
http://www.tuicool.com/articles/A36rmeU
Android如实现项目自动化构建与APK打包列表
不知道大家在做项目的时候有没有这种需求,当QA来测试的时候都会向你要一个打包的apk,每次测还都要是保证是最新的,有时候一天要打好几个包,这当然就带来了诸多不便。
我们此时就会想一个方法,那么怎么解决。我们可以想一下这个场景,我们给PM或者QA一个网址,他们可以直接通过该页面下载到自己想要的apk,如此再好不过了。好,下面我们就来看看具体怎么做。
既然是打包apk,那么首要的当然就是编译和构建项目了,为此我们可以选择使用ant.使用ant该如何做,大家可以从这篇blog上看看:http://1.sanyinchen.sinaapp.com/?p=134
接着就是需要一个可以自动化构建项目的平台,这里我们可以使用jenkins。这里简单介绍一下jenkins。具体的大家可以从网上查找,网上关于jenkins还是很是详细的。jenkins就是一个可以自动化构建项目的平台,支持ant脚本构建。当然,当你新建一个job的时候你需要git,cvs,或者svn。这里推荐大家使用svn,比较方便。要是没有svn的话最简单的是去Googlecode上申请一个,如果公司本身提供svn注册平台那就更好,要是没有的话,我们也可以自己搭建一个svn服务器,网上的教程也是大把的抓。jenkins的话会在本地checkout你的代码,然后调用你的ant脚本进行编译。jenkins本身还有很多插件供你下载,比如你可以在构建失败的时候向你的邮箱里发一封邮件,而且你也可以指定你的邮件内容。同时,你也可以计划构建任务,比如每隔多长时间就进行构建一次,或者每隔多长时间进行检查一次,如果发现版本仓库更新的话就进行编译一次。
好了,现在构建脚本有了,构建项目也有了,那么我们现在如何拿到打包好的apk。这里我们就需要一个网站,建议大家使用Python搭建,且web.py还是很容易入门的,但是大家写html的时候需要做好心理准备,那确实是一种灾难。建议大家别在windows平台下搞了,我当时是使用pychm,写这个html没少受罪。那么如何拿到apk列表,其中一种方法就是将jenkins的工作空间目录抽取过去,写一个简单地爬虫,但是过程纠结不说,还容易出错。
第二种我们可以扩展ant脚本,每次编译成功后主动将apk和一些其他信息提交到服务器,这样还避免了jenkins的权限问题(如果你使用的是公司定制的jenkins的话可能会有权限问题导致你访问不到job的工作区间)。至于怎么扩展,可以参考一下这篇blog:http://1.sanyinchen.sinaapp.com/?p=139
我们把逻辑操作替换成上传就可以了,我使用的是httpclient的post请求,Python服务端的话,一个web.input(myfile{})就可以搞定了。注意依赖的jar包需要放在ant/lib下
最后都结束了,来看一下我的效果: