close

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 就可以了

點我下載各版本 ndk 

設定前: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


arrow
arrow

    顏澤偉 發表在 痞客邦 留言(0) 人氣()