Android Framework学习笔记
1.整体架构
- Android APP
- Android Framework
- Android 运行层(Native库和运行时环境)
- Android HAL
- Linux Kernel
###Android Treble
- 作用:Android 8.0 引入,解偶、方便厂商升级系统
- 具体实现:引入vendor分区,拓展binder为hwbinder,使用hidl-gen工具生成C/Jave的接口类,在Android10.0时候废除HIDL,统一使用AIDL
- HIDL的两种方式:分为绑定式和直通式,绑定式运行在独立的进程中,直通式是为了兼容老版本HAL运行在Framework的进程中,使用哪一种方式在device下的manifest.xml中配置
2.系统启动流程
BootRom->BootLoader->Linux Kernel->Init->Zygote->SystemServer->Launcher
- BootRom、BootLoader 加载RAM,初始化硬件参数
- Linux Kernel 加载BSP,启动swapper(pid = 0,用于进程管理、内管管理、加载Driver等)和kthread(pid = 2 kernel所有进程的鼻祖)进程
- Init init进程启动后,启动SELinux安全策略,解析init.rc,启动logd、adbd、servicemanager进程,孵化出zygote进程
- zygote 启动虚拟机,注册JNI,孵化其他Andorid进程,包括SysetmService、launcher、SystemUI等,SystemService会启动PMS、AMS、WMS等核心服务