我正在开发一个测试应用程序,它将一个接一个地连续启动设备上的每个应用程序。该应用程序主要用于通过上下文切换进行 UI 稳定性测试。我是 Android 新手,并试图找出沿途的事情。我将非常感谢任何建议
这就是我的应用程序应该做的事情:-
- 查询设备并获取设备上所有应用程序的列表,
包括系统应用程序 - 现在依次启动每个应用程序,直到启动设备上的所有应用程序
一旦完成列表浏览一次,它将从列表中的第一个应用程序重新开始
让我们调用我的应用 Launcher_app 并假设设备上有 5 个应用 A、B、C、D、E。Launcher 应用将依次启动 A,然后是 B、C、D、E,然后通过启动 A 重新启动。这是将一直持续到用户手动存在启动器应用程序
我尝试实现该应用程序,但我对 android 系统如何允许这样的上下文切换有几个问题。
这是自动启动每个应用程序的代码片段
ublic Runnable AutoLaunch = new Runnable() {
public void run()
{
while(AppIndex < mAppsList.getCount())
{
//get the app name using index AppIndex
//launch app using the appname
App app = (App) mAppsList.getItemAtPosition(AppIndex);
Intent i = getPackageManager().getLaunchIntentForPackage(app.getPackageName());
try
{
if (i != null)
{
startActivity(i);
}
else
{
i = new Intent(app.getPackageName());
startActivity(i);
}
for(int j=0;j<2000;j++)
for(int k=0;k<10000;k++)
continue;
finish();
}
catch (ActivityNotFoundException err)
{
//Toast.makeText(ListInstalledApps.this, "Error launching app", Toast.LENGTH_SHORT).show();
}
if(AppIndex == mAppsList.getCount()-1)
AppIndex = 0;
else
AppIndex++;
}
这是我的理解:-
启动器应用程序一开始将处于前台 (FG)。然后应用 A 进入前台 n Launcher_app 将进入后台(BG)。现在应用 B 进入 FG,应用 A 与 Launcher 应用一起进入 BG。以这种方式继续下去,有时应用程序 E 位于 FG 中,而包括 Launcher 应用程序在内的其余应用程序位于 BG 中。
当我尝试使用上述实现运行应用程序时,我看到应用程序正在启动,但应用程序顺序是随机的,此外,我在设备启动时没有看到非常多的应用程序,可能它发生得太快了....不确定。我直到我知道我在正确的轨道上才想继续
在这种情况下,对于下一次迭代,Launhcer 应用程序会按该顺序恢复应用程序 A、B、C、D、E 还是会重新启动每个应用程序?如果系统在实际场景中需要内存,Launcher 应用程序也会被杀死在 BG 中运行的设备上有近 50 个应用程序。或者系统会让我的应用程序保持活动状态,因为这是启动所有其他应用程序的主要应用程序。
请帮助我了解它是如何工作的,因为我真的想知道这样的应用程序是否可行?解决上述问题的最佳方法是什么。将不胜感激任何类型的指针/建议。
谢谢迷你