Android开启多进程

Android开启多进程的方式:

  • 给四大组建配置android:process=””属性;
  • 通过JNI,在native层去fork一个进程(不常用,非常规);

通过android:process=””方式开启多线程有两种写法:

  • android:process=”:remote”
  • android:process=”tk.thinkerzhangyan.remote”

这两种方式开启多线程是有区别的:

  • android:process=”:remote”中,“:” 含义是指要在进程名前面添加包名,该写法的进程的完整的名字为:tk.thinkerzhangyan:remote;
    而android:process=”tk.thinkerzhangyan.remote”,是一种完整的命名方式,不会附加包名。

  • 进程名以”:”开头的进程是当前应用的私有进程,其他应用的组件不可以和它跑在同一个进程里面,而进程名,不以”:”开头的进程属于全局进程,其他应用通过ShareUID的方式,可以和它跑在同一个进程里面。

Android系统为每一个应用都分配一个UID,具有相同UID的应用,才可以共享数据。需要注意的两个应用通过ShareUID的方式跑在同一个进程中是有要求的,需要这两个应用具有相同的ShareUID并且签名相同才可以。在这种情况下,他们可以互相访问对方的私有数据,比如,data目录,组建信息等,不管她们是否跑在同一个进程中。当然如果她们跑在同一个进程里面,那么除了可以共享上面的数据外,她们还可以共享内存数据,或者说她们看起来就像是同一个应用的两个部分。

总结自:《Android开发艺术探索》

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器