小米手机上微信双开-初窥

在小米手机上,通过在设置页面,输入“应用双开”,可以进入APP分身的列表页面。列表中出现的是手机支持分身的APP,切换开关,即可开始分身。
选中微信进行分身后,桌面上出现了第二个有角标的微信。点开后使用,与本尊APP无差别。
但是通过adb命令调用微信的页面,发现打开的都是本尊微信,分身的微信无法被调用。
使用cmd命令查看,发现如下差别:

shell@rolex:/ $ ps |grep com.tencent.mm
USER      PID   PPID  VSIZE  RSS   WCHAN              PC  STAT NAME
u0_a146   10419 620   1786168 136556 SyS_epoll_ 0000000000 S com.tencent.mm
u0_a146   10480 620   1435444 54060 SyS_epoll_ 0000000000 S com.tencent.mm:exdevice
u0_a146   10538 620   1449308 60888 SyS_epoll_ 0000000000 S com.tencent.mm:push
u0_a146   10635 620   1958864 105996 SyS_epoll_ 0000000000 S com.tencent.mm:appbrand0
u0_a146   10689 620   1763200 81336 SyS_epoll_ 0000000000 S com.tencent.mm:support
u0_a146   10812 620   1767480 87640 SyS_epoll_ 0000000000 S com.tencent.mm:tools
u999_a146 13690 620   1811072 164948            0000000000 R com.tencent.mm
u999_a146 13754 620   1436928 63532 SyS_epoll_ 0000000000 S com.tencent.mm:exdevice
u999_a146 13819 620   1450284 63552 SyS_epoll_ 0000000000 S com.tencent.mm:push
u999_a146 13914 620   1688308 78092 SyS_epoll_ 0000000000 S com.tencent.mm:appbrand0
u999_a146 13963 620   1688804 73876 SyS_epoll_ 0000000000 S com.tencent.mm:support
u999_a146 14075 620   1652184 64436 futex_wait 0000000000 S com.tencent.mm:tools

每列的数据含义,如表头所示:

USER: 进程的当前用户;
PID : process ID的缩写,也就进程号;
PPID :process parent ID,父进程ID
VSIZE : virtual size,进程虚拟地址空间大小;
RSS : 进程正在使用的物理内存的大小;
WCHAN :进程如果处于休眠状态的话,在内核中的地址;
PC : program counter,
STAT:进程当前状态,进程状态使用字符表示:
如R(running正在运行或准备运行)、S(sleeping睡眠)、I(idle空闲)、Z (僵死)、D(不可中断的睡眠,通常是I/O)、
P(等待交换页)、W(换出,表示当前页面不在内存)、N(低优先级任务)T(terminate终 止);
NAME: process name,进程的名称

u0_a146是微信本尊,u999_a146是微信分身。由此可见:小米手机在系统层面对应用进行分身后,并没有修改其包名等信息,而是通过放置新的用户空间来得以分身。

参考:
解析ANDROID ps命令执行后各项参数的含义

你可能感兴趣的:(Android)