Tiện ích quy trình

public final class ProcessUtil
extends Object

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


Nhiều người trợ giúp để tìm, chờ và loại bỏ các quy trình trên thiết bị

Tóm tắt

Các lớp học lồng ghép

class ProcessUtil.KillException

 

Các hằng số

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

Phương thức 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 theo quy trình được chỉ định kèm theo 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 được chỉ định, được tải theo quy trình cụ thể.

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

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

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

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

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

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

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

Gửi SIGKILL đến một quy trình và chờ thoát.

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

Gửi tín hiệu đến một quy trình và chờ thoát.

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

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

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

Lấy một pid duy nhất khớp với một mẫu được truyền đến "pgrep".

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

Lấy pid khớp với mẫu được truyền đến `pgrep`.

static void waitPidExited(ITestDevice device, int pid)

Đợi thoát khỏi một quá trình.

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

Đợi thoát khỏi một quá trình.

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

Chờ 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)

Chờ 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)

Loại bỏ một quy trình ở đầu và cuối chương trình kiểm thử.

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

Loại bỏ một quy trình ở đầu và cuối chương trình kiểm thử.

Hằng số

VIEWS_PACKAGES_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

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

Process_PENDING_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

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

Phương thức 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 theo quy trình được chỉ định kèm theo tên đã chỉ định

Tham số
device ITestDevice: thiết bị sẽ chạy trên đó

process String: mẫu quy trình pgrep cần tìm kiếm

filenameSubstr String: một phần tên/đường dẫn tệp do quy trình tải

Giá trị trả về
Optional<IFileEntry> Giá trị IFileEntry của đường dẫn của tệp trên thiết bị nếu có.

Gửi
DeviceNotAvailableException

findFilesLoadedByProcess

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

Trả về tên tệp của tệp cụ thể do quy trình cụ thể tải.

Tham số
device ITestDevice: thiết bị sẽ chạy trên đó

pid int: mã của quy trình cần tìm kiếm

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

Giá trị trả về
Optional<List<String>> các tệp đã lọc không bắt buộc; trống nếu không tìm thấy quy trình hoặc quy trình mở không thể đọc tệp.

Gửi
DeviceNotAvailableException

nhận tên tiến trình

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

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

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pid int: mã nhận dạng của quy trình lấy tên

Giá trị trả về
Optional<String> chuỗi không bắt buộc về nội dung của /proc/pid/cmdline; để trống nếu pid không thể được tìm thấy

Gửi
DeviceNotAvailableException

tiêu diệt tất cả

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

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

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: Chuỗi biểu thị biểu thức chính quy cho pgrep

timeoutMs long: thời gian phải chờ trước khi gửi một Tham gia nữa Exception

expectExist boolean: liệu có gửi trường hợp ngoại lệ khi không có quy trình nào bị dừng

Giá trị trả về
boolean có bị dừng bất kỳ quy trình nào không

Gửi
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

tiêu diệt tất cả

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

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

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: Chuỗi biểu thị biểu thức chính quy cho pgrep

timeoutMs long: thời gian chờ trước khi gửi một ExpirationException

Giá trị trả về
boolean có bị dừng bất kỳ quy trình nào không

Gửi
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

giếtPid

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

Gửi SIGKILL đến một quy trình và chờ thoát.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pid int: mã của quy trình sẽ chờ cho đến khi thoát

timeoutMs long: thời gian phải chờ trước khi gửi một Tham gia nữa Exception

Gửi
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

giếtPid

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

Gửi tín hiệu đến một quy trình và chờ thoát.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pid int: mã của quy trình sẽ chờ cho đến khi thoát

signal int: tín hiệu để gửi đến quy trình

timeoutMs long: thời gian chờ trước khi gửi một ExpirationException

Gửi
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

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

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

Tham số
device ITestDevice: thiết bị sẽ chạy trên đó

pid int: mã của quy trình cần tìm kiếm

Giá trị trả về
Optional<List<String>> các tệp đang mở (không bắt buộc); trống nếu không tìm thấy quy trình hoặc các tệp đang mở không thể đọc được.

Gửi
DeviceNotAvailableException

giá trị nhận dạng của

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

Lấy một pid duy nhất khớp với một mẫu được truyền đến "pgrep". Gửi IllegalArgumentException khi có nhiều hơn một PID khớp với mẫu.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: Chuỗi biểu thị biểu thức chính quy cho pgrep

Giá trị trả về
Optional<Integer> một Số nguyên không bắt buộc của pid; trống nếu pgrep không trả về Exit_FAILED

Gửi
DeviceNotAvailableException
IllegalArgumentException

pidOf

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

Lấy pid khớp với mẫu được truyền đến `pgrep`. Bởi vì /proc/pid/comm bị cắt bớt, Hệ thống sẽ truyền `pgrep` cùng với `-f` để kiểm tra dòng lệnh đầy đủ.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: Chuỗi biểu thị biểu thức chính quy cho pgrep

Giá trị trả về
Optional<Map<Integer, String>> một Bản đồ không bắt buộc của pid cho dòng lệnh; trống nếu pgrep không trả về Exit_FAILED

Gửi
DeviceNotAvailableException

ChờPidĐã thoát

public static void waitPidExited (ITestDevice device, 
                int pid)

Đợi thoát khỏi một quá trình. Điều này không phải chờ cho thay đổi, mà chỉ cần không tồn tại. Việc sử dụng lại pid giữa các cuộc thăm dò ý kiến có khả năng cao nhưng không bao giờ xảy ra.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pid int: mã của quy trình sẽ chờ cho đến khi thoát

Gửi
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

ChờPidĐã thoát

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

Đợi thoát khỏi một quá trình. Điều này không phải chờ cho thay đổi, mà chỉ cần không tồn tại. Việc sử dụng lại pid giữa các cuộc thăm dò ý kiến có khả năng cao nhưng không bao giờ xảy ra.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pid int: mã của quy trình sẽ chờ cho đến khi thoát

timeoutMs long: thời gian phải chờ trước khi gửi một Tham gia nữa Exception

Gửi
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

Chờ xử lý đang chạy

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

Chờ 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.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: Chuỗi biểu thị biểu thức chính quy cho pgrep

timeoutMs long: thời gian chờ trước khi gửi một ExpirationException

Giá trị trả về
Map<Integer, String> pid để lệnh ánh xạ từ pidsOf(...)

Gửi
TimeoutException
DeviceNotAvailableException

Chờ xử lý đang chạy

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

Chờ 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.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: Chuỗi biểu thị biểu thức chính quy cho pgrep

Giá trị trả về
Map<Integer, String> pid để lệnh ánh xạ từ pidsOf(...)

Gửi
TimeoutException
DeviceNotAvailableException

Xử lý

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

Loại bỏ một quy trình ở đầu và cuối chương trình kiểm thử.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: mẫu tên của quy trình cần loại bỏ để đặt cho pgrep

beforeCloseKill Runnable: có thể chạy cho mọi hành động cần dọn dẹp trước khi tắt trong môi trường bình thường vào cuối quá trình kiểm thử. Có thể có giá trị rỗng.

timeoutMs long: khoảng thời gian tính bằng mili giây để chờ quá trình tắt

Giá trị trả về
AutoCloseable Một đối tượng sẽ tắt quy trình một lần nữa khi nó đóng

Gửi
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

Xử lý

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

Loại bỏ một quy trình ở đầu và cuối chương trình kiểm thử.

Tham số
device ITestDevice: thiết bị sẽ sử dụng

pgrepRegex String: mẫu tên của quy trình cần loại bỏ để đặt cho pgrep

beforeCloseKill Runnable: có thể chạy cho mọi hành động cần dọn dẹp trước khi tắt trong môi trường bình thường vào cuối quá trình kiểm thử. Có thể có giá trị rỗng.

Giá trị trả về
AutoCloseable Một đối tượng sẽ tắt quy trình một lần nữa khi nó đóng

Gửi
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException