写此本文是为了对Android系统框架有一个整体的认识和了解,对于开发和测试人员脑子里要有整体认识以便对工作有所帮助。

进入正题

首先Android系统架构采用了分层架构的思想,共分为四层由上到下分:应用程序程序层、应用框架层、系统库和Android运行时、Linux内核

便于大家了解如图所示及分层说明

每层功能简要说明

一、APPLACTIONS应用程序层

该层提供了一些核心应用程序包,用来存放应用程序,主界面、联系人、电话、浏览器、日历等

二、APPLANCTION FRAMEWORK应用程序框架层

用来支持应用层中的程序的运行,包括 Activity Manager活动管理、Window Manager窗口管理、Content Providers内容提供者、View System视图系统、Notification Manager通知管理、Package Manager包管理、Telephony Manager电话管理、Resource Manager 资源管理、Location Manager位置管理器、XMPP Services XMPP服务一共十个部分

XMPP((Extensible Messaging and Presence Protocol,前称Jabber)是一种以XML为基础的开放式实时通信协议,XMPP网络是基于服务器的(即客户端之间彼此不直接交谈),但是也是分散式的。不像AOL实时通或MSN Messenger等服务,XMPP没有中央官方服务器。Jabber.org的公众服务器上有大量的用户,所以有些人误解了,以为它是官方服务器,不过事实上任何人都可以在自己的域名上运行XMPP服务器。

Jabber识别符(JID)是用户登录时所使用的账号,看起来通常像一个电子邮件地址,如someone@example.com;前半部分为用户名,后半部分为XMPP服务器域名,两个字段以@符号区隔。

假设朱丽叶(juliet@capulet.com)想和罗密欧(romeo@montague.net)通话,他们两人的账号分别在Capulet.com及Montague.net的服务器上。当朱丽叶输入信息并按下发送钮之后,一连串的事件就发生了:

  1. 朱丽叶的XMPP客户端将她的信息发送到Capulet.com XMPP服务器。
  2. Capulet.com XMPP服务器打开与Montague.net XMPP服务器的连接。
  3. Montague.net XMPP服务器将信息寄送给罗密欧。如果他目前不在在线,那么存储信息以待稍后寄送。

三、

(1)LABRARIES系统库

系统库包括九个子系统,分别是Surface Manager图层管理、Media Manager媒体管理、SQLite小型数据库、OpenGLESate开放图形库用来支持3D效果、FreeType位图和矢量、WebKit浏览器内核、SGL 2D图形引擎库、SSL为数据通信提供支持、libc C语言的函数库

(2)ANDROID RUNTIME安卓运行环境

core Labraries安卓开发核心库、DaLvik Virtual Machine Dalvik虚拟机

前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。--SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中;OpenGL-开放图形库(英语:Open Graphics Library,缩写为 OpenGL)是个定义了一个跨编程语言、跨平台的应用程序接口(API)的规范,它用于生成二维、三维图像。

四、Linux Kernel 内核

提供各种驱动程序 Display Driver 显示驱动、Camra Driver 相机驱动、Bluetooth Driver 蓝牙驱动、Flash Memory Driver 内存驱动、Binder (pc)Driver 进程驱动、USB Driver、Audio Driver 音频驱动、Power Managemnet 电源管理、WIFI Driver 无线驱动、Keypad Driver 键盘驱动

总结:

1.     应用层:应用是用java语言编写的运行在虚拟机上的程序,比如Email客户端,SMS短消息程序,日历等。

2.     应用框架层:这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。

3.     系统运行库(C/C++库以及Android运行库)层:当使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务,比如其中的SQLite(关系数据库),Webkit(Web浏览器引擎)。

4.     Linux内核层:Android的核心系统服务给予Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核,比如Binder IPC(Internet Process Connection进程间通信)驱动,android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信的功能。

Android的系统架构采用分层架构的思想,架构清晰,层次分明,协同工作

Android的系统架构不仅从宏观上认识了Android系统,同时,也给我们的学习与实践指明了方向。若是从事Android应用开发,那应该研究Android的应用框架层和应用程序层;若是从事Android系统开发,那应该研究Android的系统库和Android运行时;若是从事Android驱动开发,那应该研究Android的Linux内核。总之,找准切入点,实践出真知  

Android系统框架构的更多相关文章

  1. Android系统四层架构分享

    Android系统四层架构 个人网站:http://www.51pansou.com Android视频下载:Android视频 Android源码下载:Android源码 如果把Android系统看 ...

  2. Android系统的架构

    android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 1.应用程序 Andr ...

  3. 【安卓面试题】简述一下Android系统的架构?

    安卓系统的架构分为四层:应用程序层,应用框架层,系统框架层和内核层. 应用程序层:开发者编写的供用户使用的应用 应用框架层:开发者构建应用程序可能用到的API, 例如ActivityManager 系 ...

  4. Android系统架构及内核简介

    (来源于ThinkPHP) Android是Google公司开发的基于Linux平台的开源手机操作系统,它包括操作系统.中间件.用户界面和应用程序,而且不存在任何以往阻碍移 动产业创新的专利权障碍,并 ...

  5. 【译】Android系统架构

    让我们来快速预览一下整个android系统的架构.从下面的图中我们可以发现,这个架构分为几个不同的层,底层为上一层提供服务.  Linux Kernel android系统建立在一个坚固的基石上:Li ...

  6. 【转】Android系统概览

    这篇文章其实原文叫 <老罗的Android之旅>导读PPT 是罗升阳的博客,我觉得用“Android系统概览”作为标题更贴切些,对于在应用层已经开发了一段时间的人来说,读完之后会有很多体会 ...

  7. Android接口与架构(驱动开发)翻译官方文档

    Android接口与架构 Android在设备的规格与驱动方面给了你很大的自由来实现.HAL层提供了一个标准的方式来打通Android系统层与硬件层.Android系统是开源的,所以你能够在接口和性能 ...

  8. Android系统源码学习步骤

    Android系统是基于Linux内核来开发的,在分析它在运行时库层的源代码时,我们会经常碰到诸如管道(pipe).套接字(socket)和虚拟文件系统(VFS)等知识. 此外,Android系统还在 ...

  9. Android系统源代码学习步骤

    目前,互联网行业正在朝着移动互联网方向强劲地发展,而移动互联网的发展离不开背后的移动平台的支撑.众所周知,如今在移动平台市场上,苹果的iOS.谷歌的Android和微软的Windows Phone系统 ...

随机推荐

  1. linux --> gcc编译之路径搜索

    gcc编译之路径搜索 头文件 --> 搜寻先从-I开始; --> 找gcc的环境变量 : C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PA ...

  2. 数据库 --> sqlite3之api使用

    创建 if [ ! -d /opt/dbspace ] then mkdir /opt/dbspace fi if [ -f /opt/dbspace/.memo.db ] then rm /opt/ ...

  3. DB2开发系列之四——触发器

    1.触发器类型 1)BEFORE 触发器:在对表插入或更新之前执行该触发器,允许使用CALL 和 SIGNAL SQL 语句: 2)BEFORE DELETE 触发器:在删除操作之前执行该触发器: 3 ...

  4. layui-row 布局因高度不一致错位问题

    js框架为vue,通过vue去循环生成layui-col-md2;<div class="layui-row layui-col-space1"> <templa ...

  5. MySQL_执行计划详细说明

          1 简要说明 id 表格查询的顺序编号. 降序查看,id相同的从上到下查查看. id可以为null ,当table为( union ,m,n )类型的时候,id为null,这个时候,id的 ...

  6. 多目标跟踪(MOT)论文随笔-POI: Multiple Object Tracking with High Performance Detection and Appearance Feature

    网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是tracking by detection 方法进行多目标跟踪的文章,最大的特点是使用 ...

  7. 【福大软工】 W班级总成绩排名3

    评分链接: alpha测试    软件产品案例分析 总分排名: 团队千帆竞发图 总结: 本次排名是alpha测试    软件产品案例分析 两次排名的汇总. 1.alpha测试小组评价: 听说:10篇冲 ...

  8. [高级软件工程教学]团队Beta阶段成绩汇总

    一.作业地址: https://edu.cnblogs.com/campus/fzu/AdvancedSoftwareEngineering/homework/1501 二.Beta冲刺课堂答辩 1. ...

  9. C语言博客作业—数组

    一.PTA实验作业 题目1:简化的插入排序 1. 本题PTA提交列表 2. 设计思路 (1)定义n,number,i,j,temp; (2)输入n; (3)定义数组a[n+1]; //把所有的数都放入 ...

  10. 团队作业5-测试与发布(AIpha版本)

    对于已完成的项目我们进行了诸多测试,找到了少许bug,对着这些bug我们在改进的基础上提出了新的目标. 1,测试环境:个人笔记本.个人台式机.环境windows7.网络校园网加移动vpn,浏览器360 ...