天天看點

android 指令編譯

Android 指令行手動編譯打包過程圖 

android 指令編譯

【詳細步驟】: 

1使用aapt生成R.java類檔案: 

例: 

F:\explorer\android-sdk-windows2.2\tools>f:\explorer\android-sdk-windows2.2\platforms\android-3\tools\aapt.exe package -f -m -J F:\explorer\AndroidByread\gen -S res -I f:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar -M AndroidManifest.xml 

其中  -f -m -J F:\explorer\AndroidByread\gen 代表按覆寫的形式在gen目錄下生成帶包路徑的R.java,-S res指定資源檔案 ,-I f:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar 指定使用的android類,-M AndroidManifest.xml指定程式的配置檔案 

aapt Usage: 

android 指令編譯

2使用android SDK提供的aidl.exe把.aidl轉成.java檔案: 

usage: aidl OPTIONS INPUT [OUTPUT] 

       aidl --preprocess OUTPUT INPUT... 

OPTIONS: 

   -I<DIR>    search path for import statements. 

   -d<FILE>   generate dependency file. 

   -p<FILE>   file created by --preprocess to import. 

   -o<FOLDER> base output folder for generated files. 

   -b         fail when trying to compile a parcelable. 

INPUT: 

   An aidl interface file. 

OUTPUT: 

   The generated interface files. 

3第三步 編譯.java類檔案生成class檔案: 

例:F:\explorer\AndroidByread>javac -encoding GB18030 -target 1.5 -bootclasspath F:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar -d bin src\com\byread\reader\*.java gen\com\byread\reader\R.java 

android 指令編譯

4使用android SDK提供的dx.bat指令行腳本生成classes.dex檔案: 

android 指令編譯

F:\explorer\AndroidByread>F:\explorer\android-sdk-windows2.2\platforms\android-3\tools\dx.bat --dex --output=F:\explorer\AndroidByread\bin\classes.dex f:\explorer\AndroidByread\bin\classes 

其中classes.dex為生成的目标檔案,f:\explorer\AndroidByread\bin\classes為class檔案所在目錄 

5使用Android SDK提供的aapt.exe生成資源封包件(包括res、assets、androidmanifest.xml等): 

F:\explorer\AndroidByread>F:\explorer\android-sdk-windows2.2\platforms\android-3\tools\aapt.exe package -f -M AndroidManifest.xml -S res -A assets -I F:\explorer\android-sdk-windows2.2\platforms\android-3\android.jar -F bin\byreadreader 

将AndroidManifest.xml,res和assets檔案夾中的資源檔案打包生成byreadreader,用法參見1 

6第六步 生成未簽名的apk安裝檔案: 

apkbuilder  ${output.apk.file} -u -z  ${packagedresource.file} -f  ${dex.file}  -rf  ${source.dir}  -rj  ${libraries.dir} 

android 指令編譯

F:\explorer\AndroidByread>f:\explorer\android-sdk-windows2.2\tools\apkbuilder.bat f:\explorer\byreadreader.apk –v -u -z f:\explorer\AndroidByread\bin\byreadreader -f f:\explorer\AndroidByread\bin\class.dex -rf F:\explorer\AndroidByread\src 

其中f:\explorer\byreadreader.apk為生成的apk ,-z f:\explorer\AndroidByread\bin\byreadreader為資源包,f:\explorer\AndroidByread\bin\class.dex為類檔案包 

7使用jdk的jarsigner對未簽名的包進行apk簽名: 

use jarsigner 

jarsigner  -keystore ${keystore} -storepass  ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias} 

例如: 

F:\explorer\android-sdk-windows2.2\tools>jarsigner –keystore f:\explorer\eclipse3.5\bbyread.keystore -storepass byread002 -keypass byread002 -signedjar f:\explorer\byread.apk f:\explorer\byreadreader.apk byread 

其中–keystore f:\explorer\eclipse3.5\bbyread.keystore 為密鑰檔案  -storepass byread002為密鑰檔案密碼 byread 為密鑰别名 -keypass byread002為密鑰别名密碼,-signedjar f:\explorer\byread.apk為簽名後生成的apk檔案 f:\explorer\byreadreader.apk為未簽名的檔案。 

參考:http://asantoso.wordpress.com/2009/09/15/how-to-build-android-application-package-apk-from-the-command-line-using-the-sdk-tools-continuously-integrated-using-cruisecontrol/ 

上一篇: SWFUpload

繼續閱讀