Android4.4源码添加系统自定义服务

本文介绍如何在Android系统中创建并注册自启动的服务,包括创建AIDL文件、修改编译脚本、添加Manager及Service类等步骤,并最终通过更新API完成自定义服务的注册与使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不积跬步无以至千里
想要一个系统服务:能够开机自启动,随调随到?请看
1、创建aidl文件
在目录路径为 android\frameworks\base\core\java\android\kt\debuginfo 添加文件:
IDebugInfoProviderManager.aidl
这里写图片描述
这里添加你所需要实现的两个抽象接口。
2、注册aidl到编译脚本Android.mk文件中
在目录路径为 frameworks\base\Android.mk 添加如下代码:
在Android.mk如下LOCAL_SRC_FILES += \下添加如下图:
这里写图片描述
3、添加对应的Manager
在目录路径为 android\frameworks\base\core\java\android\kt\debuginfo 添加文件:
DebugInfoProviderManager.java
这里写图片描述
4、添加来实现前面定义的aidl接口的类的service
在目录路径为 android\frameworks\base\service\java\com\android\server 添加文件:
DebugInfoProviderManagerService.java
这里写图片描述
这里写图片描述
5、注册到系统中,会分为下面几个步骤:
first:添加定义服务的字符串(这里就是你调起某个Manager方法参数的那个字符串)
在目录路径为 android\frameworks\base\core\java\android\content\Context.java 添加代码如下:
这里写图片描述
second:在ContextImpl注册service
在目录路径为 android\frameworks\base\core\java\android\app\ContextImpl 添加代码如下:
这里写图片描述
third:将service注册到SystemServer(使开机被添加)
在目录路径为 android\frameworks\base\service\java\com\android\server\SystemServer 添加代码如下:
这里写图片描述
6、更新Api
由于在工程中添加了自己定义的类及常量,系统的api没有更新,因此需要
make update-api
其作用就是更新api,然后会使路径frameworks\base\api\api\current.txt里面有自己添加的功能代码简要
7、自定义服务的使用
DebugInfoProviderManager debugInfoManager = (DebugInfoProviderManager)context.getSystemService(Context.DEBUGINFO_SERVICE);
HashMap map = debugInfoManager.getMobileQualityInformation();

Over!!!观赏也是一种力量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rom_Fisher

赠人玫瑰,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值