参考:
模拟的目的
为了保证在app回收时重启应用不产生crash 需要模拟这种情况并找到对策,这是一个健壮的app理应做到的一点。
前期准备工作:
打开应用,按home键置入后台
步骤一:
使用adb shell ps
从一长串列表中查找目标应用的pid。
或是使用
1.adb shell
回车;
2.ps | grep your.app.package
定位到列表中单条目标记录查看pid;
The result should look like:
USER PID PPID VSIZE RSS WCHAN PC NAME
u0_a198 21997 160 827940 22064 ffffffff 00000000 S your.app.package
步骤二:
用su
获取root权限
用kill -9 'pid'
命令杀死应用
步骤三:
可以开始处理app被系统回收时产生的bug了(逃
坑
- 并不能像oschina的答案中那样用
adb shell ps | grep 'your.app.package'
得到结果,也可能是我姿势不对。 - 不能使用
adb shell am force-stop <package name>
虽然进程被杀死了,但是启动时还是正常的)
特别地
经@YoKey提醒,还可以通过开启开发人员选项中的"不保持活动选项"达到相同的效果。
具体方式是,开启选项后,启动目标程序,用Home键返回桌面,稍候几秒再次点击启动目标程序即和以上的"步骤一+步骤二"有相同的效果。
不过使用这种方法也意味着所有应用都是处于无缓存状态下运行的,包括你的桌面!