classes.dex 包含了所有 Java 代碼。當你編譯你的應用時,gradle 會將你的所有模塊里的 .class 文件轉換成 .dex 文件並將這些文件合成一個 classes.dex 文件。
單個的 classes.dex 文件可以容納大約 64K 方法。如果你達到了這個限制,你必須要在你的工程中啟用 multidexing。這將會創建另一個 classes1.dex 文件去存儲剩下的方法。所以 classes.dex 文件數目由你的方法數而定。
隨著業務的頻繁變更以及複雜度的增加,我們往往會使用第三方Libaray,有時候我們可能僅僅用到了很少一部分的功能,這個時候就需要慎重考慮完全引用。從我的開發經驗上來講,寧願參照自己去實現,也不願意多引入一個第三方庫。
一個枚舉可以為您的應用程序的classes.dex文件添加大約1.0到1.4 KB的大小 。這些添加可以快速累積到複雜系統或共享庫。如果可能,請考慮使用@IntDef注釋,這種類型轉換保留了枚舉的所有類型安全優勢。
getDefaultProguardFile(proguard-android.txt) 方法可從 Android SDK tools/proguard/ 文件夾獲取默認的 ProGuard 設置。
提示:要想做進一步的代碼壓縮,請嘗試使用位於同一位置的 proguard-android-optimize.txt 文件。它包括相同的 ProGuard 規則,但還包括其他在位元組碼一級(方法內和方法間)執行分析的優化,以進一步減小 APK 大小和幫助提高其運行速度。
定位Android 3.2(API級別13)或更高級別時 ,您也可以使用WebP文件格式來製作圖像,而不是使用PNG或JPEG文件。WebP格式提供有損壓縮(如JPEG)以及透明度(如PNG),但可以提供比JPEG或PNG更好的壓縮。
Android 4.0 (API level 14) 支持有損壓縮的WebP格式,Android 4.3 (API level 18) 開始支持無損透明WebP圖像。