Android多进程简介

简介

在四大组件中指定 android:process 属性,就可以轻松开启多进程的模式。

开启

开启的方法一般分为2种,先说一个非常规的,比如通过 jni 在 native 层直接 fork 出一个,比如我们常见的 AMS 的创建,在应用层很少见,常用的还是下面这种方式。

    <activity android:name=".BinderSecondActivity"
            android:process=":remote">
        </activity>

所以新的进程名即为 XXX:remote,此处我是使用 ,这是一种简介,进程名以 开头的说明此进程是一个当前 APP 的私有进程,其他应用的组件不可以跑在同一个进程中,如果不以 开头,说明进程是全局进程,其他应用可以通过 ShareUID 方式可以和它跑在同一进程中。

隐患

1.静态成员和单例失效
每一个进程都分配了一个独立的虚拟机,不同的虚拟机在内存分配上有不同的地址空间,这就导致了在不同虚拟机中访问同一个类的对象会产生多个副本。
2.线程同步机制失效
3.SharePerference 的可靠性降低
不支持两个进程同时去读写操作,底层的实现是通过读写 XML 文件。
4.Application 会多次创建
运行在同一进程的组件是属于同一个虚拟机和同一个 Application

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页