Android中的Service注册方式:
1.native C++实现的service,目前源码中有2种注册方式,一种是与硬件交互的一些service在system_server进程中注册,{repo_root}/frameworks/base/cmds/system_server/library/system_init.cpp;另外一种是在自己的进程中进程注册,但是需要在{repo_root}/frameworks/base/cmds/service_manager.c中的alliow数组中添加uid和service name。
2.在java层面实现的框架级别的service(如ActivityManagerService等)的注册在{repo_root}/frameworks/base/services/java/com/android/server/SystemServer.java,这些注册在init2阶段被调用。在看过的例子发现另外一个在应用中注册这种级别的service的方法是:添加permissons文件、AndroidManifest文件使用android:sharedUserId="android.uid.system"和应用的Android.mk文件中添加LOCAL_CERTIFICATE := platform。(当然这个app放在Android源码中进行编译)
3.应用的service,在AndroidManifest.xml中使用service标签声明即可。
阅读(3478) | 评论(0) | 转发(0) |