android系统架构和工作原理

2020-09-05  本文已影响0人  没风的地方

系统启动、应用启动、四大组件启动、界面加载、时间分发

google官方android系统架构图

image.png

系统启动过程

image.png

Boot ROM和Boot Loader

RAM:随机存储内存,俗称运行内存,断电内容丢失
ROM:只读内存,俗称硬盘,数据持久化

Boot ROM:长按开机键,执行ROM中预设的代码,加载引导程序到RAM
Boot Loader:执行引导程序检查RAM,初始化硬件参数,准备启动系统

Linux Kernel(硬件驱动)

swagger进程(又称idle进程)(pid=0):初始化进程管理,内存管理;加载驱动程序。
kthreadd进程(pid=2):创建内核工作线程kworkder,软中断线程ksoftirqd,thermal等内核守护进程。

HAL(硬件抽象层)

硬件层的封装,为硬件层的调用提供统一的调用接口

Native系统库和Android Runtime

Native 系统库:包括init孵化的用户守护进程、HAL和开机动画。

1 init进程孵化出ueventd、logd、healthd、installd、adbd、lmkd等用户守护进程
2 init进程还启动 servicemanager(binder服务管家)、 bootanim(开机动画)等重要服务
3 init进程孵化出Zygote进程,Zygote进程是Android系统的第一个Java进程(即虚拟机进程), Zygote是所有Java进程的父进程

Android Runtime(ART)

应用:在自己的进程中运行,有自己的虚拟机实例
DEX文件:Android字节码格式文件
ART:执行DEX,在设备运行多个虚拟机;预先(AOT)和即时(JIT)编译,优化垃圾回收(GC),调试相关支持

Framework

java封装的应用服务,通过调用系统库服务,来实现具体的功能,并对应用层提供统一接口

应用层

应用:每个app都运行在至少一个进程上,有自己的虚拟机实例
桌面应用:即Launcher,Zygote孵化的第一个进程
应用进程:所有的进程都有Zygote创建

上一篇 下一篇

猜你喜欢

热点阅读