瑞芯微Rockchip开发者社区
直播中

李桂兰

8年用户 1534经验值
私信 关注
[经验]

手把手教你怎样去制作一种Native服务

制作Native服务很简单,主要有两个步骤:1.创建服务。2.把服务加入到Android系统的ServiceManager。

一、首先,创建服务。创建Natvie服务,我们可以新建一个集成自BBinder的类。BBinder类是一个抽象类,是android进程间通信的工具,我们要实现这个方法来实现我们的功能:

virtual status_t onTransact(uint32_t , const Parcel& , Parcel* , uint32_t);
因此,我们创建一个Nativie服务叫MyService




实现MyService的功能:





这里能看到如何消息code是0是我们返回一个"Greeting from MyService ."字符串。

二、然后,我们把MyService加入到Android系统的ServiceManager。这个工作在MyDeamon程序中调用MyService::Instance()来完成,并加入到线程池中成为守护精灵。




可以看到在MyService::Instance()中的int ret = defaultServiceManager()->addService(String16("tchip.MyService"),new MyService());这一句就是核心。

三、最后,我们在写一个测试程序,从MyService中返回数据。




我们再写一个Android.mk文件来编译:




编译完后把可执行文件push到设备的/system/bin下运行:

先运行MyDeamon,打开服务。
接着在另一个终端运行MyTest

最后的最后,如果我们把这个Native服务放到init.rc中赋予root权限,这样这个服务就可以做更多事情了:



更多回帖

发帖
×
20
完善资料,
赚取积分