Android如实现项目自动化构建与APK打包列表

本文介绍如何利用Ant和Jenkins实现Android项目的自动化构建及APK打包,通过Python搭建服务端,实现自动化测试流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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下

最后都结束了,来看一下我的效果:



























-------------------------------------
http://1.sanyinchen.sinaapp.com/?p=134
http://1.sanyinchen.sinaapp.com/?p=134
http://1.sanyinchen.sinaapp.com/?p=134



Android 里 使用 android 命令生成 ant脚本

03 | 11 | 2014

ant是一个自动编译的脚本,本身ant是使用java编写的,因此你可以自定义一个任务。其实Android SDK 里有个Android的命令可以自动生成Ant脚本,我们要做的事情就是进行简单地配置,就可以实现项目源码的编译,混淆,打包,签名等一系列操作

这个Android的脚本命令一般会存在 tools目录下。目录下会有个android unix可执行文件,如果你是windows系统的话可能会是android.bat ,为了方便使用这个命令,我们可以把它加在系统环境变量里,这样直接执行android命令即可。

我们现在来看看这个命令以及参数: android update project -n projecname -t targetapi -p projectpath

-n 后面跟的即为项目名

-t 指的是目标版本 我们可以使用android list target 相应地api对应的版本id 。

-p指的自然是项目的路径

执行之后会在你指定的项目路径下生成一个build.xml的编译文件。同时还会有local.properties这里的xxxxx..properties就是ant脚本加载的属性,我们可以通过查看build.xml下的脚本来看看build.xml具体加载了哪些属性文件,当然我们还会看到这么一句话:

<import file=”${sdk.dir}/tools/ant/build.xml” />

因此,实际上加载的就是sdk下默认的build.xml,具体的事项我们可以打开这个xml文件看看,然而值得注意的是,如果你是直接使用ant的话,是不会生成apk包的,原因就是build.xml默认的任务是help任务,你需要执行的是release或者debug,但是debug命令式不执行混淆的,release下才执行混淆。

执行混淆的话需要将project.properties里的开关打开,即将#proguard.config=proguard-project.txt前面的#注释去掉,然后在proguard-project.txt离编写混淆相关的东西,具体的话可以去proguard官网上看看,这里混淆使用的就是proguard.jar

等一切配置好了,我们执行ant release 就可以了如果没有问题的话就可以生成apk了,如果你没有配置密钥的话,生成的就是unresiger.apk,然后你需要自己配置参数,既可以了,具体的我们可以在默认的build.xml(sdk下的)找到相关答案

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值