android初始篇一 Android系统架构

来源:互联网 发布:阿里云华南 编辑:程序博客网 时间:2024/05/22 07:09

        Android系统架构:

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


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 (  意图和意图过滤器 )



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 欠了十几万该怎么办 网贷负债十几万怎么办 赌博欠了十几万怎么办 欠了网贷跑了会怎么办 欠银行钱还不起怎么办 欠小额贷款公司的钱还不上怎么办 负债30万没工作怎么办 华为p9耗电太快怎么办 酷派手机反应慢怎么办 网上买手机被骗了怎么办 买手机贵了怎么办12315 在手机店被骗了怎么办 在转转上被骗了怎么办 微信被骗了800怎么办 苹果6被偷走该怎么办 苹果7被偷走该怎么办 月经量突然少了怎么办 我月经老是不来怎么办 月经不来3个月怎么办 月经推迟3个月怎么办 乙肝五项25阳怎么办 乙肝五项25阳性怎么办 流浓鼻涕怎么办速效办法 鼻涕又浓又黄绿怎么办 玉露已经徒长了怎么办 多肉长出了多头怎么办 多肉已经徒长了怎么办 脖子抻筋了 很疼怎么办 声带肥大造成说话声音沙哑怎么办 轻微的骨性龅牙怎么办 19岁没了晨勃怎么办 早上晨勃消失了怎么办 阴茎勃而不坚怎么办 一个月婴儿痰多怎么办 孕妇咳绿色浓痰怎么办 买的戒指大了怎么办 孩子鞋子买大了怎么办 鞋子不大但掉跟怎么办 鞋子长了一码怎么办 新鞋有点顶脚怎么办 宝宝鞋子买小了怎么办