从android中的系统服务访问本机代码

时间:2014-02-06 14:29:48

标签: android

我正在尝试使用我自己的系统服务添加自定义ROM [来自CyanogenMod源代码]。我创建了接口(.aidl)并在java中编写了myserver。 system_server添加我的服务并在系统启动期间启动它没有任何问题。我有一个用c编写的代码,我想从我的服务中使用它。

我尝试做的第一件事是:

/frameworks/base/services/jni/com_android_server_MyService.cpp

/* includes and namespace ... */
static jint android_server_MyService_initialize(JNIEnv* env, jobject obj)
{
   return 10;
}

static JNINativeMethod sMethods[] = {
   {"initialize", "()I", (void*)android_server_MyService_initialize}
};
int register_android_server_MyService(JNIEnv* env){
  return jniRegisterNativeMethods(env, "com/android/server/INSAService", sMethods, NELEM(sMethods));
 }

...在相应的Android.mk中添加了上述文件作为源

它构建没有任何问题,但我从我的服务(Java部分)

访问此方法时遇到问题

调用我的本机方法会导致出现以下错误消息的问题

 w/dalvikvm(  278): No implementation found for native Lcom/android/server/MyService;.native_initialize:()V

0 个答案:

没有答案