美文网首页
binder应运而生

binder应运而生

作者: wintersweett | 来源:发表于2017-10-19 15:03 被阅读0次

    如图:android系统会为每个应用分配一个唯一的UID,具有相同UID的应用才能共享数据。当两个应用由相同的shareUID与签名 才可以跑在同一个进程中。当跑在同一个进程中时,可以共享data目录、组件信息、内存数据等。

    android为每一个应用分配了一个独立的虚拟机,或者说为每个进程都分配一个独立的虚拟机,不同的虚拟机在内存分配上有不同的地址空间,这就导致不同的虚拟机中访问同一个类的对象会产生多份副本。

    所有运行在不同进程中的四大组件,只要他们之间需要通过内存来共享数据,都会共享失败。一般会造成:

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

    2)线程同步机制完全失效(不同进程的锁不是同一个对象)

    3)SharedPreferences的可靠性下降(sp不支持两个进程同时执行写操作)

    4)Application会多次创建(当一个组件跑在一个新的进程的时候,由于系统要在创建新的进程同时分配独立的虚拟机,所以这个过程其实就是启动一个应用的过程。因此,相当于系统又把这个应用重新启动的一遍,既然重启了,自然会创建新的application)

    相关文章

      网友评论

          本文标题:binder应运而生

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