簡體   English   中英

Android Studio:Build APK vs Run 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.

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