这里先列举下别人好的博客:
1、http://www.cnblogs.com/lizhengxian/p/5075635.html
主要介绍了IPC实现的几种方法
2、http://blog.csdn.net/itachi85/article/details/50386748
刘望舒的博客,有一个专门介绍IPC的系列文章,文章非常好!
IPC:进程间通信 一直没有使用过,但众多公司招聘要求都有提到,以前学习过,所以这里整理一下。
1、进程
进程是程序的一次执行,至少包括一个线程;线程是指进程内的一个执行的单元,也是进程内的可调度的实体;
2、多进程的意义:
1:单进程所分配的内存不够,利用多进程获取更多的内存;
2:独立运行的组件、模块
3:目前非常“高端”双守护进程,防止app被杀掉,类似微信
4:常驻后台的任务
3、进程间通信的方式
1:Bundle/Intent传递数据
可传递基本类型,String,实现了Serializable或Parcellable接口的数据结构。
2:文件共享
对同一个文件先后写读,从而实现传输。
3:AIDL 安卓接口定义语言
AIDL通过定义服务端暴露的接口,以提供给客户端来调用,AIDL使服务器可以并行处理,
而Messenger封装了AIDL之后 只 能串行运行,所以Messenger一般用作消息传递。
4:ContentProvider
系统四大组件之一,底层也是Binder实现,主要用来为其他APP提供数据,可以说天生就是为进程通信而生的。
5:Messenger (鸿洋大神有一篇博客专门介绍)
Messenger是基于AIDL实现的,服务端(被动方)提供一个Service来处理客户端(主动方)连接,
维护一个Handler来创建Messenger,在onBind时返回Messenger的binder。
6:Socket
Android不允许在主线程中请求网络,而且请求网络必须要注意声明相应的permission。
然后,在服务器中定义ServerSocket 来监听端口,客户端使用Socket来请求端口,连通后就可以进行通信。