下图是ANDROID4.4 版本包含的所有系统服务、本地服务和应用的框架图,组织为三层:应用层、系统服务层、本地进程和服务层。应用层通常通过服务提供的对外API接口(一个服务管理对象)与服务交互,系统服务层通过JNI或者本地SOCKET与本地进程实现交互。

几乎所有的系统服务层的服务(除了SenSorService)都是使用JAVA语言实现的,这些服务工作于同一个SystemServer进程,因此称为系统服务。系统服务层的服务有些是系统内部使用的,没有对应用层提供对外的API接口,这些服务在图中用白色方框表示,包括电池服务BatteryService、传感器服务SenSorService、MountService、LockSettingsService、NetworkManagerService、NetworkStatsService、DeviceStorageMonitorService、EntropyMixer、ContentService、DiskStatsService、SamplingProfilerService、CommonTimeManagementService、DreamManagerService、AssetAtlasService。

该层的其它服务都对外提供一个管理对象供应用使用。

本地进程和服务采用C++语言实现,除了包括实现特殊功能的zygote进程(孵化进程,负责子进程的生成)和servicemanager进程(也称为0号服务,所有其它服务必须在该进程中注册才能被其它进程使用)外,还包括负责媒体功能的media 进程(该进程包括AudioFlinger、MediaPlayerService、CameraService、AudioPolicyService四个媒体相关的服务),负责图形绘制的surfaceflinger进程,以及keystore(密钥管理进程)、installd(包安装进程)、ueventd(LINUX内核通讯进程)、healthd(电池健康管理进程)、vold(存储卷的守护进程)、netd(网络守护进程,负责底层网络功能)、rild(电话raido
接口层守护进程,负责与底层radio的交互)、drm(数字版权管理进程)等。

因此可以说ANDROID系统就是各种服务的集合,通过服务之间的交互和配合共同实现了系统的所有功能。

如果掌握了每个服务的架构和工作机理,也就能够深刻理解和掌握整个ANDROID操作系统,这也是本博客ANDROID框架解析系列文章要达到的目的。



ANDROID框架结构和介绍的更多相关文章

  1. Android sdk目录介绍

    android sdk目录介绍 build-tools 各版本SDK编译工具 docs 离线开发者文档Android SDK API参考文档 extras 扩展开发包,如兼容架包. platforms ...

  2. 我的Android第三章:Android的组件介绍

    小编摘录了Android文档介绍Android四大组件的基本内容,感觉文档的内容写的很详细所以小编将它写入了博客 Android 使用Java语言开发.Android SDK 工具编译代码-以及任意数 ...

  3. GitHub上排名前100的Android开源库介绍(来自github)

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...

  4. android MVP模式介绍与实战

    android MVP模式介绍与实战 描述 MVP模式是什么?MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数 ...

  5. Android 不同文件名介绍

    Android 不同文件名介绍

  6. Android发展简单介绍

    Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...

  7. Android IntentService使用介绍以及源码解析

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.IntentService概述及使用举例 IntentService内部实现机制用到了HandlerThread,如果对HandlerThrea ...

  8. Android Jetpack 组建介绍(一)——Lifecycler

    转自带你领略Android Jetpack组件的魅力 Android Jetpack 对于任何一个产品来说,我们开发中都会面对哪些问题?如:产品交互.用户体验.代码结构.数据获取.数据存储.网络优化. ...

  9. [原创]AndroBugs_Framework Android漏洞扫描器介绍

    [原创]AndroBugs_Framework Android漏洞扫描器介绍 1 AndroBugs_Framework Android 漏洞扫描器简介 一款高效的Android漏洞扫描器,可以帮助开 ...

随机推荐

  1. apply函数用法

    procedure:  (apply proc arg1 ... args)  Proc must be a procedure and args must be a list. Calls proc ...

  2. python 3 dict函数 神奇的参数规则

    >>> dict({1:2},2=3)SyntaxError: keyword can't be an expression>>> dict({1:2},**{2: ...

  3. iOS下JS与OC互相调用(八)--Cordova详解+实战

    扯两句,可以跳过 由于项目中Cordova相关功能一直是同事在负责,所以也没有仔细的去探究Cordova到底是怎么使用的,又是如何实现JS 与 OC 的交互.所以我基本上是从零开始研究和学习Cordo ...

  4. RxJava操作符(08-条件和布尔操作)

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51671826 本文出自:[openXu的博客] 目录: All Amb Contains D ...

  5. [csdn markdown]使用摘记一源代码高亮及图片上传和链接

    本文主要内容是体验csdn markdown的代码块高亮显示和图片链接及上传. 图片上传 上边这是标题行,只需要使用一个#就可以表示,几个表示是几级标题 图片上传 本地图片上传控件 本地图片上传方式 ...

  6. SSO 基于Cookie+fliter实现单点登录 实例解析(一)

    接上文,SSO的理论讲解,接下来实践实践! 1.使用Cookie解决单点登录 技术点: 1.设置Cookie的路径为setPath("/").即Tomcat的目录下都有效 2.设置 ...

  7. 如何使用《DB 查询分析器》高效地生成旬报货运量数据

    如何使用<DB 查询分析器>高效地生成旬报货运量数据 马根峰                    (广东联合电子服务股份有限公司, 广州 510300) 1      引言   中国本土 ...

  8. 浅谈hibernate+入门实例

    Hibernate是对jdbc进一步的封装,随着项目的开展,小编开始接触到这个概念,一开始接触的时候并没有觉得hibernate有多神秘,没有进一步的研究,只是简单的知道她是对jdbc的进一步的封装, ...

  9. 关于tomcat中Servlet对象池

    Servlet在不实现SingleThreadModel的情况下运行时是以单个实例模式,如下图,这种情况下,Wrapper容器只会通过反射实例化一个Servlet对象,对应此Servlet的所有客户端 ...

  10. 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

     1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2  spring-mv ...