原标题:来自 Google 的云端优化,这个技巧让你的应用秒开
在先前的系列文章中,我们已经介绍了 Android 10 的许多改进:深色主题背景、手势导航、隐私加强……
但对我来说,Android 10 中最令人激动的改进其实是底层 ART 的再次性能优化,相比 Android 9,Android 10 的应用冷启动更快,运行也更为顺畅,理论上来说,消耗的内存也更少。
一倍速下冷启动桌面上的应用
这是怎么做到的?我们得从 Android 应用的「编译」说起。
「编译」究竟是什么?
我们都知道,ART 从 Android 5.0 Lollipop 开始正式取代 Dalvik 成为 Android 系统的默认运行时环境,Android 的流畅度也正是从那时开始有了质的飞跃。
运行时环境的改变为什么会带来这样的变化?
正如我们在介绍 EMUI 方舟编译器 时所介绍的那样,要运行 Android 应用,系统需要将应用的编程语言转换成 CPU 能够读懂的机器码,这种将应用的编程语言转换为机器码的过程就是「编译」。
而早期的 Android 系统大多都采用「解释执行」和 JIT(Just in time)的方法来进行编译,在应用运行的同时编译机器代码,虽然对内存和存储空间的压力相对较小,但应用运行的效率也因此变得低下,应用卡顿、无响应都是常事。
JIT 编译示意图
在 ART 运行时环境启用后,Google 开始采用一种名为预先编译(AOT, Ahead Of Time)的方法,在应用安装时便一股脑儿将代码都编译为手机能够读得懂的 odex 格式代码。
这种做法避开了解释执行和 JIT「同传」带来的运行效率问题,但安装和更新应用耗费的性能和时间都相应变长,一次安装甚至可能需要等待几十秒的时间。另外,这种完全编译的方式还会使得应用占用更大的存储空间。
早期 Android 这个界面非常常见……
举个形象的例子,这种做法就好比厨师把菜单上的所有菜都做完后,再一并端给顾客,顾客虽吃得开心畅快,可这一桌子的菜可让他们等得太久了。
考虑到实际的用户体验,Google 从 Android 7.0 开始做出让步,尝试结合使用预先编译和即时编译两种方法,让应用在安装时间、所占空间和运行性能之间达到一个平衡。
编译方式对比示意怎样的「编译」方式最合适?
如果要在预先编译和即时编译之间选择一个平衡点,那应用内哪些代码应该预先编译,哪些代码可以暂时不做编译呢?
当然是你我(也就是用户)说了算。
具体而言,Google 希望让系统生成一套配置文件来引导并优化这个编译过程。以 Pixel 为例,最初安装应用的时系统不会进行任何预先编译,以最快的速度完成应用安装。而在应用前几次运行时,系统就会对其进行即时编译,同时还会生成对应的配置文件。随后,手机在闲置、充电时,手机系统的编译器(dex2oat)就会根据这个配置文件对用户日常使用中常用到的部分代码进行预先编译。
从 Android N 开始后由配置文件来引导应用编译,使得应用的启动速度随着使用时间越来越快。
来源:Google 内部数据。这样一来,用户使用时间越长,手机上的应用被编译的部分就越多,应用的启动速度就会越来越快。在不影响应用启动性能的同时,还能减少应用所占用的内存和存储空间。
同样用上面提到的那位「厨师」做例子:这种编译方式就好像一位聪明的厨师,他在顾客下单时多问了一句顾客的喜好,然后先呈上了顾客喜欢的菜,让顾客边吃边等。
说到这里可能有人会问了:
有没有办法,可以让顾客在到店前先用小程序远程点单,预先声明自己爱吃什么菜,让厨师上菜更快一些?
这就是 Android 10 带来的改进——通过 Google Play Cloud 下发 ART 优化配置文件,从而提高应用的启动性能。具体而言:
汇总多台设备的匿名数据,在云端生成核心配置,并通过 Play 商店随应用安装下发给新的设备。
实际的优化过程、具体步骤、实际优势肯定要更为复杂。通过这三个步骤,无需开发者劳心,Google 已经于去年年底开始向 Play Store 上的所有应用下发云端生成的配置文件。这使得:
从云端下发编译配置文件后,部分应用的启动速度加快数据。
Google 也在这篇博文中表示这样利用配置文件聚合匿名的用户数据进行分析,最后回馈改善用户体验的模式可以应用到更多的领域。比如让开发者根据这些数据中应用代码与用户的相关性、重要性来重新衡量、精简、组织应用中的代码,使得应用更高效。搭配 App Bundle 特性,现在开发者已经可以将应用拆分分发,缩小应用体积。
来自用户,回馈用户,这就是生态。
自己动手完成应用编译
如果你的设备还停留在 Android 7、Android 8,并不支持前文所述的新特性,如果你并不能顺畅地连上 Play Store,设备的厂商也没有做针对性的编译优化,如果你对应用的启动速度并不满意,也乐意用存储空间来换取一些速度,都可以通过 adb 自己动手下达完全编译应用的指令。
通过手机连接到电脑后执行 adb shell,或是在手机上直接打开终端模拟器:
强制编译某个软件包
cmd package compile -m speed -f com.tencent.mm #以强制编译微信为例
强制编译所有软件包
cmd package compile -m speed -f -a
用没有 root 权限的工作机 Reno 进行编译
清除配置文件数据并移除编译的代码则需要 root 权限:
su #获取 root 权限
cmd package compile --reset com.tencent.mm #清除微信的被编译代码
cmd package compile --reset -a #清除所有被编译的代码
无论是编译还是清除代码,都会耗费大量手机性能,且耗时较长。建议选取个别高频第三方应用进行编译。
小结
无论是我们之前深度 介绍 过的 Project Mainline,还是本文介绍的云端下发应用的编译优化配置文件,或是将应用拆分分发的 App Bundle 特性,Google 把越来越多的优化工作放在了云端,而这一切是身在国内的我们无法享受到的。国内厂商该如何弥补这一块缺失?是不惜碎片化自己推出解决方案,还是联合广大国内开发者一起寻找解决方案?
参考资料:
题图来自 。
> 下载少数派 、关注 ,了解更多玩机技巧
相关下载 |
使命召唤系列大逃杀模式《使命召唤:战区》已正式上线,上线后便吸引了许多新老粉丝踊跃入坑,不仅继承了系列的优良传统这次还免费提供给玩家进行游戏,这波操作可谓是诚意满满。不详情>>
原标题:“云游戏”到底行不行:Google Stadia体验如何? 编者按:Google Stadia可以算目前最成熟的云游戏服务了,遗憾的是,国内的玩家不能第一时间体验到它详情>>
据多名知情人士透露,瑞典CSGO俱乐部GODSENT正在计划签下现Japaleno阵容重新回归职业赛场。 而CSGO分部重启计划的负责人将会是前GODSENT战详情>>
原标题:外媒:华为可能很快获得Google Play服务许可 10月12日消息,据《纽约时报》报道,华为可能很快重新与美国供应商合作,此前美国当局发布的禁令禁止详情>>
原标题:派早报:Google Pixelbook Go 真机曝光、小米新机或采用 120Hz 屏幕刷新率、三星可能推出 Galaxy Note 10 Lite 和 Galaxy S10 Lite 等 Googl详情>>
原标题:Google 地图新功能助力视障人士轻松到达步行目的地 Google 地图的一项新功能可以更轻松地到达步行目的地。这款应用现在可以提醒人们他们详情>>
原标题:欧盟法院允许诺基亚和西门子和参与Google反垄断案 PingWest品玩10月11日讯,据路透社报道,Google正在欧盟普通法院(General Court)挑战欧盟委员详情>>
原标题:Google 智能音箱新增「流传输」功能,与苹果、Sonos 的还有点不一样 国内智能音箱市场表面上看似已经进入一个相对平静的阶段,而在相对成熟的详情>>
原标题:华为nova 5T即将上线德国,预装Google应用与服务 IT之家10月8日消息 据HC消息,华为公司宣布将从德国市场开始,将nova 5T逐步引入欧洲市场,尽管华详情>>
谷歌曾在去年的I/O大会上为人们预告了一个叫做“Colorize(上色)”的功能,即让黑白照片变为彩色。很显然,这操作起来并非易事,因为支持这一功能的AI需要以正确的方详情>>
【导读】想知道今天游戏界发生了哪些大事?那就一定要来“今日看点”一睹为快!GOG 11周年版大型促销特卖 《巫师3》年度版限时47元!《底特律》PS4版全球销量突破320万!《幽灵行动详情>>
【导读】知名游戏厂商CDPR的自家PC平台GOG最近迎来了11周年店庆,为此他们展开了“11周年纪念版 员工推荐”大型特卖促销活动! 《详情>>
为配合万圣节,Google的定制版谷歌图标Doodle推出了一款能过联机对战的小游戏《Great Ghoul Duel》。本作也是Google首次在Google Doodle上推出多人对战游详情>>
原标题:GoPro 新品来了 三款配件让它变身最强运动相机 去年,GoPro 发布了 HERO7 Black 运动的相机,一年后 HERO8 Black 也和大家见面了。在过去的一详情>>
韩国Com2uS宣布,由旗下子公司Nova Core开发的放置型塔防RPG新作《Girl's War Z》( 좀 비 여 고 ,中文名暂称)正式在Google Play上架。本作为一款由之前曾开发制作《Dragon详情>>
原标题:Google Assistant语音助理现已支持Xbox One 今天(9月27日)微软官方宣布与Google合作为Xbox One带来基于Google Assistant的Xbox Action数详情>>
对喜爱狼人杀的小伙伴来说,每次《Godlie》播出的消息都足以让人振奋。在上周,第四季节目圆满收尾后,粉丝们纷纷表示没看够,并表示期待sp,熟悉《God详情>>
原标题:泡泡玛特携手GOOBI重返暑假 快来继续开心一“夏”吧 冰镇的西瓜、夏日的蝉鸣,还有看不完的精彩剧集……暑假的时光总是十分美好,令人怀念。详情>>
原标题:微软使用Google语音助手扩展Xbox语音功能 PingWest品玩9月27日讯,据cnBeta报道,Xbox团队今天宣布,将通过谷歌语音助手提供的Xbox Action,进一步详情>>
原标题:RYL.Godlike将重新连接?云顶之弈或将推出电竞项目 近日,拳头发布的一则云顶之弈的数据报告引起了许多英雄联盟玩家们的注意。在这一则报告中显详情>>
原标题:GoStaking | 屯币者产生睡后收入的正确姿势 2019年币圈最热的话题除IEO外非Staking莫属了,相信各位读者们对目前主流的质押方式都已经有所了详情>>
原标题:派早报:iPhone 11 Pro Max 屏幕获得 A+ 评级、Google 宣布推出 Google Play Pass 订阅服务、微软将召开「Inside Xbox」在线发布会等 iPhone详情>>
原标题:Google推出软件订阅服务”Google Play Pass“:每月4.99美元 PingWest品玩9月24日讯,根据The Verge报道,23日,Google推出了一项名为“Google Pla详情>>
原标题:应 “被遗忘权” 要求,Google 或将在全球范围删除链接 早在五年前,欧盟颁布法律,保障人们在互联网上享有 ,强制 Google 应用户要求删除搜索结详情>>
原标题:自己动手,Google我有!华为Mate 30系列被曝允许用户自行安装谷歌应用 本月19号,华为在德国慕尼黑正式发布了HUAWEI Mate 30系列手机,虽然此次Mat详情>>
原标题:Google 抢到量子计算的“霸权”? 量子力学,这个曾经经典物理学天空上的那朵乌云,已经不再只停留在理论阶段,而是对各行各业都带来了实际的影响详情>>
原标题:外媒成功在华为Mate 30上安装Google Play:亲测能正常运行 IT之家9月22日消息 早前华为在德国慕尼黑正式发布了HUAWEI Mate 30系列智能手机。详情>>
原标题:Godlie:安德罗妮点狼坑,自信已看穿全场身份,自称顶配玩家 苦瓜原创,翻版必究! 9月20日,虎牙Godlie迎来了收官之战,作为这一季的最后一期,官详情>>
原标题:Google 宣布对可再生能源进行重大投资 Google 日前宣布对可再生能源进行重大投资。该公司已成为全球最大的可再生能源企业买家。最新的交详情>>
原标题:华为Mate30依旧安卓系统 但没了Google Play 转自天极网 昨晚华为在德国慕尼黑发布 Mate 30 手机后,除了双 4000 万像素的高素质镜头模组和要详情>>
原标题:GODLIE:JY退坑是狼人杀的终章?大结局主题引人回忆! 狼人杀已经以来都是备受人们追捧的聚会游戏,而在结合了直播的形式之后,狼人杀变得更加的高大上详情>>
原标题:Godlie第四季收官,阵容空前豪华,JY才是狼人杀的大满贯玩家 前不久,在狼人杀圈内颇具盛名的JY也宣布退圈,一时间引得不无数玩家感慨,老玩家们详情>>
原标题:Godlie最终篇来袭,狼人杀大神齐聚,JY这次有压力了 说起全球最火爆的“聚会游戏”你首先想到的是什么?恐怕很多人都会说是《真心话与大冒险》、详情>>
原标题:四家国产操作系统通过中兴GoldenDB数据库兼容认证 IT之家9月18日消息 近日,中兴通讯GoldenDB数据库在技术生态建设上再次获得新的进展。普华详情>>
原标题:四家公司国产操作系统通过中兴GoldenDB数据库兼容认证 证券时报e公司讯,近日,中兴通讯GoldenDB数据库在技术生态建设上再次获得新的进展。普详情>>
原标题:Google计划于10月推出新的Wi-Fi路由器 PingWest品玩9月18日讯,根据9to5google报道,Google计划在10月15日的发布会上,推出新版Google Wi-Fi路由详情>>