包體積優(yōu)化-實(shí)踐

最新公司業(yè)務(wù)線一個(gè)App嘗試切換到androidx后摩窃,與上期版本相比包大小突然從19.9增加了9M的地址,對(duì)照著官方推薦做了一些優(yōu)化芬骄,中間也碰到一些問題偶芍,所幸最終將體積減了下來(lái)


image.png

webp 不穩(wěn)定?

注意:由于支持無(wú)損和透明的WebP圖像只能在Android 4.3和更高版本中使用德玫,所以您的項(xiàng)目必須聲明一個(gè)minSdkVersion 18或更高版本匪蟀,以使用Android Studio創(chuàng)建無(wú)損或透明的WebP圖像。

幸好我們這個(gè)app支持的比較新宰僧,低版本按例子可以用Xposed Hook材彪,平均能減少76%左右,但發(fā)現(xiàn)不可思議一件不可思議的事琴儿,盡然有些突然比原圖大段化,目前沒看到什么合理解釋


image.png

嘗試了線上壓縮,效果還行


image.png

McImage

看了下源碼造成,順帶學(xué)習(xí)了下Android Gradle DSL及編譯過程显熏,它的功能是在mergeResource 步驟中遍歷圖片(包括JAR包)壓縮然后與原圖比較,比原圖大就使用原圖晒屎,有了上面的Webp壓縮放大的情況喘蟆,個(gè)人感覺或許會(huì)壓縮不完全,源碼很好讀鼓鲁,建議看看

resConfigs "hdpi", "xhdpi", "xxhdpi", "xxxhdpi" 不能用了

這句話的作用是去除不匹配的圖片資源蕴轨,但是新版本該用splits打包,這個(gè)應(yīng)該只在googleplay生效骇吭,我自己根據(jù)McImage 改了下 不匹配 這幾個(gè)分辨率刪除

關(guān)于SO

這個(gè)是我們這次優(yōu)化的重頭戲橙弱,因?yàn)槲覀儾糠止δ苁褂昧薋lutter 包沒有引入androidx 前我們包大小20MB,通過常規(guī)治理,包括刪除無(wú)效資源棘脐,圖片壓縮斜筐,剔除語(yǔ)言包等減少4M左右,其中flutter生產(chǎn) so 占 6MB左右蛀缝,4+6 =10M 顷链,如果刨除這些大約能優(yōu)化10M~50%

開始前我們將字節(jié) flutter 包體積優(yōu)化反復(fù)讀了好幾遍,最終實(shí)施的時(shí)候内斯,和組員一討論蕴潦,如果完全將flutter so 動(dòng)態(tài)下載會(huì)帶來(lái)一個(gè)風(fēng)險(xiǎn),一旦so下載失敗意味著所有Flutter 模塊無(wú)法使用俘闯,最終只是將flutter做成動(dòng)態(tài)更新 有時(shí)間補(bǔ)上

andResGuard ReDex

這里我嘗試了下andResGuad潭苞,如果僅僅混淆資源大約節(jié)省1M左右,使用sevenZip壓縮后真朗,能恐怖的達(dá)到3.2MB

andResGuad 怎么直接與相關(guān)編譯task綁定

之前我也是對(duì)Gradle 不是怎么了解此疹,直到看相關(guān)源碼,結(jié)合之前的一些練習(xí)遮婶,是可以實(shí)現(xiàn)的蝗碎,看了下Issue 發(fā)現(xiàn)已經(jīng)有人實(shí)現(xiàn)了,我改了下,把下面代碼貼到 app下的build.gradle

project.afterEvaluate {
    tasks.matching {
        (it.name.startsWith("assemble"))
    }.each { task ->
        def variant = task.name.replaceAll("assemble","")
        task.finalizedBy("resguard"+variant)
    }
}

白名單 所有使用getIdentifier訪問的資源都需要加入白名單旗扑。
請(qǐng)使用Umeng_social_sdk的同學(xué)特別留意將資源加入白名單蹦骑,否則會(huì)出現(xiàn)Crash⊥畏溃可以在white_list.md查看更多sdk的白名單配置眠菇,也歡迎大家PR自己的白名單

另外 不支持androidx.constraintlayout.widget.Group #353

當(dāng)在使用7zip壓縮的APK時(shí),調(diào)用AssetManager#list(String path)返回結(jié)果的首個(gè)元素為空字符串. #162

IconFont

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末袱衷,一起剝皮案震驚了整個(gè)濱河市捎废,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件送淆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辐益,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門搬葬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)荷腊,“玉大人,你說我怎么就攤上這事急凰。” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵抡锈,是天一觀的道長(zhǎng)疾忍。 經(jīng)常有香客問我,道長(zhǎng)床三,這世上最難降的妖魔是什么一罩? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮撇簿,結(jié)果婚禮上聂渊,老公的妹妹穿的比我還像新娘。我一直安慰自己四瘫,他們只是感情好汉嗽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著找蜜,像睡著了一般饼暑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洗做,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天弓叛,我揣著相機(jī)與錄音,去河邊找鬼诚纸。 笑死撰筷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的畦徘。 我是一名探鬼主播毕籽,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼旧烧!你這毒婦竟也來(lái)了影钉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掘剪,失蹤者是張志新(化名)和其女友劉穎平委,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夺谁,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年匾鸥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜡塌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡馏艾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琅摩,我是刑警寧澤铁孵,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站房资,受9級(jí)特大地震影響蜕劝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜轰异,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一岖沛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搭独,春花似錦婴削、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至惊奇,卻和暖如春互躬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颂郎。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工吼渡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乓序。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓寺酪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親替劈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寄雀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348