System_Server进程
运行在system server进程中的服务比较多,这是整个android框架的基础
Native服务
SurfaceFlinger
这是framebuffer合成的服务,将各个应用程序及应用程序中的逻辑窗口图像数据(surface)合成到一个物理窗口中显示(framebuffer)的服务程序
Java服务:
这部分的服务大部分都有一个供应用进程使用的manager类,这就是一个RPC调用,用户通过调用xxxManager的方法,实际上被Binder给迁移到system_server进程中对应的xxxManagerService中对应的方法,并将结果再通过binder带回。
Android系统提供的系统服务接口,如下表所示:
服务名称 返回的对象 服务说明
WINDOW_SERVICE WindowManager 管理打开的窗口程序
LAYOUT_INFLATER_SERVICE LayoutInflater 取得xml里定义的view
ACTIVITY_SERVICE ActivityManager 管理应用程序的系统状态
POWER_SERVICE PowerManger 电源的服务
ALARM_SERVICE AlarmManager 闹钟的服务
NOTIFICATION_SERVICE NotificationManager 状态栏的服务
KEYGUARD_SERVICE KeyguardManager 键盘锁的服务
LOCATION_SERVICE LocationManager 位置的服务,如GPS
SEARCH_SERVICE SearchManager 搜索的服务
VIBRATOR_SERVICE Vibrator 手机震动的服务
CONNECTIVITY_SERVICE Connectivity 网络连接的服务
WIFI_SERVICE WifiManager Wi-Fi服务
TELEPHONY_SERVICE TeleponyManager 电话服务
INPUT_METHOD_SERVICE InputMethodManager 输入法服务
UI_MODE_SERVICE UiModeService 人机界面模式服务
DOWNLOAD_SERVICE DownloadService 网络下载服务
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
主要功能有检查输入输出设备的连接状态及系统的音频策略的切换等。
分享到:
相关推荐
android系统服务大全.doc 与广播大全android.doc
android系统级的服务包含了Android Service 和Native Service . Android Service 也称作 Java Service ,是用JAVA语言编写的,实现在框架层。 Native Service 也称作 System Service ,是用C++语言编写的,实现...
编写Android系统服务代码案例编写
android 用C语言 实现android的系统服务,包含了java层调用服务的范例
应用程序框架层主要包括系统服务,例如组件管理服务、应用程序安装服务、窗口管理服务、多媒体服务和电信服务等。应用程序框架进一步又分为C/C++和Java两个层次,Java代码运行Dalvik虚拟机之上,并且通过JNI方法和C/...
Android系统开发编译环境配置 1 Ubuntu下使用Simba服务实现局域网内文件共享 3 Ubuntu下tftp服务器的创建 3 创建一个新的Android产品项目 4 制作ubifs文件系统 7 android编译系统makefile(Android.mk)写法 10 ...
Android系统时间同步服务的源码,你可以根据自己需要修改再编译,缺分所以上传换分
5.4 系统服务的Java部分 101 5.4.1 Binder 102 5.4.2 ServiceManager 103 5.4.3 系统进程 103 第6章 Android的GUI系统 106 6.1 Android GUI系统综述 106 6.2 pixelflinger和libui库 108 6.2.1 ...
“基于Android的在线订餐系统的研究与实现”项目由三个模块组成:WEB服务器,Android用户客户端和Android管理员客户端。 WEB服务器 “OrderServer”的部署有两种方法: 1、通过MyEclipse或者Eclipse直接部署,服务器...
android系统添加系统服务
Android编译服务器系统安装标准手册 Android编译服务器系统安装标准手册
http://blog.csdn.net/xiayu98020214/article/details/8850430,是配合博客的android4.04patch ,还有添加的文件,还有测试apk
android图书管理系统+javaweb后台服务器代码+数据库建表语句
Android调用系统锁屏,实现默认锁屏密码
基于Android开发的点餐系统(前端+服务器)源码毕业设计
在Android系统上配置NFS开发环境。PC机使用vmware。
代码可以直接运行,实现了android平台服务的...当android系统发现内存不够时,极易自动killed掉你的服务。如果,改用前台则不易被killed,当然,内存极度低时同样会killed。 本代码来源于对android的apidemos的研究。
本章内容服务(Service)是Android系统中4个应用程序组件之一(其他的组件详见3.2节的内容)。服务主要用于两个目的:后台运行和跨进程访问。通过启动一个服务,可以在不显示界面的前提下在后台运行指定的任务,这样...
Android 系统本文以 Android 源码为基础,详细分析了 Android 系统中定位服务的架构和实现。
让Android系统或Android应用执行shell脚本,方法一是:通过修改/system/init/init.c,在里面写入执行脚本的命令。方法二是:启动一个服务,让这个服务去执行脚本。