簡體   English   中英

如何在命令行上構建沒有 Gradle 的 Android apk?

[英]How can I build an Android apk without Gradle on the command line?

我編寫了一個 Android 應用程序,它不使用任何依賴項或模塊,只有一個活動,並且只有一個布局文件。

如何在不使用 Gradle(或其他“構建系統”或“依賴管理”軟件)的情況下在命令行上構建我的應用程序的 apk 文件?

如果您不想使用 ant/gralde 構建,請使用以下步驟手動構建您的 apk。 但你必須至少安裝 Android SDK。

  • aapt創建R.java

  • 使用javac將所有 java 源碼編譯為*.class

  • 使用dx將所有*.class轉換為dex文件,例如輸出為classes.dex

  • 從資產、資源和AndroidManfiest.mk創建初始版本的 APK,例如輸出是MyApplication.apk.unaligned

  • 使用aapt將步驟 3 中生成的classes.dex添加到MyApplication.apk.unaligned

  • 使用 jarsigner 簽署MyApplication.apk.unaligned與調試或發布密鑰

  • 使用zipalign對齊最終的 APK,例如,如果使用發布密鑰簽名,則輸出為MyApplication-debug.apkMyApplication-release.apk

  • 完畢

我創建了一個示例腳本來完成上述所有操作,請參見此處

實際上,有些文章已經討論過這個話題,請參閱以下鏈接。

https://www.apriorit.com/dev-blog/233-how-to-build-apk-file-from-command-line

https://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/

alijandro給出了完美的答案。 我設法編寫了簡單的 ANT 腳本,該腳本使用 AdMob 構建生產 APK,無需使用 gradle。 一些有用的評論:

  1. 如果你想混淆類,你必須 jar 編譯的類(在javacdx步驟之間)並在它上面運行proguard

  2. 對於AdMob您必須從 zip 存檔中提取以下 jar(例如C:\\Users\\<User>\\AppData\\Local\\Android\\sdk\\extras\\google\\m2repository\\com\\google\\android\\gms\\play-services-ads\\10.2.6\\play-services-ads-10.2.6.aar ):

    • play-services-ads-10.2.6.jar
    • play-services-ads-lite-10.2.6.jar
    • play-services-base-10.2.6.jar
    • play-services-basement-10.2.6.jar
    • play-services-clearcut-10.2.6.jar
    • play-services-gass-10.2.6.jar
    • play-services-tasks-10.2.6.jar

這些檔案應該在javacdx傳遞

  1. 對於AdMob還有幾個額外的簡單配置步驟

Gradle對 android 項目做了很多處理,所以自己的腳本看起來像是將要投入生產的項目的單一解決方案

嘗試使用此方法從命令行構建具有支持庫的應用程序。 https://github.com/HemanthJabalpuri/AndroidExplorer

簡短的答案是:你不能

長是:

創建apk的過程並不容易。 https://developer.android.com/studio/build/index.html

因此,不僅您需要:

  • 整理資源,創建R文件
  • 將源代碼編譯為Java,然后將類編譯為dalvik
  • 打包資源,然后使用所有必需的文件創建zip文件
  • 用鑰匙簽名

但是很好,很多,我真的是說真的

有一點。

如果您使用Android Studio

  • 只需單擊綠色三角形即可構建和安裝
  • 或者,如果您想重新實現apk,請構建->組裝發行apk

更好的是,您可以使用簡單的命令來運行這些任務

./gradlew assembleRelease

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM