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)

รับ pids ที่ตรงกับรูปแบบที่ส่งไปยัง `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)

รอจนกว่าจะพบกระบวนการทำงานสำหรับ regex ที่กำหนด

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

รอจนกว่าจะพบกระบวนการทำงานสำหรับ regex ที่กำหนด

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

ค่าคงที่: 10,000 (0x0000000000002710)

วิธีการสาธารณะ

ค้นหาไฟล์โหลดโดยกระบวนการ

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

ส่งคืนรายการไฟล์ของไฟล์แรกที่โหลดโดยกระบวนการที่ระบุพร้อมชื่อที่ระบุ

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะรัน

process String : รูปแบบ pgrep ของกระบวนการที่ต้องการค้นหา

filenameSubstr String : ส่วนหนึ่งของชื่อไฟล์/เส้นทางที่โหลดโดยกระบวนการ

ส่งคืน
Optional<IFileEntry> ตัวเลือกของ IFileEntry ของเส้นทางของไฟล์บนอุปกรณ์หากมีอยู่

พ่น
DeviceNotAvailableException

ค้นหาไฟล์โหลดโดยกระบวนการ

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

ฆ่าทั้งหมด

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

ส่ง SIGKILL ไปยังกระบวนการทั้งหมดที่ตรงกับรูปแบบ

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : สตริงที่เป็นตัวแทนของ regex สำหรับ pgrep

timeoutMs long : ต้องรอนานแค่ไหนก่อนที่จะโยน TimeoutException

expectExist boolean : ควรมีข้อยกเว้นหรือไม่เมื่อไม่มีกระบวนการใดถูกฆ่า

ส่งคืน
boolean ไม่ว่ากระบวนการใดจะถูกฆ่า

พ่น
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

ฆ่าทั้งหมด

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

ส่ง SIGKILL ไปยังกระบวนการทั้งหมดที่ตรงกับรูปแบบ

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : สตริงที่เป็นตัวแทนของ regex สำหรับ 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

รายการ OpenFiles

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

ส่งกลับชื่อไฟล์ที่เปิดอยู่ในปัจจุบันของกระบวนการที่ระบุ

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะรัน

pid int : รหัสของกระบวนการที่จะค้นหา

ส่งคืน
Optional<List<String>> ตัวเลือกของไฟล์ที่เปิดอยู่ ว่างเปล่าหากไม่พบกระบวนการหรือไม่สามารถอ่านไฟล์ที่เปิดอยู่

พ่น
DeviceNotAvailableException

ปิด

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

รับ pid เดียวที่ตรงกับรูปแบบที่ส่งไปยัง `pgrep` ส่ง IllegalArgumentException เมื่อมี PID มากกว่าหนึ่งรายการที่ตรงกับรูปแบบ

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : สตริงที่เป็นตัวแทนของ regex สำหรับ pgrep

ส่งคืน
Optional<Integer> จำนวนเต็มทางเลือกของ pid; ว่างเปล่าหาก pgrep ไม่ส่งคืน EXIT_SUCCESS

พ่น
DeviceNotAvailableException
IllegalArgumentException

pidsของ

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

รับ pids ที่ตรงกับรูปแบบที่ส่งไปยัง `pgrep` เนื่องจาก /proc/pid/comm ถูกตัดทอน `pgrep` จึงถูกส่งผ่านด้วย `-f` เพื่อตรวจสอบบรรทัดคำสั่งทั้งหมด

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : สตริงที่เป็นตัวแทนของ regex สำหรับ 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)

รอจนกว่าจะพบกระบวนการทำงานสำหรับ regex ที่กำหนด

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : สตริงที่เป็นตัวแทนของ regex สำหรับ pgrep

timeoutMs long : ต้องรอนานแค่ไหนก่อนที่จะโยน TimeoutException

ส่งคืน
Map<Integer, String> pid ไปยัง command map จาก pidsOf(...)

พ่น
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

รอจนกว่าจะพบกระบวนการทำงานสำหรับ regex ที่กำหนด

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : สตริงที่เป็นตัวแทนของ regex สำหรับ pgrep

ส่งคืน
Map<Integer, String> pid ไปยัง command map จาก pidsOf(...)

พ่น
TimeoutException
DeviceNotAvailableException

ด้วย ProcessKill

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

ฆ่ากระบวนการที่จุดเริ่มต้นและจุดสิ้นสุดของการทดสอบ

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : รูปแบบชื่อของกระบวนการที่จะฆ่าเพื่อมอบให้กับ pgrep

beforeCloseKill Runnable : รันได้สำหรับการดำเนินการใด ๆ ที่จำเป็นต้องล้างข้อมูลก่อนที่จะฆ่ากระบวนการในสภาพแวดล้อมปกติเมื่อสิ้นสุดการทดสอบ สามารถเป็นโมฆะ

timeoutMs long : นานแค่ไหนในหน่วยมิลลิวินาทีเพื่อรอให้กระบวนการฆ่า

ส่งคืน
AutoCloseable วัตถุที่จะฆ่ากระบวนการอีกครั้งเมื่อปิด

พ่น
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

ด้วย ProcessKill

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

ฆ่ากระบวนการที่จุดเริ่มต้นและจุดสิ้นสุดของการทดสอบ

พารามิเตอร์
device ITestDevice : อุปกรณ์ที่จะใช้

pgrepRegex String : รูปแบบชื่อของกระบวนการที่จะฆ่าเพื่อมอบให้กับ pgrep

beforeCloseKill Runnable : รันได้สำหรับการดำเนินการใด ๆ ที่จำเป็นต้องล้างข้อมูลก่อนที่จะฆ่ากระบวนการในสภาพแวดล้อมปกติเมื่อสิ้นสุดการทดสอบ สามารถเป็นโมฆะ

ส่งคืน
AutoCloseable วัตถุที่จะฆ่ากระบวนการอีกครั้งเมื่อปิด

พ่น
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException