- List 只支撑ArrayList,琅绫擎每个元素必须可以或许被AIDL支撑
- Parcelable:所有实现了Parcelable接口的对象
- AIDL:所有AIDL接口本身也可以在AIDL文件中应用。
以上6中类型,个中自定义Parcelable对象和AIDL文件必须显示的import进来,不管是否和当前的AIDL位于同一文件中。别的,如不雅AIDL用到了自定义的Parcelable对象必须新建一个和它同名的的AIDL文件,膳绫擎我们用到了Book,所以必须创建Book.aidl.
- 应用ContentProvide
- // Book.aidl
- package com.example.xiahao.myapplication;
- parcelable Book;
为了便利开辟,建议把所以AIDL相干类和文件全部放入同一包中,当客户端是别的一个应用时,我们可以直接把全部包复制到客户端工程中。后面会给出一个书上的例子:具体包含,根本的AIDL调用,注册解注册,权限验证,断开重连,binder连接池一个办事处理多个AIDL的调用。
- 应用Socket
经由过程Socket进行过程间的通信,它分为流式套接字和用户数据套接字两种,分别对应收集协定层中的TCP和UDP协定。TCP是面向连接的协定,供给稳定的双向的通信功能,TCP的建立须要经由 “三次握手”才能完成,为供给稳定的的数据传输功能,其本身供给了超时重连机制,是以具有很高的稳定性。而UDP是无连接的,供给不稳定的单向的通信功能,当然UDP也可以实现双向通信功能。在机能上,UDP具有更好的效力,其缺点就是不包管数据必定可以或许精确传输,尤其是在收集拥塞的情况下。
ContentProvide专门用来竽暌功用之间的通信,和Messenger一样,ContentProvide底层也是Binder,固然底层Binder但应用要比AIDL简零丁,因为体系帮我们做了封装。
- 选用合适的IPC方法
给出版中的一张表格《Android开辟艺术商量》
名称 长处 缺点 实用处景
Bundle 简单易用 只能传输Bundle支撑的数据类型 四大年夜组件的过程间通信
文件共享 简单易用 不合适高并发场景,并且无法做到过程间的即时通信 无并发拜访情况,交换简单的数据及时性不高的场景
AIDL 功能强大年夜,支撑一对多并发通信,支撑及时通信 应用稍复杂,须要处理好线程同步 一对多通信且RPC须要Messenger 功能一般,支撑一对多串行通信,支撑及时通信 不克不及很好的处理高并发情况,不支撑RPC,数据经由过程Message进行传输,是以只能传输Bundle支撑的数据类型 低并发的一对多即时通信,无RPC须要,或者无需返回结不雅的RPC需求
ContentProvider 在数据拜访功能很强大年夜,支撑一对多并发数据共享,可经由过程call办法扩大其他操作 可以懂得为受束缚的AIDL,重要供给数据的CRUD操作 一对多的过程间的数据共享
Socket 功能强大年夜,可以经由过程收集传输字撙节,并支撑一对多并发及时通信 实现细节稍微有点繁琐,不支撑直接的RPC 收集数据交换
代码:根本的AIDL调用,注册解注册,权限验证,断开重连,binder连接池一个办事处理多个AIDL的调用
推荐阅读
中国人平易近银行宣布他们在近期成立了金融科技(FinTech)委员会。金融科技是技巧驱动的金融立异,为金融成长注入了新的活力,也给金融安然带来了新挑衅。中国人平易近银行将组织深刻研究金>>>详细阅读
本文标题:Android中的IPC机制
地址:http://www.17bianji.com/lsqh/35226.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示