6.Android中的多进程模式

来源:互联网 发布:java ping 域名是否通 编辑:程序博客网 时间:2024/05/22 15:12

    6.1开启多进程模式
    
正常情况下,多进程是指:一个App有多个进程。在Android中常规的使用多进程的方法,就是在给四大组件(Activity,Service,Receiver,ContentProvider)在AndroidManifest.xml中指定android:process属性,也就是说,我们无法给一个线程或者是一个实体类指定它运行时应该在哪个进程,除此之外,还有一种非常规的方法,就是通过JNI再native层去fork一个新的进程,这个就暂不考虑。
    进程名以": "为当前进程的私有进程,其他应用的组件不能和他运行在同一个进程中。而不以":"为开头的进程,属于全局进程,其他应用通过shareUiD方式可以和它跑在同一个进程当中。
   不同的应用 ShareUID和签名一样,就可以互相访问对方的私有数据,如data、组件信息等,不管他们是否泡在一个进程总,而要是想让他们跑再一个进程中,要满足如下条件:
  • shareUID相同 
  • 签名相同
  • shareUserLabel相同
  • process相同  

6.2多线程运行机制

    所有运行在不同进程的四大组件,只要它们之间需要通过内存来共享数据,那么都会共享数据失败,这也是多进程所带来的主要影响。
    一般来说,多进程会造成以下问题:
  • 静态成员和单例模式完全失效。类、对象都不在同一个内存当中。
  • 线程同步机制完全失效。不同进程锁的不是同一个对象
  • SharePreferences的可靠性下降。并发写、并发读/写都有可能会出现问题。
  • Application会多次创建。创建不同的进程实际上就是创建不同的application。

0 0