Quy trìnhUtil

public final class ProcessUtil
extends Object

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


Nhiều trình trợ giúp khác nhau để tìm, chờ và hủy các tiến trình trên thiết bị

Bản tóm tắt

Các lớp lồng nhau

class ProcessUtil.KillException

Hằng số

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

Phương pháp công khai

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

Trả về mục nhập tệp của tệp đầu tiên được tải bởi quy trình đã chỉ định với tên được chỉ định

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

Trả về tên tệp của tệp đã chỉ định, được tải bởi quy trình đã chỉ định.

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

Lấy nội dung từ /proc/pid/cmdline.

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

Gửi SIGKILL tới tất cả các quy trình khớp với mẫu.

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

Gửi SIGKILL tới tất cả các quy trình khớp với mẫu.

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

Gửi SIGKILL tới một tiến trình và đợi nó thoát ra.

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

Gửi tín hiệu đến một tiến trình và đợi nó thoát ra.

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

Trả về tên tệp hiện đang mở của quy trình đã chỉ định.

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

Nhận một pid khớp với mẫu được chuyển tới `pgrep`.

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

Nhận các pid khớp với mẫu được chuyển tới `pgrep`.

static void waitPidExited (ITestDevice device, int pid)

Đợi một quá trình được thoát.

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

Đợi một quá trình được thoát.

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

Đợi cho đến khi tìm thấy một quy trình đang chạy cho một biểu thức chính quy nhất định.

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

Đợi cho đến khi tìm thấy một quy trình đang chạy cho một biểu thức chính quy nhất định.

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

Giết một tiến trình ở đầu và cuối của một bài kiểm tra.

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

Giết một tiến trình ở đầu và cuối của một bài kiểm tra.

Hằng số

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

Giá trị không đổi: 250 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Giá trị không đổi: 10000 (0x0000000000002710)

Phương pháp công khai

findFileLoadedByProcess

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

Trả về mục nhập tệp của tệp đầu tiên được tải bởi quy trình đã chỉ định với tên được chỉ định

Thông số
device ITestDevice : thiết bị được chạy trên

process String : mẫu pgrep của quy trình cần tìm

filenameSubstr String : một phần của tên tệp/đường dẫn được tải bởi quy trình

Trả lại
Optional<IFileEntry> Tùy chọn IFileEntry của đường dẫn tệp trên thiết bị nếu tồn tại.

Ném
DeviceNotAvailableException

findFilesLoadedByProcess

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

Trả về tên tệp của tệp đã chỉ định, được tải bởi quy trình đã chỉ định.

Thông số
device ITestDevice : thiết bị được chạy trên

pid int : id của tiến trình cần tìm kiếm

filePattern Pattern : mẫu tên tệp cần trả về

Trả lại
Optional<List<String>> một Tùy chọn của các tệp được lọc; trống nếu không tìm thấy quy trình hoặc không thể đọc được tệp đang mở.

Ném
DeviceNotAvailableException

getProcessName

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

Lấy nội dung từ /proc/pid/cmdline.

Thông số
device ITestDevice : thiết bị sử dụng

pid int : id của tiến trình cần lấy tên

Trả lại
Optional<String> Chuỗi tùy chọn chứa nội dung của /proc/pid/cmdline; trống nếu không tìm thấy pid

Ném
DeviceNotAvailableException

giết tất cả

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

Gửi SIGKILL tới tất cả các quy trình khớp với mẫu.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : một Chuỗi đại diện cho biểu thức chính quy cho pgrep

timeoutMs long : phải đợi bao lâu trước khi ném TimeoutException

expectExist boolean : có nên ném ngoại lệ khi không có tiến trình nào bị giết hay không

Trả lại
boolean liệu có bất kỳ quy trình nào bị giết không

Ném
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

giết tất cả

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

Gửi SIGKILL tới tất cả các quy trình khớp với mẫu.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : một Chuỗi đại diện cho biểu thức chính quy cho pgrep

timeoutMs long : phải đợi bao lâu trước khi ném TimeoutException

Trả lại
boolean liệu có bất kỳ quy trình nào bị giết không

Ném
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Gửi SIGKILL tới một tiến trình và đợi nó thoát ra.

Thông số
device ITestDevice : thiết bị sử dụng

pid int : id của tiến trình chờ cho đến khi thoát

timeoutMs long : phải đợi bao lâu trước khi ném TimeoutException

Ném
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Gửi tín hiệu đến một tiến trình và đợi nó thoát ra.

Thông số
device ITestDevice : thiết bị sử dụng

pid int : id của tiến trình chờ cho đến khi thoát

signal int : tín hiệu gửi tới tiến trình

timeoutMs long : phải đợi bao lâu trước khi ném TimeoutException

Ném
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

danh sáchMởTệp

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

Trả về tên tệp hiện đang mở của quy trình đã chỉ định.

Thông số
device ITestDevice : thiết bị được chạy trên

pid int : id của tiến trình cần tìm kiếm

Trả lại
Optional<List<String>> một Tùy chọn của các tệp đang mở; trống nếu không tìm thấy quy trình hoặc không thể đọc được tệp đang mở.

Ném
DeviceNotAvailableException

pidOf

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

Nhận một pid khớp với mẫu được chuyển tới `pgrep`. Ném IllegalArgumentException khi có nhiều hơn một PID khớp với mẫu.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : một Chuỗi đại diện cho biểu thức chính quy cho pgrep

Trả lại
Optional<Integer> một số nguyên tùy chọn của pid; trống nếu pgrep không trả về EXIT_SUCCESS

Ném
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Nhận các pid khớp với mẫu được chuyển tới `pgrep`. Bởi vì /proc/pid/comm bị cắt ngắn, `pgrep` được truyền với `-f` để kiểm tra dòng lệnh đầy đủ.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : một Chuỗi đại diện cho biểu thức chính quy cho pgrep

Trả lại
Optional<Map<Integer, String>> Bản đồ tùy chọn của pid tới dòng lệnh; trống nếu pgrep không trả về EXIT_SUCCESS

Ném
DeviceNotAvailableException

chờPidĐã thoát

public static void waitPidExited (ITestDevice device, 
                int pid)

Đợi một quá trình được thoát. Điều này không phải là chờ đợi nó thay đổi mà đơn giản là không tồn tại. Có thể, nhưng không chắc, một pid có thể được sử dụng lại giữa các cuộc thăm dò ý kiến

Thông số
device ITestDevice : thiết bị sử dụng

pid int : id của tiến trình chờ cho đến khi thoát

Ném
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

chờPidĐã thoát

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

Đợi một quá trình được thoát. Điều này không phải là chờ đợi nó thay đổi mà đơn giản là không tồn tại. Có thể, nhưng không chắc, một pid có thể được sử dụng lại giữa các cuộc thăm dò ý kiến

Thông số
device ITestDevice : thiết bị sử dụng

pid int : id của tiến trình chờ cho đến khi thoát

timeoutMs long : phải đợi bao lâu trước khi ném TimeoutException

Ném
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

chờProcessRunning

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

Đợi cho đến khi tìm thấy một quy trình đang chạy cho một biểu thức chính quy nhất định.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : một Chuỗi đại diện cho biểu thức chính quy cho pgrep

timeoutMs long : phải đợi bao lâu trước khi ném TimeoutException

Trả lại
Map<Integer, String> pid để ra lệnh ánh xạ từ pidsOf(...)

Ném
TimeoutException
DeviceNotAvailableException

chờProcessRunning

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

Đợi cho đến khi tìm thấy một quy trình đang chạy cho một biểu thức chính quy nhất định.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : một Chuỗi đại diện cho biểu thức chính quy cho pgrep

Trả lại
Map<Integer, String> pid để ra lệnh ánh xạ từ pidsOf(...)

Ném
TimeoutException
DeviceNotAvailableException

withProcessKill

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

Giết một tiến trình ở đầu và cuối của một bài kiểm tra.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : mẫu tên của tiến trình cần hủy để cung cấp cho pgrep

beforeCloseKill Runnable : một runnable cho bất kỳ hành động nào cần dọn dẹp trước khi kết thúc quá trình trong môi trường bình thường khi kết thúc quá trình thử nghiệm. Có thể là null.

timeoutMs long : bao lâu tính bằng mili giây để chờ quá trình kết thúc

Trả lại
AutoCloseable Một đối tượng sẽ hủy quá trình một lần nữa khi nó bị đóng

Ném
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

Giết một tiến trình ở đầu và cuối của một bài kiểm tra.

Thông số
device ITestDevice : thiết bị sử dụng

pgrepRegex String : mẫu tên của tiến trình cần hủy để cung cấp cho pgrep

beforeCloseKill Runnable : một runnable cho bất kỳ hành động nào cần dọn dẹp trước khi kết thúc quá trình trong môi trường bình thường khi kết thúc quá trình thử nghiệm. Có thể là null.

Trả lại
AutoCloseable Một đối tượng sẽ hủy quá trình một lần nữa khi nó bị đóng

Ném
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException