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 ที่ตรงกับรูปแบบมีมากกว่า 1 รายการ

พารามิเตอร์
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: การดำเนินการที่เรียกใช้ได้ซึ่งจำเป็นต้องล้างข้อมูลก่อนที่จะหยุดกระบวนการในสภาพแวดล้อมปกติเมื่อสิ้นสุดการทดสอบ อาจเป็นค่าว่างได้

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: การดำเนินการที่เรียกใช้ได้ซึ่งจำเป็นต้องล้างข้อมูลก่อนที่จะหยุดกระบวนการในสภาพแวดล้อมปกติเมื่อสิ้นสุดการทดสอบ อาจเป็นค่าว่างได้

คิกรีเทิร์น
AutoCloseable ออบเจ็กต์ที่จะหยุดกระบวนการอีกครั้งเมื่อปิด

การโยน
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException