Android 11 提高 App 冷启动速度 5% 以上

Android 11 提高 App 冷启动速度 5% 以上,第1张

近一年多以来一直在做性能优化( OOM、Native、ANR 等等),在后面我也会写一些性能相关的文章,将自己学习和实践所得分享出来。以今天这篇文章作为开端。

在 Android 11 上增加了一个新的功能 IORap,IORap 将会减少 App 冷启动耗时,经过在各种设备上测试,App 的启动速度(冷启动)平均提高了 5% 以上,部分设备提高了 20% 以上,开发者不需要做任何任何事情,即可享受带来的启动优化收益。

IORap 会提前预测需要那些 I/O 并将他们提前,通过这种方式减少 App 启动耗时。大量的 App 启动时间很长,是因为 blocking I/O 导致 IO 请求队列未到达饱和,在预取数据之后同时压缩 I/O ,App 可以很快的从 kernel pagecache 中访问预取数据,从而减少 App 启动耗时。

我们测试了在 Google Play Store 上一些热门的应用,80% 的 App 在启动期间,因为 blocking I/O 耗费了 10% 以上的时间,80% 的 App 耗费了 20% 以上的时间。我们在 Google Play Store 上测试了大部分应用都可以从 IORap 中获得收益。

IORap 作为一个独立的 service,它通过 IPC 与 package manager,activity manager, perfetto service 等等交互,以下是 IORap 的架构图。

IORap 基于一定的策略分析预取 I/O ,通过 perfetto 进行跟踪记录,会在 kernel pagecache 中添加和删除的页面。经过测试,启动期间通过 perfetto 进行跟踪记录造成的开销可以忽略不计。

基于上面的 perfetto trace,IORap 会在设备空闲时,生成预取列表,预取列表包含启动期间需要读取的文件信息(名称,偏移,长度), IORap 会根据 perfetto trace 分析 mm_pagemap 事件,并将结果 (inode、偏移量、长度) 转换为 (名称、偏移量、长度),然后将数据存储在预取列表中,预取列表是一个 protobuf 文件。

经过上一步,生成预取列表之后,后续运行 App 时 IORap 可以为 App 预取对应的数据,在上一步执行完之后,不在需要 perfetto trace, 开发者不需要做任何事情,系统会在用户点击图标时或者通过 Intent 请求它,执行预取 *** 作,享受带来的启动优化。

预取列表不会永久存在,会因为一些事件导致预取列表过时,而被删除,当 App 更新时,由于更新过程中可能会发生变化,和之前的预取数据会有一些差异,所以不建议在这个阶段预取数据,另外 dexopt 会在 App 安装后进行优化,优化后的 App,数据不会发生改变,这会使预取列表过时,过时的预取列表将被删除,这时会开始新一轮的 perfetto trace。

通过对比几个实验的结果,我们可以确定 IORap 对于低端机和高端机都会有收益,平均而言, IORAP 可以提高 26% 的启动速度,对于启动期间有大量 I/O 的 App 会有很大的帮助,例如,Spotify 低端设备和高端设备有两位数字的优化效果。

在实验过程中,发现了一个现象 IORap 性能会受到预取数据的影响,跟踪持续时间对于 IORap 来说非常重要,跟踪持续时间越短,预取的数据就越少,获得的性能也越低。另一方面,长时间的预取会导致需要预取的数据过多,这可能会导致启动速度变慢,我们可以根据 ReportFullyDrawn 事件的时间戳来估计跟踪持续时间。在正确的调用 reportFullyDrawn 回调可以提高 IORap 的性能。

我们对 IORap 所表现出来的性能非常的兴奋,在未来将会朝着以下两方向进行优化。

可以在 App 启动完成之后,调用 reportFullyDrawn 来帮助 IORap 进行更好的优化,IORap 主要有助于减少 I/O 阻塞时间,因此可以考虑对 App 启动进行分析,发现和解决其他可能存在的性能问题。

手机永久了,大量的垃圾文件导致手机越来越卡,iPhone也会有这种情况。那么苹果手机卡顿反应慢怎么办?如果手机非常卡顿的话不妨试试下面9招会让iPhone运行速度提升不少

苹果手机卡顿反应慢怎么办

1、清空Safari缓存

经常使用 Safari 浏览网页时间久了会产生大量缓存数据,需要清空Safari的缓存来保持它的运行流畅。想要执行这个 *** 作,需要进入设置-Safari,然后点击“清除历史记录”和“清除Cookies和数据”。

iPhone手机变卡变慢

2、关闭自动更新自动下载

如果iPhone在使用时出现卡顿,那可能是因为它正在后台尝试应用升级,而这完全可以通过手动的方式执行。想要更改自动升级应用的设置,你需要进入设置-iTunes Store和App Store自动下载的项目,然后全部关闭。

运行飞速起来的方法

3、删除旧的无用照片和视频

删除不必要的文件是加速手机运行速度的主要方式之一。如果iPhone当中存储了几百上千张照片以及很多的视频,可以将它们备份到电脑或是iCloud,然后在手机当中删除。毕竟手机内存空间有限,对于收藏照片来说,手机真不是一个好的地方。

删除旧的无用照片和视频

4、删除占用大量空间的应用

iPhone越是臃肿,运行速度也就越慢。可以在设置-通用-用量当中查看到每款应用的空间占用,然后将那些占用空间大但并不是必要的应用删除。大量“僵尸”应用存在于手机上,只会拖累手机的运行速度,与其让它放着占用大量空间还不如删了。

删除占用大量空间的应用

5、删除旧的短信会话

大量的短信也是拖垮手机速度的原因之一,有时短信多了,打开信息应用时要卡一下等待一会才能进入。如果搞不清楚手机为什么变卡,可以尝试删除手机当中那些无意义的垃圾短信。

删除旧的短信会话

6、关闭后台不必要运行的应用

频繁的关闭“后台”只会加快iPhone的耗电速度,但是对于一些平时不怎么用的应用,完全可以双击home键关闭它,只保留常用的即可。像定位导航和音乐类应用是常驻内存的,没用时最好关了。

关闭后台不必要运行的应用

7、能手动执行的 *** 作就不要开启自动模式

iPhone会经常询问是否要加入附近的Wi-Fi网络吗如果是,或许应该关掉这个功能。因为当iPhone在进行任何自动 *** 作时,比如搜索附近Wi-Fi或升级应用,都会降低运行速度。想要关闭该功能,需要进入设置-无线局域网-询问是否加入网络,然后将其关闭。

能手动执行的 *** 作就不要开启自动模式

8、定期重启手机

在使用iPhone时,大多数用户都会一直保持着开机状态,但定期重启手机其实是很有必要的。关闭手机可以帮助iPhone摆脱那些一直在占用系统资源的东西。

9、升级恢复系统

终极解决办法:刷机恢复系统,让系统恢复到刚出厂的状态。如果越狱也不知道干嘛还有就是不是非常必要建议还是别越狱了,越狱后安装些插件手机会卡很多。

以上就是让手机恢复神速的几个小妙招啦,希望能对大家有帮助!

;     苹果11获取不了软件可能是手机设置问题,具体解决办法如下:

      1、首先,解锁手机,进入手机,在桌面找到“设置”,点击进入;

      2、接着进入设置界面,在设置界面中,找到“通用”,点击进入;

      3、在进入通用设置界面中,在通用设置最下方找到“还原”,点击进入;

      4、进入还原界面中,在界面中,找到“还原网络设置”,点击还原网络设置;

      5、在d出的输入密码的界面中,输入手机锁屏密码,完成账号验证;

      6、在d出的删除网络设置确认对话框中,选择“还原网络设置”;

      7、等待系统自动还原网络设置,重启手机,进入手机设置,在设置中找到“无线局域网”,点击进入;

      8、进入“无线局域网”界面,在界面中找到“使用WLAN与蜂窝移动网的应用”,点击进入;

      9、在“使用WLAN与蜂窝移动网的应用”界面中,找到“AppStore”,点击进入;

      10、进入的“AppStore”界面中,在“允许AppStore使用数据”中,将网络设置为“WLAN与蜂窝移动网”,回到手机桌面,找到AppStore,点击进入AppStore。选择或者搜索要下载的app点击下载,就发现AppStore就可以正常下载APP了。

以上就是关于Android 11 提高 App 冷启动速度 5% 以上全部的内容,包括:Android 11 提高 App 冷启动速度 5% 以上、苹果手机11卡顿反应慢怎么解决、苹果11怎么获取不了软件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9682041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存