コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

ProcessUtil

public final class ProcessUtil
extends Object

java.lang.Object
com.android.sts.common.ProcessUtil


デバイス上のプロセスを検索、待機、強制終了するためのさまざまなヘルパー

概要

ネストされたクラス

class ProcessUtil.KillException

定数

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

公開メソッド

static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device, String process, String filenameSubstr)

指定された名前の指定されたプロセスによってロードされた最初のファイルのファイル エントリを返します。

static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device, int pid, Pattern filePattern)

指定されたプロセスによってロードされた、指定されたファイルのファイル名を返します。

static Optional<String> getProcessName (ITestDevice device, int pid)

/proc/pid/cmdline から内容を取得します。

static boolean killAll (ITestDevice device, String pgrepRegex, long timeoutMs, boolean expectExist)

パターンに一致するすべてのプロセスに SIGKILL を送信します。

static boolean killAll (ITestDevice device, String pgrepRegex, long timeoutMs)

パターンに一致するすべてのプロセスに SIGKILL を送信します。

static void killPid (ITestDevice device, int pid, long timeoutMs)

SIGKILL をプロセスに送信し、プロセスが終了するのを待ちます。

static void killPid (ITestDevice device, int pid, int signal, long timeoutMs)

プロセスにシグナルを送信し、プロセスが終了するのを待ちます。

static Optional<List<String>> listOpenFiles (ITestDevice device, int pid)

指定されたプロセスの現在開いているファイル名を返します。

static Optional<Integer> pidOf (ITestDevice device, String pgrepRegex)

`pgrep` に渡されたパターンに一致する単一の pid を取得します。

static Optional<Map<Integer, String>> pidsOf (ITestDevice device, String pgrepRegex)

`pgrep` に渡されたパターンに一致する pid を取得します。

static void waitPidExited (ITestDevice device, int pid)

プロセスが終了するのを待ちます。

static void waitPidExited (ITestDevice device, int pid, long timeoutMs)

プロセスが終了するのを待ちます。

static Map<Integer, String> waitProcessRunning (ITestDevice device, String pgrepRegex, long timeoutMs)

特定の正規表現に対して実行中のプロセスが見つかるまで待ちます。

static Map<Integer, String> waitProcessRunning (ITestDevice device, String pgrepRegex)

特定の正規表現に対して実行中のプロセスが見つかるまで待ちます。

static AutoCloseable withProcessKill (ITestDevice device, String pgrepRegex, Runnable beforeCloseKill, long timeoutMs)

テストの開始時と終了時にプロセスを強制終了します。

static AutoCloseable withProcessKill (ITestDevice device, String pgrepRegex, Runnable beforeCloseKill)

テストの開始時と終了時にプロセスを強制終了します。

定数

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

定数値: 250 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

定数値: 10000 (0x0000000000002710)

公開メソッド

findFileLoadedByProcess

public static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device, 
                String process, 
                String filenameSubstr)

指定された名前の指定されたプロセスによってロードされた最初のファイルのファイル エントリを返します。

パラメーター
device ITestDevice : 実行するデバイス

process String : 探すプロセスの pgrep パターン

filenameSubstr String : プロセスによってロードされたファイル名/パスの一部

戻り値
Optional<IFileEntry>存在する場合、デバイス上のファイルのパスの IFileEntry のオプション。

スロー
DeviceNotAvailableException

findFilesLoadedByProcess

public static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device, 
                int pid, 
                Pattern filePattern)

指定されたプロセスによってロードされた、指定されたファイルのファイル名を返します。

パラメーター
device ITestDevice : 実行するデバイス

pid int : 検索するプロセスの ID

filePattern Pattern : 返すファイル名のパターン

戻り値
Optional<List<String>>フィルタリングされたファイルのオプション。プロセスが見つからないか、開いているファイルを読み取れなかった場合は空です。

スロー
DeviceNotAvailableException

getProcessName

public static Optional<String> getProcessName (ITestDevice device, 
                int pid)

/proc/pid/cmdline から内容を取得します。

パラメーター
device ITestDevice : 使用するデバイス

pid int : 名前を取得するプロセスの ID

戻り値
Optional<String> /proc/pid/cmdline の内容のオプションの文字列。 pid が見つからなかった場合は空

スロー
DeviceNotAvailableException

killAll

public static boolean killAll (ITestDevice device, 
                String pgrepRegex, 
                long timeoutMs, 
                boolean expectExist)

パターンに一致するすべてのプロセスに SIGKILL を送信します。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep の正規表現を表す文字列

timeoutMs long : TimeoutException をスローするまでの待機時間

expectExist boolean : プロセスが強制終了されなかった場合に例外をスローするかどうか

戻り値
booleanプロセスが強制終了されたかどうか

スロー
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killAll

public static boolean killAll (ITestDevice device, 
                String pgrepRegex, 
                long timeoutMs)

パターンに一致するすべてのプロセスに SIGKILL を送信します。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep の正規表現を表す文字列

timeoutMs long : TimeoutException をスローするまでの待機時間

戻り値
booleanプロセスが強制終了されたかどうか

スロー
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

public static void killPid (ITestDevice device, 
                int pid, 
                long timeoutMs)

SIGKILL をプロセスに送信し、プロセスが終了するのを待ちます。

パラメーター
device ITestDevice : 使用するデバイス

pid int : 終了するまで待機するプロセスの ID

timeoutMs long : TimeoutException をスローするまでの待機時間

スロー
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

public static void killPid (ITestDevice device, 
                int pid, 
                int signal, 
                long timeoutMs)

プロセスにシグナルを送信し、プロセスが終了するのを待ちます。

パラメーター
device ITestDevice : 使用するデバイス

pid int : 終了するまで待機するプロセスの ID

signal int : プロセスに送信するシグナル

timeoutMs long : TimeoutException をスローするまでの待機時間

スロー
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

public static Optional<List<String>> listOpenFiles (ITestDevice device, 
                int pid)

指定されたプロセスの現在開いているファイル名を返します。

パラメーター
device ITestDevice : 実行するデバイス

pid int : 検索するプロセスの ID

戻り値
Optional<List<String>>開いているファイルのオプション。プロセスが見つからないか、開いているファイルを読み取れなかった場合は空です。

スロー
DeviceNotAvailableException

pidOf

public static Optional<Integer> pidOf (ITestDevice device, 
                String pgrepRegex)

`pgrep` に渡されたパターンに一致する単一の pid を取得します。パターンに一致する PID が複数ある場合は、 IllegalArgumentExceptionをスローします。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep の正規表現を表す文字列

戻り値
Optional<Integer> pid のオプションの整数。 pgrep が EXIT_SUCCESS を返さなかった場合は空

スロー
DeviceNotAvailableException
IllegalArgumentException

pidsOf

public static Optional<Map<Integer, String>> pidsOf (ITestDevice device, 
                String pgrepRegex)

`pgrep` に渡されたパターンに一致する pid を取得します。 /proc/pid/comm が切り詰められているため、完全なコマンド ラインをチェックするために `pgrep` が `-f` で渡されます。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep の正規表現を表す文字列

戻り値
Optional<Map<Integer, String>>オプションの pid からコマンド ラインへのマップ。 pgrep が EXIT_SUCCESS を返さなかった場合は空

スロー
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

プロセスが終了するのを待ちます。これは変化するのを待っているのではなく、単に存在しません。 pid がポーリング間で再利用される可能性はありますが、ほとんどありません。

パラメーター
device ITestDevice : 使用するデバイス

pid int : 終了するまで待機するプロセスの ID

スロー
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid, 
                long timeoutMs)

プロセスが終了するのを待ちます。これは変化するのを待っているのではなく、単に存在しません。 pid がポーリング間で再利用される可能性はありますが、ほとんどありません。

パラメーター
device ITestDevice : 使用するデバイス

pid int : 終了するまで待機するプロセスの ID

timeoutMs long : TimeoutException をスローするまでの待機時間

スロー
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitProcessRunning

public static Map<Integer, String> waitProcessRunning (ITestDevice device, 
                String pgrepRegex, 
                long timeoutMs)

特定の正規表現に対して実行中のプロセスが見つかるまで待ちます。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep の正規表現を表す文字列

timeoutMs long : TimeoutException をスローするまでの待機時間

戻り値
Map<Integer, String> pidsOf(...) からの pid からコマンドへのマップ

スロー
TimeoutException
DeviceNotAvailableException

waitProcessRunning

public static Map<Integer, String> waitProcessRunning (ITestDevice device, 
                String pgrepRegex)

特定の正規表現に対して実行中のプロセスが見つかるまで待ちます。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep の正規表現を表す文字列

戻り値
Map<Integer, String> pidsOf(...) からの pid からコマンドへのマップ

スロー
TimeoutException
DeviceNotAvailableException

withProcessKill

public static AutoCloseable withProcessKill (ITestDevice device, 
                String pgrepRegex, 
                Runnable beforeCloseKill, 
                long timeoutMs)

テストの開始時と終了時にプロセスを強制終了します。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep に与えるために強制終了するプロセスの名前パターン

beforeCloseKill Runnable : テストの終了時に通常の環境でプロセスを強制終了する前にクリーンアップする必要があるアクションの実行可能ファイル。 null にすることができます。

timeoutMs long : プロセスが終了するまで待機するミリ秒単位の時間

戻り値
AutoCloseableクローズ時にプロセスを再度強制終了するオブジェクト

スロー
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

public static AutoCloseable withProcessKill (ITestDevice device, 
                String pgrepRegex, 
                Runnable beforeCloseKill)

テストの開始時と終了時にプロセスを強制終了します。

パラメーター
device ITestDevice : 使用するデバイス

pgrepRegex String : pgrep に与えるために強制終了するプロセスの名前パターン

beforeCloseKill Runnable : テストの終了時に通常の環境でプロセスを強制終了する前にクリーンアップする必要があるアクションの実行可能ファイル。 null にすることができます。

戻り値
AutoCloseableクローズ時にプロセスを再度強制終了するオブジェクト

スロー
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException