美文网首页
Android进程间通信(IPC机制)

Android进程间通信(IPC机制)

作者: Android开发知识总结 | 来源:发表于2016-06-05 23:58 被阅读1343次

一.IPC简介

1.IPC:是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。

2.线程:是CPU调度的最小单元,同时线程是一种有限的系统资源

3.进程:是指一个执行单元,在PC和移动设备上是指一个程序或者一个应用,一个进程可以包含多个线程,因此进程和线程是包含与被包含的关系。

4.Android里面的主线程,也称为UI线程,在UI线程里才能操作界面元素,一个进程需要执行大量的耗时任务,这些耗时任务如果放在主线程中去执行,严重影响用户体验,还可能造成应用无响应(ANR),解决这个问题就需要用到线程,把一些耗时的任务单独放到子线程中执行。

5.ANR:Application Not Responding,ANR一般有三种类型:

(1). KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在5秒内无响应

(2). BroadcastTimeout(10 seconds) --BroadcastReceiver在10秒内无法处理完成

(3). ServiceTimeout(20 seconds) --小概率类型 Service在20秒内无法处理完成

6.IPC的使用场景:只有面对多进程时,才需要考虑进程间通信,多进程的情况分为两种:

(1).一个应用因为某些原因自身需要采用多进程模式来实现,比如:有些模块需要运行在单独的进程中,又或者是为了增大一个应用可使用的内存所以需要多进程来获取多份内存空间。

(2).一个应用需要向其它应用获取数据,由于是两个应用,所以必须采用跨进程的方式来获取所需的数据,比如:通过ContentProvider对通讯录的增删改查。

二.Android中的多进程模式

1.Android中的多进程是指一个应用中存在多个进程的,在Android中使用多进程的方法有且只有一种:就是给四大组件(Activity,Service,Receiver,ContentProvider),在AndroidManifest中指定android:process属性,Android默认进程名是包名。

2.process属性的定义分为两种

(1).android:process="com.xxx.xxxx.remote" 完整的命名方式,属于全局进程,其它应用通过ShareUID方式可以和它跑在同一个进程中。

(2).android:process=":remote",进程以“:”开头的进程属于当前应用的私有进程,其它应用的组件不可以和它跑在同一个进程中,“:”命名的进程会在当前的进程名之前附加上包名如:“com.xxx.xxxx:remote”。

3.UID:Android系统会为每个应用分配一个唯一的UID,具有相同UID的应用才能共享数据。如果两个应用通过ShareUID跑在同一个进程中,需要两个应用具有相同的shareUID并且相同的签名才可以。

4.多进程带来的问题

(1).静态成员和单例模式完全失效

(2).线程同步机制完全失效

(3).SharedPreference的可靠性下降

(4).Application会多次创建

所以说:运行在不同进程中的四大组件,只要他们之间通过内存来共享数据,都会失败。正常情况下四大组件共享数据必须要通过一些中间层。系统提供了很多跨进程通信的方法:(Intent传递数据,文件共享,Messenger,AIDL,ContentProvider,Socket等)。

后续会详细分析各种跨进程通信的方式,请持续关注;

相关文章

  • IPC、Window小结

    1、IPC机制 1、Android IPC简介 IPC:含义为进程间通信或者跨进程通信。 2、Android中的多...

  • Android面试Android基础(十一)

    问:Android中的IPC(进程间通信)机制? 答:进程间通信即:跨进程的通信。有以下几种:1、使用Bundle...

  • Android进程间通信

    3.5 Android进程间通信 3.5.1 背景知识 传统IPC Linux传统的IPC机制分为如下几种:管道、...

  • Android进阶笔记-5. IPC机制 & Binder 原理

    IPC机制 一次进程间通信至少包含两个进程,由于进程隔离机制的存在,通信双方必然需要借助 IPC(进程间通信,in...

  • android核心知识点学习资料

    Binder学习指南 Android Bander设计与实现 - 设计篇 Android进程间通信(IPC)机制B...

  • android核心知识点学习资料

    Binder学习指南 Android Bander设计与实现 - 设计篇 Android进程间通信(IPC)机制B...

  • 笔记:IPC机制

    IPC机制 IPC简介Inter-Process Communication 进程间通信/跨进程通信----指两个...

  • IPC机制和binder

    ipc(Inter-Process Communication)含义是进程间通信或者跨进程通信,ipc机制不是An...

  • 6. 进程间通信

    参考链接:1. 进程间通信及使用场景2. 进程间通信机制IPC3. 看图理解进程间通信IPC==重点4. 进程间通...

  • Android的IPC机制

    什么是IPC机制? IPC(Inter-Process Communication)是指进程间通信或跨进程通信,也...

网友评论

      本文标题:Android进程间通信(IPC机制)

      本文链接:https://www.haomeiwen.com/subject/dourdttx.html