adb杀死APP,打开APP
查找进程
查看所有进程
1 | adb shell ps |
根据包名查找app对应的进程
1 | adb shell ps|findstr app的包名 |
如果存在多个设备,则在adb后面加上’-s 设备序列号’选项来选择设备
1 | adb -s 设备的序列号 shell ps|findstr app的包名 |
例如:在序列号为75aed56d
的设备上查找包名为com.xyz.reader
的进程
1 | adb -s 75aed56d shell ps|findstr com.xyz.reader |
运行效果如下:
1 | C:\Users\WindowsUserName>adb -s 75aed56d shell ps|findstr com.xyz.reader |
杀死进程
杀死进程不清除数据
强制停止APP进程,不会清除APP进程在系统中产生的数据
1 | adb shell am force-stop app的包名 |
如果你电脑连接多个设备,则指明设备的序列号:
1 | adb [-s 设备序列号] shell am force-stop app的包名 |
例如:在序列号为75aed56d
的设备上杀死包名为com.xyz.reader
的进程:
1 | C:\Users\WindowsUserName>adb -s 75aed56d shell am force-stop com.xyz.reader |
执行该命令后没有输出,你可以在手机上看到对应进程已被杀死。
杀死进程名清除数据
停止APP进程,并且清除这个APP进程产生的所有数据,相当于reset
1 | adb shell pm clear 包名 |
执行该命令后输出success即表示命令执行成功,app进程被杀死,且会清楚所有数据,相当于卸载重装的效果,一般不建议使用。
adb打开app
先杀死app
1 | adb -s 75aed56d shell am force-stop com.kmxs.reader |
查找app的启动Activity
上面的命令在windows的cmd中运行即可,下面的命令有一些cmd是没有的,我这里是在git-bash中运行的。
打开git-bash,输入如下命令,然后打开手机上的APP。
1 | adb -s 75aed56d shell logcat | grep -i ActivityManager |
app正常运行后,把上面这条命令的输出复制下来,放到文件中,然后在该文件中查找”包名/.”
我这里查找的是com.kmxs.reader/.
:
1 | 18190@DESKTOP-SH3MQPI MINGW64 /g/Blog/blog_new (master) |
我这里查找到第一个匹配项是com.kmxs.reader/.home.ui.HomeActivity
,看来这个就是启动这个APP的Activity。
再次杀死这个APP的进程:
1 | adb -s 75aed56d shell am force-stop com.kmxs.reader |
然后在cmd中,输入如下命令,启动APP:
1 | adb -s 75aed56d shell am start -n com.kmxs.reader/.home.ui.HomeActivity |
可以看到我手机上的APP成功启动。搞定。