1 / 9 深入浅出- Android系统移植与平台开发(六) - 为 Android启动加速作者:唐老师 , 华清远见嵌入式学院 讲师
Android 的启动速度一直以来是他的诟病,虽然现在Android 设备的硬件速度越来越快,但是随着新版本的出现,其启动速度一直都比较慢, 当然,作为程序员, 我们是可以理解的, 智能手机本身就要启动很多服务来支持应用的功能,并且 Android 系统大部分还是使用的Java 语言编写的, 必然要运行在 Java 虚拟机里, 这也决定了它运行速度和启动速度都相对较慢
同时, Android 系统为了在执行用户应用程序时提高用户体验,还做了一些预加载机制,这也牺牲了开机启动时间
根据 Android 启动过程的分析可知,我们可以进行定制加速如下:
定制本地服务
定制 Android 系统服务
优化 ZygoteInit 的类预加载 preloadClasses 和资源预加载 preloadResources机制
PackageManagerService扫描、检查 APK 安装包信息下面我们依次来分析其实现步骤
定制本地服务由第二章,第 2 节可知,本地服务都是由C 或 C++编写,它们都执行在Linux 空间,在 init 进程的启动过程中启动了很多本地服务,如果我们的设备中没有电话模块、蓝牙模块,我们可以将这些没用的本地服务在init
rc 里注释掉
[cpp] view plaincopyprint
396 #service ril-daemon /system/bin/rild 2
397# class main 3
398# socket rild stream 660 root radio 4
399# socket rild-debug stream 660 radio system 5