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开发艺术探索》