APK瘦身神器:Android App Bundles,让应用体积减少25%

    大部分在应用商店上架过App或者进行过缩包优化的开发者可能都知道,在Android平台上,APK瘦身方面的优化手段其实不多,无非压缩资源、删除无用资源、代码混淆、在线资源库、微信压缩打包工具、插件化等,充其量只是一些裁裁剪剪,并没有从根本上解决安装包过大的问题。

    但Google I/O 2018之后,这个问题可能不会再困扰开发者了,因为Google官方推出了一套堪称神器(事实上谷歌官方称它为artifact,就是“神器”)的编译、发布APK机制:Android App Bundles,直译为“应用束”。

    事实上,一开始接触到App Bundles 这种机制,听到官方人员“夸夸其谈”的介绍(Youtube有介绍视频),尤其是了解到它存在的限制,比如需要加入谷歌的测试计划,版本限制(5.0以上),需要在谷歌商店的Play Console(应用控制台)注册自己的App,只能通过Google Play发布等,我是很嫌弃的,因为谷歌并不是没有这种雷声大雨点小的先例。

    然而当我真的深入了解了Android App Bundles 和它的配套发布机制:Dynamic Delivery(动态交付),还是要说一声“谷歌爸爸真厉害”。

    其实上面的限制在长期来看并不是问题,首先,5.0以上的Android app,支持App Bundles 和Dynamic Delivery,应用体积大大减少,而对于5.0以下的版本,Google也有相应的减少体积的方法,只是效果没有那么明显。其次,对于针对国内市场的开发者而言,以中国如此蓬勃的Android生态来看,恐怕不久各大应用商店会有类似的机制出现,因此提前了解好处大大滴有。

谷歌爸爸我错了

    Android App Bundles

    Android App Bundle是一种新的应用编译、上传、发布形式,它包括了开发者应用中所有编译过的代码、资源(例如图片、语言、字符串资源等)、屏幕大小、硬件架构等等。使用此种格式发布的应用,用户在应用商店看到的包的大小精简到极致。App Bundle需要配合Dynamic Delivery(动态交付)一起使用,原理在下文一起介绍。


新的发布机制

    Dynamic Delivery

    动态交付,是Google Play提供的新的app服务模块,配合App Bundle使用,可以针对不同用户的设备生成并提供优化过的APK。从而用户可以仅仅下载他们运行此App需要用到的代码和资源。开发者不再需要针对多种设备去编译,签名,管理不同的APK(Multi-APK机制),用户可以下载体积更小的,优化过的APK。

    比如,一个英语国家,谷歌手机Pixel 2L的使用者,仅仅需要下载基础代码,xxxhdpi的资源,en的语言包,arm64硬件架构等,而不再需要其他不必要资源。

    普通的apk发布流程:


普通的apk我普通地发

    使用App Bundle + Dynamic Delivery的应用发布流程:


小小的apk


动态交付

    动态交付的功能不仅限于此。开发者可以为应用的工程添加动态功能模块,包含在App Bundle中。这些模块包含了用户首次下载安装应用不需要用到的功能和资源。在集成了 Play Core Library 的SDK后,我们可以在之后请求用户去安装这些动态功能模块。通过动态交付,Google Play仅仅只会提供针对这台设备所需要的代码和资源(某种语言,某种分辨率的资源,对应的ABI)。

    对于使用Android Studio开发的App,大多数工程很轻松就可以支持动态交付并建立App Bundle应用束。但动态功能模块还在测试中,支持这个功能可能需要对应用进行重构。

    篇幅所限,本文章仅介绍了应用束和动态交付的机制和原理,假如有比较多的朋友关注和喜欢这项技术,我将在之后的文章继续分析它的实现方式、兼容性问题和翻译相关文档等。

    也可以在以下链接了解更多:

    谷歌Android开发者

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容