Android进程间通信纪要
来源:互联网 发布:淘宝旧版本安卓 编辑:程序博客网 时间:2024/04/28 09:27
- 虽然Android是基于Linux的,但在Linux操作系统中的IPC技术在Android平台中被Binder Framework替代。Messenger、AIDL等进程间通信方式底层都是基于Binder的。
- Android中每个app都有独立的虚拟机,不同虚拟机在内存分配上有不同的地址空间,一般来说每个app都对应着一个进程,因此进程间通信不像线程间那样可以通过共享内存来实现。
- 进程间通信传递的数据,包括传入参数与返回值都需要实现android.os.Parcelable接口
- 有两种常用的序列化方式:Serializable——Java中的序列化方式,使用简单,开销较大,效率不是很高,比较适合磁盘序列化;Parcelable—— Android中的序列化方式,实现较为繁琐,效率较高,适合内存序列化,也是在Android开发中推荐使用的序列化方式。
- 常用的进程间通信方式有如下几种:<1>通过Intent在Activity、Service或BroadcastReceiver间进行进程间通信,可通过Intent传递数据<2>AIDL方式<3>Messenger方式<4>利用ContentProvider<5>Socket方式<6>基于文件共享的方式
- 由于远程方法可能是耗时的操作,因此请务必在客户端使用工作线程去执行RPC操作。除非你很清楚远端进程的操作是怎样的。 或者UI线程发起一个异步调用,通过callback来获取返回结果。如果从服务端调客户端的远程方法,如果也是耗时操作,同样需要开子线程。
- Messenger机制是单线程顺序执行的,容易实现,其实质是基于AIDL的。所能传递的数据类型为Message,跟线程间使用Message机制类似,但要注意对object参数的限制。
- 通过Binder框架实现进程间通信的原理示意(插图来自Efficient Android Threading):
- 通过AIDL进程间通信示意图(插图来自Efficient Android Threading):
- 使用Messenger进程间通信示意图(插图来自Efficient Android Threading):
0 0
- Android进程间通信纪要
- Android进程间通信
- Android 进程间通信
- Android进程间通信
- android进程间通信
- Android进程间通信
- Android进程间通信
- Android进程间通信
- Android 进程间通信
- Android 进程间通信
- Android 进程间通信
- android进程间通信
- android 进程间通信
- android进程间通信
- Android 进程间通信
- Android间进程通信
- Android进程间通信
- android进程间通信
- NYOJ19擅长排列的小明
- Nginx非80端口配置
- 微信朋友圈管理常见问题
- c++作业3
- LeetCode 292 Nim Game
- Android进程间通信纪要
- 数据结构之导论
- 如何校验.ipa包、.dSYM、.crash文件的一致性
- leetcode笔记-Kth Smallest Element in a BST
- Java集合框架复习之规则集Set-HashSet(三)
- 扑克记忆
- Android 菜鸟季:BroadcastReceiver 和 Activity生命周期
- 线段长度计算以及相交、平移和旋转算法
- android------关于query的模糊查询的用法