当前位置: 首页 > 知识库问答 >
问题:

如何使用ADB杀死所有活动任务/应用程序?

岳出野
2023-03-14
adb shell am kill-all

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

我之所以这么问是因为我正在对一些用户应用程序进行性能测试。为了使每个测试有效,我希望确保没有任何用户应用程序有任何任务,活动,服务和缓存已经在后台。

共有1个答案

凌征
2023-03-14

您可以使用强制停止,它不需要root权限。

adb shell am force-stop <PACKAGE>

您可以从顶部运行的活动/应用程序中获得包名

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);
}
 类似资料:
  • 在我的应用程序中,我有一个在后台(和前台)运行。 在这个中,有一个,当它完成时,我想在某个中启动应用程序并在中自动执行一些操作,即使我的应用程序被杀死或关闭,我也希望它能正常工作。 我看到了一些答案,这是其中之一,但它对我不起作用。我找到了一个更好的解决方案,并将其作为答案发布在下面,但仍然只有在应用程序关闭但未完全关闭时才有效。 如何从后台启动,即使应用程序已关闭或关闭?

  • 我有一个有三个活动的应用程序。第一活动,第二活动,第三活动。 在第一个活动中有一个按钮,它启动第二个活动。在第二个活动中,有两种方法可以转到第三个活动。但是有一个方法有代码: 两个变体都使用此代码片段。 此代码在-12秒内自动运行 我的问题是:当用户按下Back键时,ThirdActivity会打开,但几秒钟后,ThirdActivity会从第一个变体再次打开。 那么,如何完全终止一个活动,使其在

  • 我正在使用一个后台进程,这将连接到一个android设备的前端应用程序。 我想扼杀这个过程: 我有杀死应用程序的adb命令,作为

  • 我使用startActivity(Intent)在我的Android应用程序中创建一个新活动。 有可能扼杀其中一项活动吗?如果有,如何扼杀? 我想要这样 Activity4->Activity1->关闭应用程序

  • 问题内容: 问题答案: 调用stop的替代方法是使用中断向线程发出信号,告知你希望它完成其工作。(这假设你要停止的线程行为良好,如果它在抛出异常后立即通过吃掉它们而忽略了InterruptedException,并且不检查中断状态,那么你将返回使用stop()。) 下面是一些代码,我写的一个答案,一个线程的问题在这里,它的线程中断,将如何工作的例子: 要注意的一些事情: 中断原因并立即抛出,否则你

  • 问题内容: 我想杀死所有通过的进程: 怎么做? 这不起作用: 问题答案: 使用,它与命令行的任何部分的模式匹配