偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

扇貝張志博--APK瘦身的實(shí)踐與演進(jìn)

原創(chuàng)
云計(jì)算
扇貝是一個(gè)全面有效提升英語的移動(dòng)互聯(lián)網(wǎng)學(xué)習(xí)平臺(tái),有包括單詞、聽力、口語、新聞、閱讀、煉句在內(nèi)的六大應(yīng)用,是目前國(guó)內(nèi)唯一能讓用戶在移動(dòng)端完成英語學(xué)習(xí)整個(gè)一套閉環(huán)的學(xué)習(xí)系統(tǒng)。

【51CTO.com原創(chuàng)稿件】  扇貝是一個(gè)全面有效提升英語的移動(dòng)互聯(lián)網(wǎng)學(xué)習(xí)平臺(tái),有包括單詞、聽力、口語、新聞、閱讀、煉句在內(nèi)的六大應(yīng)用,是目前國(guó)內(nèi)唯一能讓用戶在移動(dòng)端完成英語學(xué)習(xí)整個(gè)一套閉環(huán)的學(xué)習(xí)系統(tǒng)。

[[174713]]

  為什么要做APK瘦身?

  一個(gè)很現(xiàn)實(shí)的事情是,到上個(gè)月底有23.49%用戶使用移動(dòng)網(wǎng)絡(luò)使用App,其中有4.09%用戶還在使用2G網(wǎng)絡(luò),這是一個(gè)很可怕的數(shù)字,因?yàn)榈浇裉鞛橹谷栽谑褂肁ndroid2.3的用戶已經(jīng)是1%甚至連1%都不到的在網(wǎng)用戶量,然而使用2G網(wǎng)絡(luò)用戶還有4.09%。因?yàn)楝F(xiàn)在用戶使用移動(dòng)網(wǎng)絡(luò)時(shí)有一個(gè)比較高的成本,大致如果要超了套餐1M在0.1元左右,如果做一次App更新或者一個(gè)新用戶安裝用戶成本是多少?現(xiàn)在國(guó)內(nèi)應(yīng)用市場(chǎng)還是劣幣驅(qū)逐良幣的環(huán)境,沒有一家市場(chǎng)能夠做到50%以上的量,意味著很多市場(chǎng)還是屬于不是Sister map,帶來***的問題是并沒有一個(gè)進(jìn)網(wǎng)安裝權(quán)限,一旦如果涉及到應(yīng)用更新,沒有辦法做到用戶無感知進(jìn)行更新,用戶會(huì)很煩這件事,有一些第三方市場(chǎng)會(huì)用Work round,比如做自動(dòng)點(diǎn)擊,這不是很好的解決方案。在升級(jí)成本本身除了費(fèi)用上的成本,還有用戶操作成本的情況下,結(jié)合這兩者就帶來了一個(gè)結(jié)果,用戶對(duì)APK大小非常敏感,這里指的是Android用戶。APK大小會(huì)帶來兩個(gè)附加影響,分別是安裝時(shí)間,很好理解,當(dāng)可視性文件跟so文件,變大安裝時(shí)間一定會(huì)有影響,不管是在安裝5.0之前,從DEX到ODEX的優(yōu)化,還是安裝5.0之后從DEX到OAT文件的預(yù)編譯,時(shí)間肯定是正常的。還有一個(gè)問題是安裝成功率,為什么APK大小對(duì)安裝成功率有影響?比如1.0版本是10M,1.1版本變成了100M,用戶只有50M空間,這當(dāng)然是個(gè)極端例子,類似這樣的問題就會(huì)導(dǎo)致如果APK大小突然變大,也有可能導(dǎo)致下發(fā)出現(xiàn)問題。

  APK瘦身

  APK瘦身只有一個(gè)大小的概念,談到APK瘦身涉及到四個(gè)不同大小。首先是Raw APK Size,APK文件大小。除此之外還有三個(gè)不同的,Download Size,為什么跟Raw APK Size不一樣?最早是國(guó)外做,但現(xiàn)在已經(jīng)有很多國(guó)內(nèi)市場(chǎng)也會(huì)做,在下發(fā)時(shí)會(huì)做一層,最簡(jiǎn)單可以做把APK本身在傳輸時(shí)做一層封裝。第三點(diǎn)是在安裝時(shí),因?yàn)樾枰獙?duì)DEX文件和so文件做相應(yīng)操作,so文件跟DEX文件不一樣,so文件需要拷貝出來,本身占用的體積一定跟APK Size不一樣。***一個(gè)是Update Size,為什么跟APK文件本身大小不一樣?因?yàn)楝F(xiàn)在大部分應(yīng)用市場(chǎng)已經(jīng)做了這點(diǎn),如果好一些可能會(huì)有自研的東西,可以做到一點(diǎn),更新一個(gè)App,下載的并不是一個(gè)完整的APK,而是下載一個(gè)diff文件,本地合成完整的APK,從而減少用戶在網(wǎng)絡(luò)傳輸流量上的壓力。

  這四個(gè)Size當(dāng)中,作為應(yīng)用開發(fā)者最關(guān)心的應(yīng)該是***個(gè)和第三個(gè),能控制的是***個(gè)和第三個(gè),不是說第二個(gè)和第四個(gè)沒有辦法控制,國(guó)內(nèi)炒得非常熱的插件化和Hotfix,就能夠部分意義上解決第二個(gè)和第四個(gè)在應(yīng)用開發(fā)者這一側(cè)的控制問題。

  簡(jiǎn)單看一下APK文件的生命周期。在前兩行是APK文件生成和打***程,從Source Code到class,到Dex文件。Resources和Native Code,在后面會(huì)插進(jìn)來,Resources本身的流程當(dāng)中會(huì)有一個(gè)簡(jiǎn)單的優(yōu)化,APK會(huì)做,就現(xiàn)在的時(shí)間點(diǎn)來說比較傻,甚至還會(huì)有把Resources文件越壓越大的問題。因?yàn)樾枰霾还苁荄ex到Odex的優(yōu)化,還是要做Dex到OAT文件的預(yù)編譯,這邊一定會(huì)產(chǎn)生文件大小上的影響,會(huì)變大。Native code都是黃線,往下走時(shí)直到今天,Google在處理Native code還是使用了比較原始的方案,會(huì)把相應(yīng)版本以so文件拷貝出來。

  音頻文件,是時(shí)候該放棄mp3了,如果App中包含了音頻文件,建議大家直接選擇aac,在任何意義上都比mp3好得多,在同樣的編碼率下可以平均能夠減少20%的Size。圖片文件都可以腳本化做,不應(yīng)該由人工做這件事。首先要把meta data刪掉,第二步要做無損壓縮,格式選定時(shí)也可以用一些簡(jiǎn)單標(biāo)準(zhǔn)做一個(gè)判斷,

  ***要做的,App本身有做這樣的優(yōu)化,在這樣的情況下手動(dòng)做這些優(yōu)化App是不知道的,做了這樣的優(yōu)化,把App本身比較笨的優(yōu)化關(guān)掉,否則會(huì)發(fā)現(xiàn)好不容易壓下來的東西會(huì)被App重壓過以后變大了。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】

責(zé)任編輯:關(guān)崇 來源: 51CTO
相關(guān)推薦

2017-03-02 15:09:29

AndroidAPK瘦身實(shí)踐

2017-04-15 21:36:05

微服務(wù)新浪微博WOT

2015-10-08 14:32:19

微信Apk瘦身

2018-07-03 09:57:43

容器知乎大數(shù)據(jù)

2018-11-15 07:56:26

2016-04-01 10:34:29

APK壓縮Android

2024-11-25 08:20:22

2024-06-14 08:19:45

2015-09-24 18:08:50

微博架構(gòu)架構(gòu)演進(jìn)架構(gòu)

2019-05-27 16:18:37

數(shù)字化轉(zhuǎn)型CIO架構(gòu)

2023-04-26 07:56:45

大模型機(jī)器學(xué)習(xí)

2023-11-14 20:51:08

2015-10-12 11:16:06

中云網(wǎng)

2024-09-24 19:27:40

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)飛輪數(shù)據(jù)中臺(tái)

2021-04-22 13:38:21

前端開發(fā)技術(shù)

2018-09-03 08:36:04

知乎容器大數(shù)據(jù)

2024-10-18 12:13:55

數(shù)據(jù)飛輪數(shù)據(jù)中臺(tái)

2017-03-13 11:39:00

WOTWOTA高可用架構(gòu)

2013-09-10 17:48:59

騰訊張志東Tony

2016-09-09 13:48:54

API可視化華為開發(fā)者社區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)