如何通过UIAutomators删除内存中的所有应用程序?

时间:2014-12-01 04:07:01

标签: android uiautomator android-uiautomator

我想删除内存中的所有应用以便干净利落。如果我知道内存中的应用程序,可以按照以下方式完成

    try
    {
        getUiDevice().pressRecentApps();
        UiObject uio = new UiObject(new UiSelector().text("apps one"));
        uio.swipeRight(20);
        uio = new UiObject(new UiSelector().text("facebook"));
        uis.swipeRight(20);

    }
    catch (RemoteException e)
    {
        e.printStackTrace();
    }

然而,我想要的是不了解当前应用的列表,我只是想在内存中打开应用列表,然后将它们移开。有没有办法编写一个For-Loop,通过UiAutomator API获取内存中的应用程序列表?

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

try
    {
        getUiDevice().pressRecentApps();
        UiObject uio = new UiObject(new UiSelector().resourceId("com.android.systemui:id/recent_item"));
        while uio.exists(){
            uio.swipeRight(20);
            uio = new UiObject(new UiSelector().text("facebook"));
            uis.swipeRight(20);
            UiObject uio = new UiObject(new UiSelector().text("apps one"));
    }
    catch (RemoteException e)
    {
        e.printStackTrace();
    }

稍后更新:

而不是文本(" apps one")使用视图属性,如类名资源ID。 你可以在android监视器中看到这些(你可以在平台工具中找到它)。 选择左侧的设备,然后按屏幕截图旁边的按钮。 这将在屏幕上生成所有视图,您可以看到最近的应用程序面板的布局。