Android应用程序看起来不符合克隆条件

Dee*_*haV 6 android clone multi-user

我正在尝试克隆我的应用程序,以便为同一个应用程序使用多用户帐户.这是许多制造商现在的内置功能.一些应用程序也支持这样做,如Cloneit,Parallel等.

我的问题是我的应用程序没有出现在可以克隆的应用程序列表中.既不是制造商选项也不是其他克隆应用程序.我的应用程序中是否有任何设置?因为它有资格克隆谢谢

Sam*_*Sam 6

- - 更新 - -

很抱歉,我没有足够彻底地阅读您的问题。我以为你在问支持多用户帐户。那不是你的问题。

所以让我们进一步讨论一下,但如果对其他人有帮助,我会在下面留下多用户的内容。

所以首先,当你制作一个应用程序时,它对设备上的所有用户都是可用的,除非你对某些用户隐藏它。只要设备支持多个用户,这就是默认行为。

不过,Parallels、Cloneit 和其他应用程序正在做一些完全不同的事情。他们“不使用多帐户”,他们使您成为一个与您的活动并行运行的虚拟环境,允许您制作应用程序的精确副本,但在一个全新的活动目录中。

---快速课程---

Android 的工作方式是每个应用程序都有一个包 ID,这基本上是您手机的唯一用户名。

Android 有各种用户组来访问设备、文件夹和管理设置的区域。我们已经将这些用户组称为“权限”。

当你安装一个应用程序时,它会请求被添加到每个各自的 Linux 用户组(权限),以便它有权利和能力接触 Android 操作系统和文件系统的各个领域。在 Marshmallow 之后,您必须在运行时通过在代码中请求并允许操作系统获取用户反馈以将您添加到组中来添加到权限(又名用户组)。

Parallels,基本上克隆了所有这些行为,并为应用程序的再次安装创建了一个新环境,但在不同的空间中,因此必须重新获取用户组、权限等,而新空间只是正常的编码实践,该声明没有什么特别之处。

但是,Parallels 查找可克隆应用程序的索引过程基于其当前环境、设置和支持功能。因此,如果您使用并行环境中当前不支持的设置、SDK 或任何内容编译您的应用程序,那么您的应用程序将无法安装。

像这样想。如果您从运行 OS 6.0 的手机访问 App Store,您将看不到为 7.0 或 8.0 编写的应用程序,因为它们不兼容,因此它们不会出现在下载和安装列表中。

Parallels 不一定会克隆您的确切操作系统,它可能拥有自己的打包操作系统并启动。我无法谈论 Parallels 或任何其他设备如何/什么创建用于安装和克隆的虚拟环境。

综上所述,检查您的编译 SDK,检查您的目标 SDK,并检查您的最低支持。您的编译设置中可能存在与 Parallels 虚拟环境不兼容的内容。

首先创建一个虚拟应用程序,并针对较旧的应用程序,使其更兼容。看看它是否出现。如果是,则将您的 SDk 目标和其他版本向上移动,直到您看到它不再显示为止,然后您就会知道哪些值会影响它以及原因。

希望有所帮助,请务必更新我们您在 Parallels 支持方面的发现。

旧讨论,留给共享知识,与上述无关

---OEM 应用程序开发的多用户讨论---

从 5.0 Android 开始,默认情况下禁用多用户,因此制造商必须进行修改。

    frameworks/base/core/res/res/values/config.xml:

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>
Run Code Online (Sandbox Code Playgroud)

https://source.android.com/devices/tech/admin/multi-user

允许设备支持多用户。

至于使用克隆应用程序,他们每个人都有自己的索引应用程序和处理此克隆过程的方法。有些可能只在应用程序启动时索引,其他人可能在安装时索引,所以我想说你应该确认你想玩的克隆应用程序的行为。

现在,如果您确定您使用的设备支持多用户,那么让我们继续。

如果您是打算管理用户的系统级应用程序,则需要如下所示的权限:

    <permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>
    <uses-permission android:name="android.permission.MANAGE_USERS" />
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"
                     android:protectionLevel="signatureOrSystem"/>
Run Code Online (Sandbox Code Playgroud)

这是一个有用的链接,用于在您的应用程序中设置和处理用户之间的切换。

http://light-green-android.blogspot.com/2015/11/talking-between-user-android-profiles.html https://source.android.com/devices/tech/admin/multiuser-apps

但同样,这仅适用于为 OEM 构建系统级应用程序。