zoukankan      html  css  js  c++  java
  • android 系统架构简介

    Android系统采取的是分层的架构,根据官方文档提供的架构图,我们将android的系统架构分成5层,如图:

    1.Application Framework (应用框架)

    application framework 是应用开发者使用最多的部分,作为一个应用开发者,我们大部分情况下都是在跟它打交道,

    当然对于硬件开发者来说,要想更好的编写驱动程序,需要意识到developer api应尽可能地直接映射到硬件抽象层(HAL)接口上。

    2.Binder IPC (绑定进程间通信)

    绑定进程间通信机制允许应用框架(application framework)直接跨越进程边界去调用android的系统服务代码,也就是说,高级别的framework apis能够跟android的系统服务直接进行交互,当然这一切的通信对于开发者来说都是不可见的,我们只知道它在运行

    3. System services (系统服务)

    我们平时调用的应用框架的很多api都是通过跟系统服务进行交互来访问底层的硬件的。

    这些基于android系统服务都是模块化的,聚焦在组件上,例如窗口管理器(window manager)、搜索服务(search Service)、通知管理器(Notification Manager).

    在android系统中包含两组服务,一组是系统服务,例如窗口管理器和通知管理器,

    另一组是媒体服务,用来调用播放和录制多媒体。

    4. Hardware abstraction layer (HAL 硬件抽象层)

    Android的硬件抽像层是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成“内核独立”(kernel independent)的概念,也让Android framework的开发能在不考量驱动程序实作的前提下进行发展。

    HAL stub是一种代理人的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数,并由Android runtime向HAL获取stub的操作,再回调这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以获取操作函数。

    5. Linux Kernel (Linux 内核)

    android 的底层是基于linux内核的,当然在在这个版本中新增了诸如wake locks,binder ipc driver以及其他一些对于移动嵌入式平台很重要的一些功能

  • 相关阅读:
    洛谷 P3391文艺平衡树 【fhq_treap】
    食物链(转自yekehe2002大神)
    TX
    黑匣子——KEY
    Splay初学习
    BZOJ2330_糖果_KEY
    BZOJ3224_普通平衡树_KEY
    BZOJ2730_矿场搭建_KEY
    BZOJ1452_Count_KEY
    初识主席树_Prefix XOR
  • 原文地址:https://www.cnblogs.com/cjpx00008/p/4578557.html
Copyright © 2011-2022 走看看