APK

結(jié)構(gòu)分析

查看 apk包的占用大小 :

打開方式:Andr oi dSt udi o下 ——>Bui l d——>Anal y zeapp)
APK包結(jié)構(gòu)如下: 1.l i b/ :包含特定于處理器軟件層的編譯代碼晒夹。該目錄包含了每種平臺的子 目錄裆馒,像 ar meabi ,ar meabi v 7a丐怯, ar m64v 8a喷好,x86,x86_ 64读跷,和 mi ps梗搅。大多 數(shù)情況下我們可以只用一種 ar meabi v 7a,后面會講到原因效览。 2.asset s/ :包含應(yīng)用可以使用 Asset Manager對象檢索的應(yīng)用資源无切。 3.r es/ :包含未編譯到的資源 r esour ces. ar sc, 主要有圖片資源文件。 4.METAI NF/ :包含 CERT. SF和 CERT. RSA簽名文件以及 MANI FEST. MF 清單文件丐枉。 5.r esour ces. ar sc:包含已編譯的資源哆键。該文件包含 r es/ v al ues/文件夾所 有配置中的 XML內(nèi)容。打包工具提取此 XML內(nèi)容瘦锹,將其編譯為二進制格式籍嘹,并 將內(nèi)容歸檔。此內(nèi)容包括語言字符串和樣式弯院,以及直接包含在 r esour ces. ar sc 文件中的內(nèi)容路徑 噩峦,例如布局文件和圖像。 6.cl asses. dex:包含以 Dal v i k/ART虛擬機可理解的 DEX文件格式編譯的 類抽兆。 7.Andr oi dMani f est . xml :包含核心 Andr oi d清單文件识补。該文件列出應(yīng)用程序 的名稱,版本辫红,訪問權(quán)限和引用的庫文件凭涂。該文件使用 Andr oi d的二進制 XML 格式祝辣。
對 l i b目錄下的文件進行瘦身處理

1.修改 l i b配置:

so文件的優(yōu)化:通常我們在使用 NDK開發(fā)的時候,我們經(jīng)常會有如下這么一段代碼:
ndk{
//設(shè) 置 支 持 的 so庫 架 構(gòu)
abi Fi l t er s" ar meabi v 7a" , " x86" , " ar m64v 8a" , " x86_ 64" , " ar meabi "
}
![3Q)O0N]VFHEBL04[)J}WLQ.png

看上面圖分析切油,ar meabi v 7主要不支持 ARMv 5( 1998年誕生) 和 ARMv 6( 2001年誕生) . 目前 這兩款處理器的手機設(shè)備基本不在我公司的適配范圍(市場占比太少) 蝙斜。 而許多基于 x86的設(shè)備也可運行 ar meabi v 7a和 ar meabi NDK二進制文件。對于這些設(shè) 備澎胡,主要 ABI將是 x86孕荠,輔助 ABI是 ar meabi v 7a
2.重新編譯 so文件,用更小的庫代替
優(yōu)化 r es, asset s文件大小
1.手動 l i nt檢查攻谁,手動刪除無用資源
在 Andr oi dSt udi o中打開“ Anal y ze”然后選擇” I nspectCode…” 稚伍,范圍選擇整個項目,然后點
擊” OK” 戚宦。配置如下:
![}]KT)BAS}KIH(JU8KKLI.png

2.使用 t i ny png等圖片壓縮工具對圖片進行壓縮个曙。

打開網(wǎng)址,將大圖片導(dǎo)入到 t i ny png受楼,替換之前的圖片資源垦搬。
3.將圖片替換為 Webp格式。
4.盡量不要在項目中使用幀動畫
5.使用 gr adl e開啟 shr i nkResour ces
bui l dTy pes{ r el ease{ / / 混淆 mi ni f y Enabl edt r ue / /移除無用的 r esour ce文件 shr i nkResour cest r ue pr oguar dFi l es get Def aul t Pr oguar dFi l e( ' pr oguar dandr oi d. t xt ' ) , ' pr oguar dr ul es. pr o' si gni ngConf i gsi gni ngConf i gs. r el ease
}
}
減少 chasses. dex大小
cl asses. dex中包含了所有的 j av a代碼艳汽,當打包時猴贰,gr adl e會將所有模板力的. cl ass文
件轉(zhuǎn)換成 cl asses. dex文件,當然河狐,如果方法數(shù)超過 64K糟趾,將要新增其他文件進行存儲∩跎可
以通過 mul t i dexi ng分多個文件

可以通過下面幾個方法來實現(xiàn)減少代碼量 :

1.盡量減少第三方庫的引用,這個在上面我們已經(jīng)做過優(yōu)化了蝶柿。
2.避免使用枚舉丈钙,使用靜態(tài)常量替代枚舉。
3.如果你的 dex文件太大交汤,檢查是否引入了重復(fù)功能的第三方庫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雏赦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芙扎,更是在濱河造成了極大的恐慌星岗,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戒洼,死亡現(xiàn)場離奇詭異俏橘,居然都是意外死亡,警方通過查閱死者的電腦和手機圈浇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門寥掐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來靴寂,“玉大人,你說我怎么就攤上這事召耘“倬妫” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵污它,是天一觀的道長剖踊。 經(jīng)常有香客問我,道長衫贬,這世上最難降的妖魔是什么德澈? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮祥山,結(jié)果婚禮上圃验,老公的妹妹穿的比我還像新娘。我一直安慰自己缝呕,他們只是感情好澳窑,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著供常,像睡著了一般摊聋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栈暇,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天麻裁,我揣著相機與錄音,去河邊找鬼源祈。 笑死煎源,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的香缺。 我是一名探鬼主播手销,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼图张!你這毒婦竟也來了锋拖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤祸轮,失蹤者是張志新(化名)和其女友劉穎兽埃,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體适袜,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡柄错,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鄙陡。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡冕房,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趁矾,到底是詐尸還是另有隱情耙册,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布毫捣,位于F島的核電站详拙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蔓同。R本人自食惡果不足惜饶辙,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斑粱。 院中可真熱鬧弃揽,春花似錦、人聲如沸则北。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尚揣。三九已至涌矢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間快骗,已是汗流浹背娜庇。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留方篮,地道東北人名秀。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像藕溅,于是被迫代替她去往敵國和親匕得。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容