【Android】AOSP 架构

Android 官网对 AOSP 结构图进行了更新,如下所示:
请添加图片描述

  1. Android 应用(Android Apps)

    完全使用 Android API 开发的应用。在某些情况下,设备制造商可能希望预安装 Android 应用以支持设备的核心功能。

  2. 特权应用(Privileged Apps)

    使用 Android 和系统 API 组合创建的应用。这些应用必须作为特权应用预安装在设备上。

  3. 设备制造商应用(Device Manufacturer Apps)

    结合使用 Android API、系统 API 并直接访问 Android 框架实现而创建的应用。由于设备制造商可能会直接访问 Android 框架中的不稳定的 API,因此这些应用必须预安装在设备上,并且只能在设备的系统软件更新时进行更新。

  4. 系统 API(System API)

    系统 API 表示仅供合作伙伴和 OEM 纳入捆绑应用的 Android API。这些 API 在源代码中被标记为 @SystemApi。

  5. Android API

    Android API 是面向第三方 Android 应用开发者的公开 API。

  6. Android 框架(Android Framework)

    构建应用所依据的一组 Java 类、接口和其他预编译代码。框架的某些部分可通过使用 Android API 公开访问。框架的其他部分只能由 OEM 通过系统 API 来访问。Android 框架代码在应用进程内运行。

    下面来看这一层所提供的主要组件:

    名称功能描述
    Activity Manager(活动管理器)管理各个应用程序生命周期,以及常用的导航回退功能
    Location Manager(位置管理器)提供地理位置及定位功能服务
    Package Manager(包管理器)管理所有安装在 Android 系统中的应用程序
    Notification Manager(通知管理器)使得应用程序可以在状态栏中显示自定义的提示信息
    Resource Manager(资源管理器)提供应用程序使用的各种非代码资源,如本地化字符、图片、布局文件、颜色文件等
    Telephony Manager(电话管理器)管理所有的移动设备功能
    Window Manager(窗口管理器)管理所有开启的窗口程序
    Content Provider(内容提供器)使得不同应用程序之间可以共享数据
    View System(视图系统)构建应用程序的基本组件
  7. 系统服务(System Services)

    系统服务是重点突出的模块化组件,例如 system_server、SurfaceFlinger 和 MediaService。Android 框架 API 提供的功能可以与系统服务进行通信,以访问底层硬件。

  8. Android 运行时 (Android Runtime)

    AOSP 提供的 Java 运行时环境。 ART 会将应用的字节码转换为由设备运行时环境执行的处理器专有指令。

  9. 硬件抽象层 (HAL)

    HAL 是一个抽象层,其中包含硬件供应商要实现的标准接口。借助 HAL,Android 可以忽略较低级别的驱动程序实现。借助 HAL,您可以顺利实现相关功能,而不会影响或更改更高级别的系统。

  10. 原生守护程序和库(Native Daemons and Libraries)

    该层中的原生守护程序包括 inithealthdlogdstoraged。这些守护程序直接与内核或其他接口进行交互,并且不依赖于基于用户空间的 HAL 实现。

    该层中的原生库包括 libclibloglibutilslibbinderlibselinux。这些原生库直接与内核或其他接口进行交互,并且不依赖于基于用户空间的 HAL 实现。

  11. 内核(Linux Kernel)

    内核是任何操作系统的中心部分,并与设备上的底层硬件进行通信。尽可能将 AOSP 内核拆分为与硬件无关的模块和特定于供应商的模块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540922.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交换机/路由器的存储介质-思科

交换机/路由器的存储介质-思科 本文主要介绍网络设备的存储介质组成。 RAM(random-accessmemory,随机访问存储器) RAM中内容断电丢失,主要用于运行操作系统、运行配置文件、IP 路由表:、ARP 缓存、数据包缓存区。 ROM(read-only memory,只…

php7.3.4连接sqlserver(windows平台)

前言 有个项目需要手上laravel连接客户的sqlserver数据库读取数据,故在本地开发的lnmp环境中,php需要增加扩展 过程 从微软官网下载sqlsrv扩展,注意注意php版本,下载地址 解压的文件会有nts和ts两个版本,本地打开phpinfo查看 将…

Linux内核--基本概念/基本结构和组件

提示:本系列文章重点学习Linux内核 Linux内核--基本概念/基本结构和组件 简介一、基础概念1.六项工作内容2.根文件系统(Root File System):3.交叉编译(Cross-Compilation):4.设备树(…

Oracle登录错误ERROR: ORA-01031: insufficient privileges解决办法

这个问题困扰了我三个星期,我在网上找的解决办法: 1.控制面板->管理工具->计算机管理->系统工具->本地用户和组->ORA_DBA组。 但我电脑上根本找不到。 2.在oracle安装目录下找到oradba.exe运行。 最开始我都不到这个oradba.exe文件在哪…

软件设计师:12 - 下午题历年真题

章节章节01-计算机组成原理与体系结构07 - 法律法规与标准化与多媒体基础02 - 操作系统基本原理08 - 设计模式03 - 数据库系统09 - 软件工程04 - 计算机网络10 - 面向对象05 - 数据结构与算法11 - 结构化开发与UML06 - 程序设计语言与语言处理程序基础12 - 下午题历年真题End -…

3 数据链路层(二):差错控制、差错检测和纠正

目录 1 差错控制、差错检测和纠正1.1 差错类型和差错控制1、差错类型2、差错控制方法 1.2 差错控制编码1、差错控制编码介绍2、差错控制方式3、编码分类4、几种差错控制编码的价绍奇偶校验码循环冗余校验码海明码 1 差错控制、差错检测和纠正 数据在传输中可能被破坏&#xff…

一文看懂红帽认证含金量有多高!

近期好多人来问红帽认证,有些是还在校的大学生,有些是已经工作的运维小伙伴。!现在的就业和职场环境下,系统学Linux确实是非常必要的。今天就给大家详细介绍下红帽认证,看看它的含金量有多高! 红帽认证是什么?红帽认证等级?红帽…

vmware workstation虚拟机报错”该虚拟机似乎正在使用中“

虚拟机报错: 解决方法: 进入到虚拟机的安装目录里,将lck结尾的文件删掉即可 重新点击虚拟机恢复正常

跨境热点!TikTok直播网络要求是什么?

TikTok直播作为一种互动性强、实时性要求高的社交媒体形式,对网络环境有着一系列特定的需求。了解并满足这些需求,对于确保用户体验、提高直播质量至关重要。本文将深入探讨TikTok直播对网络环境的要求以及如何优化网络设置以满足这些要求。 TikTok直播的…

Stripe Web 购买集成

图片被吞了可以来这里看:https://juejin.cn/post/7346388511338381364 1. 准备事项 Stripe 账号域名以及配套的网站Stripe 账号付款信息公钥和私钥 2. 配置产品以及价格 可以通过 API 或者 Stripe 管理后台来进行配置 产品:就是商品,只需…

黑群晖: 未在 DS918+ 中检测到硬盘 之 解决方案

黑群晖: 未在 DS918 中检测到硬盘 之 解决方案 操作如下: 进入BIOS,将sata operation 设置为 AHCI 即可

Windows,MacOS,Linux下载python并配置环境图文讲解

Windows 打开python官网 点击download 点击黄色按钮 另存为 打开文件 全选 配置安装路径 安装中 关闭路径长度限制 完成 验证 同时按住winr(win就是空格键左边的东西) 输入cmd 键入python,如果出现版本(红框)即安装成功 MacOS 同理打开python官网 点击最新版本 拖…