
1.前言
- 隨著業(yè)務(wù)量的日益增長,Apk體積也相對應(yīng)的變大,而且有較多時候會遺忘無關(guān)的資源(圖片、lib等等),導(dǎo)致Apk非常臃腫,也直接影響著用戶更新或者下載的體驗與流量的流失,因此
Apk體積優(yōu)化已成必要的維護工作。 - Android Studio 3.x之后提供
Analyser查看apk體積分布:
android studio apk.png - 上圖很清晰顯示出各部分文件大小的信息,資源、lib 占比最高,也是主要優(yōu)化的對象。
- 本文從資源、lib、class.dex 三個維度提出相關(guān)的優(yōu)化。
- 文章中實例 linhaojian的Github
2.資源
資源主要包括:
圖片、音樂文件、font文件、非圖片的res文件(layout、anim、raw等);
2.1 無用資源
- 在開發(fā)的過程中,有可能會處在
無用資源,可通過Android Lint進行檢測與移出,如下圖:
1.點擊 Analyze 進行,代碼性能檢測:
lint1.png
lint2.png
2.查看分析結(jié)果,并移除無用資源:
lint3.png -
Analyze除了檢測無用資源,還有其他分析檢測。
2.2 資源壓縮
- 1.圖片可使用TinyPng或者Guetzli進行壓縮。
- 2.使用Webp格式圖片。
3.lib
lib主要包括:
so文件、第三方庫;
3.1 so文件
- 1.so文件兼容一個平臺,armeabi-v7已普及。
- 2.動態(tài)下載與加載so文件。
3.2 第三方庫
4.class.dex
class.dex包含:
項目代碼;
- 1.盡量減少第三方庫的引用。
- 2.避免使用枚舉(枚舉占用內(nèi)存高)。
- 3.使用ProGuard進行代碼混淆與壓縮。
5.總結(jié)
- 到此,
Apk瘦身講述完畢。 - 如果喜歡我的分享,可以點擊 關(guān)注 或者 贊,你們支持是我分享的最大動力 。
- linhaojian的Github
歡迎關(guān)注linhaojian_CSDN博客或者linhaojian_簡書!
不定期分享關(guān)于安卓開發(fā)的干貨。
寫技術(shù)文章初心
- 技術(shù)知識積累
- 技術(shù)知識鞏固
- 技術(shù)知識分享
- 技術(shù)知識交流



