ProcessUtil

public final class ProcessUtil
extends Object

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


Diverses aides pour rechercher, attendre et arrêter 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 fichier du fichier spécifié, chargé par le processus spécifié.

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

Obtenez 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 se termine.

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

Envoyez un signal à un processus et attendez qu'il se termine.

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

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

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

Obtenez un seul PID correspondant à un format transmis à "pgrep".

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

Récupérez les PID correspondant à un modèle transmis à "pgrep".

static void waitPidExited(ITestDevice device, int pid)

Attendez la fin d'un processus.

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

Attendez la fin d'un processus.

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

Attendez qu'un processus en cours d'exécution soit détecté 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 détecté pour une expression régulière donnée.

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

Arrêter un processus au début et à la fin d'un test.

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

Arrêter 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 : 10000 (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 l'appli doit s'exécuter

process String: modèle pgrep du processus à rechercher

filenameSubstr String: partie du nom/chemin d'accès du fichier chargé par le processus

Renvoie
Optional<IFileEntry> Un élément facultatif d'IFileEntry du chemin d'accès au fichier sur l'appareil, le cas échéant.

Génère
DeviceNotAvailableException

findFilesLoadedByProcess

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

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

Paramètres
device ITestDevice: appareil sur lequel l'appli doit s'exécuter

pid int: ID du processus à rechercher

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

Renvoie
Optional<List<String>> Facultatif des fichiers filtrés. Vide si le processus n'a pas été trouvé ou si les fichiers ouverts ne pouvaient pas être lus.

Génère
DeviceNotAvailableException

getProcessName

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

Obtenez le contenu de /proc/pid/cmdline.

Paramètres
device ITestDevice: appareil à utiliser

pid int: ID du processus dont vous souhaitez obtenir le nom

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

Génère
DeviceNotAvailableException

killAll

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: appareil à utiliser

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

timeoutMs long: durée d'attente avant de générer une exception TimeoutException

expectExist boolean: indique si une exception doit être générée lorsqu'aucun processus n'a été arrêté.

Renvoie
boolean si des processus ont été arrêtés

Génère
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killAll

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

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

Paramètres
device ITestDevice: appareil à utiliser

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

timeoutMs long: durée d'attente avant de générer une exception TimeoutException

Renvoie
boolean si des processus ont été arrêtés

Génère
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Envoyez SIGKILL à un processus et attendez qu'il se termine.

Paramètres
device ITestDevice: appareil à utiliser

pid int: ID du processus à attendre jusqu'à la fin

timeoutMs long: durée d'attente avant de générer une exception TimeoutException

Génère
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Envoyez un signal à un processus et attendez qu'il se termine.

Paramètres
device ITestDevice: appareil à utiliser

pid int: ID du processus à attendre jusqu'à la fin

signal int: signal à envoyer au processus

timeoutMs long: durée d'attente avant de générer une exception TimeoutException

Génère
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

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

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

Paramètres
device ITestDevice: appareil sur lequel l'appli doit s'exécuter

pid int: ID du processus à rechercher

Renvoie
Optional<List<String>> Facultatif pour les fichiers ouverts. Vide si le processus n'a pas été trouvé ou si les fichiers ouverts ne pouvaient pas être lus.

Génère
DeviceNotAvailableException

pidOf

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

Obtenez un PID unique correspondant à un format transmis à "pgrep". Générez une exception IllegalArgumentException lorsqu'il existe plusieurs PID correspondant au format.

Paramètres
device ITestDevice: appareil à utiliser

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

Renvoie
Optional<Integer> Entier facultatif du PID. Vide si pgrep n'a pas renvoyé EXIT_SUCCESS

Génère
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Obtenez les PID correspondant à un modèle transmis à "pgrep". Étant donné que /proc/pid/comm est tronqué, "pgrep" est transmis avec "-f" pour vérifier la ligne de commande complète.

Paramètres
device ITestDevice: appareil à utiliser

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

Renvoie
Optional<Map<Integer, String>> Carte facultative du PID à la ligne de commande ; vide si pgrep n'a pas renvoyé EXIT_SUCCESS

Génère
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Attendez la fin d'un processus. Il ne s'agit pas d'attendre qu'il change, mais simplement de ne pas l'utiliser. Il est possible, mais peu probable, qu'un PID soit réutilisé entre les sondages.

Paramètres
device ITestDevice: appareil à utiliser

pid int: ID du processus à attendre jusqu'à la fin

Génère
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

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

Attendez la fin d'un processus. Il ne s'agit pas d'attendre qu'il change, mais simplement de ne pas l'utiliser. Il est possible, mais peu probable, qu'un PID soit réutilisé entre les sondages.

Paramètres
device ITestDevice: appareil à utiliser

pid int: ID du processus à attendre jusqu'à la fin

timeoutMs long: durée d'attente avant de générer une exception TimeoutException

Génère
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 détecté pour une expression régulière donnée.

Paramètres
device ITestDevice: appareil à utiliser

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

timeoutMs long: durée d'attente avant de générer une exception TimeoutException

Renvoie
Map<Integer, String> Mappage du PID sur la commande à partir de pidsOf(...)

Génère
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

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

Paramètres
device ITestDevice: appareil à utiliser

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

Renvoie
Map<Integer, String> Mappage du PID sur la commande à partir de pidsOf(...)

Génère
TimeoutException
DeviceNotAvailableException

withProcessKill

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

Arrêter un processus au début et à la fin d'un test.

Paramètres
device ITestDevice: appareil à utiliser

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

beforeCloseKill Runnable: exécutable pour toutes les actions à nettoyer avant de fermer le processus dans un environnement normal à la fin du test. Peut être null.

timeoutMs long: durée d'attente, en millisecondes, avant l'arrêt du processus

Renvoie
AutoCloseable Objet qui arrêtera à nouveau le processus lorsqu'il sera fermé

Génère
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

Arrêter un processus au début et à la fin d'un test.

Paramètres
device ITestDevice: appareil à utiliser

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

beforeCloseKill Runnable: exécutable pour toutes les actions à nettoyer avant de fermer le processus dans un environnement normal à la fin du test. Peut être null.

Renvoie
AutoCloseable Objet qui arrêtera à nouveau le processus lorsqu'il sera fermé

Génère
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException