Android自動化構建之Ant多渠道打包實踐分析(上)

來源:互聯網
上載者:User

Android自動化構建之Ant多渠道打包實踐分析(上)
前言

Ant是曆史比較悠久的一個自動化構建工具,Android開發人員可以通過它來實現自動化構建,也可以實現多渠道打包,關於apk打包的方式一般有Ant、Python、Gradle三種,這三種打包方式都各自有優點和缺點,本篇博文先給大家介紹如何使用Ant來實現自動構建和多渠道發布。

開發環境Window7 Ant jdk android sdk

mac系統下所需要的運行環境也是類似的,我們都需要配置Ant、jdk、sdk的環境變數,我們可以看一下window下是環境變數配了些什麼:
ANT_HOME : D:\android\apache-ant-1.9.4
JAVA_HOME : C:\Program Files\Java\jdk1.6.0_45
ANDROID_SDK_HOME : D:\android\adt-bundle-windows-x86_64-20140321\sdk
PATH: %JAVA_HOME%/bin;%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools;%ANT_HOME%\bin;
CLASSPATH : .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar

以上環境變數配好之後,你才可以進入下一步,不會配?回家吧,開發不適合你。

先說APK構建過程

下面來簡單描述下apk構建的過程:
1. 使用aapt產生R.java類檔案
2. 使用android SDK提供的aidl.exe把.aidl轉成Java檔案
3. 使用javac命令編譯.java類檔案產生class檔案
4. 使用android SDK提供的dx.bat命令列指令碼產生classes.dex檔案
5. 使用android SDK提供的aapt.exe產生資源套件檔案
6. 使用apkBuilder.bat產生未簽名的apk安裝檔案
7. 使用jdk的jarsigner對未簽名的包進行apk簽名
8. 使用Zipalign工具對apk進行最佳化

我們從上面的描述可以知道apk具體的步驟和使用到的工具,對應的工具在sdk中都可以找到,自己去翻翻吧,但你會發現新的sdk版本,aapt被放到了build-tools目錄下,apkBuilder.bat檔案在tools目錄找不到了,你可以去網上去下一個,然後放到tools目錄下。為了讓大家更清楚apk構建的過程,放上官方的一張圖:

有了這張圖,相信大家已經清楚了apk到底是如何產生的吧,不多說了。

構建命令詳解aapt命令產生R.java檔案

樣本命令:

aapt package -m -J -S -I -M

命令解釋:

-f 如果編譯出來的檔案已經存在,強制覆蓋
-m 使產生的包的目錄存放在-J參數指定的目錄
-J 指定產生的R.java 的輸出目錄
-S res檔案夾路徑
-A assert檔案夾路徑
-I 某個版本平台的android.jar的路徑
-F 具體指定APK檔案的輸出

aidl命令產生.aidl檔案

樣本命令:

aidl -p<framework.aidl路徑> -I -o<目標檔案目錄> .aidl檔案 </framework.aidl路徑>

注意:命令和路徑是沒有空格的

<framework.aidl路徑>javac命令產生.class檔案

樣本命令:

javac -d destdir srcFile

參數解釋:
-d 指定存放類的檔案夾
-bootclasspath 覆蓋引導類檔案的位置
-encoding 指定源檔案使用的編碼
-sourcepath 指定尋找輸入源檔案位置

dx命令產生classes.dex檔案
樣本命令:
dx --dex --output classes.dex  bin/classes/  libs/

命令解釋:將bin/classes下的class檔案和libs下的jar檔案編譯成classes.dex檔案

aapt產生資源套件檔案resources.ap_

命令樣本:

aapt package -m -J  -S  -I  -A  -M -F 
apkbuilder.bat已經過時了,使用以下方法

樣本命令:

java -cp  com.android.sdklib.build.ApkBuilderMain <未簽名.apk>  -v -u -z bin\resources.ap_ -f bin\classes.dex -rf src
通過jarsigner來產生
樣本命令:
jarsigner -verbose -keystore  -signedjar -<輸出簽名apk路徑> <未簽名apk路徑> 
最後一步使用zipalign工具進行apk對齊最佳化

樣本命令:

zipalign [-f] [-v]  infile.apk outfile.apk

上面的8個步驟就是實現apk構建的過程,都是通過命令來一步一步實現,要注意每一步產生的東西。

小結

本篇博文主要給大家介紹了Android中apk構建的過程,也詳細的講解了每一步具體的命令操作,由於不想一篇把所有東西堆在一起,我將會在下一篇來具體使用Ant指令碼實現自動化構建和多渠道打包,大家可以繼續關注。

 

  </framework.aidl路徑>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.