美文网首页
android的service和aidl简单研究

android的service和aidl简单研究

作者: nich | 来源:发表于2021-12-15 15:43 被阅读0次

先看简单的service启动

第一种启动方式,使用startService和stopservice启动,第一次启动只会走oncreat ->onstart方法,当你再次点击startservice的时候只会走onstart方法

这种方式如果service中有方法a,方法b,那么我怎样在activity里面控制什么时候调用方法a,什么时候调用方法b呢,如果按照原本的启动方式,好像并不好实现,那么接下来看第二种启动方式

点击按钮依次调用

接下来看跨进程的aidl调用

首先设置不同进程,创建aidl文件IMyAidlInterface然后修改service

activity修改

就能完成进程间通讯啦

前提知识:java层调用binder驱动需要调用servicemanagerProxy->binderProxy->bpbinder

servicemanagerProxy里面有remote

native调用binder驱动需要调用bpservicemanage->bpbinder

然后都会调用onTransact

proxy其实就是封装binderproxy方法,然后里面的bpbind再搞

简单看下自动生成的aidl代码

proxy(obj)相当于把binderproxy(bpbinder)

客户端调用getString方法走到mremote传个标识然后会挂起。然后另一个进程service,不是会调用sub()

看ontransact方法会对code进行data打包或者reply返回。

aidl相当于你买房的中介,你想跨进程通讯的时候他把里面的办理业务都给你安排好了,你只需要花钱就行了。丢个偷来的完整流程图

相关文章

网友评论

      本文标题:android的service和aidl简单研究

      本文链接:https://www.haomeiwen.com/subject/zxqpfrtx.html