1. 如果android:process的值以冒号开头的话,那么该进程就是私有进程,如下:
配置:
<application
……
<serviceandroid:name=".ProcessTestService"android:process=":secondProcess"/>
……
</application>
进程:
2. 以小写字母开头(如com.secondProcess),那么就是公有进程,android:process值一定要有个点号:
不能以数字开头,并且要符合命名规范,必须要有.否则将会出现这种错误:Invalid process name simon inpackage com.wind.check: must have at least one ‘.’
配置:
<application
……
<serviceandroid:name=".LocalService"android:process="com.secondProcess"/>
……
</application>
进程:
3. 私有进程和公有进程的区别:
私有进程:
android:process=":remote",以冒号开头,冒号后面的字符串原则上是可以随意指定的。如果我们的包名为“com.biyou.multiprocess”,则实际的进程名为“com.biyou.multiprocess:remote”。这种设置形式表示该进程为当前应用的私有进程,其他应用的组件不可以和它跑在同一个进程中。
公有进程:
进程名称不以“:”开头的进程都可以叫全局进程,如android:process="com.secondProcess",以小写字母开头,表示运行在一个以这个名字命名的全局进程中,其他应用通过设置相同的ShareUID可以和它跑在同一个进程。
ps:ShareUID:
ShareUserId,在Android里面每个app都有一个唯一的linux user ID,则这样权限就被设置成该应用程序的文件只对该用户可见,只对该应用程序自身可见,而我们可以使他们对其他的应用程序可见,这会使我们用到SharedUserId,也就是让两个apk使用相同的userID,这样它们就可以看到对方的文件。为了节省资源,具有相同ID的apk也可以在相同的linux进程中进行(注意,并不是一定要在一个进程里面运行),共享一个虚拟机。
ShareUserId的作用,数据共享、调用其他程序资源。
AndroidMantifest.xml中的activity、service、receiver和provider均支持android:process属性,设置该属性可以使每个组件均在各自的进程中运行,或者使一些组件共享一个进程;
本文分享自 nginx遇上redis 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!