命令行打包android工程


命令行打包android 工程實例:java


//1,gen下生成R.java 文件,包名不會自動生成,須要提早mkdir
mae@MaydeMacBook-Pro ~/android-cmd/test $ aapt package -v -f -m -J ./gen -S res -M AndroidManifest.xml -I ~/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platforms/android-20/android.jar


//2,編譯全部java文件,包括R.java 
javac -bootclasspath ~/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platforms/android-20/android.jar -cp libs/android-support-v4.jar -d bin gen/play/apilearn/R.java src/apiDemo/*.java src/com/jakewharton/disklrucache/*.java src/fragment/test/TestFragmentFullscreenActivity.java src/play/apilearn/*.java src/play/apilearn/util/SystemUiHider*.java src/stagger/*.java src/stagger/util/DynamicHeight*.java src/utils/*.java src/camera/*.java src/custom/view/*.java src/services/HelloIntentService.java src/test/*.java src/webview/ActivityWebView.java 

//3,打 jar包
mae@MaydeMacBook-Pro ~/android-cmd/test/bin $  jar cvf test.jar *

//4,生成dex , 若是支持多dex,能夠選擇生成多個;應該包依賴的jar庫,這裏忘記包含依賴包了, 運行時會報錯
mae@MaydeMacBook-Pro ~/android-cmd/test $  dx --dex --output=bin/classes.dex bin/test.jar 

//5, 壓縮資源文件
mae@MaydeMacBook-Pro ~/android-cmd/test $  aapt package -f -M AndroidManifest.xml -S res -I ~/Downloads/adt-bundle-mac-x86_64-20140702/sdk/platforms/android-20/android.jar -F bin/resources.ap_

//6, build apk 文件
mae@MaydeMacBook-Pro ~/android-cmd/test $  java -cp ~/Downloads/adt-bundle-mac-x86_64-20140702/sdk/tools/lib/sdklib.jar com.android.sdklib.build.ApkBuilderMain test.apk -v -u -z bin/resources.ap_  -f bin/classes.dex -rf src

THIS TOOL IS DEPRECATED. See --help for more information.

Packaging test.apk
bin/resources.ap_:
=> res/layout/activity_activity1.xml
=> res/layout/activity_camera_activity.xml
=> res/layout/activity_drawer_layout.xml
=> res/layout/activity_main.xml
=> res/layout/activity_pick_photo.xml
=> res/layout/activity_test_fragment_fullscreen.xml
=> res/layout/activity_view_page.xml
=> res/layout/activity_viewpager.xml
=> res/layout/activity_web_view.xml
=> res/layout/edit_text_with_image.xml
=> res/layout/fragment_blank.xml
=> res/layout/fragment_history.xml
=> res/layout/fragment_main.xml
=> res/layout/image_view.xml
=> res/layout/location_history.xml
=> res/layout/note_list_item_layout.xml
=> res/layout/note_load_more_view.xml
=> res/layout/test_download_manager.xml
=> res/layout/touchevent_activity.xml
=> res/layout/view_pager_with_background.xml
=> res/menu/activity1.xml
=> res/menu/activity_web_view.xml
=> res/menu/history.xml
=> res/menu/main.xml
=> res/menu/view_page.xml
=> res/menu/viewpager.xml
=> AndroidManifest.xml
=> resources.arsc
=> res/drawable-hdpi/ic_launcher.png
=> res/drawable-hdpi/icon.png
=> res/drawable-mdpi/banner_default.png
=> res/drawable-mdpi/ic_close.png
=> res/drawable-mdpi/ic_comment_gd_nor.png
=> res/drawable-mdpi/ic_launcher.png
=> res/drawable-mdpi/icon.png
=> res/drawable-xhdpi/ic_launcher.png
=> res/drawable-xhdpi/icon.png
=> res/drawable-xhdpi/laucn_01.png
=> res/drawable-xhdpi/laucn_02.png
=> res/drawable-xhdpi/laucn_03.png
=> res/drawable-xhdpi/laucn_04.png
=> res/drawable-xhdpi/launch_background.png
=> res/drawable-xxhdpi/ic_launcher.png
=> res/layout-land/fragment_history.xml
=> res/layout-land/location_history.xml

bin/classes.dex => classes.dex



//7, 生成簽名證書
mae@MaydeMacBook-Pro ~/android-cmd/keystore $  keytool -genkey -alias zzw_android.keystore -keyalg RSA -validity 20000 -keystore zzw_android.keystore
輸入密鑰庫口令:  
再次輸入新口令: 
您的名字與姓氏是什麼?
  [Unknown]:  zhang
您的組織單位名稱是什麼?
  [Unknown]:  
您的組織名稱是什麼?
  [Unknown]:  
您所在的城市或區域名稱是什麼?
  [Unknown]:  
您所在的省/市/自治區名稱是什麼?
  [Unknown]:  shandong
該單位的雙字母國家/地區代碼是什麼?
  [Unknown]:  cn
CN=zhang, OU=Unknown, O=Unknown, L=Unknown, ST=shandong, C=cn是否正確?
  [否]:  Y

輸入 <zzw_android.keystore> 的密鑰口令
	(若是和密鑰庫口令相同, 按回車):  
mae@MaydeMacBook-Pro ~/android-cmd/keystore $  ls

zzw_android.keystore


//8, 對apk進行簽名
mae@MaydeMacBook-Pro ~/android-cmd/test $  jarsigner -verbose -keystore ../keystore/zzw_android.keystore -signedjar signed_test.apk test.apk zzw_android.keystore
輸入密鑰庫的密碼短語: 
   正在添加: META-INF/MANIFEST.MF
   正在添加: META-INF/ZZW_ANDR.SF
   正在添加: META-INF/ZZW_ANDR.RSA
  正在簽名: res/layout/activity_activity1.xml
  正在簽名: res/layout/activity_camera_activity.xml
  正在簽名: res/layout/activity_drawer_layout.xml
  正在簽名: res/layout/activity_main.xml
  正在簽名: res/layout/activity_pick_photo.xml
  正在簽名: res/layout/activity_test_fragment_fullscreen.xml
  正在簽名: res/layout/activity_view_page.xml
  正在簽名: res/layout/activity_viewpager.xml
  正在簽名: res/layout/activity_web_view.xml
  正在簽名: res/layout/edit_text_with_image.xml
  正在簽名: res/layout/fragment_blank.xml
  正在簽名: res/layout/fragment_history.xml
  正在簽名: res/layout/fragment_main.xml
  正在簽名: res/layout/image_view.xml
  正在簽名: res/layout/location_history.xml
  正在簽名: res/layout/note_list_item_layout.xml
  正在簽名: res/layout/note_load_more_view.xml
  正在簽名: res/layout/test_download_manager.xml
  正在簽名: res/layout/touchevent_activity.xml
  正在簽名: res/layout/view_pager_with_background.xml
  正在簽名: res/menu/activity1.xml
  正在簽名: res/menu/activity_web_view.xml
  正在簽名: res/menu/history.xml
  正在簽名: res/menu/main.xml
  正在簽名: res/menu/view_page.xml
  正在簽名: res/menu/viewpager.xml
  正在簽名: AndroidManifest.xml
  正在簽名: resources.arsc
  正在簽名: res/drawable-hdpi/ic_launcher.png
  正在簽名: res/drawable-hdpi/icon.png
  正在簽名: res/drawable-mdpi/banner_default.png
  正在簽名: res/drawable-mdpi/ic_close.png
  正在簽名: res/drawable-mdpi/ic_comment_gd_nor.png
  正在簽名: res/drawable-mdpi/ic_launcher.png
  正在簽名: res/drawable-mdpi/icon.png
  正在簽名: res/drawable-xhdpi/ic_launcher.png
  正在簽名: res/drawable-xhdpi/icon.png
  正在簽名: res/drawable-xhdpi/laucn_01.png
  正在簽名: res/drawable-xhdpi/laucn_02.png
  正在簽名: res/drawable-xhdpi/laucn_03.png
  正在簽名: res/drawable-xhdpi/laucn_04.png
  正在簽名: res/drawable-xhdpi/launch_background.png
  正在簽名: res/drawable-xxhdpi/ic_launcher.png
  正在簽名: res/layout-land/fragment_history.xml
  正在簽名: res/layout-land/location_history.xml
  正在簽名: classes.dex
jar 已簽名。

警告: 

未提供 -tsa 或 -tsacert, 此 jar 沒有時間戳。若是沒有時間戳, 則在簽名者證書的到期日期 (2070-02-22) 或之後的任何撤銷日期以後, 用戶可能沒法驗證此 jar。
相關文章
相關標籤/搜索