1.1 背景相关与系统架构

1.1 背景相关与系统架构

标签: StudyNote

1.各个版本名称与版本号

1.1 背景相关与系统架构_第1张图片

2.平台架构的四个模块

1.1 背景相关与系统架构_第2张图片

各层次的介绍:

  • 应用程序层(JAVA应用程序)
    包含许多由Java语言编写的应用程序,系统内置应用和我们开发的程序都在这一层。
  • 应用程序框架层(Java框架)
    该层封装了开发应用所需要的核心API框架,或者说是类库,该层简化了组件的重用,
    我们可以直接使用提供的组件来进行快速的应用开发,也可以通过继承实现个性化
    的扩展。该层由10个部分组成:
    • Activity Manager(活动管理器):管理各个应用程序生命周期以及常用的回退功能
    • Window Manager(窗口管理器):管理所有的窗口程序
    • Content Provider(内容提供器):使得不同应用程序之间存取或者分享数据
    • View System(视图系统):构建应用程序的基本组件
    • Notification Manager(通知管理器):使得应用程序可以在状态栏中显示自定义的提示信息
    • Package Manager(包管理器):Android系统内的程序管理
    • Telephony Manager(电话管理器):管理所有的移动设备功能
    • Resource Manager(资源管理器):提供应用程序使用的各种非代码资源,如布局、颜色文件等
    • Location Manager(位置管理器): 提供位置服务
    • XMPP Service(XMPP服务): Google Talk中一个通用的进程,提供后台推送服务
  • 系统库和android运行时层(本地框架和JAVA运行环境)
    该层是应用程序框架曾的依赖层,为Android系统中的各个组件提供服务,由两个部分构成:
    系统库与Android运行时,系统库包含了九个子系统:

    • Surface Manager(图层管理):执行多个应用程序时候,负责管理显示与存取操作
      间的互动,另外也负责2D绘图与3D绘图进行显示合成
    • Media Framework(多媒体库):支持多种常用的音频、视频格式录制和回放,编码
      格式包括MPEG4、MP3、H.264、AAC、ARM
    • SQLite(数据库):小型的关系型数据库引擎
    • OpenGL|ES(绘图函数库):根据OpenGL ES 1.0API标准实现的3D绘图函数库
    • FreeType(字体引擎):提供点阵字与向量字的描绘与显示
    • WebKit:一套网页浏览器的软件引擎
    • SGL:底层的2D图形渲染引擎
    • SSL:在Andorid上通信过程中实现握手
    • Libc(C库):从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制

      而Android运行时则由两个部分组成:

    • Core Libraries(核心库集):核心库提供了Java语言API中的大多数功能,同时也
      包含了Android的一些核心API,如android.os、android.net、android.media等。

    • Dalvik虚拟机
      基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、
      线程的管理、安全和异常的管理以及垃圾回收等重要功能。
  • LINUX内核层
    Android基于Linux2.6内核,把linux内受GNU协议约束的部分做了取代,从而让Android
    的程序可以用于商业目的;其核心系统服务如安全性、内存管理、进程管理、网路协议
    以及驱动模型都依赖于Linux内核。Linux内核也是作为硬件与软件栈的抽象层。
    驱动包括:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存
    驱动、Binder(IPC)驱动、电源管理等

3.一些更新

1.在Andrdoid 4.4前内置浏览器(WebView)都是基于Webkit的,WebKit提供了网页解析、布局
和绘制,以及JS运行等基础功能,而在4.4起则换成了Chromium,Chromiun在WebKit的基础
上还提供进程,线程和渲染等基础构架,基于Chromium的浏览器能为我们提供跟更强大的
网页浏览功能。

2.关于Android中的虚拟机,从5.0开始就从Dalvik切换成了ART,从JIT(Just in time,运
行时编译)到AOT(Ahead of time,运行前编译),AOT就是仅在安装的时候编译一次,后续运
行就不用再编译了,从而降低了应用的启动时间,除了性能提升,ART对于系统的内存分配与
垃圾回收算法也有了一定的提升。

你可能感兴趣的:(android)