Android中利用ant进行多渠道循环批量打包(一)
目前國內的安卓渠道有幾百家,我們要根據不同的渠道打不同渠道的apk來統計每個渠道帶來的用戶數,統計每個渠道用戶的存活率和活躍度等等信息,但是手動對每個渠道的APK進行簽名打包實在是讓人感到厭煩且低效,這時我們需要一個全自動化的打包工具----ant。Android SDK的tools中已經包括了ant的打包工具,那么我們該如何運用它達到我們的要求呢?之前鹵煮做這塊的時候也參考了很多前輩的文章,首先向前輩們致敬,下面說下鹵煮的方法,有什么不對的地方或者疑問歡迎大家留言交流。(以下步驟均在MAC系統下完成)
一.打包前準備工作
1.首先確定你的JDK版本為1.6!
2.在AndroidManifest.xml中application標簽下添加一個用來識別渠道的標簽:
<meta-data android:name="qudao" android:value="channel" />3.為了讓ant支持循環功能,我們要在Android SDK/tools/lib下放一個ant-contrib-1.0b3.jar包
4.項目中放置第三方jar包的文件夾必須叫libs而不是lib
?
二.build.xml等文件的生成和配置
1.通過終端(cmd)命令自動生成build.xml和local.properties兩個文件,方法如下:
<sdk>/tools/android update project -p <project> -t <target>例如:
/Users/moushou/Downloads/AndroidSDK/tools/android update project -p /Users/moushou/Documents/workspace/HelloWorld -t 14其中<sdk>為SDK全路徑,<project>為項目全路徑,<target>為API版本。
執行完成截圖如下:
執行完成后,Refresh你的項目就會發現項目的根目錄下多了兩個文件:build.xml和local.properties
其中local.properties的內容是:
# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration.# location of the SDK. This is only used by Ant # For customization when using a Version Control System, please read the # header note. sdk.dir=/Users/moushou/Downloads/AndroidSDKproject.properties的內容如下:
# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system use, # "ant.properties", and override values to adapt the script to your # project structure. #proguard.config=proguard.cfg # Project target. target=Google Inc.:Google APIs:14 proguard.config=proguard.cfg項目的目錄結構如下圖所示:
注:project.properties中target=GoogleInc.:GoogleAPIs:14代表所使用的SDK的版本,可進行手動修改。
2.手動為項目新建一個File,該文件名為:ant.properties,創建完成項目的目錄結構如下圖:
創建完成后在ant.properties中添加如下內容:
key.store=<keystore> key.alias=<key> key.store.password=<keystore pwd> key.alias.password=<key pwd> market_channels=xx,yy,zz app_version=1_0_build_0例如:
key.store=/Users/moushou/Desktop/qianming key.alias=meilihuaduo key.store.password=123456xx key.alias.password=123456xx market_channels=anzhuoshichang,jifengshichang,baiduyingyongzhongxin app_version=1_0_build_0其中:
keystore為簽名文件的全路徑。
key.alias為簽名需要使用的私鑰。
key.store.password為私鑰庫的密碼。
key.alias.password為私鑰的密碼。
market_channels為渠道集合。
app_version為apk的版本(此字段可根據自己喜好編寫)。
?
--------------------------------------------------------------------------------------------------
?
至此,除build.xml外,其余文件配置完成,夜深人靜的讓我有些犯困啦,明天會把build.xml中使用for循環替換AndroidManifest.xml中渠道value的方法分享給大家。
?
轉載于:https://www.cnblogs.com/MrShi/archive/2013/04/16/3023311.html
總結
以上是生活随笔為你收集整理的Android中利用ant进行多渠道循环批量打包(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DLL引用之SQLite在Win32、6
- 下一篇: Android学习 —— 多种适配器