【问题标题】:Issues with Android apps sharing same UIDAndroid 应用程序共享相同 UID 的问题
【发布时间】:2013-08-07 23:20:54
【问题描述】:

我有三个安卓应用:app_1、app_2 和 app_3。所有人都使用相同的密钥签名并共享相同的 UID。 app_1 和 app_3 没有持久存储(没有数据库 + 文件系统),它们都在 app_2 用户空间上工作。我有两个问题:

  1. 如果 app_2 死掉或被系统关闭,它的用户空间会怎样? app_1 和 app_2 还能访问吗?

  2. 我需要一种方法来在 app_1 和 app_3 完成持久存储时通知 app_2,然后 app_2 可以采取一些措施。我不确定我是否在 app_2 中运行带有一些事件侦听器的服务是否符合我的需要。是否有保证的方法可以让 app_2 进入睡眠模式并在事件期间唤醒?还有其他方法吗?

【问题讨论】:

    标签: android security ipc


    【解决方案1】:
    1. 即使应用程序未运行,您在 /data/data 中的持久存储也将保持不变。只有当您删除应用程序时,它才会被擦除。也不要硬编码你的路径,因为在 4.3 中每个用户都有自己的数据路径。

    2. 广播侦听器将用于此目的。在应用 2 的清单中声明它。

    【讨论】:

    • 感谢您的及时回复!我知道自 4.2 以来已经引入了多用户支持。我仍然希望将共享数据保存在相对于 app_2 的目录中,即 /data/data//。这会是 4.3 中的问题吗?广播侦听器是否需要 app_2 处于活动状态才能获得通知(我在某处读到过这方面的内容,如果有错误请纠正我)?
    • 活动状态是什么意思?就像在前台运行活动或在后台运行服务一样?如果是这样,那么没有。如果你在清单中声明了你的监听器,它将被调用(除非它是一个有序广播并且一些更高优先级的接收器取消了它)
    • Honeycomb 3.1 或以上版本后,应用安装时处于停止状态。当应用程序首次启动时,它会脱离停止状态,这就是我想说的“活动状态”。处于停止状态的应用程序不会被所有广播意图启动。用户可以手动将应用置于停止状态,但不确定是否存在系统自动将应用更改为停止状态的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多