不为人知的IPC

Posted grace_dl

tags:

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

1、开启多进程模式
创建多进程的方式,通过四大组件指定android:process;或者非常规的操作,通过JNI在native层去fork一个新的进程(非常常用方式)。这里暂不对fork方式多做分析。
(1)android:proces = “:remote”
(2)android:proces = “com.grace.remote”
这两种方式有什么差别呢?
(1)方式一的进程名为“包名:remote”,方式二的进程名为“com.grace.remote”
(2)方式一的进程属于当前应用的私有进程,其他的应用的组件不可以和它跑在同一个进程中。方式二的属于全局进程。其他应用可通过shareUID方式可以和他跑在同一个进程中。
Android系统会为每个应用分配一个唯一的UID,具有相同的UID的应用才能共享数据。这里要说明的是,两个应用通过shareUID跑在一个进程中是有要求的,需要这两个应用具有相同的ShareUID并且签名相同才可以。在这种情况下,他们可以互相访问对方的私有数据。比如data目录,组件信息等,不管他们是否跑在同一个进程中。当然如果他们跑在一个进程中,那么出了能功效data目录,组件信息,还可以共享内存数据,或者他们看起来像是一个应用的两个部分。

以上是关于不为人知的IPC的主要内容,如果未能解决你的问题,请参考以下文章

解释PAT和NAT的作用和差别

解释PAT和NAT的作用和差别

Linux IPC之管道和FIFO

Linux 进程间共享内存 SYSTEMV

另一鲜为人知的单例写法-ThreadLocal

Android -- 每日一问:Parcelable 和 Serializable 有什么用,它们有什么差别?