我們是因為美才瘦身的嗎?答案當(dāng)然是,不過也是為了健康。而且美了,也愉悅別人的眼睛。

通常我們 apk 下載的大小要小于安裝后的尺寸。下載后應(yīng)用進行解壓,編譯和優(yōu)化最后部署到設(shè)備。
為什么我們需要關(guān)注 apk 安裝前和安裝后的尺寸。現(xiàn)代是小而美,快而全的時代。我們越來越缺乏耐性。所以如果我們 apk 尺寸過大,一旦用戶在下載等待時間過長,就有可能失去耐性而取消下載。下面圖表我們可以看出 apk 因尺寸過大在 20% 。
下圖為 apk 尺寸和 apk 尺寸的關(guān)系圖?,F(xiàn)在我們知道了為什么我們需要關(guān)注 apk 的大小,在 apk 大小上花一些心思。如果不注意,我們連見到用戶的機會都沒有了。
在新版的 Android Studio 中可以在 build 菜單中找到 Analyze Apk 來分析 Apk。來看一看我們的 apk 內(nèi)部究竟有什么。每一個文件或文件夾后面有他在 apk 中百分比。
我們在 apk 中,可以找當(dāng)上面圖中的文件結(jié)構(gòu),res 文件夾下在一找到一些圖形文件。我們注意到了這里兩個欄 Raw File Size 和 Download Size 分別為圖片原有大小和下載大小,看尺寸還是有些區(qū)別的。
我們選擇下圖中的 .dex 。我們可以簡單地將 dex 理解為 zip 文件。在這里我們能看到其中的內(nèi)容,一些依賴。
我們可以啟用 Proguard,使用方式也是比較簡單,就是 build.gradle 配置文件中添加如下圖的代碼。?
在項目的 Manifest 文件中,列出 Activity 、Service 、reciever 和 contentProdiver 這個號稱 Android 四大組件。這列出每個組件會依賴一些類,這些類在優(yōu)化過程中將存活下來,而那些沒有依賴的類將會被 remove 處理。
通過 Proguard 的一些列處理,我們甚至可以減少到 33% 的體積。
我們也可以用 CompareWith 來比較兩個 apk。我們可以把我們的優(yōu)化前的和優(yōu)化后 apk 進行對比。
我們許多工作都是為了兼容,兼容不同 cpu 架構(gòu),兼容不同屏幕不同分辨率的尺寸。為了在不同機型上都有同樣良好的表現(xiàn),我們將資源文件按分辨率準(zhǔn)備幾份,放置在不同文件夾,看似解決了問題。同樣也帶來了問題,臃腫的 apk。
我們可以通過發(fā)布 apk 針對不同設(shè)備,不同