Android8_安卓的IPC机制

理解IPC,进程间通信之前先聊一下进程和线程;

进程是系统资源分配的单位,线程是系统调度的单位;

进程与线程是包含与被包含关系;一个进程可以包含多个线程;

最简单的情况下,一个进程中可以只有一个线程,即主线程;

对于安卓来说,主线程也叫做UI线程;

只有在UI线程里才能操作界面元素;

很多时候一个进程需要执行大量的耗时任务,如果把这些任务都放在主线程中会导致无法对用户操作及时响应;

这会严重影响用户体验,安卓是有个异常叫做ANR,Application Not Responding;

为了解决这个问题,就需要用到线程,把一些耗时的任务放到线程中;

==================================================

任何操作系统都需要有对应IPC机制,这不是安卓特有的;

Windows上有剪贴板、管道、邮槽用于进程间通信;

Linux上可以通过命名管道、共享内容、信号量等来进行进程间通信;

不同的操作系统平台有着不同的进程间通信方式;

对于安卓来说,是一个基于Linux内核的移动操作系统,它的进程间通信方式并不能完全继承自Linux;

它有自己的进程间通信方式;

最具特色的就是Binder,此外还有Socket,Socket也可以用于任意两个终端之间的通信。

==================================================

多进程的场景:

1、应用因为某些原因自身需要采用多进程模式来实现,原因可能有很多,例如有些模块可能由于特殊的原因需要运行在单独进程中等;

2、当前应用需要向其他应用获取数据,由于是两个应用,所以必须跨进程的方式来获取数据。目前用的是ContentProvider,其实际上也是IPC通信,只不过实现细节被屏蔽了;

猜你喜欢

转载自www.cnblogs.com/grooovvve/p/12462286.html
今日推荐