2016-04-21 40 views
0

我在Java中使用最新的Android Studio與最新的gradle條件編譯。爲什麼apk大小相同使用條件編譯

所以,我沒有使用

static final boolean compileThisCode = false; 
    if (compileThisCode) { 
     callALargeClass(); 
    } 

一個小測試,並與

static final boolean compileThisCode = true; 

創建的APK,以及我本來預期的APK是顯著不同尺寸的,因爲callALargeClass是真的大類

但隨着compileThisCode = true的APK及compileThisCode = false具有相同的大小

任何人都可以請幫我理解爲什麼如果Java正在做條件編譯?

回答

0

這會影響您的運行時內存消耗。 Apk大小取決於您的庫和資源(res文件夾)。即使在一個包含多個大型3D派對庫的項目中,「hello world」也可以打到65k limit

您可以通過ProGuard配置排除一些未使用的相關性。

+0

感謝 - 我明白 - 但如果它不編譯代碼的我50%的話,我不明白爲什麼APK具有相同的大小仍然 – user387184

+0

它仍然持有該項目所有的功能/類的引用。你甚至可以打的問題[65K限制(http://developer.android.com/tools/building/multidex.html) –

+0

很大......所以這是有條件的編譯:-) – user387184

相關問題