如何使用 adb 在工作配置文件中安装和调试应用程序?

Gum*_*r21 7 android adb

我开发了一个运行良好的 android 应用程序。但是如果我将它安装到Work Profile 中,它有时会失败。安装到工作配置文件中目前是通过私人 Google PlayStore 分发应用程序来完成的(只有公司用户才能下载它)。

有什么办法可以使用“adb”将 apk 直接安装到工作配置文件中?而且我还需要调试在工作配置文件中运行的应用程序。

mue*_*flo 9

在这里您可以找到用于安装和启动应用程序的 adb 文档:http : //developer.android.com/tools/help/adb.html

您在那里看到(不幸的是)不可能只为一个用户安装该应用程序。但是可以“以特定用户的名义”启动和调试它。

所以你必须做的是:

  1. 找出所需用户的 userId
  2. 在您的运行配置中设置 userId

第1步

要找出所需用户的 userId,请打开您的终端并输入

$> adb shell dumpsys user
Run Code Online (Sandbox Code Playgroud)

您将获得有关所连接设备的所有用户信息的列表。在此列表中的某处,您还应该找到与此类似的用户:UserInfo{10:Work profile:30}

这意味着10是您的用户 ID。

第2步

现在转到 AndroidStudio -> 运行 -> 编辑配置。选择您当前的运行配置,然后在 Launch Flags 字段中输入--user 10

如果您现在单击“运行”或“调试”按钮,将为所有用户安装该应用程序,并以userId 为 10的用户启动


vol*_*ato 7

作为对@muetzenflo 的回答的补充,如果您想通过命令行运行您的应用程序,您需要做的就是:

$ adb shell pm list users
Run Code Online (Sandbox Code Playgroud)

输出将类似于:

UserInfo{0:Drew:13} running
UserInfo{10:Work profile:30} running
Run Code Online (Sandbox Code Playgroud)

获取您的工作资料的用户 ID 并am start使用--user标志调用:

$ adb shell am start --user 10 \
  -n "com.example.myapp/com.example.myapp.testactivity" \
  -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Run Code Online (Sandbox Code Playgroud)

您可以在 Android 的官方工作资料页面上阅读更多内容。