Android 應(yīng)用瘦身(1)

我們是因為美才瘦身的嗎?答案當(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è)備,不同

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容