首页 > 其他分享 >安卓架构

安卓架构

时间:2024-09-15 13:35:32浏览次数:8  
标签:架构 安卓 Zygote 硬件 init Linux 进程 Android

安卓架构

目录

1 Linux 内核层

Android 平台的基础是 Linux 内核。例如,ART 依靠 Linux 内核来执行底层功能。Linux 内核的安全机制为 Android 提供了相应的保障,也允许设备制造商为内核开发硬件驱动程序。

2 硬件抽象层 HAL

硬件抽象层提供标准界面,向更高级别的 Java Framework 层显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机和蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

3 Native C/C++ 库 && Android Runtime

每个应用都在其自己的进程中运行,都有自己的虚拟机实例。ART 通过执行 DEX 文件可在设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用内存很少。ART 主要功能包括:AOT 和 JIT 编译,优化的 GC,以及调试相关的支持。

Native C/C++ 库主要包括 init 孵化来的用户空间的守护进程、HAL 层以及开机动画等。启动 init 进程,是 Linux 系统的用户进程,init 进程是所有用户进程的父进程。

4 Java Framework 层

Zygote 进程:

是由 init 进程通过解析 init.rc 文件后 fork 生成的,Zygote 进程主要包括:

  • 加载 ZygoteInit 类,注册 Zygote Socket 服务端套接字
  • 加载虚拟机
  • 提前加载类 preloadClasses
  • 提前加载资源 preloadResources

System Server 进程:

是由 Zygote 进程 fork 而来,System Server 是 Zygote 孵化的第一个进程,System Server 负责启动和管理整个 Java Framework,包括 ActivityManager、WindowManager、PackageManager、PowerManager 等服务。

Media Server 进程:

是由 init 进程 fork 而来,负责启动和管理整个 C++ Framework,包括 AudioFlinger、Camera Service 等服务。

5 System Apps 层

Zygote 进程孵化出第一个 App 进程是 Launcher,这是用户看到的桌面 App;

Zygote 进程还会创建 Browser、Phone、Email 等 App 进程,每个 App 至少运行在一个进程上。

所有的 App 进程都是由 Zygote 进程 fork 生成的。

系统内置的应用程序以及非系统级的应用程序都属于应用层,负责与用户进行直接交互。

标签:架构,安卓,Zygote,硬件,init,Linux,进程,Android
From: https://www.cnblogs.com/Joooook/p/18415182

相关文章

  • 信息架构的战略视角:驱动数字化转型的设计原则与实践创新
    在数字经济快速发展的今天,企业的成功越来越依赖于其信息架构的稳健性和灵活性数字化转型不仅要求技术创新,更需要架构设计上的深思熟虑。《信息架构:商业智能&分析与元数据管理参考模型》作为信息架构领域的权威指南,为企业提供了宝贵的实践经验和应用策略。《信息架构:商业智能&......
  • 二级缓存架构极致提升系统性能
    前言随着k8s成为用云新界面,容器成为众多用户“弹性”的利器,因此容器的创建天生具备高并发特性。高并发、大数据量下,为了提供更好的容器弹性体验,笔者通过二级缓存的设计,成功优化了系统性能、资源消耗、系统容量。但持续压榨性能的道路是曲折的。各种缓存方案需要考虑非常多因素,包括......
  • 高级java每日一道面试题-2024年9月12日-架构篇[DDD领域驱动篇]-如何使用领域驱动设计(D
    如果有遗漏,评论区告诉我进行补充面试官:如何使用领域驱动设计(DDD)中的事务脚本模式?我回答:在Java高级面试中,讨论如何使用领域驱动设计(DDD)中的事务脚本模式是一个很好的话题,因为它不仅考察了面试者对DDD原则的理解,还检验了其在实际项目中应用这些原则的能力。事务脚本模......
  • 高可用架构
    高可用架构主备一致基本原理M-S架构:客户端的读写都直接访问A库,直到切换时把客户端读写切换给B库,A变成备库备库设置为readonly状态:防止切换过程出现双写,可以用readonly状态判断节点的角色基本原理:主库A和备库B之间维持一个长连接,主库内部有一个线程专门用于服务B的这个长连......
  • 9、【实战中提升自己】华为 华三中小型企业网络架构搭建 【无线架构之低速率限制与负
     1 拓扑与说明         某公司的网络架构,这样的架构在目前的网络中是在常见的,假设您接收一个这样的网络,应该如何部署,该实战系列,就是一步一步讲解,如何规划、设计、部署这样一个环境,这里会针对不同的情况给出不同的讲解,比如拓扑中有2个ISP,假设客户需求是,想实现主备的......
  • 科普文:软件架构数据库系列之【MySQL的sql_mode参数】
    概叙科普文:软件架构数据库系列之【MySQL解析器和优化器】-CSDN博客科普文:软件架构数据库系列之【MySQL查询优化器中的优化策略optimizer_switch】-CSDN博客科普文:软件架构数据库系列之【MySQL执行计划Extra梳理】-CSDN博客科普文:软件架构数据库系列之【MySQL控制查询优化器......
  • 打造未来的信息架构:从理论到可执行方案的全面指南
    信息架构:从理论到实践的转型之路在快速发展的数字化时代,信息架构不仅是企业IT战略的一部分,更是推动业务创新和提高运营效率的关键因素。成功的信息架构需要从理论走向实践,通过设计和实施一系列解决方案,解决企业在数据管理、系统集成和业务优化中的实际问题。《信息架构:商业智......
  • 【Ehviewer绿色版】1.9.8.4最新版本下载2024安卓苹果
     Ehviewer是一款主要用于浏览和下载漫画、插画等二次元图像内容的软件。适用安卓和苹果系统,Ehviewer拥有海量的漫画作品,涵盖各种题材和风格,包括日本漫画、韩国漫画、欧美漫画以及国内的一些同人创作等。无论是热门的商业漫画还是小众的独立作品,都能在Ehviewer上找到,现在已经更......
  • TiDB 数据库核心原理与架构_Lesson 01 TiDB 数据库架构概述课程整理
    作者:尚雷5580注:本文基于TiDB官网董菲老师《TiDB数据库核心原理与架构(101)》系列教程之《Lesson01TiDB数据库架构概述》内容进行整理和补充。一、TiDB体系架构1.1TiDB五大核心特性一键水平扩缩容得益于存储与计算分离的架构,TiDB支持按需对计算和存储进行在线扩......
  • 几张图带你了解TiDB架构演进
    作者:ShawnYan历时四个月,恭喜赵老师的《TiDB从0到1》系列文章顺利完结,小编再次梳理一遍文稿,并附注解分享给大家。整体架构从TiDB1.0到8.0,TiDB的体系结构一直在不断演进。接下来让我们一起看看整体架构的变化。TiDBv1TiDBv1,主核心框架已定,TiDB由TiDBServer,TiKVSer......