Google 一直有個限制
apk 不能大於 100MB
基於解決這個限制
Google 提供了 APK Expansion Files 的方式來外掛資源檔
所以我們就可以把 res 裡面的東西額外分離出來
這樣 apk 就不會太大了
我們可以透過 android studio 的工具來分析 apk
Build -> Analyze APK...
分析圖如下,可以看出來 so 佔了我們大多空間
現在問題來了
APK Expansion Flies 只針對 res 去做處理
但我們現在的 apk 主要都是 Third Party Library ( so檔 ) 怎麼辦
教大家一招
設置 Android NDK Location 的話可以有效的減少 so 大小喔
到 File -> Project Structure... -> SDK Loaction 如圖
把 ndk 的路徑設定之後再 Build release.apk 就可以了
設定前:98.5MB
設定後:65MB
為什麼會這樣呢?
因為 AndroidStudio 配置 NDK 後
打包 release 的時候,so 檔會被再次壓縮,這樣 size 就會變小
當打包 Debug 或者沒有指定 NDK,則會會用原始體積的 so
最後我們來談談怎麼預防肥胖吧
其實開發的時候多注意一些,是不會讓 apk 越來越肥的,那麼我們到底怎麼預防肥胖呢?
1)加圖片前一定要確認一下圖的大小,解析夠用就好
2)能用xml自己實現的背景效果,就不用圖片
3)重複功能的 library 只保留一個 ex: picasso & glide
4)清楚知道自己 implementations library 的作用,別加多餘 library
5) 引用 third party sdk 時,一般都有提供 demo,可以刪掉不需要的東西別直接整個引用
6)盡量讓 code 簡潔,做新功能時怕以後改回去,舊功能相關的 code、xml、圖片資源等都捨不得刪,那會很可怕
最後一招,如果 apk 還是太大怎麼辦
就只能選擇性支援手機的 cup 種類了
詳如下
Android 簡介 arm64-v8a、armeabi-v7a、armeabi、x86、x86_64、mips、mips64,如何減少 apk 大小,so檔的相容 』Willy's Fish教學筆記
資料來源:
https://developer.android.com/google/play/expansion-files
https://developer.android.com/ndk/downloads
https://blog.csdn.net/shaoyezhangliwei/article/details/79083399
留言列表