手把手教你純命令行打包apk

我使用的環境變量的配置:

Jdk1.6\bin

Sdk\tools

 

第一部分:通過命令行創建簡單的android項目

1.在創建安卓項目的目錄中打開命令行窗口

2.在命令行窗口中輸入命令(命令寫在一行上)

>android create project

--target <target_ID>

--name <項目名稱>

--path <項目的路徑> 

--activity <Activity的名稱>

--package <項目的包名>

 

 android create project --target7--nameDemo --path D:\Z_test\Demo--activity MainActivity--packagecom.demo.www




                  注:1.不知道的命令可以使用 >android --help來查看

                         2.target_ID指的是當前擁有的APIid號,使用命令>android list target  來查看

                         3.接下來進入項目中進行操作 >cd Demo

第二部分:命令行打包(有的目錄沒有隨着安卓項目的創建而創建,需要手動創建,使用命令>mkdir <文件名>

                        1.生成R.java文件

                        a.創建gen目錄>mkdir gen  這是在當前項目的目錄下的命令行,所以直接輸入想起的文件名就可以了,絕對路徑也是可以

                    

                  b.運行aapt命令生成R.java文件

                  >aapt package -f -m -J gen -S res -I E:\sdk\platforms\android-19\android.jar -M AndroidManifest.xml

 

 

 

 

                          2.將java文件編譯成class文件

                          >javac -encoding UTF-8 -target 1.6 -bootclasspath E:\sdk\platforms\android-19\android.jar -d bin src\com\demo\www\*.java gen\com\demo\www\R.java

 

                  注:a.-target 1.6  是指jdk的版本,經驗是使用1.6的編譯dex時不會出現問題,使用1.7就不能編譯成功

                         b.-d bin src\com\demo\www\*.java   -d  表示指定存放生成的class文件的位置,後面就是要編譯的java文件

 

                    3.生成dex文件(注意:使用絕對路徑)

                    >dx --dex --output=D:\Z_test\Demo\bin\classes.dex D:\Z_test\Demo\bin

 

                        注:前面是dex文件 ,後面是操作的目錄,也就是存放到的目錄

 

                    4.生成資源包文件

                    >aapt package -f -M AndroidManifest.xml -S res -A assets -I E:\sdk\platforms\android-19\android.jar -F bin\resources

 

5.生成未簽名的apk包(sdk3.0以後將apkbuilder刪除了)

>java -cp E:\sdk\tools\lib\sdklib.jar com.android.sdklib.build.ApkBuilderMain Demo.apk -v -u -z bin\resources -f bin\classes.dex -rf src

 

 


  效果:

 


第三部分:命令行生成簽名文件

              >keytool -genkey -alias key_demo.keystore -keyalg RSA -validity 20000 -keystore key_demo.keystore

 

        注:文件夾下的key_demo.keystore就是我們需要的簽名文件  20000表示證書的有效天數

 

第四部分:用生成的簽名文件對未簽名的apk進行簽名(jdk一定要是1.6)

                   >jarsigner -verbose -keystore key_demo.keystore -signedjar demo_signed.apk D:\Z_test\Demo\demo.apk key_demo.keystore

 

 

我在使用jdk1.7時,簽名後會出現以下警告:

警告:
未提供 -tsa 或 -tsacert, 此 jar 沒有時間戳。如果沒有時間戳, 則在簽名者證書的到期
日期 (2063-07-18) 或以後的任何撤銷日期之後, 用戶可能無法驗證此 jar。

 

第五部:最後驗證是否簽名成功

              >jarsigner -verify demo_signed.apk



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