Android系统层次框架结构

Posted by Jfson on 2018-04-01

image

由低到高:linux核心层;系统运行库层;应用程序框架层;应用程序层

linux内核(Linux Kernel)

硬件相关的,Binder Diver(IPC),Camera Diver,Power Diver等等

系统运行库层(Libraries)

  • Android 相关:
    • 虚拟机:Dalvik,Android 5.0(Lollipop)开始,Android Runtime(下文简称ART)就彻底代替了原先的Dalvik,成为Android系统上新的虚拟机。
    • Core Library:JAVA编程语言核心库的大多数功能
  • Library
    • c层的Surface,SQL,OpenGl,Webkit等等
    • Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。
    • 以下是一些核心库:主要包括基本的C库、以及多媒体库以支持各种多媒体格式、位图和矢量字体、2D和3D图形引擎、浏览器、数据库支持。
      1
      2
      3
      4
      5
      6
      7
      8
      1.Bionic系统C库。
      2.媒体库,基于PacketVideo OpenCORE。
      3.Surface Manager 顾名思义,用于管理Surface。
      4.Webkit,LibWebCore 浏览器,基于Webkit引擎。
      5.SGL 底层的2D图形引擎
      6.3D libraries 基于OpenGL ES 1.0 APIs实现
      7.FreeType 位图(bitmap)和矢量(vector)字体显示。
      8.SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

Application Framework

  • Android 的源码,各种Manager
    • a.丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。
    • b.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。
    • c.资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layout files)。
    • d.通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。
    • e.活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

应用程序

  • 应用 :phone ,Home等等
    所有的应用程序都是使用JAVA语言编写的,每一个应用程序由一个或者多个活动组成,活动必须以Activity类为超类,活动类似于操作系统上的进程,但是活动比操作系统的进程要更为灵活,与进程类似的是,活动在多种状态之间进行切换。
    利用JAVA的跨平台性质,基于Android框架开发的应用程序可以不用编译运行于任何一台安装有android系统的平台,这点正是Android的精髓所在
    https://saplf.github.io/2018/02/22/kotlinx-coroutines-intro/)

pv UV: