android 工作原理,android系统架构和工作原理

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

google官方android系统架构图

2bc2aa6fef3d

image.png

系统启动过程

2bc2aa6fef3d

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创建

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值