編輯:關於android開發
Ant是歷史比較悠久的一個自動化構建工具,Android開發者可以通過它來實現自動化構建,也可以實現多渠道打包,關於apk打包的方式一般有Ant、Python、Gradle三種,這三種打包方式都各自有優點和缺點,本篇博文先給大家介紹如何使用Ant來實現自動構建和多渠道發布。
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構建的過程:
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 package -m -J
命令解釋:
-f 如果編譯出來的文件已經存在,強制覆蓋
-m 使生成的包的目錄存放在-J參數指定的目錄
-J 指定生成的R.java 的輸出目錄
-S res文件夾路徑
-A assert文件夾路徑
-I 某個版本平台的android.jar的路徑
-F 具體指定APK文件的輸出
示例命令:
aidl -p<framework.aidl路徑> -I
注意:命令和路徑是沒有空格的。
示例命令:
javac -d destdir srcFile
參數解釋:
-d 指定存放類的文件夾
-bootclasspath 覆蓋引導類文件的位置
-encoding 指定源文件使用的編碼
-sourcepath 指定查找輸入源文件位置
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
示例命令:
java -cp com.android.sdklib.build.ApkBuilderMain <未簽名.apk> -v -u -z bin\resources.ap_ -f bin\classes.dex -rf src
jarsigner -verbose -keystore -signedjar -<輸出簽名apk路徑> <未簽名apk路徑>
示例命令:
zipalign [-f] [-v] infile.apk outfile.apk
上面的8個步驟就是實現apk構建的過程,都是通過命令來一步一步實現,要注意每一步生成的東西。
本篇博文主要給大家介紹了Android中apk構建的過程,也詳細的講解了每一步具體的命令操作,由於不想一篇把所有東西堆在一起,我將會在下一篇來具體使用Ant腳本實現自動化構建和多渠道打包,大家可以繼續關注。
谷歌電子市場9--詳情界面,谷歌電子市場9-- 1.詳情頁(HomeDetailActivity) @Override protected void onCreate(
我的android學習經歷38,android學習經歷38anddroid studio的內存修改 昨天有位朋友問到了下面的一個問題 這個判斷為android stud
如何在Android的ListView中構建CheckBox和RadioButton列表(Android版支持單選和多選的投票項目),androidlistview多選引
android:使用gallery和imageSwitch制作可左右循環滑動的圖片浏覽器 為了使圖片浏覽器左右無限循環滑動 我們要自定義gallery的adapte