Android中的服务

首先感谢 红茶前辈:

http://my.oschina.net/youranhongcha



废话只说一句:android aosp源码庞大,是个大草原,要跑马,请看准方向,本文就是个方向

(我不写长文,也不贪多,可能介绍不清楚,然后就这样,写给懂的人看)




android既然分为 c世界 和 java世界,那么服务也从这俩方面介绍咯:

  1. c世界服务称为本地服务。(service manager service好特殊)
  2. java世界服务(就是zygote,不,应该说SystemServer中初始化的服务)称为 上层服务(或者说框架服务)

当然你也可以叫别的名字,不过我觉得这样挺好区分的,就这样叫咯。(四大组件之一的service其实是框架层对Binder封装,也叫服务,但不是这个上层服务,你可以称它为“用户可定制服务”)

一、 本地服务: (init进程解析init.rc跑起来的服务) (比方说我最熟悉的installd)

core类型的   (类型是在init.rc里记录服务是标明的)

服务名称 手机中执行文件位置 说明
ueventd /sbin/ueventd -->../init 创建运行时目录、设备节点
healthd /sbin/healthd
console /system/bin/sh
adbd /sbin/adbd
servicemanager /system/bin/servicemanager /system/bin下面还有很多服务
vold, logd之类的

main类型服务

服务名称 可执行文件path 说明
netd /system/bin/netd
debuggerd /system/bin/debuggerd
ril-daemon /system/bin/rild
surfaceflinger /system/bin/surfaceflinger
zygote /system/bin/app_process 创建app应用进程的服务
installd /system/bin/installd

补充一个:  keystore   /system/bin/keystore

二、上层服务 ( system server进程中初始化的服务,或者说在service manager中注册的服务)

(特别重要的,核心的,我用加重标识)

这部分介绍,整理自:http://blog.csdn.net/zhgxhuaa/article/details/24835065

1.AccountManagerService

Android账户服务,提供了对账户、密码、授权的集中管理。

2.AccessibilityManagerService

辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果,View的点击、焦点等事件分发管理服。

3.ActivityManagerService

Android framework框架核心服务,管理整个框架中任务、进程管理、Intent解析等的核心实现,管理四大组建的生命周期。

4.AlarmManagerService

提供闹铃和定时器等功能。

5.AppWidgetService

Android中提供Widget的管理和相关服务

6.AssetAtlasService

负责将预加载的bitmap组装成纹理贴图,生成的纹理贴图可以被用来跨进程使用,以减少内存。

7.AudioService

AudioFlinger的上层管理封装,主要是音量、音效、声道及铃声等的管理。

8.BackupManagerService

备份服务。

9.BatteryService

负责监控电池的充电状态、电池电量、电压、温度等信息,当电池信息发生变化时,发生广播通知其他关系电池信息的进程和服务。

10.BluetoothManagerService

负责蓝牙后台管理和服务。

11.ClipboardService

剪贴板服务。

12.CommonTimeManagementService

管理本地常见的时间服务的配置,在网络配置变化时重新配置本地服务。

13.ConnectivityService

网络连接状态服务。

14.ContentService

内容服务,主要是数据库等提供解决方法的服务。

15.ConsumerIrService

远程控制,通过红外等控制周围的设备(例如电视等)

16.CountryDetectorService

检测用户国家

17.DevicePolicyManagerService

提供一些系统级别的设置及属性

18.DiskStatsService

磁盘统计服务,供dumpsys使用

19.DisplayManagerService

用于管理全局显示生命周期,决定在已连接的物理设备如何配置逻辑显示,并且通知系统和应用状态的改变。

20.DreamManagerService

屏幕保护。

21.DropBoxManagerService

用于系统运行时日志的存储于管理。

22.IdleMaintenanceService

用于观察设备状态,在设备空闲时执行维护任务。将一些比较耗时的代价比较高的任务放到设备空闲时执行,这样保证用户的体验。

23.InputManagerService

以前在WindowManagerService中,现在独立了出来,用户处理事件分发。

24.InputMethodManagerService

输入法服务,打开和关闭输入法。

25.LightsService

光感应传感器服务。

26.LocationManagerService

位置服务,GPS、定位等。

27.LockSettingsService

和锁屏界面中的输入密码,手势等安全功能有关。可以保存每个user的相关锁屏信息。

28.WallpaperManagerService

壁纸管理服务。

29.MountService

磁盘加载服务程序,一般要和一个linux daemon程序如vold/mountd等合作起作用,主要负责监听并广播device的mount/unmount/badremoval等等事件。

30.NetworkManagementService

网络管理服务。ANDROID 系统网络连接和管理服务由四个系统服务ConnectivityService、NetworkPolicyManagerService、NetworkManagementService、NetworkStatsService共同配合完成网络连接和管理功能。ConnectivityService、NetworkPolicyManagerService、NetworkStatsService三个服务都通过INetworkManagementService接口跨进程访问NetworkManagementService服务,实现与网络接口的交互及信息读取。

31.NetworkPolicyManagerService

维护网络使用策略。

32.NetworkStatsService

网络统计相关。

33.NetworkTimeUpdateService

监视网络时间,当网络时间变化时更新本地时间。

34.NotificationManagerService

通知服务。

35.NsdService

网络服务搜索

36.PackageManagerService

Android framework框架核心服务,用于APK的解析、权限验证、安装等。

37.PrintManagerService

打印服务。

38.PowerManagerService

电源管理服务。

39.RecognitionManagerService

身份识别相关。

40.SamplingProfilerService

用于耗时统计等。

41.SearchManagerService

搜索服务。

42.SchedulingPolicyService

调度策略。

43.SerialService

对串口的设备进行操作

44.StatusBarManagerService

状态栏。

45.TelephonyRegistry

提供电话注册、管理服务,可以获取电话的链接状态、信号强度等等。

46.TextServicesManagerService

文本服务,例如文本检查等。

47.TwilightService

指出用户当前所在位置是否为晚上,被UiModeManager等用来调整夜间模式。

48.UiModeManagerService

管理当前Android设备的夜间模式和行车模式.。

49.UsbService

USB Host和device管理服务。

50.VibratorService

振动器服务。

51.WifiP2pService

Wifi Direct服务。

52.WifiService

Wifi服务。

53.WindowManagerService

Android framework框架核心服务,窗口管理服务。

54.WiredAccessoryManager

监视手机和底座上的耳机。

补充一个 :

FingerprintManagerService  提供指纹相关的服务(authenticate啊、enroll啊之类的)



我学习的时候是,先掐了个PMS,搞的半死不活的,不,死去活来的。

后来又和AMS以及WMS打,最近科室做预言的时候一直在攻击FMS  (指纹服务)。

目前感觉,一旦一个服务拿下来,后面的就顺手很多。(就像知道Binder机制后发现android系统再也玩不出新花样了)

但是也有例外,比方说AMS和WMS的缠绵,至今搞的我神魂颠倒,像FMS就还好。

F.Y.I.


merlin

2015/9/29

时间: 2024-10-02 04:10:08

Android中的服务的相关文章

Android中的服务(service)详解(三)--远程服务(remote)

1. 引言: (1)AIDL的作用 在Android平台,每个应用程序都是一个单独的JVM,都运行在自己的进程空间里, 通常,一个进程不允许访问另一个进程的内存空间(一个应用不能访问另一个应用).当用户(程序开发人员)想在一个App中访问另一个App的进程空间的时候,就需要进程间通信.在Android中,远程服务为我们提供了实现进程间通信的方式,其中,AIDL是应用程序开发人员常的一种方式. AIDL (Android Interface Definition Language) 是一种IDL

Android中Service(服务)的使用

进程的优先级---------------------------------进程的优先级表现为:优先级越高,该进程的“生命力”就越强,反之,则越低,而低优先级的进程更容易被Android系统清除.进程的优先级从高到低为:1. 前台进程2. 可见进程3. 服务进程4. 后台进程5. 空进程 Service(服务)---------------------------------Service是Android系统的核心组件,由Android创建.维护和管理.Service需要在AndroidMan

Android中查看服务是否开启的工具类

这个也是昨天学习的,做下总结. 检查服务是否开启要写成一个工具类,方便使用,传服务的名字返回Boolean值,当然,因为需要,还要传一个上下文context. 说一下这个工具类的几个关键点: 1.方法要传context和serviceName,context用来getSystemService()操作获得ActivityManager.注意,这个方法参数要用大写的Context中的参数:Context.ACTIVITY_SERVICE,要不然会出错,还不知道哪错的,花了我10分钟的时间才知道,谨

Android 中的 Service 全面总结详解【下】

上一篇文章Android 中的 Service 全面总结详解[下] 介绍了Service的一些知识以及本地Service的使用,如果对Service还不太了解的建议先看下上篇文章:本文主要接着上一篇讲下远程服务的使用: 在说到远程服务的时候,我们需要先了解一些预备的知识: 首先来了解一下AIDL机制: AIDL的作用 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象.在Android平台,一个进程通常不能访问另一个进程的内存空间,

android插件化-apkplug中OSGI服务基本原理-08

我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService 一 OSGI与android Service 异同点 OSGI服务与android Service概念差不多也是Service ,Client 关系. android Service接口  --service.AIDL OSGI接口                --java interface 所以android 进程间通信Service只能传递序列

一个Demo学完Android中所有的服务(转)

说明:这个例子实现了Android中常见的许多服务,下面是实现的截图 接下来,以源代码的方式分析这个例子   1.MainActivity--主界面 这个类主要是实现用户所看到的这个Activity,其中包含了一系列的按钮,用户点击按钮执行相应的动作,所以在这个类中主要是对按钮的定义和对按钮绑定相应的监听器,下面是实现的代码: [java] view plaincopyprint? package lovefang.stadyService; import android.app.Activit

Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)

一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端,本地在进行拉流播放的流程.所以这个过程中,我们需要首先来把服务端这个中间环节的工作搞定,后续再弄推流和拉流功能.现在推流大部分都是使用RTMP/HLS协议的,关于这两个协议的区别: 所以我们服务端搭建就需要用这两个协议,不过本文放心了,不会去手动的编写一套协议代码的,谁叫这个世界属于开源呢? 需要的

Android中使用HTTP服务

转至 http://blog.csdn.net/liuhe688/article/details/6425225 在Android中,除了使用java.net包下的API访问HTTP服务之外,我们还可以换一种途径去完成工作.Android SDK附带了Apache的HttpClient API.Apache HttpClient是一个完善的HTTP客户端,它提供了对HTTP协议的全面支持,可以使用HTTP GET和POST进行访问.下面我们就结合实例,介绍一下HttpClient的使用方法. 我

Android中如何像 360 一样优雅的杀死后台服务而不启动

Android中,虽然有很多方法(API或者shell命令)杀死后台`service`,但是仍然有很多程序几秒内再次启动,导致无法真正的杀死.这里主要着重介绍如何像 360 一样杀死Android后台服务,而不会再次启动. 一.已知的 kill 后台应用程序的方法 android.os.Process.killProcess(pid); activityManager.killBackgroundProcesses(pkgName); kill -9 pid 这三种方法都可以“杀死”后台应用程序