美文网首页
android系统架构和工作原理

android系统架构和工作原理

作者: 没风的地方 | 来源:发表于2020-09-05 16:26 被阅读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创建

    相关文章

      网友评论

          本文标题:android系统架构和工作原理

          本文链接:https://www.haomeiwen.com/subject/ewkfektx.html