2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
ProcessUtil
public
final
class
ProcessUtil
extends Object
java.lang.Object
|
↳ |
com.android.sts.common.ProcessUtil
|
デバイス上のプロセスを検索、待機、強制終了するためのさまざまなヘルパー
概要
パブリック メソッド |
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 |
プロセスが強制終了されたかどうか |
killAll
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs)
パターンに一致するすべてのプロセスに SIGKILL を送信します。
パラメータ |
device |
ITestDevice : 使用するデバイス |
pgrepRegex |
String : pgrep の正規表現を表す文字列 |
timeoutMs |
long : TimeoutException をスローするまでの待機時間 |
戻り値 |
boolean |
プロセスが強制終了されたかどうか |
killPid
public static void killPid (ITestDevice device,
int pid,
long timeoutMs)
プロセスに SIGKILL を送信し、プロセスが終了するまで待機します。
パラメータ |
device |
ITestDevice : 使用するデバイス |
pid |
int : 終了するまで待機するプロセスの ID |
timeoutMs |
long : TimeoutException をスローするまでの待ち時間 |
killPid
public static void killPid (ITestDevice device,
int pid,
int signal,
long timeoutMs)
プロセスにシグナルを送信し、プロセスが終了するまで待ちます。
パラメータ |
device |
ITestDevice : 使用するデバイス |
pid |
int : 終了するまで待機するプロセスの ID |
signal |
int : プロセスに送信するシグナル |
timeoutMs |
long : TimeoutException をスローするまでの待ち時間 |
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 |
waitPidExited
public static void waitPidExited (ITestDevice device,
int pid,
long timeoutMs)
プロセスが終了するまで待ちます。これは、変更を待つのではなく、単に存在しないことを意味します。ポーリング間で PID が再利用される可能性はありますが、可能性は低いです。
パラメータ |
device |
ITestDevice : 使用するデバイス |
pid |
int : 終了するまで待機するプロセスの ID |
timeoutMs |
long : TimeoutException をスローするまでの待ち時間 |
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 |
クローズ時にプロセスを再び終了するオブジェクト |
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill)
テストの開始時と終了時にプロセスを強制終了します。
パラメータ |
device |
ITestDevice : 使用するデバイス |
pgrepRegex |
String : pgrep に渡すために終了するプロセスの名前パターン |
beforeCloseKill |
Runnable : テストの終了時に通常の環境でプロセスを終了する前にクリーンアップする必要があるアクションの実行可能ファイル。null の場合もあります。 |
戻り値 |
AutoCloseable |
クローズ時にプロセスを再び終了するオブジェクト |
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[]]