1. 程式人生 > >Android 自動編譯、打包生成apk檔案 1

Android 自動編譯、打包生成apk檔案 1


一、搭建搭建環境 1. 安裝JDK 和 Android SDK 2. 配置環境變數
D:\android-sdk-windows\tools
C:\Program Files\Java\jdk1.6.0_20\bin

3. 例子資訊
專案目錄:D:\ProjectDemo
SDK目錄 :D:\android-sdk-windows\platforms\android-8\


二、命令列編譯Android專案 1. 生成R檔案 2. Java程式碼生成class檔案 3. class檔案生成dex檔案 4. 打包資源 5. 生成apk 6. 建立密匙 7. 簽名apk
1. aapt命令, 生成R檔案
> aapt package -f -m -J ./gen -S res -M AndroidManifest.xml -I D:\android.jar

-f 如果編譯生成的檔案已經存在,強制覆蓋。
-m 使生成的包的目錄存放在-J引數指定的目錄
-J 指定生成的R.java 的輸出目錄路徑
-S 指定res資料夾的路徑 -I 指定某個版本平臺的android.jar檔案的路徑 -A 指定assert資料夾的路徑


2. javac命令,生成class檔案
> javac -target 1.5 -bootclasspath D:\android-sdk-windows\platforms\android-8\android.jar -d bin src\demo\project\*.java gen\demo\project\R.java

  -target <版本>               生成特定 VM 版本的類檔案
  -bootclasspath <路徑>        覆蓋引導類檔案的位置
  -d <目錄>                    指定存放生成的類檔案的位置
  -sourcepath <路徑>           指定查詢輸入原始檔的位置



3. dx 命令,把class檔案轉換為.dex檔案
> dx --dex --output=D:\ProjectDemo\bin\classes.dex D:\ProjectDemo\bin

--output=<要生成的classes.dex路徑> <要處理的class檔案的路徑>



4. aapt命令,打包資源
> aapt package -f -M AndroidManifest.xml -S res -I D:\android-sdk-windows\platforms\android-8\android.jar -F bin\resources.ap_

-f 如果編譯生成的檔案已經存在,強制覆蓋
-M 指定AndroidManifest.xml的路徑
-S 指定res資料夾路徑 -I 指定某個版本平臺的android.jar的路徑 -F 指定輸出檔案完整路徑


5. apkbuilder命令,生成apk
apkbuilder D:\ProjectDemo\bin\projectdemo.apk -v -u -z D:\ProjectDemo\bin\resources.ap_ -f D:\ProjectDemo\bin\classes.dex -rf D:\ProjectDemo\src

-v Verbose 顯示過程資訊
-u 建立一個無簽名的包
-z 指定apk資源路徑
-f 指定dex檔案路徑 -rf 指定原始碼路徑

6. 建立金鑰
>keytool -genkey -alias release -keyalg RSA -validity 20000 -keystore release.keystore

-genkey      在使用者主目錄中建立一個預設檔案".keystore",還會產生一個mykey的別名,mykey中包含使用者的公鑰、私鑰和證書
-alias       產生別名
-keyalg      指定金鑰的演算法 
-validity    指定建立的證書有效期多少天
-keystore    指定金鑰庫的名稱(產生的各類資訊將不在.keystore檔案中)



7. 簽名
jarsigner  -verbose -keystore C:\Users\UserName\Desktop\build\release.keystore -storepass antPassword -keypass antPassword -signedjar D:\ProjectDemo\bin\projectdemo-signed.apk D:\ProjectDemo\bin\projectdemo.apk release

-verbose  簽名/驗證時輸出詳細資訊
-keystore 金鑰庫位置
-storepass          用於金鑰庫完整性的口令
-keypass            專用金鑰的口令(如果不同)
-signedjar          已簽名的 JAR 檔案的名稱 (第一個apk是簽名之後的檔案, 第二個apk是需要簽名的檔案)
參考資料:

相關推薦

Android 自動編譯打包生成apk檔案 1

一、搭建搭建環境 1. 安裝JDK 和 Android SDK 2. 配置環境變數D:\android-sdk-windows\toolsC:\Program Files\Java\jdk

關於Android Studio3.0版本把專案打包生成apk檔案(安卓手機下載可執行)

為了能在手機上體驗開發的專案實際體驗效果,故而查詢學習了,如何生成apk檔案。方法如下:首先在選單欄點選Build,再點選Generate Signed APK得到下圖,並點選Create new...下面Key store path:生成的jsk檔案等路徑設定Passwor

Eclipse中的Android專案編譯後沒有生成R檔案的兩種原因

筆者在用Eclipse寫Android專案,時常發生R檔案錯誤。 對此筆者總結了兩種原因:一種是res目錄下的檔案有Eclipse檢查不出的錯誤,但不能通過編譯,因此沒有生成R檔案。還有一種情況是已經

Android】app打包apk檔案以後,如何檢視VersionCodeVersionName等版本資訊

Android App打包成Apk後,其實是一個壓縮檔案,可以將字尾名apk改為zip然後用winrar開啟也能看到裡面的檔案結構。還能看到AndroidManifest.xml。但是裡面的內容經過編碼顯示為亂碼,不方便檢視。 aapt工具:

Android原始碼是如何自動生成apk檔案

官方版(典型的構建流程圖) 說明: aapt(Android Asset Packaging Tool)給你的Activity提供所需的資原始檔,如 AndroidManifest.xml,XML檔案,並編譯它們。同時產生R.java檔案,使

Android Studio 超級簡單的打包生成apk

roi androi detail 生成 http blank oid 簡單 log http://blog.csdn.net/woaichimahua/article/details/54427528Android Studio 超級簡單的打包生成apk

Android Studio 打包生成 APK

如果 sign ext 對話 http ner 分享 技術 oid 1. 第一步 Build -> Generate Signed APK 2. 之後會要求開發者輸入相關的密鑰文件和密碼 如果有則找到對應的 .jks 文件輸入密碼完成相應操作,否則則創建一個對

Android Studio 打包生成apk

self one 直接 word uil 編譯 jpg content 但是 打開AndroidStudio,並且打開想要生成apk文件的項目。 點擊工具欄上面的“Builder” 點擊“Builder”之後在下拉菜單裏面可以看到“Genara

Android Studio打包生成APK教程

src 變量名 nts .apk variants idt test filename 一個 一、修改版本和指定生成APK文件名【可選】 將項目切換到Project視圖,打開app目錄下的build.gradle文件 1.1 修定軟件版本 versionCode是app的大

android打包生成apk時自定義文件名版本號。自定義項目字段等等

field col each deb 自定義 文件名 all != null 早期的AS2.0版本左右中這樣配置: app---->build.gradle中設置 applicationVariants.all { variant ->

Androidstudio 不執行直接編譯生成apk檔案

Android studio 利用gradle快速編譯出apk    有兩句話,在程式界的大家一定聽過:站在巨人的肩膀上和不要重複發明輪子。這兩句話的意思大家相信很清楚了,不解釋。很多時候我們學習或者程式設計,都會在網路上下載一些demo來作參考學習所用。如果,博主

android studio 建立生成keystore SHA1值的申請 高德地圖key值申請 android studio 打包生成apk

       開發背景:目前做車載專案,領導要求用高德地圖。整理了一下,差不多就是下面的目錄: 一、建立生成keystore; 二、SHA1值的申請; 三、高德地圖key值申請; 四、android

android studio打包生成aar檔案並在其他工程引用aar包

轉自:http://blog.csdn.net/getchance/article/details/47257389 第一次抄,抄的不好見諒! 一  aar的含義 aar是Android studio下打包android工程中src、res、lib後生成的aar檔案,aar

android 依賴只編譯打包apk

幾種依賴方式 具體每個什麼意思,大家谷歌一下就知道了,這裡不在陳述 區別和使用 implementation和api是取代之前的compile的,其中api和compile是一樣的效果,implementation有所不同,通過imple

Android Studio專案 Windows10 cmd 用Gradle命令列生成Apk檔案

準備工作: 請自行下載Gradle下載地址),我使用的是gradle-4.4-bin.zip 版本。 完整流程如下: 第一步win配置 Gradle環境 解壓gradle-4.4-bin.zip 找到系統高階配置配置Gradle環境

linux下編譯bibtex生成pdf檔案

Original url:  https://www.cnblogs.com/cfsmile/p/4912226.html實驗:在linux環境下,編譯(英文)*.bib和*.tex檔案,生成pdf檔案。環境:fedora 20(uname -a : Linux localhost.localdomain 3

生成apk檔案遇到的編譯問題error: format not a string literal and no format arguments

編譯錯誤時使用的android-ndk為r9的版本,報以下錯誤: "Compile++ thumb : cocosdenshion_static <= SimpleAudioEngine.cp

Android程式打包apk檔案

問:為什麼要簽名? 答:開發Android的人那麼多,完全有可能大家都把類名、包名起成相同的名字,這時如何區分?簽名就是起區分作用的。 由於開發商可能通過使用相同的Package Name來混淆替換已經安裝的程式,簽名可以保證相同名字,但是簽名不同的包不被替換。 APK如果

Android 獲取手機中已安裝apk檔案資訊(PackageInfoResolveInfo)

轉載自: http://www.open-open.com/lib/view/open1378262024781.html 眾所周知,通過PackageManager可以獲取手機端已安裝的apk檔案的資訊,具體程式碼如下 PackageManager packageMa

RN 打android離線包生成apk檔案

#####第一步:生成離線bundle包 react-native bundle --platform android --dev false --entry-file index.js --bundl