命令行打包android工程

原创
2015/05/22 17:33
阅读数 164


命令行打包android 工程实例:


//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。


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部