ProcessUtil

public final class ProcessUtil
extends Object

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


Diverses aides pour rechercher, attendre et tuer des processus sur l'appareil

Résumé

Classes imbriquées

class ProcessUtil.KillException

Constantes

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

Méthodes publiques

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

Renvoie l'entrée de fichier du premier fichier chargé par le processus spécifié avec le nom spécifié

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

Renvoie les noms de fichiers du fichier spécifié, chargés par le processus spécifié.

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

Récupérez le contenu de /proc/pid/cmdline.

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

Envoyez SIGKILL à tous les processus correspondant à un modèle.

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

Envoyez SIGKILL à tous les processus correspondant à un modèle.

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

Envoyez SIGKILL à un processus et attendez qu'il soit quitté.

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

Envoyez un signal à un processus et attendez qu'il soit quitté.

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

Renvoie les noms de fichiers actuellement ouverts du processus spécifié.

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

Obtenez un seul pid correspondant à un modèle passé à `pgrep`.

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

Obtenez les pids correspondant à un modèle passé à `pgrep`.

static void waitPidExited (ITestDevice device, int pid)

Attendez qu'un processus soit quitté.

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

Attendez qu'un processus soit quitté.

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

Attendez qu'un processus en cours d'exécution soit trouvé pour une expression régulière donnée.

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

Attendez qu'un processus en cours d'exécution soit trouvé pour une expression régulière donnée.

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

Tuez un processus au début et à la fin d'un test.

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

Tuez un processus au début et à la fin d'un test.

Constantes

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

Valeur constante : 250 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Valeur constante : 10 000 (0x0000000000002710)

Méthodes publiques

findFileLoadedByProcess

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

Renvoie l'entrée de fichier du premier fichier chargé par le processus spécifié avec le nom spécifié

Paramètres
device ITestDevice : appareil sur lequel exécuter

process String : modèle pgrep du processus à rechercher

filenameSubstr String : partie du nom/chemin du fichier chargé par le processus

Retour
Optional<IFileEntry> une option de IFileEntry du chemin du fichier sur l'appareil s'il existe.

Jetés
DeviceNotAvailableException

findFilesLoadedByProcess

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

Renvoie les noms de fichiers du fichier spécifié, chargés par le processus spécifié.

Paramètres
device ITestDevice : appareil sur lequel exécuter

pid int : l'identifiant du processus à rechercher

filePattern Pattern : un modèle des noms de fichiers à renvoyer

Retour
Optional<List<String>> un Facultatif des fichiers filtrés ; vide si le processus n'a pas été trouvé ou si les fichiers ouverts n'ont pas pu être lus.

Jetés
DeviceNotAvailableException

getProcessName

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

Récupérez le contenu de /proc/pid/cmdline.

Paramètres
device ITestDevice : l'appareil à utiliser

pid int : l'identifiant du processus pour lequel obtenir le nom

Retour
Optional<String> une chaîne facultative du contenu de /proc/pid/cmdline ; vide si le pid n'a pas pu être trouvé

Jetés
DeviceNotAvailableException

tuer tous

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

Envoyez SIGKILL à tous les processus correspondant à un modèle.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : une chaîne représentant l'expression régulière pour pgrep

timeoutMs long : combien de temps attendre avant de lancer une TimeoutException

expectExist boolean : indique si une exception doit être levée lorsqu'aucun processus n'a été tué

Retour
boolean si des processus ont été tués

Jetés
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

tuer tous

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

Envoyez SIGKILL à tous les processus correspondant à un modèle.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : une chaîne représentant l'expression régulière pour pgrep

timeoutMs long : combien de temps attendre avant de lancer une TimeoutException

Retour
boolean si des processus ont été tués

Jetés
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

tuerPid

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

Envoyez SIGKILL à un processus et attendez qu'il soit quitté.

Paramètres
device ITestDevice : l'appareil à utiliser

pid int : l'identifiant du processus à attendre jusqu'à sa sortie

timeoutMs long : combien de temps attendre avant de lancer une TimeoutException

Jetés
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

tuerPid

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

Envoyez un signal à un processus et attendez qu'il soit quitté.

Paramètres
device ITestDevice : l'appareil à utiliser

pid int : l'identifiant du processus à attendre jusqu'à sa sortie

signal int : le signal à envoyer au processus

timeoutMs long : combien de temps attendre avant de lancer une TimeoutException

Jetés
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listeOpenFiles

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

Renvoie les noms de fichiers actuellement ouverts du processus spécifié.

Paramètres
device ITestDevice : appareil sur lequel exécuter

pid int : l'identifiant du processus à rechercher

Retour
Optional<List<String>> un Facultatif des fichiers ouverts ; vide si le processus n'a pas été trouvé ou si les fichiers ouverts n'ont pas pu être lus.

Jetés
DeviceNotAvailableException

pidDe

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

Obtenez un seul pid correspondant à un modèle passé à `pgrep`. Lancez une IllegalArgumentException lorsqu'il y a plus d'un PID correspondant au modèle.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : une chaîne représentant l'expression régulière pour pgrep

Retour
Optional<Integer> un entier facultatif du pid ; vide si pgrep n'a pas renvoyé EXIT_SUCCESS

Jetés
DeviceNotAvailableException
IllegalArgumentException

pidsDe

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

Obtenez les pids correspondant à un modèle passé à `pgrep`. Parce que /proc/pid/comm est tronqué, `pgrep` est passé avec `-f` pour vérifier la ligne de commande complète.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : une chaîne représentant l'expression régulière pour pgrep

Retour
Optional<Map<Integer, String>> une carte facultative du pid vers la ligne de commande ; vide si pgrep n'a pas renvoyé EXIT_SUCCESS

Jetés
DeviceNotAvailableException

waitPidSortie

public static void waitPidExited (ITestDevice device, 
                int pid)

Attendez qu'un processus soit quitté. Il ne s’agit pas d’attendre que cela change, mais simplement d’être inexistant. Il est possible, mais peu probable, qu'un pid soit réutilisé entre les sondages

Paramètres
device ITestDevice : l'appareil à utiliser

pid int : l'identifiant du processus à attendre jusqu'à sa sortie

Jetés
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidSortie

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

Attendez qu'un processus soit quitté. Il ne s’agit pas d’attendre que cela change, mais simplement d’être inexistant. Il est possible, mais peu probable, qu'un pid soit réutilisé entre les sondages

Paramètres
device ITestDevice : l'appareil à utiliser

pid int : l'identifiant du processus à attendre jusqu'à sa sortie

timeoutMs long : combien de temps attendre avant de lancer une TimeoutException

Jetés
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitProcessRunning

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

Attendez qu'un processus en cours d'exécution soit trouvé pour une expression régulière donnée.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : une chaîne représentant l'expression régulière pour pgrep

timeoutMs long : combien de temps attendre avant de lancer une TimeoutException

Retour
Map<Integer, String> le pid pour commander la carte depuis pidsOf(...)

Jetés
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

Attendez qu'un processus en cours d'exécution soit trouvé pour une expression régulière donnée.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : une chaîne représentant l'expression régulière pour pgrep

Retour
Map<Integer, String> le pid pour commander la carte depuis pidsOf(...)

Jetés
TimeoutException
DeviceNotAvailableException

avecProcessKill

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

Tuez un processus au début et à la fin d'un test.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : le modèle de nom du processus à tuer pour donner à pgrep

beforeCloseKill Runnable : un exécutable pour toutes les actions qui doivent être nettoyées avant de tuer le processus dans un environnement normal à la fin du test. Peut être nul.

timeoutMs long : combien de temps en millisecondes attendre que le processus s'arrête

Retour
AutoCloseable Un objet qui tuera à nouveau le processus à sa fermeture

Jetés
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

avecProcessKill

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

Tuez un processus au début et à la fin d'un test.

Paramètres
device ITestDevice : l'appareil à utiliser

pgrepRegex String : le modèle de nom du processus à tuer pour donner à pgrep

beforeCloseKill Runnable : un exécutable pour toutes les actions qui doivent être nettoyées avant de tuer le processus dans un environnement normal à la fin du test. Peut être nul.

Retour
AutoCloseable Un objet qui tuera à nouveau le processus à sa fermeture

Jetés
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException