android初始篇一 Android系统架构

        Android系统架构:

     Android 系统是一个移动设备的开发平台,其软件层次结构包括 操作系统 (OS) , 中间件 (MiddleWare) 和应用程序(Application) , 根据Android 的软件框图,其软件层次结构自下而上分为4层 :如图:

android初始篇一 Android系统架构


1.最底层的操作系统层 ( OS )  -------  C/C++ 实现

          Android 系统的底层内核是基于 Linux 操作系统,其语言是 C 和 C++ 编写而成.

          Android 系统就是Linux 的开展;Android 充分使用用了内核到用户空间的接口,这主要表现在字符设备节点,Sys文件系统,Proc文件系统和不增加系统调用,

        在Android系统中包含的内核组件如下:

        Binder 驱动程序 ( 用户 IPC 机制 )

        Logger 驱动程序  ( 用户系统日志 )

        timed_output 驱动框架

        lowmemorykill 组件

        ram_console 组件

        Ashmem    驱动程序

        Alarm  驱动程序

        pmem  驱动程序

        ADB Garget 驱动程序

        Android Paranroid 网络


2.Android 的硬件抽象层   -------  C/C++ 实现

      其实Android 生态系统的架构十分清楚,自下而上分别采用经典的 Linux 驱动 . Android 硬件抽象层, Android 本地框架 ,  Android的 Java 框架以及 Android 的Java 应用程序. 因为 Android 系统需要运行于不同的硬件平台上,所以需要具有很好的可移植性.其中 Android 系统的硬件抽象层负责建立 Android 系统 和硬件设备之间的联系.

    对于标准化比较高的子系统来说,Android 系统使用完全标准 Linux 驱动 ,列如 输入设备 ( Input - Event ),电池信息 ( Power  Supply ),无线局域网 ( WiFi 协议和驱动 ),蓝牙 ( Bluetooth 协议和驱动 ) 等.

      Android 系统的硬件抽象层主要实现了与移动设备相关的驱动程序,内容如下:

      显示驱动( Display Driver ) : 常用基于Linux 的帧缓冲 ( Frame Bugger ) 驱动.

      Flash 内存驱动 ( Flash Memory ) : 是基于MTD 的 Flash 驱动程序

      照相机驱动 ( Camera Driver ) : 常用基于 Linux 的 v4l ( Video for ) 驱动.

      音频驱动 ( Audio Driver ) : 常用基于 ALSA ( Advanced Linux Sound Architecture ,高级 Linux 声音体系 ) 驱动

      WiFi 驱动 ( Camera Driver ) : 基于IEEE 802.11 标准的驱动程序

      键盘驱动 ( KeyBoard Driver ) : 作为输入设备的键盘驱动.

      蓝牙驱动 ( Bluetooth Driver ) : 基于IEEE 802.15.1 标准的无线传输技术

      Binder IPC 驱动:  Android 中一个特殊的驱动程序,具有单独的设备节点,提供进程间通信的功能

      Power Magement (能源管理) :  管理电池电量等信息


3.各种库 ( Libraries ) 和 Android 运行环境 ( RunTime )    -------  中间层

     将  Android 系统 的中间分为两个部分,一个是各种库,另一个是 Android 运行环境 .  Android系统的中间层的内容大多是使用 C 和C++ 实现的,其中包含如下各种库:

      C 库: C 语言的标准库,也是系统中最为底层的库,通过 Linux 的系统调用来实现

      多媒体框架 ( MediaFramework ) : 这部内容是 Android 多媒体的核心部分,基于 PacketVideo ( 即 PV ) OpenCORE.

      SGL : 2D图像引擎

      SSL : 即 Secure Socket Layer , 位于 TCP / IP 协议与各种应用层协议之间,为数据通信提供安全支持

      OpenGL ES : 提供了对 3D 图像的支持

      界面管理工具 ( Surface Management ) : 提供对管理 , 显示子系统等功能

      SQLite : 一个通用的嵌入数据库

      WebKit : 网络浏览器的核心

      FreeType :  提供位图和矢量字体的功能

      在 Android 系统中,各种库一般以系统中间件的形式提供,它们均有一个显著特点: 与移动设备平台的应用密切相关

      注意从 Android 4.0 开始,默认的运行环境是ART


 4.应用程序 ( Application )  ---------Java 实现

    Android 的应用程序主要是用户界面 ( User Interface ) 方面的,通过浏览 Android 系统的开源代码可知,应用层是通过Java 语言编码实现的,其中还包含了各种资源文件 ( 放置在 res 目录中 ) . Java程序和相关资源在经过编译后,会生成一个APK 包. Android 本身提供了主屏幕 ( Home ) ,联系人 ( Contact ) ,电话( Phone ) 和浏览器 ( Browers ) 等众多的核心应用. 同时应用程序的开发者还可以使用应用程序框架层的 API 实现自己的程序.这也是 Android 开源的巨大潜力的体现.


5.应用程序框架 ( Application Framework )

      Android 的应用程序框架为应用程序层的开发者提供 APIs ,它实际上是一个应用程序的框架. 由于上层的应用程序是以 Java 构建的,本层首先提供了 UI 程序中所需要的各种控件, 例如, Views ( 视图组件 ) ,其中又包括了 List ( 列表 ) , Grid ( 栅格 ), TextBox ( 文本框 ) 和Button (按钮 ) 等, 甚至一个嵌入式的 Web 浏览器.

     作为一个基本的 Android 应用程序, 可以利用应用程序框架中的以下 5 个部分来构建.

     Activity ( 活动 )

     Broadcast Intent Receiver ( 广播意图接收者 )

     Service ( 服务 )

     Content Provider ( 内容提供者 )

     Intent and Intent Filter (  意图和意图过滤器 )