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

Posted 先知丨先觉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPC进程间通信/跨进程通信相关的知识,希望对你有一定的参考价值。

#概念
进程:一个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的时候就会新开启一个进程。

扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~

公众号回复“资料获取”,获取更多干货哦~

有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码

以上是关于IPC进程间通信/跨进程通信的主要内容,如果未能解决你的问题,请参考以下文章

Hermes——跨进程通信(IPC)框架,使用介绍

安卓IPC跨进程通讯:AIDL+Retrofit——AndLinker的初步使用

使用AIDL跨进程通信

Android跨进程通信Binder机制与AIDL实例

Android跨进程通信Binder机制与AIDL实例

Android IPC机制用Socket实现跨进程聊天程序