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

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介:

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中运行以下命令:

adb connect 192.168.122.131:5555

若上述命令的输出如下所示,则表示连接成功:

3. 检查搜狐视频是否在运行

在宿主机的shell中运行以下命令:

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中运行以下命令:

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

若上述命令的输出如下所示,则表明运行搜狐视频成功:

此时观察客户机,可以发现搜狐视频已经成功运行:

5. 关闭搜狐视频APP

① 找到搜狐视频的系统进程

在宿主机的shell中运行以下命令:

adb shell ps | grep sohu

若上述命令的输出如下所示,则表示找到搜狐视频的进程:

搜狐视频的进程名为“com.sohu.sohuvideo”。

② 此处有两种方法关闭搜狐视频的进程,如下所示:

  • Method-A:

在宿主机的shell中运行以下命令:

adb shell am force-stop com.sohu.sohuvideo

若上述命令的输出如下所示,则表示成功杀死进程:

注意:

这种方法会强制停止APP进程,不会清除APP进程在系统中产生的数据。

  • Method-B:

在宿主机的shell中运行以下命令:

adb shell pm clear com.sohu.sohuvideo

若上述命令的输出如下所示,则表示成功杀死进程:

注意:

这种方法不仅会停止APP进程,而且会清除这个APP进程产生的所有数据。

③ 检查搜狐视频是否正在运行

在宿主机的shell中运行以下命令:

adb shell ps | grep sohu

若上述命令的输入如下所示,则表示已经成功停止搜狐视频的后台进程:

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
20天前
|
小程序 API PHP
零成本搭建个人 APP 和小程序后台
虽然网上也有很多人介绍这俩平台的玩法,但都是 2024 年以前的文章,有些平台最新的修改,和自己踩到的坑而别人没提到的细节,我还是想记录一下。
38 9
|
15天前
|
网络协议
Mac根据端口查询进程id的命令
这篇文章介绍了在Mac操作系统上如何使用两种命令来查询监听特定端口的进程ID。第一种方法是使用`netstat -anp tcp -v | grep 端口号`,例如`netstat -anp tcp -v | grep 80`,这将列出所有使用端口80的TCP连接及其相关信息。第二种方法是使用`lsof -P -n -i:端口号`,例如`lsof -P -n -i:8080`,这将显示使用指定端口的进程列表,包括进程ID、用户、文件描述符等信息。文章通过示例展示了如何使用这些命令,并提供了输出结果的截图。
20 2
|
18天前
|
Java Windows
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
|
18天前
|
数据安全/隐私保护 异构计算 Windows
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
|
19天前
|
Linux Perl
在Linux中,系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
在Linux中,系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
|
2月前
|
监控 Android开发 开发者
Android经典面试题之实战经验分享:如何简单实现App的前后台监听判断
本文介绍在Android中判断应用前后台状态的两种方法:`ActivityLifecycleCallbacks`和`ProcessLifecycleOwner`。前者提供精细控制,适用于需针对每个Activity处理的场景;后者简化前后台检测,适用于多数应用。两者各有优劣:`ActivityLifecycleCallbacks`更精确但复杂度高;`ProcessLifecycleOwner`更简便但可能在极端场景下略有差异。根据应用需求选择合适方法。
26 2
|
2月前
|
Shell 数据安全/隐私保护
Ansible Ad-hoc,命令执行模块
Ansible Ad-hoc,命令执行模块
21 1
|
2月前
|
Java 运维
开发与运维命令问题之使用jstack命令查看Java进程的线程栈如何解决
开发与运维命令问题之使用jstack命令查看Java进程的线程栈如何解决
44 2
|
1月前
|
机器学习/深度学习 数据可视化 搜索推荐
低代码开发是一种能够加速软件研发进程的高效开发方法
【8月更文挑战第4天】低代码开发是一种能够加速软件研发进程的高效开发方法
43 0
|
2月前
|
小程序 Linux
【编程小实验】利用Linux fork()与文件I/O:父进程与子进程协同实现高效cp命令(前半文件与后半文件并行复制)
这个小程序是在文件IO的基础上去结合父子进程的一个使用,利用父子进程相互独立的特点实现对数据不同的操作

热门文章

最新文章