app瘦身總結

上週接到了個需求-去給當前的app瘦身下。剛好不想做業務方面的需求,然後就抽了那麼幾天做了下調研,做個小總結。
目前的項目apk大小在70m到80m之間,不要問我爲什麼這麼大,你來了就知道了!!!既然要給項目瘦身,怎麼着也得了解下已經採用的的方法,順便也增加下了解好了(無瞭解)
目前項目採取的壓縮方法,直接上一個代碼:
//開啓proguard混淆
minifyEnabled true
//Zipalign優化
zipAlignEnabled true
proguardFiles '***.pro'
//去除無用的res資源
shrinkResources true
沒有太多祕密,纔有Proguard進行混淆,Proguard不僅僅是混淆,還可以壓縮、優化等功能。Proguard文件的配置主要在***.pro文件中,編寫***.pro文件不難這裏不介紹。
弱弱問句,你們知道敏捷開發嗎?
是的,我們部門就很類似那種風格。好了,回到正題,基於對目前項目的分析,採取的瘦身方法主要有如下三點以及後期排期的一點:
1)、刪除目前無用的模塊。(重要)
2)、刪除無用so
3)、刪除無用的res以及對drawable文件壓縮(可以稍微減下那麼幾m)
後期排期:
4)、插件化(沒實戰過不做介紹)
第一點之所以說重要,基於當前部門的開發風格相關(敏捷開發:瘋狂的做各種需求,有的沒的不一定會到用戶的那種)造成目前項目存在大量的無用模塊,我採取的策略是刪除無用的超大模塊,排期就那麼幾天沒辦法做到精確的各個模塊。(當然也可以釋放大量的無用res資源)
so文件不說還是蠻客觀的。
無用的res這裏包括兩點:第一點是刪除當前項目中沒有無用的資源以及被無用大模塊佔用的資源,第二點是對當前圖片進行壓縮。
具體的實現:
第一點和第二點和每個具體項目相關不展開
稍微詳細講下刪除無用res湊合下字數表示自己也是在做筆記好了,這裏不以androidStudio自帶的lint爲例。
比較推薦Lint Cleaner Plugin + android-resource-remover
使用Lint Cleaner Plugin可以在項目目錄下生成兩個文檔lint-results.xml以及lint-results.html,如果時間充裕完全可以打開lint-results.hmlt,我相信你會被小小感動一下下,裏面除了記錄了目前項目哪些res是無用res,還可以羅列出目前哪些地方可以被優化的地方,比方哪些地方佈局可以用merge、哪些地方hashmap可以被sparseArray替代、哪些地方可能存在內存泄漏等,(還是蠻推薦看下的)
android-resource-remover用於刪除要刪除的資源。注意,在看完使用步驟附錄時android-resource-remover --xml build/outputs/lint-results.xml在項目的AndroidManifest.xml文件所在的路徑下執行
具體使用步驟見附錄鏈接
圖片的壓縮,目前項目圖片格式主要存在三種格式webp、png、.9.png。目前webp在項目中使用存在少量,這邊壓縮主要針對png
採用TinyPng

附:
Lint Cleaner Plugin使用:
android-resource-remover使用:
TinyPng網址:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章