Android系统架构

Android系统架构

终于准备开始好好学习Android了,正所谓千里之行,始于足下,要学习Android是一条路漫漫其修远兮之路,必须得一步一步把基础给打牢了,所以今天就来给大家介绍一下我们的Android架构吧!

Android架构图如下图所示:

Android系统架构_第1张图片

如上图所示,Android的系统架构大致就是这样了,可谓一目了然,我们也不得不佩服一下Android的架构设计人员,设计Android架构也是下了一番苦心吧。好了,废话不多说了,我们来分析一下吧,从图片我们大致可以看到有四层,由上往下看,依次是:

  • Application(应用层)

  • Application Framework(应用框架层)

  • Libraries(程序库层)

  • Android运行时层

  • Linux Kernel(Linux内核层)

下面我们来好好扯一扯Android的各个层吧!

1.应用层
    从图片架构中我们可以清楚的知道,应用层主要内容有主页、Email客户端、联系人、浏览器等(采用Java语言开发),大多数Android开发人员基本上就是从事开发应用层的代码,采用Java语言开发,相对来说比较简单,不用接触底层代码,开发周期短,技术难点较小。

2.应用框架层
    应用框架层主要是为上层(应用层)提供底层API的调用,相当于封装应用层的代码,提供对外一致的结构以供应用层调用,主要内容有视图、窗口对象、内容管理器、资源管理器、通知管理器、活动管理器等。

3.类库层
    类库层主要是一些C/C++的核心库,用以管理Android的底层,方便开发者进行应用的开发。主要内容有:

  • 系统C 库(libc):专门为基于embedded linux的设备定制的、
  • 媒体库:支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
  • SurfaceManager :对显示子系统的管理,并且为多个应用程序提供了2D和3D 图层的无缝融合
  • webkit/LibWebCore :Web 浏览引擎,支持Android 浏览器和一个可嵌入的web 视图
  • SGL:底层的2D图形引擎
  • 3D libraries : 基于OpenGL ES 1.0 APIs 实现的3D引擎
  • FreeType :位图(bitmap)和矢量(vector)字体显示
  • SQLite :轻型关系型数据库引擎

4.Android运行时环境
    说到Android运行时不得不提到Java虚拟机了,学过Java的都知道,我们开发Java程序时,需要用到JDK,使用JDK编译后,接下来就需要用到JRE运行环境了,Android运行时环境就是将.class文件然后重新生成dex文件,Dalvik 虚拟机:依赖于linux 内核的一些功能,比如线程机制和底层内存管理机制。同时虚拟机是基于寄存器的,Dalvik 采用简练、高效的byte code 格式运行,它能够在低资耗和没有应用相互干扰的情况下并行执行多个应用,每一个Android 应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机实例。Dalvik 虚拟机中可执行文件为.dex文件,该格式文件针对小内存使用做了优化。所有的类都经由JAVA 编译器编译,然后通过SDK中的”dx” 工具转化成.dex 格式由虚拟机执行。

5.Linux内核层
    Linux 内核作为硬件和软件栈之间的抽象层。Android 的核心系统服务: 安全机制、内存管理、进程管理、网络、硬件驱动。

你可能感兴趣的:(android,系统架构)