Android系统服务的目录结构
1.系统服务的撰写:
·定义一个服务接口aidl文件:framework/base/core/java/android/os/
·注册aidl文件framwork/base/下Android.mk中
·编写真正的服务类 ,继承IMytool.Stub类(framwork/base/services/java/com/android/server)
·注册自定义服务到SystemServer中,使得开机过程中被添加(framwork/base/services/java/com/android/server)
上面代码中Context.MY_TOOL_SERVICE是自己在Context类中定义的常量
·由于添加了自定义类和常量,系统api没更新则需make clean然后make update-api会生成(frameworks\base\api\current.xml)新的东西。
·将编译出来的jar以lib方式加入工程(out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar)
·自定义系统服务使用列如:IMyTool myTool = IMyTool.Stub.asInterface(ServiceManager.getService(MY_TOOL_SERVICE));
2.需分析的系统服务列表、
Android系统提供的系统服务接口,如下表所示:
服务名称 返回的对象 服务说明
WINDOW_SERVICE WindowManager 管理打开的窗口程序
LAYOUT_INFLATER_SERVICE LayoutInflater 取得xml里定义的view
ACTIVITY_SERVICE ActivityManager 管理应用程序的系统状态
POWER_SERVICE PowerManger 电源的服务
ALARM_SERVICE AlarmMan 闹钟的服务
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 网络下载服务