上一篇(Android自动化构建之Ant多渠道打包实践(上))已经介绍了Android的apk是如何构建的,本篇博客继续Ant打包的实践过程。
这里以友盟统计为例,对各个渠道进行统计,我们需要先集成它的SDK
配置权限
<!-- 权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>
渠道配置
<!-- 友盟统计配置 -->
<meta-data
android:name="UMENG_APPKEY"
android:value="56f0b1ef67e58eded700015b" >
</meta-data>
<meta-data android:name="UMENG_CHANNEL" android:value="Umeng" />
使用Ant打包的时候替换的渠道号就是<meta-data android:name="UMENG_CHANNEL" android:value="Umeng" />
将Umeng替换为具体的渠道,比如将Umeng替换为xiaomi。
这个文件定义了Ant脚本要用到的一些参数值,我们的渠道也是定义在这里,具体看代码:
#project name and version
project.name=AntBuild
project.version=4.1.4
#android platform version
android-platform=android-19
#keysore file
ketstore.file=release.keystore
key.alias=release.keystore
key.alias.password=123456
key.store.password=123456
#publish channel
channelname=Umeng
channelkey=360,QQ,xiaomi,liangxiang
key=360,QQ,xiaomi,liangxiang
#library project
library-dir=../Library
library-dir2=../Library2
# generate R.java for libraries. Separate libraries with ':'.
extra-library-packages=
#filnal out dir
out.dir=publish
完整的脚本代码,请查看原文。
上面就是完整的Ant脚本,实现了自动化构建和多渠道的打包,笔者在实践的过程踩过不少坑才最终把apk包成功打出。
这里总结下可能遇到的坑:
@echo off
call ant -buildfile "build.xml" deploy
echo done
pause
exit
我们可以在项目中的publish目录下生成不同渠道的apk文件:
安装apk到设备,启动之后在友盟后台集成测试,看app发布的渠道:
https://github.com/devilWwj/Android-Tech/tree/master/AntBuildTest
实现Ant多渠道打包整个过程还是比较繁琐的,主要在Ant脚本上,比较容易出错,需要对命令比较了解,但确实能够缩短我们打渠道包的时间,基于本次实践是基于Eclipse,目前Android Studio使用gradle来实现多渠道打包,以后会把gradle进行多渠道打包的实现分享给大家,大家可以对比下这两种打包方式的区别,主要目的是更加深入的了解apk的构建过程。