android IPC

Posted endian11

tags:

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

  • 什么是IPC?
    • 进程间通信
  • 为什么需要IPC
    • 因为一个进程总要从外部获取信息,不可避免的要获取其他进程的信息
    • android规定单个应用内存只有16MB(根据android设备来的)
  • 如何设置多进程模式
    • 给四大组件指定属性:android:process
    • 非常规方法:JNI在native层fork一个进程
  • 查看进程 adb shell ps
    • 以":"开头的进程属于当前应用的私有进程,其他应用的组件不可以和它跑在同一个进程中,而进程名不以":"开头的进程属于全局进程,其他应用通过ShareUID方式可以和它跑在同一个进程中
    • 我们知道Android系统会为每个应用分配一个唯一的UID,具有相同的UID的应用才能共享数据。
    • 两个应用通过ShareUID跑在同一个进程是有要求的,需要这两个应用有相同的ShareUID并且签名相同才可以。可以互相访问对方的私有数据,还可以共享内存数据,或者说它们看起来就像是一个应用的两个部分
  • 多进程模式的运行机制
    • android为每一个应用分配了一个独立的虚拟机,或者说为每个进程都分配一个独立的虚拟机;
    • 应用内多进程相当于系统又把这个应用重新启动了一遍,既然重新启动了,就会自然创建新的Application。
    • 运行在同一个进程中的组件是属于同一个虚拟机和同一个Application的
      • 多进程会造成如下几个问题:
        • 静态成员和单例模式完全失效
        • 线程同步机制完全失效
        • SharedPreference的可靠性下降
        • Application会多次创建

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

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制