我试图理解android:process
属性。Ref says http://developer.android.com/guide/topics/manifest/application-element.html#proc:
如果分配给该属性的名称
以冒号(':')开头,一个新的
进程,应用程序私有,
是在需要时创建的。如果
进程名称以小写字母开头
性格,一个全球性的过程
名称已创建。全局流程可以
与其他应用程序共享,
减少资源使用。
如果名称不以冒号开头,是否会创建进程?如果以大写字母开头怎么办?如果我混合这两个规则会发生什么?
我需要在同一进程中运行两个包中的两个组件以节省资源(并避免在应用程序管理器中列出两个“正在运行的应用程序”)。我的进程名称应该是什么?我需要一个全局流程吗?
EDIT:
我尝试使用一个简单的小写名称(第一个包的名称),它似乎按照我想要的方式工作。但我仍然认为我不明白规则。
如果我混合这两个规则会发生什么?
那是不可能的。冒号不是大写字母。
我需要在同一进程中运行两个包中的两个组件以节省资源(并避免在应用程序管理器中列出两个“正在运行的应用程序”)。
这确实不是一个好主意。将它们放在同一个包中,或者让它们独立运行。
你不仅要乱搞android:process
,但你也必须搞乱android:sharedUserId
。这些都不适合普通 SDK 开发人员使用,特别是android:sharedUserId
。事实上,如果您已经分发了您的应用程序,那么您can't use android:sharedUserId
除非您愿意破坏所有现有用户的应用程序,因为您将无法再访问您的原始数据,因为它将由其他用户帐户拥有。
此外,除非您有相反的证据,否则我不会认为这会以某种方式“避免在应用程序管理器中列出两个“正在运行的应用程序””。
现在,我完全是为了效率,因此为咧嘴笑创建额外的流程(例如,让“远程服务”在自定义流程中运行的误导性建议)是一个坏主意。如果您为设备制造商或拥有 20 多名 Android 开发人员的公司工作,并且您想解决这个问题,您将需要找到 AOSP 中使用它的地方并对信息进行逆向工程你寻求,因为这些东西的记录严重不足。即使在那里,我也没有看到它在多个包之间使用,除了android.process.acore
and com.android.phone
,这是非常低级的进程,不会是非固件应用程序的典型。
因此,我真的建议你不要管这些事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)