Android System_Services
Android系统服务分为Native Services和 Java Services。
Native Services
Native Services进程也是在init.rc中启动的,它不是一个daemon进程,这点容易搞混。他也是和SystemServices进程类似的系统服务进程,提供应用进程的RPC调用的真正服务代码所运行的位置。其服务都是和媒体录播放有关。
Ø SurfaceFlinger
SurfaceFlinger服务负责绘制Android应用程序的UI,Android应用程序为了能够将自己的UI绘制在系统的帧缓冲区上,它们就必须要SurfaceFlinger服务进行通信。
Ø AudioFlinger
AudioFlinger向下访问AudioHardware,实现输出音频数据,控制音频参数。同时,AudioFlinger向上通过IAudioFinger接口提供服务。所以,AudioFlinger在Android的音频系统框架中起着承上启下的作用。声音的录播放服务,包括混音等 。
Ø MediaPlayerService
提供媒体播放服务,opencore是这块的核心模块,对java端的接口为MediaPlayer.java
Ø CameraService
Camera 服务,用于Camera 的录制,拍照等功能服务。
Ø AudioPolicyService
JAVA应用层通过JNI,经由IAudioPolicyService接口,访问AudioPolicyService提供的服务。输入输出设备的连接状态。系统的音频策略(strategy)的切换。音量/音频参数的设置。
Ø SensorService
传感器服务。
Ø DrmManagerService
DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理。指的是出版者用来控制被保护对象的使用权的一些技术,这些技术保护的有数字化内容(例如:软件、音乐、电影)以及硬件,处理数字化产品的某个实例的使用限制。
Java Services
Java 服务,这部分的服务大部分都有一个供应用进程使用的manager类,这就是一个RPC调用,用户通过调用xxxManager的方法,实际上被Binder给迁移到system_server进程中对应的xxxManagerService中对应的方法,并将结果再通过binder带回。
Ø EntropyService (EntropyMixer)
熵服务,周期性的加载和保存随机信息。主要是linux开机后,/dev/random的状态可能是可预知的,这样一些需要随机信息的应用程序就可能会有问题。这个无需提供应用程序接口。
Ø PowerManagerService –> PowerManager
PowerManagerService服务是Android系统的上层的电源管理服务,主要负责系统待机、屏幕背光、按键背光、键盘背光以及用户事件的处理。通过锁的申请与释放以及默认的待机时间来控制系统的待机状态;通过系统默认灭屏时间以及用户操作的事件状态控制背光亮、暗。该服务还包括了光线、距离传感器上层查询与控制,LCD亮度的调节最终也是由该服务完成。
Ø ActivityManagerService->ActivityManager
这个是整个Android framework框架中最为核心的一个服务,管理整个框架中任务、进程管理, Intent解析等的核心实现。虽然名为Activity的Manager Service,但它管辖的范围,不只是Activity,还有其他三大组件,和它们所在的进程。也就是说用户应用程序的生命管理,都是由他负责的。
Ø TelephonyRegistry->TelephonyManager
电话注册、管理服务模块,可以获取电话的链接状态、信号强度等等。
Ø PackageManagerService -> PackageManager
包括对软件包的解包,验证,安装以及升级等等,对于我们现在不能安装.so文件的问题,应该先从这块着手分析原因。 对安装包进行管理,可以执行安装、卸载、激活、去活、查看包权限等操作。
Ø AccountManagerService -> AccountManager
google账户服务 。
Ø ContentService -> ContentResolver
内容服务,主要是数据库等提供解决方法的服务。ContentService 是Android平台中数据更新通知的管理者,是数据同步服务的管理中枢,当操作Android手机中的联系人信息、通话记录等信息同步时,就可以通过它来完成。Android系统默认添加了同步监听。
Ø HardwareService (android4.3 没有该服务)
一般是ring(响铃)和vibrate(震动)的服务程序 。
Ø WindowManagerService -> WindowManager -> PhoneWindowManager
和ActivityManagerService高度粘合 窗口管理,这里最核心的就是输入事件的分发和管理。 这是Android的UI框架最重要的部分。窗口类型包括Activity、Dialog、PopupWindow等。实际的控制通过WindowToken进行。
Ø AlarmManagerService -> AlarmManager
闹钟服务程序。定时器管理服务,提供定时提醒服务。
Ø BluetoothManagerService
蓝牙的后台管理和服务程序。
Ø ClipboardService -> ClipboardManager
和其他系统的clipBoard服务类似,提供复制黏贴功过。
Ø InputMethodManagerService -> InputMethodManager
输入法的管理服务程序,包括何时使能输入法,切换输入法等等。
Ø AccessibilityManagerService-> AccessibilityManager
主要是一些View获得点击、焦点、文字改变等事件的分发管理,对整个系统的调试、问题定位等,辅助管理程序截获所有的用户输入。
Ø NotificationManagerService -> NotificationManager (android4.3 没有该服务)
负责管理和通知后台事件的发生等,这个和statusbar胶黏在一起,一般会在statusbar上添加响应图标。用户可以通过这知道系统后台发生了什么事情。
Ø MountService
磁盘加载服务程序,一般要和一个linux daemon程序如vold/mountd等合作起作用,主要负责监听并广播device的mount/unmount/bad removal等等事件。
Ø DeviceStorageMonitorService
监控磁盘空间的服务,当磁盘空间不足10%的时候会给用户警告。
Ø LocationManagerService -> LocationManager
要加入GPS服务等,这部分要细看,现在应用中的navigation没响应,可以从此处着手看一下 。
Ø SearchManagerService -> SearchManager
搜寻服务。
Ø WallpaperManagerService -> WallpaperManager
管理桌面背景的服务,深度定制化桌面系统。
Ø AudioService -> AudioManager
AudioFlinger的上层管理封装,主要是音量、音效、声道及铃声等的管理。
Ø HeadsetObserver (android4.3 没有该服务)
耳机插拔事件的监控小循环
Ø DockObserver
Dock 观察器。
Ø BackupManagerService -> BackupManager
备份服务。
Ø AppWidgetService -> AppWidgetManager
Android可以让用户写的程序以widget的方式放在桌面上,这就是这套管理和服务的口。
Ø StatusBarPolicy (android4.3 没有该服务)
管理哪个图标该在status bar上显示的策略。
Ø LightsService
灯光的闪烁。lights调节有背光,键盘,按键,电池,通知,提醒,蓝牙和WIFI。主要包括LCD背光、按钮背光、键盘灯等。自然光强度感应传感器服务。
Ø DisplayManagerService
Android从版本4.2开始提供了一个显示管理服务DisplayManagerService,支持多种显示类型的多个显示器的镜像显示,包括内建的显示类型(本地)、HDMI显示类型以及支持WIFI Display 协议( MIRACAST),实现本地设备在远程显示器上的镜像显示。
Ø BatteryService
电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动。
Ø VibratorService
VibratorService 提供系统震动功能。
Ø NetworkManagementService
网络管理服务。NetworkManagementService提供对物理网络接口的管理服务。
Ø NetworkStatsService
NetworkStatsService提供网络传输数据统计服务,网络状态服务。
Ø NetworkPolicyManagerService
NetworkPolicyManagerService提供网络策略管理服务。
Ø ConnectivityService -> ConnectivityManager
网络连接状态服务,可供其他应用查询,当网络状态变化时,也可广播改变。 ConnectivityService提供数据连接管理服务。
Ø WifiP2pService
为WIFI—P2P 提供服务功能。
Ø WifiService
提供对android Wifi管理服务。
Ø NsdService
基于苹果的Bonjour服务发现协议,支持远程服务的发现和零配置。
Ø RegulatoryObserver
不清楚是不是服务。
Ø UsbService
USB 服务。
Ø SerialService
可支持对串口的设备进行操作。
Ø TwilightService
跟位置、时间有关的。
Ø UiModeManagerService
管理当前Android设备的夜间模式和行车模式。
Ø RecognitionManagerService
身份识别服务。
Ø ThrottleService
网络节流阀控制,避免数据过大或过小情况下不必要的重复连接和断开。
Ø NetworkTimeUpdateService
网络更新服务。
Ø CommonTimeManagementService
manages the configuration of the native Common Time service.
Ø InputManagerService
输入事件管理服务。
Ø Installer
程序安装。
Ø DreamManagerService
提供ScreenSaver,及屏保功能。
Ø UpdateLockService
提供升级锁。
Ø LockSettingsService
锁屏界面中的输入密码,手势等安全功能有关。
Ø CountryDetectorService
检查当前用户所在的国家。
Ø StatusBarManagerService
状态栏管理服务。
Ø DevicePolicyManagerService
提供一些系统级别的设置及属性。
Ø TextServicesManagerService
文本服务管理。
Ø MSimTelephonyRegistry
Since phone process can be restarted, this class provides a centralized place
that applications can register and be called back from.
Ø SchedulingPolicyService
用于控制媒体相关进程调度策略的调整。注意是调度策略,而不是优先级。
Ø UserManagerService
对于系统应用,UserManager提供了创建/删除/擦除用户、用户信息获取、用户句柄获取等用户操作的接口。均由远程调用UserManagerService服务的对应方法实现。
Ø DropBoxManagerService(DBMS)
用于生成和管理系统运行时的一些日志文件。这些日志文件大多记录的是系统或某个应用程序出错时的信息。
Ø DiskStatsService、DeviceStroageMonitorService
与系统内部存储管理、监控有关。用于查看和监测系统存储空间。
Ø SamplingProfilerService
对进程进行性能分析。
Ø IdleMaintenanceService
维护任务服务。