前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android多进程总结2

Android多进程总结2

作者头像
随心助手
发布2019-10-14 23:10:16
1.3K0
发布2019-10-14 23:10:16
举报
文章被收录于专栏:nginx遇上redisnginx遇上redis

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属性,设置该属性可以使每个组件均在各自的进程中运行,或者使一些组件共享一个进程;

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nginx遇上redis 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档