博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ipc的理解
阅读量:5842 次
发布时间:2019-06-18

本文共 1187 字,大约阅读时间需要 3 分钟。

ipc即进程间通信,inter process communication。

ipc是多种进程间通信的统称而已。

ipc进程间通信包括

  1 bundler,在Android 中的四大组件中的  activity  broadcast receiver  service都是能够通过intent传递bundle数据的,bundle实现了parcelable接口。

  2 通过messager 通过它可以在不同进程中传递Message对象,在Message中放入我们需要传递的数据,就可以轻松地实现数据的进程间传递。

     Messenger是一种轻量级的IPC方案,它的底层实现是AIDL,实现Messenger有以下两个步骤,分为服务端进程和客户端进程。

  3 使用IDLE,这是一种远程服务跨进程通信的方式

  4 content-provider 用于不同应用间的数据共享。底层实现的是binder。

  5 socket ,可以实现任意两个终端的通信,这里使用的是socket在一个设备上进行进程间通信。

  6 binder ,从ipc角度来讲,是进程间的通信。在应用层的角度来讲就是客户端和服务端的通信。

 

 

Binder是Android中的一个类,它实现于IBinder接口。从IPC角度来说,Binder是一种跨进程通信的方式。从Android应用层来说,Binder是客户端与服务端通信的桥梁,

通过bindService,服务端会返回一个包含了服务端业务调用的Binder对象,通过这个Binder对象,客户端就可以获取服务端提供的服务或者数据。这里的服务包括普通服务及基于AIDL的服务。在Android开发中,Binder主要应用于Service。 

 

为何传输要实现parcelable

Intent不仅能传递java基本数据类型,还能传递类的对象,前提是这些类必须实现Serializable或者Parcelable接口。   实现的方式是通过对象的和反来实现对象传递的。   实现Parcelable接口的方式是通过writeToParcel将你的对象映射成 Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象。也可以将Parcel看成是一个流,通过 writeToParcel把对象写到流里面,在通过createFromParcel从流里读取对象,只不过这个过程需要你来实现,因此写的顺序和读的 顺序必须一致。

参考了 https://www.cnblogs.com/cr330326/p/6340958.html

            http://blog.csdn.net/huivs12/article/details/49076261

 在此感谢

转载于:https://www.cnblogs.com/a1070022846/p/7856886.html

你可能感兴趣的文章
干货~powershell与bash和docker在项目中怎么用
查看>>
rubber
查看>>
暑假NOIP期末考试【1】—— Phantom
查看>>
JVM Troubleshooting
查看>>
Ajax请求中的async:false/true的作用
查看>>
大型项目开发: 隔离 (《大规模C++程序设计》书摘)
查看>>
spring StopWatch用法
查看>>
UIAlertController中TextField的用法
查看>>
2492 上帝造题的七分钟 2
查看>>
Redis源代码分析(三十)--- pubsub公布订阅模式
查看>>
git如何移除某文件夹的版本控制
查看>>
Css中路径data:image/png;base64的用法详解 (转载)
查看>>
技术管理者工作成效评估表
查看>>
CSS3实现的立体button
查看>>
如何将Java Web项目部署到服务器上
查看>>
Java中的内存处理机制和final、static、final static总结
查看>>
Java位运算符
查看>>
linux RAID10测试
查看>>
(OK) Linux epoll模型—socket epoll server client chat
查看>>
学会写出"图形界面+数据库"的程序要多长时间?
查看>>