Android Apk包瘦身

目錄

1、Android 編譯打包流程
2、Apk包瘦身

1、Android 編譯打包流程及APK構(gòu)成

1.1女揭、Android 編譯打包流程
android編譯打包流程

(1)、通過Java編譯器對工程本身的java代碼進行編譯栏饮,產(chǎn)出為.class文件吧兔。這些java代碼有三個來源:app的源代碼;由資源文件生成的R文件(aapt工具)抡爹;以及有aidl文件生成的java接口文件(aidl工具)掩驱。
(2)、通過dex工具將上一步生成的.class文件和依賴的第三方庫的.class冬竟,生成Delvik虛擬機可執(zhí)行的.dex文件欧穴。
(3)、通過apkbuilder工具將.dex文件和編譯后的資源文件生成未經(jīng)簽名對齊的apk文件泵殴。(這里編譯后的資源文件包括兩部分涮帘,一是由aapt編譯產(chǎn)生的編譯后的資源文件,二是依賴的三方庫里的資源文件)笑诅。
(4)调缨、通過Jarsigner和zipalign對apk文件進行簽名和對齊,生成最終的apk文件吆你。

1.2弦叶、APK構(gòu)成
APK組成

2、Apk包瘦身

2.1妇多、資源瘦身

對于圖片資源

2.1.1伤哺、使用更高壓縮率的文件格式
(使用Shape XML、Color 者祖、WebP替代PNG立莉,JPG。WebP尤其對大圖片有用)

2.1.2七问、更深度的資源壓縮
圖片質(zhì)量:TinyPNG深度壓縮
圖片尺寸:ReSize蜓耻,針對大圖、套圖

2.1.3械巡、Lint去除未引用資源

2.2.3刹淌、對于drawable圖片只保留3倍圖饶氏。
2.2.4、對資源的id和路徑進行壓縮芦鳍。使用andresguard嚷往,對resources.arsc文件進行壓縮,就是讓資源id名稱變短了柠衅。

2.1.5皮仁、去除無用的語言資源,例如appcompat庫中會包含多國的語言資源菲宴,但是我們的app只需要支持中文贷祈,可以使用resConfig去除不會使用的語言資源。

2.1.6喝峦、開啟shrinkResources未使用的資源(前提是是開啟混淆)势誊。因為只有開啟混淆移除未經(jīng)使用的代碼之后,才知道哪些資源是真正被有用的代碼所引用的谣蠢。

2.1.7粟耻、MR時引入流水線,流水線中對提交代碼中的資源文件大小進行控制

2.2眉踱、代碼瘦身

2.2.1挤忙、內(nèi)部代碼清理

(1)、合并功能相同的代碼(utils)谈喳。定期清理已廢棄册烈、未引用代碼
(2)、合并擴展重復的輪子婿禽,提高模塊復用性(titlebar)

注意反射以及AOP對類/方法的調(diào)用赏僧,會誤認為未引用

2.2.2、外部依賴清理

(1)扭倾、移除無用的jar包或依賴
(2)淀零、移除功能重復的框架,例如視頻播放庫膛壹,OkHttp&Volley窑滞,F(xiàn)resco&glide,避免共存

2.2.3恢筝、開啟minifyEnabled混淆代碼,去掉沒用引用的代碼巨坊。
2.2.4撬槽、review機制審核代碼質(zhì)量

2.3、native瘦身

去除不必要的硬件平臺對應的so文件趾撵,根據(jù)我們的統(tǒng)計侄柔,我們用戶的手機大部分都是armeabi架構(gòu)共啃,x86機型占比極低,只有幾個暂题,所有我們只需要保留armeabi對應的so文件移剪,另外x86架構(gòu)是可兼容armeabi平臺對應的so文件指令的。通過build.gradle內(nèi)abiFilters配置薪者。
ndk {
abiFilters 'armeabi', 'armabi'
}

Android中的so文件簡介

.so文件是一種文件格式纵苛,可以類比.java或者.class文件格式。
.so文件是與平臺相關(guān)的二進制機器碼言津,與ABI(Application Binary Interface)相對應攻人,一個ABI表示相應的CPU的指令集與內(nèi)存頁管理,也對應于不同的運行環(huán)境悬槽,所以so是有不同的系統(tǒng)版本的怀吻。
隨著Android系統(tǒng)的快速發(fā)展,搭載Android的硬件平臺也早已多樣化了(對比WinTel聯(lián)盟初婆,直到2012年才新發(fā)展了Windows RT來適配ARM平臺蓬坡,2015年的Win10才進入 Raspberry Pi 2這類基于ARM的新型設備中),現(xiàn)在已經(jīng)運行在7個ABI:armeabi磅叛,armeabi-v7a (armeabi-v7a-hard)屑咳,arm64-v8a,x86宪躯,x86_64乔宿,mips 和 mips64。

2.4访雪、資源動態(tài)下發(fā)

(1)详瑞、重量級的資源(拍攝頁資源,大圖片)
(2)臣缀、H5插件坝橡,需開發(fā)成熟的Hybrid方案
(3)、Native插件精置,需對項目進行插件化

1计寇,https://blog.csdn.net/u011889786/article/details/56686492
2,https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脂倦,一起剝皮案震驚了整個濱河市番宁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赖阻,老刑警劉巖蝶押,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異火欧,居然都是意外死亡棋电,警方通過查閱死者的電腦和手機茎截,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赶盔,“玉大人企锌,你說我怎么就攤上這事∮谖矗” “怎么了撕攒?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沉眶。 經(jīng)常有香客問我打却,道長,這世上最難降的妖魔是什么谎倔? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任片习,我火速辦了婚禮藕咏,結(jié)果婚禮上饥悴,老公的妹妹穿的比我還像新娘西设。我一直安慰自己,他們只是感情好禽绪,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著库车,像睡著了一般。 火紅的嫁衣襯著肌膚如雪珍坊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音叹洲,去河邊找鬼。 笑死,一個胖子當著我的面吹牛栈妆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铅檩,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼祥得,長吁一口氣:“原來是場噩夢啊……” “哼乒疏!你這毒婦竟也來了怕吴?” 一聲冷哼從身側(cè)響起伟件,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤煞肾,失蹤者是張志新(化名)和其女友劉穎习绢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡缺菌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年耿战,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焊傅。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡剂陡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狐胎,到底是詐尸還是另有隱情鸭栖,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布握巢,位于F島的核電站晕鹊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溅话,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一晓锻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧飞几,春花似錦带射、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽券勺。三九已至绪钥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間关炼,已是汗流浹背程腹。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留儒拂,地道東北人寸潦。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像社痛,于是被迫代替她去往敵國和親见转。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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