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é
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
|
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
|
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
|
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
|
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
|
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
|
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é
|
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é
|