Android系统服务概览
作者:freshui 发布时间:2022-02-25 06:31:34
System_Server进程
运行在system server进程中的服务比较多,这是整个android框架的基础
Native服务
SurfaceFlinger
这是framebuffer合成的服务,将各个应用程序及应用程序中的逻辑窗口图像数据(surface)合成到一个物理窗口中显示(framebuffer)的服务程序
Java服务:
这部分的服务大部分都有一个供应用进程使用的manager类,这就是一个RPC调用,用户通过调用xxxManager的方法,实际上被Binder给迁移到system_server进程中对应的xxxManagerService中对应的方法,并将结果再通过binder带回。
1. EntropyService
熵服务,周期性的加载和保存随机信息。主要是linux开机后,/dev/random的状态可能是可预知的,这样一些需要随机信息的应用程序就可能会有问题。这个无需提供应用程序接口。
2. PowerManagerService –> PowerManager
Android 的电源管理也是很重要的一部分。比如在待机的时候关掉不用的设备,待机时屏幕和键盘背光的关闭,用户操作的时候该打开多少设备等等。
3. ActivityManagerService->ActivityManager
这个是整个Android framework框架中最为核心的一个服务,管理整个框架中任务、进程管理, Intent解析等的核心实现。虽然名为Activity的Manager Service,但它管辖的范围,不只是Activity,还有其他三大组件,和它们所在的进程。也就是说用户应用程序的生命管理,都是由他负责的。
4. TelephonyRegistry->TelephonyManager
电话注册、管理服务模块,可以获取电话的链接状态、信号强度等等。<可以删掉,但要看的大概明白>
5. PackageManagerService -> PackageManager
包括对软件包的解包,验证,安装以及升级等等,对于我们现在不能安装.so文件的问题,应该先从这块着手分析原因。
6. AccountManagerService -> AccountManager
A system service that provides account, password, and authtoken management for all accounts on the device。
7. ContentService -> ContentResolver
内容服务,主要是数据库等提供解决方法的服务。
8. BatteryService
监控电池充电及状态的服务,当状态改变时,会广播Intent
9. HardwareService
一般是ring和vibrate的服务程序
10. SensorService -> SensorManager
管理Sensor设备的服务,负责注册client设备及当client需要使用sensor时激活Sensor
11. WindowManagerService -> WindowManager -> PhoneWindowManager
和ActivityManagerService高度粘合窗口管理,这里最核心的就是输入事件的分发和管理。
12. AlarmManagerService -> AlarmManager
闹钟服务程序
13. BluetoothService -> BluetoothDevice
蓝牙的后台管理和服务程序
14. StatusBarService -> StatusBarManager
负责statusBar上图标的更新、动画等等的服务,服务不大。
15. ClipboardService -> ClipboardManager
和其他系统的clipBoard服务类似,提供复制黏贴功过。
16. InputMethodManagerService -> InputMethodManager
输入法的管理服务程序,包括何时使能输入法,切换输入法等等。
17. NetStatService
手机网络服务
18. ConnectivityService -> ConnectivityManager
网络连接状态服务,可供其他应用查询,当网络状态变化时,也可广播改变。
19. AccessibilityManagerService-> AccessibilityManager
这块可能要仔细看一下,主要是一些View获得点击、焦点、文字改变等事件的分发管理,对整个系统的调试、问题定位等,也需要最这个服务仔细过目一下。
20. NotificationManagerService -> NotificationManager
负责管理和通知后台事件的发生等,这个和statusbar胶黏在一起,一般会在statusbar上添加响应图标。用户可以通过这知道系统后台发生了什么事情。
21. MountService
磁盘加载服务程序,一般要和一个linux daemon程序如vold/mountd等合作起作用,主要负责监听并广播device的mount/unmount/bad removal等等事件。
22. DeviceStorageMonitorService
监控磁盘空间的服务,当磁盘空间不足10%的时候会给用户警告
23. LocationManagerService -> LocationManager
要加入GPS服务等,这部分要细看,现在应用中的navigation没响应,可以从此处着手看一下
24. SearchManagerService -> SearchManager
The search manager service handles the search UI, and maintains a registry of searchable activities.
25. Checkin Service(FallbackCheckinService)
貌似checkin service是google提供的包,没有源代码,源码只有fallbackCheckinService
26. WallpaperManagerService -> WallpaperManager
管理桌面背景的服务,深度定制化桌面系统,需要看懂并扩展<同时要兼容>这部分
27. AudioService -> AudioManager
AudioFlinger的上层管理封装,主要是音量、音效、声道及铃声等的管理
28. HeadsetObserver
耳机插拔事件的监控小循环
29. DockObserver
如果系统有个座子,当手机装上或拔出这个座子的话,就得靠他来管理了
30. BackupManagerService -> BackupManager
备份服务
31. AppWidgetService -> AppWidgetManager
Android可以让用户写的程序以widget的方式放在桌面上,这就是这套管理和服务的接口
32. StatusBarPolicy
管理哪个图标该在status bar上显示的策略。
mediaServer服务进程
MediaServer服务基本上都是native的services,mediaServer进程也是在init.rc中启动的,它不是一个daemon进程,这点容易搞混。他也是和systemserver进程类似的系统服务进程,提供应用进程的RPC调用的真正服务代码所运行的位置。其服务都是和媒体录播放有关,主要有三个服务:
AudioFlinger
声音的录播放服务,包括混音等
MediaPlayerService
提供媒体播放服务,opencore是这块的核心模块,对java端的接口在mediaplayer.java
CameraService
提供camera的录制、preview等功能的服务
AudioPolicyService
主要功能有检查输入输出设备的连接状态及系统的音频策略的切换等。
来源:https://blog.csdn.net/freshui/article/details/5993195


猜你喜欢
- 简单的IM聊天程序由于项目需要做一个基于XMPP协议的Android通讯软件。故开始研究XMPP。XMPP协议采用的是客户端-服务器架构,所
- 本文实例讲述了C#双向链表LinkedList排序实现方法。分享给大家供大家参考。具体如下:1.函数打印链表函数PrintLinkedLis
- 本文实例讲述了C#中Memcached缓存的用法,分享给大家供大家参考。具体方法如下:ICacheStrategy.cs文件如下:publi
- 计算器项目,要求实现加、减、乘、除、求倒数、求平方根等简单运算。真机调试结果如下图:布局文件:main_activity.xml<?x
- 编程语言的流行程度、发展前景、就业市场这些一直都是程序员们非常关注的话题,需求排名是程序员们关注学习的风向标,毕竟是市场经济,学以致用,如果
- android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家。MainActivity.javapackage com.bb
- 前言Spring Boot常用注解整理提示:以下是本篇文章正文内容,下面案例可供参考一、@SpringBootApplication此注解是
- 一、Widget设计步骤需要修改三个XML,一个class:1.第一个xml是布局XML文件(如:main.xml),是这个widget的。
- 图片处理类:package com.longfei.admin.imageloder_text;import android.app.App
- 生成随机数可以用伪随机数发生器Random,受种子控制生成伪随机数,默认以当前时间值为种子。如果程序运行的很快,就会导致在几乎同一时刻运行多
- springboot项目出现”java: 错误: 无效的源发行版:17“问题解决方案下面是报错页面问
- 如下所示:import java.util.Scanner;public class Main{public static void mai
- C# 8.0中的模式匹配相对C# 7.0来说有了进一步的增强,对于如下类:class Point{ public
- 在Java 5以前,是用synchronized关键字来实现锁的功能。synchronized关键字可以作为方法的修饰符(同步方法),也可作
- 在java的开发中,java开发人员建议,尽量少用内部类,要把内部类提出他所处的那个类,单独生成一个类。直接来代码:package com.
- Maven 错误找不到符号问题,通常有三种原因: 1. 可能项目编码格式不统一。 2. 可能项目编码使用的JDK版本不统一。 3
- 目录项目结构:1.pom引入mongodb依赖2 配置application.properties3.创建mongodb文档映射实体类Spr
- 当只需要两个图像合并的时候,可以简单的使用gdi+,把两个图像画到一个画布上面实现合并bitmap.当需要将许多bitmap合并时,由于bi
- 1 基本概念ThreadLocal类提供了线程局部变量。这些变量与普通变量的不同之处在于,每个访问一个变量(通过其get或set方法)的线程
- 本文实例讲述了C#实现基于IE内核的简单浏览器。分享给大家供大家参考。具体如下:Form1.cs如下:using System;using