Android 系统架构

Android 系统架构

从下到上分为五层

1 Linux Kernel Linux 内核层

Android 系统核心服务基于 Linux 内核

为 Android 设备的各个硬件提供了各种底层专用驱动

内存管理,进程管理,网络协议

  • PowerManagement 电源管理
  • Drivers
    如 Audio Driver、Camera Driver、USB Driver、Display Driver、Bluetooth Driver、Binder(IPC) Driver 等

2 Hareware Abstraction Layer 硬件抽象层 HAL

位于硬件电路和系统内核之间的接口层,Android 5.0 新增,对 Linux 内核驱动程序的封装,向上提供接口,屏蔽底层的实现细节

如 Audio、Camera、Bluetooth 等

  • 将硬件抽象化,隐藏各平台硬件接口细节,保护了硬件厂商的知识产权
  • 为操作系统提供虚拟硬件平台,使其具有硬件无关性,可实现跨平台移植
    软硬件测试可以基于硬件接口层来完成,让软硬件并行测试成为了可能

3 系统运行库层

  • Native C/C++ Libraries C/C++ 程序库
    系统库提供了一系列系统功能,能被 Android 系统中的不同组件所使用,通过应用程序框架可以为开发者提供服务,另外可以通过 Android NDK 为开发者提供了可以直接使用系统资源的能力
    如 SQLite、OpenGL ES、Media Framework、Suface Manager、Webkit、SSL 等

  • Android Runtime Android 运行时

    • Core Libraries

      提供了 Java SE API 的绝大数功能,也提供了 Android 的核心 API,允许开发者用 Java 编写 Android 应用

    • ART(以前是 Dalvik Virtual Machine)

      使得每个Android 程序拥有一个独立的进程中,都拥有自己的虚拟机实例

      完成生命周期管理、堆栈管理、内存管理、垃圾回收

      • Dalvik Virtual Machine(Android 5.0 后被 ART 取代)

        运行时编译:Dalvik 虚拟机每次运行 字节码 都需要用 Just In Time 及时编译器 JIT 转换成 机器码

      • Android Runtime(Android 4.4 开始发布)

        安装时编译:ART 每次安装时会进行一次 Ahead Of Time 预编译 AOT ,将字节码预编译成 机器码 存在本地,做到空间换时间,所以耗费更多存储空间,安装时间拉长

4 Java API Framework

这一层主要提供一些 Java 编写的 API 以供开发 APP 时调用

如 Activity、ContentProviders、Notification、Window

5 System Apps

如 Email、Camera、Brower 等

Android 系统架构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

louisgeek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值