最近做的項目伙单,因為加有地圖、推送船响、分享躬拢、崩潰反饋(Bugly)等第三方SDK,加上項目的功能比較多躲履,打包出來Apk文件有20M左右。自己就在試著減小Apk文件的大小聊闯,也看了很多文章工猜、博客。
發(fā)現(xiàn)一些有效的方法如下:
1.使用ProGuard
ProGuard 會自動處理應(yīng)用的字節(jié)碼菱蔬,然后再將所有內(nèi)容打包到.apk文件中篷帅,能夠混淆代碼并能減小應(yīng)用大小。文檔地址
2. 使用Vector Drawables代替一些為了適應(yīng)不同屏幕而添加的多種尺寸的圖標(biāo)
為了適應(yīng)不同的屏幕分辨率拴泌,我們往往會使用多種尺寸的icon放在相應(yīng)的drawable文件夾下(mdpi, hdpi, xhdpi, xxhdpi)魏身,而Vector Drawables能做到放大而不失真。
3.使用拆分機(jī)制(apk splits)
在自己經(jīng)歷的項目中蚪腐,apk體積增加最大的一次是引入一家合作公司的看監(jiān)控視頻的SDK包箭昵,其中的處理視頻碼流的.so包文件,因為要適配不同的處理架構(gòu)(armeabi回季,armeabi-v7a ,x86...)家制,文件會增大很多。apk splits能很好的解決這種問題茧跋。官方文檔
4.合理的引入Library
有時項目中引入了一個Library慰丛,可能只會用到其中一部分方法或一種控件,但是我們卻要把整個Library引入進(jìn)來瘾杭,這樣做感覺很不劃算诅病。應(yīng)該嘗試換一種Library替代或者自己抽取其中有用的部分。
5.盡量使用xml替代一些背景圖