Android 命令行手動編譯打包過程圖java
【詳細步驟】:linux
1使用aapt生成R.java類文件:
例:
E:\AndroidDev\android-sdk-windows2.2\tools>E:\androidDev\android-sdk-windows2.2\platforms\android-3\tools\aapt.exe package -f -m -J E:\androidDev\AndroidByread\gen -S res -I E:\androidDev\android-sdk-windows2.2\platforms\android-3\android.jar -M AndroidManifest.xml
其中 -f -m -J E:\AndroidDev\AndroidByread\gen 表明按覆蓋的形式在gen目錄下生成帶包路徑的R.java,-S res指定資源文件 ,-I E:\androidDev\android-sdk-windows2.2\platforms\android-3\android.jar 指定使用的android類,-M AndroidManifest.xml指定程序的配置文件android
aapt Usage: windows
2使用Android SDK提供的aidl.exe把.aidl轉成.java文件:
usage: aidl OPTIONS INPUT [OUTPUT]
aidl --preprocess OUTPUT INPUT...eclipse
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.ui
INPUT:
An aidl interface file.spa
OUTPUT:
The generated interface files.命令行
3第三步 編譯.java類文件生成class文件:
例:E:\Androiddev\AndroidByread>javac -encoding GB18030 -target 1.5 -bootclasspath E:\Androiddev\android-sdk-windows2.2\platforms\android-3\android.jar -d bin src\com\byread\reader\*.java gen\com\byread\reader\R.java orm
4使用Android SDK提供的dx.bat命令行腳本生成classes.dex文件:xml
例:
E:\Androiddev\AndroidByread>E:\Androiddev\r\android-sdk-windows2.2\platforms\android-3\tools\dx.bat --dex --output=E:\Androiddev\AndroidByread\bin\classes.dex E:\Androiddev\AndroidByread\bin\classes
其中classes.dex爲生成的目標文件,E:\Androiddev\AndroidByread\bin\classes爲class文件所在目錄
5使用Android SDK提供的aapt.exe生成資源包文件(包括res、assets、androidmanifest.xml等):
E:\Andorid\AndroidByread>E:\Androiddev\android-sdk-windows2.2\platforms\android-3\tools\aapt.exe package -f -M AndroidManifest.xml -S res -A assets -I E:\Androiddev\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}
例: E:\Adnroiddev\AndroidByread>E:\Adnroiddev\android-sdk-windows2.2\tools\apkbuilder.bat E:\Adnroiddev\byreadreader.apk –v -u -z E:\Adnroiddev\AndroidByread\bin\byreadreader -f E:\Adnroiddev\AndroidByread\bin\class.dex -rf E:\Adnroiddev\AndroidByread\src 其中E:\Adnroiddev\byreadreader.apk爲生成的apk ,-z E:\Adnroiddev\AndroidByread\bin\byreadreader爲資源包,E:\Adnroiddev\AndroidByread\bin\class.dex爲類文件包
7使用jdk的jarsigner對未簽名的包進行apk簽名: use jarsigner jarsigner -keystore ${keystore} -storepass ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias} 例如: E:\Adnroiddev\Android-sdk-windows2.2\tools>jarsigner –keystore E:\Adnroiddev\eclipse3.5\bbyread.keystore -storepass byread002 -keypass byread002 -signedjar E:\Adnroiddev\byread.apk E:\Adnroiddev\byreadreader.apk byread 其中–keystore E:\Adnroiddev\eclipse3.5\bbyread.keystore 爲密鑰文件 -storepass byread002爲密鑰文件密碼 byread 爲密鑰別名 -keypass byread002爲密鑰別名密碼,-signedjar E:\Adnroiddev\byread.apk爲簽名後生成的apk文件 E:\Adnroiddev\byreadreader.apk爲未簽名的文件。