1.在frameworks\base\core\java\android\app目录下添加两个文件:
Ilbd.aidl
package android.app;
interface Ilbd{
void setName(String name);
}
lbdManager.java
package android.app;
import android.os.RemoteException;
import android.util.Log;
public class lbdManager{
private Ilbd mService;
public lbdManager(Ilbd service) {
mService = service;
}
public void setName(String name) throws RemoteException {
// TODO Auto-generated method stub
Log.e("lbdManager", "success");
}
}
2.打开相同目录下ContextImpl.java
添加以下代码
registerService("lbd", new StaticServiceFetcher() {
public Object createStaticService() {
IBinder b = ServiceManager.getService("lbd");
Ilbd service = Ilbd.Stub.asInterface(b);
return new lbdManager(service);
}});
3.打开frameworks\base目录下Android.mk添加这么一行
LOCAL_SRC_FILES += \
....
core/java/android/app/Ilbd.aidl \
4.打开frameworks\base\services\java\com\android\server目录,添加文件lbdServiceClass.java
package com.android.server;
import android.app.Ilbd;
public class lbdServiceClass extends Ilbd.Stub {
public lbdServiceClass() {
}
public void setName(String name) {
}
}
5.打开同目录下的SystemServer.java,在initAndLoop() 中添加如下代码
try {
Slog.i(TAG, "lbd");
ServiceManager.addService("lbd", new lbdServiceClass());
} catch (Throwable e) { Slog.e(TAG, "Failure startinglbdServiceClass", e);
}
6.回到framework同级目录,用make update-api -j4命令更新接口
7.在framework同级的目录下会生成一个out文件
8.在out\target\common\obj\JAVA_LIBRARIES\framework_intermediates这个目录下的classes.jar可以导入Eclipse使用我们做好的系统服务lbdManager