android命令行打包
A. android 工程 如何一鍵編譯打包成apk
打包步驟:
1、生成keystore
按照下面的命令行在C:ProgramFilesjavajdk1.6.0_10in>目錄下,輸入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystoreandroid.keystore
參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵都算密碼。
命令執行後會在C:ProgramFilesJavajdk1.6.0_10in>目錄下生成android.keystore文件。如圖-1
圖-2EclipseAndroid打包工具
接下來的步驟就是不斷的next。下面僅貼出圖片,不解釋。
step2:選擇打包的項目
step3:選擇生成的EclipseAndroid.keystore文件並輸入密碼
step4:選擇aliaskey並輸入密碼
step5:最後選擇生成androidapk文件的目錄及文件名
最終生成的apk文件。
B. 請教如何使用android studio同時打包多個apk
渠道信息一般在 AndroidManifest.xml中修改以下值:
<meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />
首先你必須在AndroidManifest.xml中的meta-data修改以下的樣子:
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定義配置的值。
build.gradle文件就利用proctFlavors這樣寫:
proctFlavors { wandoujia {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]} {manifestPlaceholders = [UMENG_CHANNEL_VALUE: ""]} c360 {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]} uc {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]} }
其中[UMENG_CHANNEL_VALUE: "wandoujia"]就是對應${UMENG_CHANNEL_VALUE}的值。
最新更新後來發現上面的重復代碼太多,就在網上又發現了一個更簡潔的寫法
proctFlavors { wandoujia {} {}c360 {}uc {} proctFlavors.all { flavor ->flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]} }
其中name的值對相對應各個proctFlavors的選項值,這樣就達到自動替換渠道值的目的了。
這樣生成apk時,選擇相應的Flavors來生成指定渠道的包就可以了,而且生成的apk會自動幫你加上相應渠道的後綴,非常方便和直觀。大家可以自己反編譯驗證。
一次生成所有渠道包
在android studio底欄中有個命令行工具Terminal,打開後就CMD可以自動切換到當前項目的目錄下。
有的項目下會有graldew.bat這個文件,你就可以輸入這個命令:
gradlew assembleRelease就可以一次性生成所有的渠道包了不過我一般不建議大家使用這個命令,gradlew這個命令的gralde的版本無法控制,有時候會莫名其妙的下載老版本的gradle所以我個人推薦大家使用以下的用法。
先找到gralde的根目錄,在系統變數里添加兩個環境變數:
變數名為:GRADLE_HOME,變數值就為gradle的根目錄;所以變數值為:C:\Users\yazhou\.gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55\gradle-2.1
還有一個在系統變數里PATH裡面添加gradle的bin目錄我的就是C:\Users\yazhou\.gradle\wrapper\dists\gradle-2.1-all\27drb4udbjf4k88eh2ffdc0n55\gradle-2.1\bin
這里配置完成了,接著在Terminal中敲下 gradle assembleRelease就可以一次性生成所有的渠道包了。
所有生成的apk在項目的build\outputs\apk下。
如果只是想生成單個渠道的包呢?
打開Android Studio的Gradle tasks面板(右邊側邊欄),會發現模塊多了很多任務
C. 如何打包大文件到apk裡面
將Eclipse
Android項目打包成APK文件是本文要介紹的內容,主要是來了解並學習EclipseAndroid打包的內容,具體關於EclipseAndroid內容的詳解來看本文。
Eclipse Android項目開發完成以後就要將android項目文件打包成apk文件,並最終下載到真機上運行。下面是個人打包apk的過程,主要是以圖文形式記錄一下。
其實最懶的辦法,就是直接到eclipse項目的bin目錄找到文件,那是eclipse系統自動生成的apk文件。
1、生成keystore
按照下面的命令行在C:ProgramFilesJavajdk1.6.0_10in>目錄下,輸入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystoreandroid.keystore
參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵都算密碼。
命令執行後會在C:ProgramFilesJavajdk1.6.0_10in>目錄下生成android.keystore文件。如圖-1
D. 如何應用安卓APK文件進行解包打包和修改
不需要解包跟打包,直接修改就可以,修改的的方法。
如下參考:
1.將需要修改的apk包復制到100apktool的路徑中。注意:您需要將文件名更改為123apk,如下圖。
E. android 3.0 之後 aptbuilider.bat 移除 之後的 用命令打包
1.使用aapt生成R.java類文件:
例:
C:\Snake>aapt p -f -m -J gen -S res -I android.jar -M AndroidManifest.xml
其中
-f -m -J F:\explorer\AndroidByread\gen 代表按覆蓋的形式在gen目錄下生成帶包路徑的R.java,
-S res指定資源文件 ,
-I android.jar 指定使用的android類包,
-M AndroidManifest.xml指定程序的配置文件
2.使用android SDK提供的aidl.exe把.aidl轉成.java文件(如無aidl介面文件可省略):
3.第三步 編譯.java類文件生成class文件:
C:\Snake>javac -classpath android.jar -d bin src\com\example\android\snake\*.java gen\com\example\android\snake\R.java
-classpath android.jar 指定使用的android類包,
-d bin指定生成的類文件的位置 ,後面的兩個都是源文件.
4.使用android SDK提供的dx.bat命令行腳本生成classes.dex文件:
C:\Snake>dx --dex --output=c:\snake\bin\classes.dex c:\snake\bin
第一個參數是生成的目標文件,第二個是class文件所在的目錄(必須使用絕對路徑)
5.生成應用程序apk文件:
C:\Snake>aapt p -f -F snake.apk -v -u -z -M AndroidManifest.xml -S res -A assets -I android.jar
用法同步驟1.
6.把前面生成的classes.dex文件壓縮到apk文件,最終生成可運行的apk應用程序
C:\Snake>aapt add snake.apk bin\classes.dex
7.Android Apk 簽名
Apk簽名首先要有一個keystore的簽名用的文件 。
keystore是由jdk自帶的工具keytool生成的。
具體生成方式參考:
開始->運行 ->cmd->cd到你安裝的jdk的目錄里,我的是C:\Program Files\Java \jdk1.6.0_10\bin
然後輸入:
keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore
-alias 後面跟的是別名這里是 asaiAndroid.store
-keyalg 是加密方式這里是RSA
-validity 是有效期 這里是20000
-keystore 就是要生成的keystore的名稱 這里是asiAndroid.keystore
然後按回車鍵
按回車後首先會提示你輸入的密碼:這個在簽名時要用的,要記住
然後會再確認你的密碼。
之後會依次叫你輸入姓名、組織單位、組織名稱、城市區域、省份名稱、國家代碼 (CN)等。
開始簽名。
在 C:\Program Files\Java\jdk1.6.0_10\bin 還提供一個工具 jarsigner.exe
運行命令給APK簽名:
jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk asaiAndroid.keystore
-keystore: keystore的名稱
LotteryOnline_signed.apk: 簽名後的APK
LotteryOnline.apk: 簽名前的APK
然後按回車:會要求輸入剛才設置 的密碼,輸入後按回車就開始簽名了。
F. 在linux下打包安卓app時,在提示符下輸入命令:buildozer android debug,老是出錯怎麼解決求大神指點
第一步:配置
如上圖所示,在Signing頁簽上,添加(點擊右邊的+號)一個簽名,name命名注意一下,最好都是小寫英文(測試過帶有大寫不行,無法編譯),右側填寫已經生成過的簽名文件和簽名信息,沒生成過簽名的,點擊這里
填好後,接著切換到Build Types頁簽,如下圖:
如上圖所示,系統預設的debug和release是兩種打包方式,你查看每一個會發現,默認的Signing Config 都沒有設置,即是沒有簽名的,如果需要為debug和release加入簽名,則按照上圖的方式即可。上圖演示的是release加入簽名。
點擊OK,
接下來就測試下命令行打包吧,因為上圖中我們只對release進行簽名配置,故release是簽名打包;debug是未簽名的。
我們測試下吧:
你可以用上圖的AS的Terminal界面,也可以用ctrl+R,打開命令提示符,切換到上圖的路徑下(就是app的根路徑)
G. androidstudio怎麼打包
1.Build -> Generate Signed APK...,打開如下窗口
這里只要輸入幾個必要項
Key store path(生產key文件的保存路徑 )
Key store password(key 存儲密碼)
Key alias(key別名)
Key password(key密碼)
可以輸入機構或個人名字
點擊OK,點擊finish,apk包就生成好了
H. 如何反編譯android應用並重新打包
反編譯android步驟入下:
第一:使用apktool直接反編譯apk
第六:把生成的hellodemo.apk安裝到手機,可以看到主界面上已經顯示的是hello,而不再是你好。說明反編譯重新打包成功!
I. 如何解包/編輯/打包android系統的boot.img文件
Android產品中,內核格式是Linux標準的zImage,根文件系統採用ramdisk格式。這兩者在Android下是直接合並在一起取名為boot.img,會放在一個獨立分區當中。這個分區格式是Android自行制定的格式。Android開發時,最標準的做法是重新編譯於內核和根文件系統,然後調用Android給的命令行文件mkbootimg(out/host/linux-x86/bin/)來打包。 在製作手機ROM時,有時會單獨編譯內核或抽出根文件進行修改內容,比如我只編譯內核,其餘的地方不變。這樣重新安裝巨大的Android開發環境實在不劃算。因此很多boot.img解包工具被人開發出來,這一些工具都是把內核和根文件系統從一個現成的boot.img抽取出來,修發後再次打包還原。一.常見的解包工具因為boot.img的格式比較簡單,它主要分為三大塊(有的可能有四塊)因此很多人開發分析工具,有是linuxshell腳本,比如repack-zImage,也有人採用perl,還有C語言編寫的unbootimg, 我使用的是在源碼位置system/core/mkbootimg/下的mkbootimg。為了簡化,藍點工坊把與mkbootimg中打包工具和解包工具以及所包含的libmincrpty庫抽出來,並且重寫一個Makefile,作為開源項目。使用者只需要在linux(需安裝gcc,make,一般是標配)或windows(需要安裝mingw)的命令行執行make,即可產生可執行文件mkbootimg,unpackbootimg。二.解/打包工具使用解包工具:unpackbootimg常見格式 unpackbootimg-i.\tmp\boot.img-o.\out 這一句命令行表示把boot.img解包,所有文件輸出到out目錄下它會解壓出如下文件:boot.img-zImage(內核文件)boot.img-ramdisk.gz(根文件系統打包文件) boot.img-cmdline(mkbootimgcmdline參數) boot.img-pagesize(mkbootimgpagesize參數) boot.img-base(mkbootimgbase參數)打包工具:mkbootimg(Android自帶)常見的命令格式: ./mkbootimg --cmdline'no_console_suspend=1console=null' --kernel zImage --ramdisk boot/boot.img-ramdisk.gz -o boot.img--base02e00000 這句含義是把內核文件zImage和boot目錄下的根文件壓縮包boot.img-ramdisk.gz打包成boot.img. 其中cmdline和base的值均來源於unpackbootimg的結果