Android架构初探

Android 从软件层面来看可以分为以下几个层级:

  • Linux Kernel
  • HAL
  • Native C/C++ Libraries + AR
  • Java API Framework
  • System App

图示如下:
android-stack_2x.png
official site


  1. Linux Kernel 内核层,系统运行基石,还包含一些基本的硬件驱动
    a. 安全性(Security)
    b. 内存管理(Memory Management)
    c. 进程管理(Process Management)
    d. 网络堆栈(Network Stack)
    e. 驱动程序模型(Driver Model)
    
  2. 硬件抽象层
    提供高级界面,为Java API Framework层显示硬件功能
    
  3. AR (Android Runtime) :
    在API>=21的机器上,每个app都是一个AR 实例,这些实例通过DEX文件执行;AR的功能主要包括:

    a. AOT预编译  JIT 实时编译
    b. 提升GC性能
    c. 更好的debug支持
    
    针对AR优化过的程序可以在低版本Android Dalvik虚拟机上获得性能优化,反之不成立
    
  4. Native C/C++ Libraries
    出于性能考量,Android很多原生组件和服务都用到了native c/cpp的代码
    open GL 的2D 3D绘图基本都是用native api编写
    如若需要,应用也可以通过Android NDK编写代码,调用native API
    
  5. Java API FrameWork
    Android OS的整个功能集, JAVA编写
    包含各组件、管理工具
    
  6. 应用层

识别二维码,关注公众号“夕识”

Powered by KyleCe

Copyright © 2015 - 2019 KyleCe All Rights Reserved.

访客数 : | 访问量 :