![](/img/trans.png)
[英]For Android App Release what is difference between Ant build apk vs Android Signed Apk
[英]Android Studio: Difference in size between Build APK vs Run APK
我注意到使用這兩個選項生成的apk之間的大小不同。
為什么會這樣?
使用Build - > Build APK選項:
MyProject \\ app \\ build \\ outputs \\ apk \\ app-debug.apk(大小2.997 KB)
使用“ 運行”應用選項:
MyProject \\ app \\ build \\ outputs \\ apk \\ app-debug.apk(大小3.300 KB)
謝謝。
當您通過Build-> Build APK創建構建時,apk將包含所有設備的所有資源。 即對於ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi。
但是如果您在設備/模擬器上運行應用程序,它將檢測到手機的分辨率是什么,並將僅將具有該分辨率的資源添加到apk文件中。 例如,如果您的設備是xhdpi,它將丟棄所有其他屏幕分辨率,並且僅包含xhdpi資源。
構建APK是運行:app:assembleDebug
Gradle任務的快捷方式(假設您在Build Variants窗口中激活了調試變量)。
運行應用程序時,我們首先詢問您要定位哪個設備,然后將信息傳遞給Gradle。 除此之外,這可以讓我們過濾掉不必要的資源。 如果您啟用了即時運行,我們還會將其他代碼打包到APK中。
我的即時運行已關閉。
我使用Run->Run 'App'
Run'App Run->Run 'App'
獲得6MB APK大小,使用Build->Build APK
選項獲得11MB Build->Build APK
用於簽名和未簽名APK。 Build->Generate Signed APK...
選項也為我的應用程序提供了11MB APK。
我認為Android Studio會降低一些資源以使構建更快。
具有11MB大小的APK擁有更多資源,因此在游戲商店上傳是更好的選擇。
我使用了Build->Analyze Apk...
來分析這兩個APK,所以我發現了來自v4和v17庫的一些額外的drawable,因為我發現了5.7mb的差異。
如果對Android Studio團隊提出issue
,這可能會得到更好的解答。 我的猜測是你在Android Studio(AS)中使用Instant Run
。 這可以解釋更大的尺寸,因為Instant Run會為更改的代碼生成代理類。
編輯Run
配置以使用gradle build
,您應該能夠刪除額外的代碼......但是這將帶來更大的構建/部署時間...如果調試版本的大小對您來說非常重要,那么確定但對於大多數人而言,這將破壞Android團隊最近對DSL所做的所有改進,以提高速度
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.