您的位置:首页 > 移动开发 > Android开发

Android Framework学习笔记 -- 在framework添加system service

2017-11-19 11:21 513 查看
这是在android 6.0下的实现,其他版本可能有改动

在Context.java添加服务名称

//--->frameworks/base/core/java/android/content/Context.java
public static final String A_SERVICE = "a";

@StringDef {
...
A_SERVICE
}


在ServiceServicer注册服务

//--->frameworks/base/services/java/com/android/server/SystemServer.java
private void startOtherServices() {
...
ServiceManager.addService("AService", new AService);
...
}


在ContextImpl.java添加获取服务管理接口

//--->frameworks/base/core/java/android/app/ContextImpl.java
static {
....
registerService(Context.A_SERVICE,AManager.class,
new CachedServiceFetcher<AManager>() {
@Override
public AManager createService(ContextImpl ctx) {
return new AManager(ctx);
}});
}


Service的aidl

interface IAExService {

}


Service 本体

public class AService extends IAService.Stub {

}


Manager

public class AManager {
public AManager(Context context) {

}

static public IAService getService()
{
IBinder b = ServiceManager.getService("notification");
return IAService.Stub.asInterface(b);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: