Android開發中,有時候我們需要測試下后台進程被殺,然后重新進入App時恢復現場的case。如果采用填充內存的方式,比較麻煩,下面介紹幾種快速模擬后台進程被殺的方式:
方式1:
最簡單的方法是在DDMS中點擊”Stop Porcess”殺掉你的程序,在你調試程序的時候可以這樣做。
方式2:
適合debug程序
Android Studio中打開Android Monitor,選擇進程,將app按home鍵退到后台,點擊terminate application按鈕即可
方式3:
adb shell am force-stop package-name 應用在前台強制關閉,強制停止指定的package包應用。
adb shell am kill package-name 應用通過home鍵已經停留在后台使用,殺死指定package包應用進程,該命令在安全模式下殺死進程,不影響用戶體驗。參數選項:--user <USER_ID> | all | current: 指定user進程殺死,如果不指定默認為所有users。(關於USER_ID下面會介紹到)
adb shell am kill-all 應用通過home鍵已經停留在后台使用,殺掉所有后台程序,需要先將目標程序按home進入后台,然后打開一個其他程序
方式4:
適合所有程序
打開手機開發者選項-后台進程限制-不允許后台進程,同樣按home鍵退到后台后,打開個其他應用再退出,進程就被殺了。
方式5:
通過模擬器或者一個Root過的真機:
1. 按Home按鍵退出你的程序;
2. 在控制台,敲入如下命令(Windows系統下 WIN + R -> cmd -> 回車)
找到該APP的進程ID adb shell ps
找到你APP的包名
Mac/Unix: adb shell ps | grep your.app.package
按照上述命令操作后,看起來是這樣子的:
USER PID PPID VSIZE RSS WCHAN PC NAME # u0_a198 21997 160 827940 22064 ffffffff 00000000 S your.app.package
通過PID將你的APP殺掉 adb shell kill -9 21997