android服务概要

每个系统都会有服务一样,android也不例外,android framework层提供了各种各样的服务,应用程序也可以实现自己的本地服务和远程服务等。

一、andorid服务分类

android服务大致可以分为系统服务和应用程序服务,系统服务提供了系统最基本、最核心的功能,例如设备控制、位置信息、通知设定以及消息显示等。

二、应用程序服务

应用程序服务顾名思义就是我们app端可以创建的服务,包括本地服务和远程服务,两者区别在于前者运行在当前app同一个进程,生命周期同app的生命周期,后者可以运行在其他进程中,而且不受app限制,当app生命周期结束之后任然可以运行在系统中。 

三、系统服务

系统服务大致可以分为java系统服务和 本地系统服务,java系统服务又包括核心平台服务和硬件服务,位于application framework层,本地系统服务使用c++编写,运行在Libraries层,主要包括Audio Flinger、Surface Flinger等。 

1、本地系统服务

对于AudioFlinger,所有android设备中,所有音频数据都是经过Audio Flinger进行输出,如下图所示:

而Surface Flingershi Android Multimedia的一部分,在android的视线中,它是一个服务,提供系统范围内的surface composer功能,能够将各种应用程序的Surface组合后渲染到Frame Buffer设备中,如下图所示:

 

2、java系统服务

  • 核心平台服务,该服务不会直接与application交互,但是它们是Android Framework运行所必备的服务,常用的服务包括:

ActivitiManagerService : 管理Activity的生命周期与堆栈

WindowManagerService : 位于Surface Flinger之上,将要绘制到机器画面上的内容传递给Surface Flinger

PackageManagerService : 加载apk文件(android 包文件),提供信息显示系统中设置了哪些包,以及加载了哪些类。

  • 硬件服务,该服务提供了一些列的api接口,用于控制底层硬件,常用的硬件服务如下:

AlarmManagerService : 在特定时间后运行指定的应用程序,类似定时器

Connectivity Service : 提供有关网络当前状态的信息

LocationService : 提供终端当前的位置信息

PowerService : 设备电源管理服务

SensorService : 提供android中各种传感器的感应值(磁力传感器、加速度传感器等)

TelephonyService : 提供话机状态及电话服务

WifiService : 控制无线网络的连接,如AP搜索,连接列表管理等。

系统服务的使用方法

在framework层或者app层,如果想要使用java系统服务,都必须创建能够与各服务通信的Local Manager对象。如下图获取系统位置信息的流程,必须先通过getSystemService创建LocationManager对象,通过该对象去跟LocationService交互。

 

3、系统服务的运行流程

在android启动时,系统服务是由Media Server和System Server两个进程运行,而Media Server进程用来启动除Surface Flinger之外的Audio Flinger、Media Player Service等本地服务,而System Server进程会启动所有的java系统服务,例如Surface Flinger等,如下图所示:

 

  • Media Server进程注册服务的过程如下图所示

  • System Server进程注册服务的过程如下图所示

 

文章最后给大家提两个小问题

1、java系统服务为什么要有本地系统服务?

2、为什么Surface Flinger服务不设计在Media Server进程中,而是要从System Server中去初始化并注册到Service manager中?

大家可以在评论留言,欢迎交流。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值