ProcessUtil

public final class ProcessUtil
extends Object

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


פונקציות עזר שונות לאיתור תהליכים במכשיר, להמתנה להם ולסגירתם

סיכום

כיתות בתצוגת עץ

class ProcessUtil.KillException

 

קבועים

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

שיטות ציבוריות

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

הפונקציה מחזירה את הרשומה של הקובץ הראשון שנטען על ידי התהליך שצוין בשם שצוין

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

הפונקציה מחזירה את שמות הקבצים של הקובץ שצוין, שנטען על ידי התהליך שצוין.

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

מקבלים את התוכן מ-/proc/pid/cmdline.

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

שליחת SIGKILL לכל התהליכים שתואמים לדפוס.

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

שליחת SIGKILL לכל התהליכים שתואמים לדפוס.

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

שולחים SIGKILL לתהליך וממתינים לסיום הפעולה שלו.

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

שליחת אות לתהליך והמתנה לסיום שלו.

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

הפונקציה מחזירה את שמות הקבצים הפתוחים של התהליך שצוין.

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

הצגת pid יחיד שתואמת לתבנית שהועברה ל-`pgrep`.

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

הצגת מזהי ה-pid שתואמים לדפוס שהוענק ל-`pgrep`.

static void waitPidExited(ITestDevice device, int pid)

המתנה לסיום תהליך.

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

המתנה לסיום תהליך.

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

המתנה עד שמוצאים תהליך פעיל לביטוי רגולרי נתון.

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

המתנה עד שמוצאים תהליך פעיל לביטוי רגולרי נתון.

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

סגירת תהליך בתחילת הבדיקה ובסופה.

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

סגירת תהליך בתחילת הבדיקה ובסופה.

קבועים

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

ערך קבוע: 250 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

ערך קבוע: 10000 (0x0000000000002710)

שיטות ציבוריות

findFileLoadedByProcess

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

הפונקציה מחזירה את הרשומה של הקובץ הראשון שנטען על ידי התהליך שצוין בשם שצוין

פרמטרים
device ITestDevice: המכשיר שבו רוצים להריץ את הסקריפט

process String: תבנית pgrep של התהליך שרוצים לחפש

filenameSubstr String: חלק משם הקובץ או מהנתיב שלו שנטענו על ידי התהליך

החזרות
Optional<IFileEntry> אפשרות אופציונלית של IFileEntry של הנתיב של הקובץ במכשיר, אם הוא קיים.

זריקות
DeviceNotAvailableException

findFilesLoadedByProcess

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

הפונקציה מחזירה את שמות הקבצים של הקובץ שצוין, שנטען על ידי התהליך שצוין.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להריץ את הבדיקה

pid int: המזהה של התהליך לחיפוש

filePattern Pattern: דפוס של שמות הקבצים להחזרה

החזרות
Optional<List<String>> רשימה אופציונלית של הקבצים המסוננים. אם התהליך לא נמצא או שלא ניתן לקרוא את הקבצים הפתוחים, הערך יהיה ריק.

זריקות
DeviceNotAvailableException

getProcessName

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

מקבלים את התוכן מ-/proc/pid/cmdline.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pid int: המזהה של התהליך שרוצים לקבל את השם שלו

החזרות
Optional<String> מחרוזת אופציונלית של התוכן של ‎ /proc/pid/cmdline. המחרוזת תהיה ריקה אם לא ניתן למצוא את ה-pid.

זריקות
DeviceNotAvailableException

killAll

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

שליחת SIGKILL לכל התהליכים שתואמים לדפוס.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: מחרוזת שמייצגת את הביטוי הרגולרי של pgrep

timeoutMs long: משך הזמן להמתנה לפני השלכת TimeoutException

expectExist boolean: האם להפעיל חריגה כשלא נהרגו תהליכים

החזרות
boolean אם תהליכים כלשהם הושמדו

זריקות
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killAll

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

שליחת SIGKILL לכל התהליכים שתואמים לדפוס.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: מחרוזת שמייצגת את הביטוי הרגולרי של pgrep

timeoutMs long: משך הזמן להמתנה לפני השלכת TimeoutException

החזרות
boolean אם תהליכים כלשהם הושמדו

זריקות
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

שולחים SIGKILL לתהליך וממתינים לסיום הפעולה שלו.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pid int: המזהה של התהליך שצריך להמתין עד לסיום שלו

timeoutMs long: משך הזמן להמתנה לפני השלכת TimeoutException

זריקות
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

שליחת אות לתהליך והמתנה לסיום שלו.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pid int: המזהה של התהליך שצריך להמתין עד לסיום שלו

signal int: האות ששולחים לתהליך

timeoutMs long: משך הזמן להמתנה לפני השלכת TimeoutException

זריקות
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

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

הפונקציה מחזירה את שמות הקבצים הפתוחים של התהליך שצוין.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להריץ את הבדיקה

pid int: המזהה של התהליך לחיפוש

החזרות
Optional<List<String>> רשימה אופציונלית של הקבצים הפתוחים. אם התהליך לא נמצא או שלא ניתן היה לקרוא את הקבצים הפתוחים, הערך יהיה ריק.

זריקות
DeviceNotAvailableException

pidOf

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

הצגת PID יחיד שתואם לדפוס שהוענק ל-`pgrep`. השלכת IllegalArgumentException אם יש יותר מ-PID אחד שתואם לדפוס.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: מחרוזת שמייצגת את הביטוי הרגולרי של pgrep

החזרות
Optional<Integer> מספר שלם אופציונלי של pid. אם הפונקציה pgrep לא החזירה את EXIT_SUCCESS, הערך יהיה ריק.

זריקות
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

הצגת מזהי ה-pid שתואמים לדפוס שהוענק ל-`pgrep`. מכיוון ש-/proc/pid/comm קטועה, הפקודה pgrep מועברת עם -f כדי לבדוק את שורת הפקודה המלאה.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: מחרוזת שמייצגת את הביטוי הרגולרי של pgrep

החזרות
Optional<Map<Integer, String>> מיפוי אופציונלי של pid לשורת הפקודה. המיפוי יהיה ריק אם הפקודה pgrep לא החזירה את הערך EXIT_SUCCESS.

זריקות
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

המתנה לסיום תהליך. אין צורך לחכות שהיא תשתנה, אלא פשוט לא צריך אותה. יכול להיות (אבל לא סביר) ש-pid ישמש שוב בין סקרים

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pid int: המזהה של התהליך שצריך להמתין עד לסיום שלו

זריקות
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

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

המתנה לסיום תהליך. אין צורך לחכות שהיא תשתנה, אלא פשוט לא צריך אותה. יכול להיות (אבל לא סביר) ש-pid ישמש שוב בין סקרים

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pid int: המזהה של התהליך שצריך להמתין עד לסיום שלו

timeoutMs long: משך הזמן להמתנה לפני השלכת TimeoutException

זריקות
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitProcessRunning

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

המתנה עד שמוצאים תהליך פעיל לביטוי רגולרי נתון.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: מחרוזת שמייצגת את הביטוי הרגולרי של pgrep

timeoutMs long: משך הזמן להמתנה לפני השלכת TimeoutException

החזרות
Map<Integer, String> המיפוי של pid לפקודה מ-pidsOf(...)

זריקות
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

המתנה עד שמוצאים תהליך פעיל לביטוי רגולרי נתון.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: מחרוזת שמייצגת את הביטוי הרגולרי של pgrep

החזרות
Map<Integer, String> המיפוי של pid לפקודה מ-pidsOf(...)

זריקות
TimeoutException
DeviceNotAvailableException

withProcessKill

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

סגירת תהליך בתחילת הבדיקה ובסופה.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: תבנית השם של התהליך שרוצים להרוג, שצריך לתת ל-pgrep

beforeCloseKill Runnable: קובץ הפעלה לכל הפעולות שצריך לבצע כדי לנקות לפני שמפסיקים את התהליך בסביבה רגילה בסוף הבדיקה. הערך יכול להיות null.

timeoutMs long: משך הזמן באלפיות השנייה שצריך להמתין עד שהתהליך יופסק

החזרות
AutoCloseable אובייקט שיגרום שוב לסגירת התהליך

זריקות
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

סגירת תהליך בתחילת הבדיקה ובסופה.

פרמטרים
device ITestDevice: המכשיר שבו רוצים להשתמש

pgrepRegex String: תבנית השם של התהליך שרוצים להרוג, שצריך לתת ל-pgrep

beforeCloseKill Runnable: קובץ הפעלה לכל הפעולות שצריך לבצע כדי לנקות לפני שמפסיקים את התהליך בסביבה רגילה בסוף הבדיקה. הערך יכול להיות null.

החזרות
AutoCloseable אובייקט שיגרום שוב לסגירת התהליך

זריקות
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException