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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值