版權聲明
1.本文版權歸原做者全部,轉載需註明做者信息及原文出處。
2.本文做者:趙裕(vimerzhao),永久連接: https://github.com/vimerzhao/vimerzhao.github.io/blob/master/android/2020-02-11-apk-size-opt.md。
3.做者公衆號: V大師在一號線 。聯繫郵箱:vimerzhao@foxmail.com
。
業務的增長、產品的演進是安裝包大小增長的本質緣由。可是在演進之路上,因爲一些所謂的技術債務,如:html
正是因爲這些疏忽,安裝包有了沒必要要的增長,這也是咱們須要優化的部分。android
可能有的人以爲,如今基本是4G、WiFi的網絡環境,手機設備的性能和存儲空間也很是充足,因此用戶對安裝包大小應該不是十分敏感。可是,這實際上是一種錯覺,更多的時候應該看本身的目標市場,若是是一二線城市固然沒問題,但若是是三四線城市、農村等下沉市場或者印度、巴西等海外市場,上述假設顯然不成立了。git
通常來講,安裝包大小會影響如下指標:github
綜上,對於一個「有餘力」的團隊,安裝包大小的優化仍是頗有必要的。web
由前面的緣由可知,從業務層面來看,安裝包大小的優化是「解鈴還須繫鈴人」,即:vim
這些方法都比較常規,更像是對症下藥,下面梳理一些技術上普適的方法,獨立於業務,在上面那些方法都嘗試後,還可使安裝包大小「更下一層樓」。網絡
安裝包的主要構成就是代碼和資源,因此優化也是從這兩個方面着手。工具
通常是經過ProGuard
,但不少用很差,且存在管理問題。最後一看項目,不少類被Keep住了,也不知道歷史背景是啥。性能
so的優化手段和Java代碼其實比較相似,核心仍是經過機制化的手段去裁剪、壓縮。字體
經過AndResGuard
工具壓縮資源名稱,進而下降索引文件的大小。
常規的手段很容易到達瓶頸,高深的手段又有複雜、兼容性等諸多問題,但綜合來看,仍是兩點:
不少時候,優化就是權衡,重要的是取捨:
以上
歡迎掃碼關注做者公衆號,及時獲取最新信息。