Android命令行打包過程

       因爲要用到給測試工程打包所以學習了下Android自動打包的,那自動打包就必須對Android的打包步驟與命令有一定的瞭解

 Android打簽名包有三種形式:

第一種:通過eclipse 的工具進行打包,不斷的下一步選擇keystore文件即可。

第二種:純命令行打包

第三種:命令行編譯起來,使用ant工具進行打包


打包步驟:

1. 使用aapt工具打包資源文件,生成R.java文件

2. 用aidl命令生成相應java文件(如果工程中沒用到則可以不用)

3. 將工程的資源編譯編譯到一個包裏

4.dx命令,將class文件轉換成.dex文件

5.aapt將資源文件打包,生成resources.ap_文件

6.apkbuilder命令,根據classes.dex文件和resources.ap_生成未簽證的apk包

7.jarsigner命令,對未簽名的apk包進行簽名

詳細命令如下:

1.使用aapt工具打包資源文件,生成R.java文件

【輸入】Resource文件(工程中res中的文件)、Assets文件(另外一種資源)、AndroidManifest.xml文件、Android基礎類庫(Android.jar文件)

命令如下:

>aapt package –f -m -j D:\My_Projects\TestAPKNEW\gen\com\example\action02\test\R.java -S D:\My_Projects\TestAPKNEW\res -IE:\TOOL\android-sdk-windows_r21.0.1\platfo

rms\android-11\android.jar -MD:\My_Projects\TestAPKNEW\AndroidManifest.xml

[生成文件]:R.java

2. 用aidl命令生成相應java文件(如果工程中沒用到則可以不用)

aidl Person.aidl gen\person.java

  根據包中的Person.aidl文件,在gen對應的目錄中生成Person.java文件,


3). 將工程的資源編譯編譯到一個包裏

aapt package -f  -S <res目錄>-I <android.jar目錄> -A<assert目錄>  -M <AndroidManifest.xml目錄> -F <輸出的包目錄>

命令如下:

>javac-encoding utf-8 -target 1.5 -d D:\My_Projects\TestAPKNEW\binD:\My_Projects\TestAPKNEW\src\com\targtime\mtll\test\*.javaD:\My_Projects\TestAPKNEW\gen\com

\example\action02\test\R.java-bootclasspath E:\TOOL\android-sdk-windows_r21.0.1\platforms\android-11\android.jar

-classpath D:\My_Projects\TestAPKNEW\libs\robotium-solo-4.3.jar

-d <目錄>     指定存放生成的類文件的位置
-bootclasspath <路徑>     覆蓋引導類文件的位置

-classpath<路徑> 引導庫文件,引用多個jar文件直接空格後增加jar目錄即可

[生成文件]

bin目錄下生成相關的class文件

4) dx命令,將class文件轉換成.dex文件

dx --dex --output=<要生成的classes.dex路徑> <要處理的類文件的路徑>

命令如下:

>dx--dex --output=D:\My_Projects\TestAPKNEW\bin\classes.dex D:\My_Projects\TestAPKNEW\bin

[生成文件]bin/classes.dex 文件

5. aapt將資源文件打包,生成resources.ap_文件

D:\My_Projects\TestAPKNEW>aapt package-f -M AndroidManifest.xml -S res -A assets -I E:\TOOL\android

-sdk-windows_r21.0.1\platforms\android-11\android.jar  -F bin\resources.ap_

【生成文件】bin\resources.ap_ 文件

6. apkbuilder命令,根據classes.dex文件和resources.ap_生成未簽證的apk包

apkbuilder <APK輸出路徑> -u -z <需要添加的壓縮資源包> -f <需要添加的文件> -rf <源文件所在的目錄>

命令如下:

>apkbuilder  D:\My_Projects\TestAPKNEW\bin\ant-unsigned.apk

 -u -z D:\My_Projects\TestAPKNEW\bin\resources.ap_

-fD:\My_Projects\TestAPKNEW\bin\classes.dex

 -rf D:\My_Projects\TestAPKNEW\src

-rf 參照源文件的目錄的結構

-u 創建一個沒有簽名的包

-z 將某個壓縮文件添加到包中

-f 將某個文件添加到保重

[生成文件] 未簽名的apk包***.apk

7.jarsigner命令,對未簽名的apk包進行簽名

jarsigner -keystore fyy.keystore -storepass123456 -keypass 123456 -signedjar new***.apk unsigned.apk fyy.keystore

  fyy.keystore 簽名文件

  123456 簽名密碼

  new***.apk:簽完名的apk

 unsigned.apk :未簽名的apk

 fyy.keystore:簽名文件別名

[生成內容] 簽名的apk


感謝:http://www.cnblogs.com/ondream/archive/2012/06/18/ant.html







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章