首页»版块 历史内容 历史内容 历史内容 【玩机小知识】为什么安卓手机升级系统后,首次启动会.. ...

【玩机小知识】为什么安卓手机升级系统后,首次启动会...

[复制帖子标题和链接]

33294

荣耀粉丝8010258  LV10  发表于 2017-9-10 19:43:25 属地未知 来自:浏览器
【玩机小知识】为什么安卓手机升级系统后,首次启动会...

为什么会出现这种情况?

其实,这是Android 系统从5.0版本开始就出现的普遍情况——手机在运行应用之前先将应用的字节码翻译成后续运行效率更高的机器码,这个过程技术上称为Dex2oat

【玩机小知识】为什么安卓手机升级系统后,首次启动会...

Dex2oat是什么?

为什么安卓从5.0开始要做这个dex2oat呢,说白了就是做一次编译工作(耗时可能有点长),后续手机运行便能更流畅,应用打开也更快速。

这就好比你跟一个外国人交流,之前总是需要一个翻译,沟通起来非常麻烦;后来你自己学习了英语,你把自己的语言直接编译成了沟通效率更高的外语。这样一来,虽然你首次学外语的过程很痛苦很漫长,但后面会发现跟外国人交流起来效率提高了许多,而且这效率提升是长期持续的。

【玩机小知识】为什么安卓手机升级系统后,首次启动会...

Dex2oat什么时候会进行翻译?

那么,我们的安卓手机什么情况下会进行Dex2oat翻译呢?主要有以下几个时机:

  • 机器首次开机或者恢复出厂设置;
  • 系统升级后开机过程;
  • 应用安装时;
  • 应用更新时;
  • 应用首次启动时。(如果此应用之前四种情况没有做过dex2oat)


【玩机小知识】为什么安卓手机升级系统后,首次启动会...

总结

正如前面所说的,我们的安卓手机在系统升级后的启动过程中,会有一个应用程序的扫描阶段,将应用的字节码翻译成机器码,这过程需要一定的时间,而且已安装的应用越多时间越长。这个过程其实是Android系统本身为提高升级后应用的性能和用户体验而进行的优化过程。

一个应用在做完Dex2oat后,只要系统不升级或者应用本身不升级,之后每次执行都是直接执行生成的机器码,不用每次解释再执行,效率更高,运行更流畅,启动更快速,因此其实这个时间是值得等待的。

文字来自:@花粉俱乐部 微信公众号



评论4
荣耀粉丝8010258  LV10  发表于 2017-9-10 19:44 属地未知 来自:浏览器
沙发备用
荣耀粉丝8010258  LV10  发表于 2017-9-10 20:12 属地未知 来自:浏览器
huafans01246809565 发表于 2017-9-10 20:03
版主我的感觉怎么相反呢,都是APP卡了才重启,重启之后手机速度才叫快呢? ...

这里分析的是手机升级后的一小段时间卡顿的原因哈
ironyyz01  LV10  发表于 2017-9-12 23:03 属地未知 来自:浏览器
关于手机升级后的初次卡顿,教程很详细而清晰,虽然有借鉴,但是很有了解的必要哦,感谢神级的教程分享,期待更多优质资源和教程的分享哦!
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表