使用adb命令停止APP后台進程的方法



http://ghoulich.xninja.org/2015/12/10/stop-app-background-by-adb/



0. 環境描述

① 宿主機系統:Ubuntu 14.04 Desktop
② 客戶機系統:Android-x86 4.4 R2
③ SDK版本:android-sdk_r24.2-linux
④ 虛擬化方案:KVM QEMU
⑤ 聯網方式:NAT
⑥ 宿主機IP:192.168.1.109
⑦ 客戶機IP:192.168.122.131
⑧ 示例APP:搜狐視頻

1. 啟動客戶機

① 通過VNC連接至宿主機;
② 在宿主機中找到並運行:
Applications → System Tools → Virtual Machine Manager
③ 在KVM的圖形界面中運行先前創建好的Android-x86虛擬機。

2. ADB連接至客戶機

在宿主機的shell中運行以下命令:

 
         
  1. adb connect 192.168.122.131:5555

若上述命令的輸出如下所示,則表示連接成功:

3. 檢查搜狐視頻是否在運行

在宿主機的shell中運行以下命令:

 
         
  1. adb shell ps | grep sohu

若上述命令的輸出如下所示,則表明當前沒有運行搜狐視頻:

4. 運行搜狐視頻APP

① 查找運行入口

使用APKTool工具反編譯搜狐視頻的APK安裝文件(SohuVideo_Android_Phone.apk),得到如下文件列表:

其中的AndroidManifest.xml文件包含APP的啟動信息,幾乎每個APP的APK文件反編譯之后都具有這個文件。

使用Notepad++打開AndroidManifest.xml文件,查找關鍵字“android.intent.category.LAUNCHER”或“android.intent.action.MAIN”,此時可以找到APP的入口動作:

其中的“.FirstNavigationActivityGroup”便是便是搜狐視頻的入口動作,下面通過adb啟動APP時需要用到。

② 在宿主機的shell中運行以下命令:

 
         
  1. adb shell am start -a android.intent.action.MAIN -n com.sohu.sohuvideo/.FirstNavigationActivityGroup

若上述命令的輸出如下所示,則表明運行搜狐視頻成功:

此時觀察客戶機,可以發現搜狐視頻已經成功運行:

5. 關閉搜狐視頻APP

① 找到搜狐視頻的系統進程

在宿主機的shell中運行以下命令:

 
         
  1. adb shell ps | grep sohu

若上述命令的輸出如下所示,則表示找到搜狐視頻的進程:

搜狐視頻的進程名為“com.sohu.sohuvideo”。

② 此處有兩種方法關閉搜狐視頻的進程,如下所示:

  • Method-A:

在宿主機的shell中運行以下命令:

 
         
  1. adb shell am force-stop com.sohu.sohuvideo

若上述命令的輸出如下所示,則表示成功殺死進程:

注意:
這種方法會強制停止APP進程,不會清除APP進程在系統中產生的數據。

  • Method-B:

在宿主機的shell中運行以下命令:

 
         
  1. adb shell pm clear com.sohu.sohuvideo

若上述命令的輸出如下所示,則表示成功殺死進程:

注意:
這種方法不僅會停止APP進程,而且會清除這個APP進程產生的所有數據。

③ 檢查搜狐視頻是否正在運行

在宿主機的shell中運行以下命令:

 
         
  1. adb shell ps | grep sohu

若上述命令的輸入如下所示,則表示已經成功停止搜狐視頻的后台進程:



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM