Android 添加系统服务 android 添加系统权限

Android系统本身提供了很多系统服务,如WindowManagerService,PowerManagerService等。下面描述一下添加一个系统服务的具体步骤。

1、 撰写一个aidl文件,定义服务的接口,将在编译过程中通过aidl工具生成对应的java接口。一般系统服务的aidl文件都放在frameworkbasecorejavaandroidos目录中。

以我所写的IMyTool.aidl为例。在.aidl中定义自己需要加入的方法,编写规则和java接口差不多,这里不多说。

2、 将aidl文件名添加到frameworksbase目录下的Android.mk编译脚本文件中。

如:

LOCAL_SRC_FILES +=

core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl



core/java/android/os/IMyTool.aidl



IMyTool.aidl即我加进去的aidl文件,加入后才能在make过程中编译到,否则将在后面的SystemServer添加系统服务时会报错提示找不到对应类。

3、 编写真正工作的服务类,继承IMyTool.Stub类(AIDL文件名.Stub,aidl生成的接口中的内部类,是一个Binder)。

服务类一般都放在frameworkbaseservicesjavacomandroidserver目录中。

例如:

public class MyToolService extends IMyTool.Stub {
Android 添加系统服务 android 添加系统权限

实现IMyTool.aidl中定义的接口。

}

4、 将自定义服务注册到SystemServer,使得开机过程中被添加。

在frameworkbaseservicesjavacomandroidserver目录中的SystemServer中启动服务代码处加入:

try {

Slog.i(TAG, "MyToolService");

ServiceManager.addService(Context.MY_TOOL_SERVICE,new MyToolService(context));//MyToolService构造函数自己定义,一般都会用到Context

} catch(Throwable e) {

Slog.e(TAG, "Failure startingMyToolService", e);

}

上面代码中Context.MY_TOOL_SERVICE是自己在Context类中定义的常量,也就是给服务定义的名字,使用常量方便获取服务,而不需要记住注册服务时用的名字,且想换名字时只需改一个常量的值。

5、 由于在工程中添加了自己定义的类及常量,系统的api没有更新,因此需要先在工程中make clean然后make update-api,执行完后会发现frameworksbaseapicurrent.xml文件中多出自己定义的一些东西。current.xml这个文件包含了所有系统所有能被应用层使用的类及其方法等。

之后再使用make编出来的固件及jar包就能包含自定义的接口。

编译后如何使用:

将编出来的jar包通过lib方式导入工程。jar包位置:outtargetcommonobjJAVA_LIBRARIESframework_intermediatesclasses.jar

调用以下代码获取自定义服务:

IMyTool myTool = IMyTool.Stub.asInterface(ServiceManager.getService(MY_TOOL_SERVICE));

MY_TOOL_SERVICE即在Context中定义的常量。获取到myTool后就可以调用在aidl文件中定义的接口了。

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/83179.html

更多阅读

安卓手机如何获得root权限 安卓手机一键root

安卓手机如何获得root权限——简介 手机root权限,是系统权限的一种。很多手机都自带很多没用的软件。但是自己却不能删除这些软件,因为自己的权限不够。这时候,你只要把手机ROOT一遍,你就能拥有手机的最高权限了。随意删除手机里面的任

三星I9500如何实现ROOT i9500 4.4.2 root

三星I9500如何实现ROOT——简介三星I9500是一款采用安卓操作系统的智能手机产品,默认出厂时安卓系统对系统权限进行了限制,用户无法使用一些高权限的应用或进行一些高权限的操作。下面本文就来介绍一种安卓通用ROOT方法,希望可以对大家

设置手机的应用权限管理 乐视手机应用权限管理

设置手机的应用权限管理——简介随着移动互联网的发展,现在的手机安装APP应用越来越丰富,在安装应用的同时这些《应用》也就拥有了一些搜集数据的系统权限,在丰富您的生活同时个人的隐私也随之有可能遭到泄露,在我们不觉察中,大量的应用

在Win7系统中添加打印机的方法 xp系统添加网络打印机

在Win7系统中添加打印机的方法——简介Windows7操作系统和之前用户群体庞大的WindowsXP操作系统在操作上大同小异,但是还是有些区别。对于Win7如何添加打印机,很多用户还不是很了解。这里我们做一个简单的教程,教会大家如何在Win7操作

华为手机怎样获取root权限 精 华为root权限获取教程

华为手机怎样获取root权限 精——简介root权限,系统权限的一种,与SYSTEM权限可以理解成一个概念,但高于Administrator权限,root是Linux和unix系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作。安卓系

声明:《Android 添加系统服务 android 添加系统权限》为网友海上明月共潮生分享!如侵犯到您的合法权益请联系我们删除