Android通过命令行查看当前用户
自AndroidL以来支持多用户,那么当前到底处理哪个用户中呢?一般来说,我们会在代码中通过ActivityManager.getCurrentUser()
来获取,但有时候需要在shell控制台快速的查看,苦于系统没有(没找到)合适的命令,这里提供一个笨办法。步骤如下:
步骤一
执行 adb shell dumpsys activity top
,输出当前最顶层的Activity的信息,大概如下:
TASK null id=58
ACTIVITY com.android.launcher3/.Launcher 4722fa pid=28777
…
输出的信息比较多,但只重点看前几行,找到对应的pid。这里,pid=28777
步骤二
执行 adb shell ps | grep 28777
, 这里的28777就是步骤一找到的pid, 执行完后,会输出以下信息:
u0_a34 28777 741 1798644 125140 SyS_epoll_ 7f96bd99b4 S com.android.launcher3
第一个信息就是该进程所代表的软件的uid, uid=u0_a34, 这里u0就表示是这是用户0的软件, 所以可以判断出当前处于用户0中。
参考
创建用户或者用户资料
pm create-user [--profileOf USER_ID] [--managed] [--restricted] [--ephemeral] [--guest] USER_NAME
切换用户
am switch-user <USER_ID>