在開發(fā)中隨著業(yè)務(wù)迭代抱虐,突然某一天發(fā)現(xiàn)驹针,apk怎么這么大了? apk太大浪費用戶的流浪不說阿蝶,用戶一看雳锋,心里一權(quán)衡,下載這個apk可能要30s羡洁,超出了可以容忍的范圍玷过,果斷不下載安裝了。這樣在無形中就損失了很多潛在用戶筑煮。
幾年前記得pp助手辛蚊,現(xiàn)在是uc旗下的產(chǎn)品了,當年沒被收購真仲。pp助手我記得很清楚當時只有2M左右袋马,可是里面的功能很多,那時候我覺得這個產(chǎn)品很不錯秸应,一定在apk大小方面傾注了很多注意力飞蛹。后來自己所在團隊的產(chǎn)品(gosms)可能讓上面的人覺得過重,另外感受到競品的壓力灸眼。就開發(fā)了一個輕量級的產(chǎn)品(zerosms)卧檐,砍掉了很多功能,apk也終于控制在了2M左右焰宣。雖然一直覺得apk大小的優(yōu)化很重要霉囚,但是直到今天才做一些總結(jié),不得不鄙視自己匕积。
現(xiàn)在android studio自帶了一個分析apk大小的工具盈罐;build - > analyze apk。打開工具界面后導入apk就可以查看各個文件夾的大小闪唆,所占百分比等盅粪,一目了然,非常直觀悄蕾。不似以前使用反編譯工具票顾,很麻煩础浮。
一般來說根據(jù)分析的結(jié)果總結(jié)有以下幾個原則:
1.圖片占用空間太大;建議把所有的圖片都做壓縮處理奠骄。盡量使用svg 和 vector豆同;盡量使用shape;一句話能用xml實現(xiàn)的就不要使用圖片含鳞,當然如果效果過于復雜影锈,svg渲染效率可能比bitmap渲染慢很多,這個時候就不強求了蝉绷。
- .so文件占用空間太大鸭廷,可以考慮使用 ndk filter 只編譯倆個架構(gòu)的so文件。armeabi-v7a和x86
- 和第二點的相似熔吗,對于不同的設(shè)備發(fā)布不同的包靴姿,使用apk splits。沒有在國內(nèi)市場發(fā)布過apk磁滚,不太清楚國內(nèi)市場支不支持這種方式佛吓。
4.記得開啟proguard去掉重復代碼和無用代碼資源等。
以上就是幾點關(guān)于apk大小控制的幾點思考垂攘。