为了账号安全,请及时绑定邮箱和手机立即绑定

Android实现跨进程通信

Kaneki 移动开发工程师
难度中级
时长 1小时59分
学习人数
综合评分9.53
13人评价 查看评价
9.2 内容实用
9.4 简洁易懂
10.0 逻辑清晰
老师讲的很好,要是实际的跨进程案例讲解就更好了,加深记忆
https://github.com/ThirdPrince/IMOOC_1195
蛮好的一个课程
赞! binder讲的最清楚的一个

最新回答 / sam寨
子进程中,这个可以类比网络请求来理解客户端发送请求给服务器,服务器和客户端物理上就不是同一个机器,所以显然是在两个进程中,而客户端在主线程发送请求当然会阻塞,除非请求的时候是在子线程中进行
感觉说得非常好,但是我技术差原因,源码那块有点吃不消
通过aidl实现了主进程和子进程ipc通信

最新回答 / 慕丝4348654
确实是同一个模块,但是在在不同的process,一个在mainactivity 的默认包进程,一个在:remote进程,所以也是实现了跨进程的。
这节课最后老师说,Messenger不适合高并发,高并发的时候可能会导致主线程的阻塞,这个说法成立的前提是,你创建Messenger时使用的是主线程的Handler,但事实上,Mesenger并没有对Handler做限制,因此我们可以创建自己的HandlerThread和Handler,在指定的线程中去做跨进程通信。而且个人觉得这种封装糖其实挺好的,省去了我们手动将Binder线程中操作转换到其他线程,比如主线程的操作。
当然一般的使用场景是,跨进程通信得到的结果或者数据最终是要在主线程中使用的。

最新回答 / 绝尘释爱
创建一个共享内存,发送的时候把数据存到共享内存中,接收的时候读取共享内存中的数据

最新回答 / weixin_慕用2546013
首先你这是两个问题,之所以用arraylist不行,是因为arraylist只是简单根据元素是否相等去增加删除,所以由于序列化的问题前后已经不是一个对象了,那么自然删不掉,而用RemoteCallbackList可以,是因为内部使用的Ibinder来唯一标识的,所以可以删掉,而后续也是在此基础上,remote进程调用了主进程的消息接收服务。而消息类也加了in关键字,所以对象进行了写入的操作。最后主进程才打印了remote进程传的消息
有点无聊1
首页上一页123下一页尾页
课程须知
本课程适合有一定的Android基础,想彻底了解Android进程间通信的同学。
老师告诉你能学到什么?
1、Android中多进程开发的应用和关键技术 2、Android中进程间通信的主要方式以及应用场景 3、Binder 框架在•Android中的应用 4、AIDL Messenger的底层原理和开发应用 5、AIDL 中关键字 oneway in out inout的作用和原理 6、Binder连接池的开发与实现

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消