參考:
模擬的目的
為了保證在app回收時(shí)重啟應(yīng)用不產(chǎn)生crash 需要模擬這種情況并找到對(duì)策,這是一個(gè)健壯的app理應(yīng)做到的一點(diǎn)。
前期準(zhǔn)備工作:
打開應(yīng)用,按home鍵置入后臺(tái)
步驟一:
使用adb shell ps從一長串列表中查找目標(biāo)應(yīng)用的pid。
或是使用
1.adb shell回車;
2.ps | grep your.app.package定位到列表中單條目標(biāo)記錄查看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權(quán)限
用kill -9 'pid'命令殺死應(yīng)用
步驟三:
可以開始處理app被系統(tǒng)回收時(shí)產(chǎn)生的bug了(逃
坑
- 并不能像oschina的答案中那樣用
adb shell ps | grep 'your.app.package'得到結(jié)果,也可能是我姿勢(shì)不對(duì)。 - 不能使用
adb shell am force-stop <package name>雖然進(jìn)程被殺死了,但是啟動(dòng)時(shí)還是正常的)
特別地
經(jīng)@YoKey提醒,還可以通過開啟開發(fā)人員選項(xiàng)中的"不保持活動(dòng)選項(xiàng)"達(dá)到相同的效果。
具體方式是,開啟選項(xiàng)后,啟動(dòng)目標(biāo)程序,用Home鍵返回桌面,稍候幾秒再次點(diǎn)擊啟動(dòng)目標(biāo)程序即和以上的"步驟一+步驟二"有相同的效果。
不過使用這種方法也意味著所有應(yīng)用都是處于無緩存狀態(tài)下運(yùn)行的,包括你的桌面!