Android启动缓慢吗?
我的手机具有四核,3 Gig RAM ... Android(KitKat和Lollipop两者)都需要大约80秒才能启动完成。
我的手机只有1G RAM(Zenfone 4)的双核,而且我从来没有遇到这个问题。在约60秒的时间内完成冷启动,并以40-ish(CyannogenMod 12.1)重新启动。
一些用户报告使用Ubuntu和systemd的启动时间少于10秒,而大约20秒...
这取决于配置和您认为的“启动时间”。大约90秒后,我的笔记本电脑(i5第一代,带有旋转磁盘的4 GB RAM)被认为可以使用(完成引导)。当然,我可以延迟/禁用某些服务以获得更快的启动时间,并根据需要手动启动它们。但是,根据我的观点,基于我的偏爱,这将不算是可用的。
在PC和手机上
有一些 PC和移动Linux之间的比较时,你应该考虑差异。从CPU到内核。最显着的差异:
- 由于设备的特性,移动CPU 大多以节能为主要考虑因素。这极大地影响了性能。
- Android内核具有一些特定于移动设备的功能,这些功能可能会影响启动时间和硬件I / O访问。
- 此外,已知Android内核与主线/稳定器存在兼容性问题。这主要是由于供应商倾向于保留与设备驱动程序兼容的旧内核版本。AOSP棉花糖运行
3.18.10
时内核处于稳定状态4.6.2
。
那么,是什么让Android启动如此缓慢呢?
我们为什么不检查?:)
如果您有权访问adb并已启用Developer Options,请使用以下命令检查启动日志
adb logcat -d -b events -v threadtime | grep "boot"
在我的设备上,这是输出:
bambang@pamungkas ~ % adb logcat -d -b events -v threadtime | grep "boot"
06-08 04:35:01.417 193 193 I boot_progress_start: 9906
06-08 04:35:03.718 193 193 I boot_progress_preload_start: 12208
06-08 04:35:07.838 193 193 I boot_progress_preload_end: 16328
06-08 04:35:08.158 513 513 I boot_progress_system_run: 16647
06-08 04:35:09.880 513 513 I boot_progress_pms_start: 18370
06-08 04:35:10.204 513 513 I boot_progress_pms_system_scan_start: 18693
06-08 04:35:24.487 513 513 I boot_progress_pms_data_scan_start: 32977
06-08 04:35:28.552 513 513 I boot_progress_pms_scan_end: 37042
06-08 04:35:28.696 513 513 I boot_progress_pms_ready: 37186
06-08 04:35:33.088 513 513 I boot_progress_ams_ready: 41578
06-08 04:35:40.755 513 533 I boot_progress_enable_screen: 49244
如您所见,从VM启动到窗口管理器绘制初始屏幕的总启动时间约为40秒。不包括在固件和内核空间上的额外时间(在链接的服务器上,这相当于步骤1-4)。
请注意,处理整个系统的apk(boot_progress_pms_*
)大约需要18秒,这相当于启动时间的〜45%,其中包括:
因此,通常,总启动时间取决于设备上安装的软件包(应用程序)的数量。更多的应用程序意味着在pms过程中等待的时间更长。此外,启动活动大约需要5秒/启动时间的20%。如果没有系统行为的深入了解,其余的内容既不重要也不可以安全修改。
我有什么办法可以加快启动过程?
- 尝试其他ROM。索尼是为调节员提供健康环境的“好人”之一。我建议使用AOSP或Cyanogen。请注意限制
- 测试,不要假设!可以很容易地假设A启动慢,B启动快。像上面这样的简单logcat命令将揭示一些有用的信息,用于ROM之间的基本启动时间基准测试。
- 如果您知道自己在做什么,Embedded Linux Wiki会列出一些可能的调整以缩短启动时间。
关于改善启动时间
对你的评论
ART旨在使运行的应用程序更快。谁的工作对一个能让启动更快的开箱即用的?
在我看来,调整启动时间既不必要,又提供了微不足道的收益。从理论上讲,由于您的电话会在大多数情况下保持开机状态;因此,保持系统稳定性(在较长的引导过程中进行权衡)对于确保更长的正常运行时间和更少的错误至关重要。