我正在尝试实现this great technique跨两个不同应用程序共享首选项,同时仍为 MODE_PRIVATE。
我的问题是第一个应用程序不能假设第一个应用程序已安装(反之亦然),因此:
Context c = createPackageContext("com.app.first", MODE_PRIVATE);
必须替换为:
Context c = createPackageContext("com.app.shared", MODE_PRIVATE);
但这要求添加 com.app.shared
真的,这会转化为第二个 APK?
换句话说,只有一个 AndroidManifest.xml
每个 APK 且只有一个 <manifest package= >
每个 list 文件。因此每个 APK 只有一个实际包?
我不想每个应用程序有 2 个 APK,我只想每个应用程序有一个 APK。
有办法实现吗?
最佳答案
I am trying to implement this great technique of sharing preferences across two different applications while still MODE_PRIVATE.
事实上,这是一种反伟大的技术,我刚刚删除了我的答案。使用 android:sharedUserId 是有风险的,对于已经部署的应用程序来说是完全不可能的。自从我在那里发布答案以来的两年里,我认识到了自己的方式的错误。
此外,该技术工作不可靠,因为您无法控制用户安装和卸载哪些应用程序。如果应用程序 A 和应用程序 B 通过使用应用程序 A 的副本来共享首选项,则当用户卸载应用程序 A 时,应用程序 B 就会被删除。
Therefore only one actual package per APK?
正确。
I don't want 2 APKs per application, I only want a single APK per application.
对于两个应用程序,您有两个 APK 文件,每个文件都有自己的包名称。
关于android - 可以在同一个 APK 中放置两个包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803585/