IPC进程间通信/跨进程通信

来源:互联网 发布:阿里云浏览器官网 编辑:程序博客网 时间:2024/06/01 08:43

概念

进程:一个JVM就是一个进程
线程:最小的调度单元
一个进程可以包含多个线程,在安卓中有一个主线程也就是UI线程,UI线程才可以操作界面,如果在一个线程里面进行大量耗时操作在安卓中就会出现ANR(Application Not Responding)

Android中IPC来源

IPC不是安卓中独有的 ,比如Windows中通过剪贴板,管道,油槽等进行进程间通信,Linux通过命名管道,共享内容,信号量等进行进程间通信,虽然Android基于Linux但是不完全继承Linux,Android中独特的进程间通信Binder,同时也支持socket。

Android进程间通信通常用在如下几个方面

当应用中某个模块需要单独运行在某个进程中;或者相同通过多个进程来扩大应用的内存;当前应用需要向其他应用获取数据(其实COntenProvider去查询数据也是跨进程通信只不过底层分装之后我们察觉不到而已)。

Android如何开启多进程

这里只讨论一个APP内的多进程,暂不讨论两个应用之间的多进程
这里我们目前讨论正规方式:通过Androidmenifest文件中给四大组件(Activity,BroadCast Receiver,Service,ContentProvide)添加Android:process 属性,暂不讨论通过JNI非正规方式开启新进程
例:<Activity
Android:name:".xxxxActivity"
Android:process:".remote"/>

这样我们启动这个Activity的时候就会新开启一个线程。

9 0