apk瘦身

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

查看apk包的占用大小 :

打開方式:Android Studio下 ——> Build——> Analyze app)

APK包結(jié)構(gòu)如下:

1. lib/:包含特定于處理器軟件層的編譯代碼训唱。該目錄包含了每種平臺的子目錄便斥,像armeabi米愿,armeabi-v7a, arm64-v8a短绸,x86车吹,x86_64,和mips醋闭。大多數(shù)情況下我們可以只用一種armeabi-v7a窄驹,后面會講到原因。

2. assets/:包含應(yīng)用可以使用AssetManager對象檢索的應(yīng)用資源证逻。

3. res/:包含未編譯到的資源 resources.arsc,主要有圖片資源文件乐埠。 (lint)

4. META-INF/:包含CERT.SF和 CERT.RSA簽名文件以及MANIFEST.MF 清單文件。

5. resources.arsc:包含已編譯的資源。該文件包含res/values/ 文件夾所有配置中的XML內(nèi)容饮戳。打包工具提取此XML內(nèi)容,將其編譯為二進制格式洞拨,并將內(nèi)容歸檔扯罐。此內(nèi)容包括語言字符串和樣式,以及直接包含在resources.arsc文件中的內(nèi)容路徑 烦衣,例如布局文件和圖像歹河。

6. classes.dex:包含以Dalvik / ART虛擬機可理解的DEX文件格式編譯的類。

7. AndroidManifest.xml:包含核心Android清單文件花吟。該文件列出應(yīng)用程序的名稱秸歧,版本,訪問權(quán)限和引用的庫文件衅澈。該文件使用Android的二進制XML格式键菱。

對lib目錄下的文件進行瘦身處理

1. 修改lib配置:

so文件的優(yōu)化:通常我們在使用NDK開發(fā)的時候,我們經(jīng)常會有如下這么一段代碼:

  ndk {

        *//設(shè)置支持的so庫架構(gòu)*

  abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64", "armeabi"

    }
image.png

看上面圖分析今布,armeabi-v7主要不支持ARMv5(1998年誕生)和ARMv6(2001年誕生).目前這兩款處理器的手機設(shè)備基本不在我公司的適配范圍(市場占比太少)经备。

而許多基于 x86 的設(shè)備也可運行 armeabi-v7a 和 armeabi NDK 二進制文件。對于這些設(shè)備部默,主要 ABI 將是 x86侵蒙,輔助 ABI 是 armeabi-v7a

2. 重新編譯so文件,用更小的庫代替

** 優(yōu)化res,assets文件大小**

1. 手動lint檢查傅蹂,手動刪除無用資源

在Android Studio中打開“Analyze” 然后選擇”Run inspection by name”纷闺,范圍選擇整個項目,然后點擊”O(jiān)K”份蝴。配置如下:

2. 使用tinypng(https://tinypng.com/)等圖片壓縮工具對圖片進行壓縮犁功。

[https://tinypng.com/]
打開網(wǎng)址,將大圖片導(dǎo)入到tinypng搞乏,替換之前的圖片資源波桩。

3. 將圖片替換為Webp格式。

https://blog.csdn.net/lmj623565791/article/details/53240600

4. 盡量不要在項目中使用幀動畫

5. 使用gradle開啟shrinkResources

  buildTypes {

    release {

        //混淆

        minifyEnabled true

        // 移除無用的resource文件

        shrinkResources true

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        signingConfig signingConfigs.release

    }

}

減少chasses.dex大小

classes.dex中包含了所有的java代碼请敦,當打包時镐躲,gradle會將所有模板力的.class文件轉(zhuǎn)換成classes.dex文件,當然侍筛,如果方法數(shù)超過64K(方法樹爆棚萤皂,即為方法超過65535),將要新增其他文件進行存儲匣椰●晌酰可以通過multidexing分多個文件

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

1. 盡量減少第三方庫的引用,這個在上面我們已經(jīng)做過優(yōu)化了。

2. 避免使用枚舉入录,使用靜態(tài)常量替代枚舉蛤奥。https://blog.csdn.net/anhenzhufeng/article/details/80179832

3. 如果你的dex文件太大,檢查是否引入了重復(fù)功能的第三方庫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末僚稿,一起剝皮案震驚了整個濱河市凡桥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚀同,老刑警劉巖缅刽,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蠢络,居然都是意外死亡衰猛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門刹孔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啡省,“玉大人,你說我怎么就攤上這事髓霞∶岣埽” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵酸茴,是天一觀的道長分预。 經(jīng)常有香客問我,道長薪捍,這世上最難降的妖魔是什么笼痹? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮酪穿,結(jié)果婚禮上凳干,老公的妹妹穿的比我還像新娘。我一直安慰自己被济,他們只是感情好救赐,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著只磷,像睡著了一般经磅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钮追,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天预厌,我揣著相機與錄音,去河邊找鬼元媚。 笑死轧叽,一個胖子當著我的面吹牛苗沧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炭晒,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼待逞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了网严?” 一聲冷哼從身側(cè)響起飒焦,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屿笼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翁巍,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡驴一,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了灶壶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肝断。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖驰凛,靈堂內(nèi)的尸體忽然破棺而出胸懈,到底是詐尸還是另有隱情,我是刑警寧澤恰响,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布趣钱,位于F島的核電站,受9級特大地震影響胚宦,放射性物質(zhì)發(fā)生泄漏首有。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一枢劝、第九天 我趴在偏房一處隱蔽的房頂上張望井联。 院中可真熱鬧,春花似錦您旁、人聲如沸烙常。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚕脏。三九已至,卻和暖如春侦锯,著一層夾襖步出監(jiān)牢的瞬間蝗锥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工率触, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留终议,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像穴张,于是被迫代替她去往敵國和親细燎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

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

  • 公司項目在不斷的改版迭代中皂甘,代碼在不斷的累加玻驻,終于apk包不負重負了,已經(jīng)到了八十多M了偿枕¤邓玻可能要換種方式表達,到目...
    aserbao閱讀 26,013評論 20 193
  • 原文鏈接:http://www.reibang.com/p/4cead9e545b9 前言 隨著業(yè)務(wù)復(fù)雜度的逐漸...
    迷途小碼農(nóng)h閱讀 1,652評論 2 30
  • 久違的晴天,家長會墓塌。 家長大會開好到教室時瘟忱,離放學已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗苫幢。 放學鈴聲...
    飄雪兒5閱讀 7,513評論 16 22
  • 今天感恩節(jié)哎访诱,感謝一直在我身邊的親朋好友。感恩相遇韩肝!感恩不離不棄触菜。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,559評論 0 11
  • 可愛進取哀峻,孤獨成精玫氢。努力飛翔,天堂翱翔谜诫。戰(zhàn)爭美好漾峡,孤獨進取。膽大飛翔喻旷,成就輝煌生逸。努力進取,遙望且预,和諧家園槽袄。可愛游走...
    趙原野閱讀 2,720評論 1 1