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

Class bertingkat

class ProcessUtil.KillException

 

Konstanta

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

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

Menampilkan
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Menampilkan
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Menampilkan
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Menampilkan
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Menampilkan
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

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

Menampilkan
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

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

Menampilkan
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Menampilkan
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException