ProcessUtil
public
final
class
ProcessUtil
extends Object
java.lang.Object
|
↳ |
com.android.sts.common.ProcessUtil
|
Berbagai helper untuk menemukan, menunggu, dan menghentikan proses di perangkat
Ringkasan
Metode publik |
static
Optional<IFileEntry>
|
findFileLoadedByProcess(ITestDevice device, String process, String filenameSubstr)
Menampilkan entri file dari file pertama yang dimuat oleh proses yang ditentukan dengan nama yang ditentukan
|
static
Optional<List<String>>
|
findFilesLoadedByProcess(ITestDevice device, int pid, Pattern filePattern)
Menampilkan nama file dari file yang ditentukan, yang dimuat oleh proses yang ditentukan.
|
static
Optional<String>
|
getProcessName(ITestDevice device, int pid)
Dapatkan konten dari /proc/pid/cmdline.
|
static
boolean
|
killAll(ITestDevice device, String pgrepRegex, long timeoutMs, boolean expectExist)
Mengirim SIGKILL ke semua proses yang cocok dengan pola.
|
static
boolean
|
killAll(ITestDevice device, String pgrepRegex, long timeoutMs)
Mengirim SIGKILL ke semua proses yang cocok dengan pola.
|
static
void
|
killPid(ITestDevice device, int pid, long timeoutMs)
Kirim SIGKILL ke proses dan tunggu hingga proses keluar.
|
static
void
|
killPid(ITestDevice device, int pid, int signal, long timeoutMs)
Kirim sinyal ke proses dan tunggu hingga proses keluar.
|
static
Optional<List<String>>
|
listOpenFiles(ITestDevice device, int pid)
Menampilkan nama file yang saat ini terbuka dari proses yang ditentukan.
|
static
Optional<Integer>
|
pidOf(ITestDevice device, String pgrepRegex)
Mendapatkan satu pid yang cocok dengan pola yang diteruskan ke `pgrep`.
|
static
Optional<Map<Integer, String>>
|
pidsOf(ITestDevice device, String pgrepRegex)
Dapatkan pid yang cocok dengan pola yang diteruskan ke `pgrep`.
|
static
void
|
waitPidExited(ITestDevice device, int pid)
Tunggu hingga proses keluar.
|
static
void
|
waitPidExited(ITestDevice device, int pid, long timeoutMs)
Tunggu hingga proses keluar.
|
static
Map<Integer, String>
|
waitProcessRunning(ITestDevice device, String pgrepRegex, long timeoutMs)
Tunggu hingga proses yang sedang berjalan ditemukan untuk ekspresi reguler tertentu.
|
static
Map<Integer, String>
|
waitProcessRunning(ITestDevice device, String pgrepRegex)
Tunggu hingga proses yang sedang berjalan ditemukan untuk ekspresi reguler tertentu.
|
static
AutoCloseable
|
withProcessKill(ITestDevice device, String pgrepRegex, Runnable beforeCloseKill, long timeoutMs)
Menghentikan proses di awal dan akhir pengujian.
|
static
AutoCloseable
|
withProcessKill(ITestDevice device, String pgrepRegex, Runnable beforeCloseKill)
Menghentikan proses di awal dan akhir pengujian.
|
Konstanta
PROCESS_POLL_PERIOD_MS
public static final long PROCESS_POLL_PERIOD_MS
Nilai Konstanta:
250
(0x00000000000000fa)
PROCESS_WAIT_TIMEOUT_MS
public static final long PROCESS_WAIT_TIMEOUT_MS
Nilai Konstanta:
10000
(0x0000000000002710)
Metode publik
findFileLoadedByProcess
public static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device,
String process,
String filenameSubstr)
Menampilkan entri file dari file pertama yang dimuat oleh proses yang ditentukan dengan nama yang ditentukan
Parameter |
device |
ITestDevice : perangkat yang akan dijalankan |
process |
String : pola pgrep proses yang akan dicari |
filenameSubstr |
String : bagian dari nama/jalur file yang dimuat oleh proses |
Hasil |
Optional<IFileEntry> |
Opsional IFileEntry dari jalur file di perangkat jika ada.
|
Menampilkan |
DeviceNotAvailableException |
|
findFilesLoadedByProcess
public static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device,
int pid,
Pattern filePattern)
Menampilkan nama file dari file yang ditentukan, yang dimuat oleh proses yang ditentukan.
Parameter |
device |
ITestDevice : perangkat yang akan dijalankan |
pid |
int : ID proses yang akan ditelusuri |
filePattern |
Pattern : pola nama file yang akan ditampilkan |
Hasil |
Optional<List<String>> |
Opsional dari file yang difilter; kosong jika proses tidak ditemukan atau file yang terbuka
tidak dapat dibaca.
|
Menampilkan |
DeviceNotAvailableException |
|
getProcessName
public static Optional<String> getProcessName (ITestDevice device,
int pid)
Dapatkan konten dari /proc/pid/cmdline.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pid |
int : ID proses untuk mendapatkan namanya |
Hasil |
Optional<String> |
String Opsional dari konten /proc/pid/cmdline; kosong jika pid tidak dapat
ditemukan
|
Menampilkan |
DeviceNotAvailableException |
|
killAll
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs,
boolean expectExist)
Mengirim SIGKILL ke semua proses yang cocok dengan pola.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : String yang mewakili ekspresi reguler untuk pgrep |
timeoutMs |
long : berapa lama waktu tunggu sebelum menampilkan TimeoutException |
expectExist |
boolean : apakah pengecualian harus ditampilkan saat tidak ada proses yang dihentikan |
Hasil |
boolean |
apakah ada proses yang dihentikan
|
killAll
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs)
Mengirim SIGKILL ke semua proses yang cocok dengan pola.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : String yang mewakili ekspresi reguler untuk pgrep |
timeoutMs |
long : berapa lama waktu tunggu sebelum menampilkan TimeoutException |
Hasil |
boolean |
apakah ada proses yang dihentikan
|
killPid
public static void killPid (ITestDevice device,
int pid,
long timeoutMs)
Kirim SIGKILL ke proses dan tunggu hingga proses keluar.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pid |
int : ID proses yang akan ditunggu hingga keluar |
timeoutMs |
long : berapa lama waktu tunggu sebelum menampilkan TimeoutException
|
killPid
public static void killPid (ITestDevice device,
int pid,
int signal,
long timeoutMs)
Kirim sinyal ke proses dan tunggu hingga proses keluar.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pid |
int : ID proses yang akan ditunggu hingga keluar |
signal |
int : sinyal yang akan dikirim ke proses |
timeoutMs |
long : berapa lama waktu tunggu sebelum menampilkan TimeoutException
|
listOpenFiles
public static Optional<List<String>> listOpenFiles (ITestDevice device,
int pid)
Menampilkan nama file yang saat ini terbuka dari proses yang ditentukan.
Parameter |
device |
ITestDevice : perangkat yang akan dijalankan |
pid |
int : ID proses yang akan ditelusuri |
Hasil |
Optional<List<String>> |
Opsional file yang terbuka; kosong jika proses tidak ditemukan atau file yang terbuka
tidak dapat dibaca.
|
Menampilkan |
DeviceNotAvailableException |
|
pidOf
public static Optional<Integer> pidOf (ITestDevice device,
String pgrepRegex)
Mendapatkan satu pid yang cocok dengan pola yang diteruskan ke `pgrep`. Menampilkan IllegalArgumentException
jika ada lebih dari satu PID yang cocok dengan pola.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : String yang mewakili ekspresi reguler untuk pgrep |
Hasil |
Optional<Integer> |
Bilangan Bulat Opsional dari pid; kosong jika pgrep tidak menampilkan EXIT_SUCCESS
|
Menampilkan |
DeviceNotAvailableException |
|
IllegalArgumentException |
|
pidsOf
public static Optional<Map<Integer, String>> pidsOf (ITestDevice device,
String pgrepRegex)
Dapatkan pid yang cocok dengan pola yang diteruskan ke `pgrep`. Karena /proc/pid/comm terpotong,
`pgrep` diteruskan dengan `-f` untuk memeriksa command line lengkap.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : String yang mewakili ekspresi reguler untuk pgrep |
Hasil |
Optional<Map<Integer, String>> |
Peta Opsional pid ke command line; kosong jika pgrep tidak menampilkan EXIT_SUCCESS
|
Menampilkan |
DeviceNotAvailableException |
|
waitPidExited
public static void waitPidExited (ITestDevice device,
int pid)
Tunggu hingga proses keluar. Ini bukan menunggu perubahan, tetapi tidak ada. PID dapat digunakan kembali di antara polling, tetapi kemungkinannya kecil
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pid |
int : ID proses yang akan ditunggu hingga keluar
|
waitPidExited
public static void waitPidExited (ITestDevice device,
int pid,
long timeoutMs)
Tunggu hingga proses keluar. Ini bukan menunggu perubahan, tetapi tidak ada. PID dapat digunakan kembali di antara polling, tetapi kemungkinannya kecil
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pid |
int : ID proses yang akan ditunggu hingga keluar |
timeoutMs |
long : berapa lama waktu tunggu sebelum menampilkan TimeoutException
|
waitProcessRunning
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex,
long timeoutMs)
Tunggu hingga proses yang sedang berjalan ditemukan untuk ekspresi reguler tertentu.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : String yang mewakili ekspresi reguler untuk pgrep |
timeoutMs |
long : berapa lama waktu tunggu sebelum menampilkan TimeoutException |
Hasil |
Map<Integer, String> |
pid ke peta perintah dari pidsOf(...)
|
Menampilkan |
TimeoutException |
|
DeviceNotAvailableException |
|
waitProcessRunning
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex)
Tunggu hingga proses yang sedang berjalan ditemukan untuk ekspresi reguler tertentu.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : String yang mewakili ekspresi reguler untuk pgrep |
Hasil |
Map<Integer, String> |
pid ke peta perintah dari pidsOf(...)
|
Menampilkan |
TimeoutException |
|
DeviceNotAvailableException |
|
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill,
long timeoutMs)
Menghentikan proses di awal dan akhir pengujian.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : pola nama proses yang akan dihentikan untuk diberikan ke pgrep |
beforeCloseKill |
Runnable : dapat dijalankan untuk tindakan apa pun yang perlu dibersihkan sebelum menghentikan
proses di lingkungan normal di akhir pengujian. Dapat ditetapkan ke null. |
timeoutMs |
long : berapa lama dalam milidetik untuk menunggu proses dihentikan |
Hasil |
AutoCloseable |
Objek yang akan menghentikan proses lagi saat ditutup
|
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill)
Menghentikan proses di awal dan akhir pengujian.
Parameter |
device |
ITestDevice : perangkat yang akan digunakan |
pgrepRegex |
String : pola nama proses yang akan dihentikan untuk diberikan ke pgrep |
beforeCloseKill |
Runnable : dapat dijalankan untuk tindakan apa pun yang perlu dibersihkan sebelum menghentikan
proses di lingkungan normal di akhir pengujian. Dapat ditetapkan ke null. |
Hasil |
AutoCloseable |
Objek yang akan menghentikan proses lagi saat ditutup
|