android - 如何使用 ADB 终止所有 Activity 任务/应用程序?

标签 android shell android-activity adb

是否可以使用 ADB 杀死任务管理器中的所有 Activity 任务/应用程序?这相当于打开 task manager并一个一个地杀死每个任务......

我尝试使用以下 adb shell命令,但这并没有杀死所有的任务。

adb shell am kill-all

我无法使用 adb shell am force-stop <PACKAGE>命令,因为它需要我知道正在运行哪个包/应用程序。我想杀死所有正在运行的用户应用程序任务。类似于使用任务管理器并一个一个地终止每个任务。

根据命令描述,kill-all 杀死所有后台进程。后台进程等同于“服务”,任务等同于“Activity ”吗?

此外,是否可以在保留用户数据的同时使用 ADB 清除应用程序的缓存?我似乎是 adb shell pm clear清除所有用户数据。我只想清除缓存。

我问的原因是因为我正在对少数用户应用程序进行一些性能测试。为了使每个测试都有效,我想确保所有用户应用程序都没有任何任务、 Activity 、服务和缓存已经在后台。

最佳答案

你可以使用force-stop,它不需要root权限。

adb shell am force-stop <PACKAGE>

并且你可以从最上面运行的activity/app获取包名

adb shell "dumpsys activity | grep top-activity"

之后你需要对结果进行一些操作,以提取包,这里是我的 java 代码:

public void parseResult(String line){
        int i = line.indexOf(" 0 ");
        if(i == -1){
            return;
        }
        line = line.substring(i);
        i = line.indexOf(":");
        if(i == -1){
            return;
        }
        line = line.substring(i + 1);
        i = line.indexOf("/");
        return line.substring(0, i);
}

关于android - 如何使用 ADB 终止所有 Activity 任务/应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079853/

相关文章:

android - 在android TextView中缩进项目符号行

linux - 从 shell 中避免僵尸进程?

linux - 命令行对文件内容进行排序并将输出重定向到文件

java - 启动器图标消失了

java - 安卓 ||按钮配置||返回 Intent

android - 图钉内带有用户图像的自定义谷歌地图标记

android - 无法解决@style/Theme.Sherlock

linux - 将文件移动到当前位置的父目录

java - 创造无 body Activity

android - 在 ubuntu 上安装 android studio