ยูทิลิตี้การประมวลผล

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

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

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

findFileLoadedByProcess

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

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

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

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

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

คิกรีเทิร์น
Optional<IFileEntry> Opotional ของ 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: สตริงที่แสดงถึงนิพจน์ทั่วไปสำหรับ 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: สตริงที่แสดงถึงนิพจน์ทั่วไปสำหรับ pgrep

timeoutMs long: ระยะเวลาที่จะรอก่อนที่จะส่ง หมดเวลา ExceptionException

คิกรีเทิร์น
boolean มีกระบวนการใดที่ถูกยุติการใช้งานหรือไม่

การขว้าง
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

KillPid

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

ส่ง SIGKILL ไปยังกระบวนการและรอให้ออกจากกระบวนการ

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

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

timeoutMs long: ระยะเวลาที่จะรอก่อนที่จะส่ง หมดเวลา ExceptionException

การขว้าง
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: ระยะเวลาที่จะรอก่อนที่จะส่ง หมดเวลา ExceptionException

การขว้าง
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

แสดงรายการOpenFiles

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

pidsของ

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

รอPidExit

public static void waitPidExited (ITestDevice device, 
                int pid)

รอให้ออกจากกระบวนการ สิ่งนี้ไม่ใช่การรอให้มีการเปลี่ยนแปลง เพียงแต่ต้อง ไม่มีอยู่ เป็นไปได้ (แต่ก็ไม่น่าเป็นไปได้ที่จะมีการนํา Pid มาใช้ซ้ำระหว่างแบบสํารวจ)

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

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

การขว้าง
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

รอPidExit

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

รอให้ออกจากกระบวนการ สิ่งนี้ไม่ใช่การรอให้มีการเปลี่ยนแปลง เพียงแต่ต้อง ไม่มีอยู่ เป็นไปได้ (แต่ก็ไม่น่าเป็นไปได้ที่จะมีการนํา Pid มาใช้ซ้ำระหว่างแบบสํารวจ)

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

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

timeoutMs long: ระยะเวลาที่จะรอก่อนที่จะส่ง หมดเวลา ExceptionException

การขว้าง
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

กำลังดำเนินการรอ

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

รอจนกว่าระบบจะพบกระบวนการที่ทำงานอยู่สำหรับนิพจน์ทั่วไปที่กำหนด

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

pgrepRegex String: สตริงที่แสดงถึงนิพจน์ทั่วไปสำหรับ pgrep

timeoutMs long: ระยะเวลาที่จะรอก่อนที่จะส่ง หมดเวลา ExceptionException

คิกรีเทิร์น
Map<Integer, String> pid กับคำสั่งแมปจาก pidsOf(...)

การขว้าง
TimeoutException
DeviceNotAvailableException

กำลังดำเนินการรอ

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

รอจนกว่าระบบจะพบกระบวนการที่ทำงานอยู่สำหรับนิพจน์ทั่วไปที่กำหนด

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

pgrepRegex String: สตริงที่แสดงถึงนิพจน์ทั่วไปสำหรับ pgrep

คิกรีเทิร์น
Map<Integer, String> pid กับคำสั่งแมปจาก pidsOf(...)

การขว้าง
TimeoutException
DeviceNotAvailableException

พร้อมกระบวนการKill

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

พร้อมกระบวนการKill

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

ยุติกระบวนการในช่วงเริ่มต้นและสิ้นสุดการทดสอบ

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

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

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

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

การขว้าง
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException