【问题标题】:How to know if certain process is running in a Android device?如何知道某个进程是否在 Android 设备中运行?
【发布时间】:2015-08-19 09:41:18
【问题描述】:

我们正在开发用于自动化 Android 设备测试脚本的 TestComplete 自动化工具。如何使用 shell 脚本或 TestComplete 脚本了解 Android 设备中运行的所有进程?

【问题讨论】:

  • 这似乎是重复的:stackoverflow.com/questions/3278895/…
  • @Sipty:不是重复的。这个问题是关于为 Android 编写自动化测试,而不是编写 Android 应用程序。
  • 您是否需要检查特定进程是否正在运行(如标题所述),或列出所有进程(如帖子所述)?

标签: android linux shell jscript testcomplete


【解决方案1】:

这列出了为 TestComplete 检测的所有正在运行的进程

function Test()
{
  Mobile.SetCurrent("emulator-5554");
  var device = Mobile.Device();

  for (var i = 0; i < device.ChildCount; i++)
  {
    Log.Message(device.Child(i).ProcessName);
  }
}

要列出所有正在运行的进程,您可以使用adb shell ps 命令。您可以像这样从 TestComplete 运行它:

function Test()
{
  Mobile.SetCurrent("emulator-5554");

  var str = Mobile.Device().ShellExecute("ps");
  Log.Message("See Additional Info", str);
}

但您需要过滤命令的输出,因为它看起来像:

USER     PID   PPID  VSIZE  RSS     WCHAN    PC        NAME

root      1     0     9128   808   c02b4929 0806c150 S /init

root      2     0     0      0     c023172d 00000000 S kthreadd

system    1238  949   599324 84032 ffffffff b7503355 S system_server

u0_a12    1438  949   520712 56672 ffffffff b7503355 S com.android.systemui

u0_a2     1457  949   491816 32504 ffffffff b7503355 S android.process.acore

【讨论】:

    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多