Android与YunOS 启动时间分析

阿里最近发布了YunOS 6系统,该系统其中一大特性是开机速度变的更快,比相同配置的Android系统手机缩短了一半时间。

Android与YunOS 启动时间分析

YunOS 6通过对开机服务依赖流水线化,更细定义系统的服务关系;发挥多核并发优势,可以让并行的程序跑得更快;消除冗余开机服务等措施,实现了15秒闪电开机,与谷歌Android N相比,在同等配置的手机上,YunOS开机时间缩短了一半。

粗略测试一下华为P9开机时间,初始化Linux+framework环境花费12秒左右,初始化Android 世界花费时间10秒左右,进入锁屏时开机后24秒左右,误差±2s,这个手机系统性能应该是属于Android手机第一梯队的,普通的千元机一般开机应该在30秒以上,这么看来YunOS确实是有独到之处,下面我们分析一下Android启动过程中比较耗时的部分。


Android与YunOS 启动时间分析

初始化第一部分启动kernel,初始化service_manager、surface_flinger、audio_flinger、media、audio_service等,这些都完成之后就开始初始化Android世界,这些初始化对于Android或者YunOS都是必不可少的,不了解YunOS是否修改了binder等源生Android的所特有的进程,所以第一部分Android系统和YunOS时间应该差不多的。


第二部分初始化是从Zygote进程开始的,这里耗时的应该和虚拟机有关,YunOS特有的虚拟机应该节省了不少时间。看YunOS的官方介绍,YunOS应该拥有特有的类似Android的services,比如AMS、WMS、PMS等,那么在虚拟机加载这些services的native方法时就不一样,针对耗时做了优化。

再则,Android系同Zygote进程孵化出的system_server进程包含了上面提到的AMS、PMS、WMS等所有service的初始化,并在进程内部建立内部service池,以及外部service池供App使用,这一步也是比较耗时的,所有的service都必须初始化,并进入ready状态。针对这部分优化可以节省不少时间。

YunOS的应用时免安装的,那么PMS就应该大不同,免去了PMS一开始对所有应用扫描,解析AndroidManifest.xml的时间。

YunOS的另一特性是对应用进程的管理,我们看官方的介绍

在性能方面,YunOS通过关键首屏的快速渲染机制,基于Command Buffer的并行渲染架构,以及通过使用场景感知能力,能够预测一些应用的启动顺序,提前加载应用的资源,让系统、服务、应用更快地显示。谢炎表示,YunOS 6应用冷启动时间相比Android系统缩短200%以上。

系统运行时管理的关键是运行效率,所以YunOS 6在设计运行时的时候就加入了很多的优化,比如对于合同进程有系统统一托管,对恶意进程智能清除,前台进程充分享受硬件资源等措施,最终使得在同等配置的机器上,相比Android N系统,YunOS 6的可用内存提升了40%,同时功耗降低了25%。

YunOS不仅针对了应用进程进行了优化,连渲染机制都改了。


总结一下,YunOS对启动时间优化的点

1.自建虚拟机

2.system_server优化包括

2.1应用免安装

2.2.应用进程启动顺序优化

2.3.渲染机制优化

可以说YunOS针对Android系统耗时的操作都进行了优化,而且免去了Android各版本的适配。