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)

`pgrep`에 전달된 패턴과 일치하는 단일 PID를 가져옵니다.

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

`pgrep`에 전달된 패턴과 일치하는 Pid를 가져옵니다.

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)

테스트의 시작과 끝에서 프로세스를 종료합니다.

상수

절차 POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

상수 값: 250명 (0x00000000000000fa)

프로세스 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> 기기의 파일 경로에 대한 IFileEntry의 Opotional입니다(있는 경우).

생성 값
DeviceNotAvailableException

findFilesLoadedByProcess

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

지정된 프로세스에 의해 로드된 지정된 파일의 파일 이름을 반환합니다.

매개변수
device ITestDevice: 실행할 기기

pid int: 검색할 프로세스의 ID입니다.

filePattern Pattern: 반환할 파일 이름의 패턴입니다.

반환 값
Optional<List<String>> 필터링된 파일의 선택적 프로세스를 찾을 수 없거나 열려 있는 경우 파일을 읽을 수 없습니다.

생성 값
DeviceNotAvailableException

getProcessName

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

/proc/pid/cmdline에서 콘텐츠를 가져옵니다.

매개변수
device ITestDevice: 사용할 기기

pid int: 이름을 가져올 프로세스의 ID입니다.

반환 값
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: TimeoutException이 발생하기 전에 대기하는 시간입니다.

반환 값
boolean 프로세스가 종료되었는지 여부

생성 값
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

KillPid

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

SIGKILL을 프로세스로 전송하고 종료될 때까지 기다립니다.

매개변수
device ITestDevice: 사용할 기기

pid int: 종료될 때까지 대기할 프로세스의 ID입니다.

timeoutMs long: TimeoutException이 발생하기 전에 대기하는 시간입니다.

생성 값
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

KillPid

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

프로세스에 신호를 보내고 프로세스가 종료될 때까지 기다립니다.

매개변수
device ITestDevice: 사용할 기기

pid int: 종료될 때까지 대기할 프로세스의 ID입니다.

signal int: 프로세스에 전송할 신호입니다.

timeoutMs long: TimeoutException이 발생하기 전에 대기하는 시간입니다.

생성 값
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

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

지정된 프로세스의 현재 열려 있는 파일 이름을 반환합니다.

매개변수
device ITestDevice: 실행할 기기

pid int: 검색할 프로세스의 ID입니다.

반환 값
Optional<List<String>> 열려 있는 파일의 선택적 프로세스를 찾을 수 없거나 열려 있는 파일인 경우 비어 있음 읽을 수 없습니다.

생성 값
DeviceNotAvailableException

PID

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

`pgrep`에 전달된 패턴과 일치하는 단일 PID를 가져옵니다. 패턴과 일치하는 PID가 두 개 이상 있으면 IllegalArgumentException이 발생합니다.

매개변수
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)

`pgrep`에 전달된 패턴과 일치하는 Pid를 가져옵니다. /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: 종료될 때까지 대기할 프로세스의 ID입니다.

생성 값
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited가

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

프로세스가 종료될 때까지 기다립니다. 변경될 때까지 기다리는 것이 아니라 없습니다. 가능성은 낮지만 설문조사 간에 PID를 재사용할 수 있습니다.

매개변수
device ITestDevice: 사용할 기기

pid int: 종료될 때까지 대기할 프로세스의 ID입니다.

timeoutMs long: TimeoutException이 발생하기 전에 대기하는 시간입니다.

생성 값
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

wait프로세스 실행 중

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

지정된 정규식에 대해 실행 중인 프로세스를 찾을 때까지 기다립니다.

매개변수
device ITestDevice: 사용할 기기

pgrepRegex String: pgrep의 정규식을 나타내는 문자열

timeoutMs long: TimeoutException이 발생하기 전에 대기하는 시간입니다.

반환 값
Map<Integer, String> pidsOf(...)에서 명령어 매핑에 대한 pid

생성 값
TimeoutException
DeviceNotAvailableException

wait프로세스 실행 중

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

지정된 정규식에 대해 실행 중인 프로세스를 찾을 때까지 기다립니다.

매개변수
device ITestDevice: 사용할 기기

pgrepRegex String: pgrep의 정규식을 나타내는 문자열

반환 값
Map<Integer, String> pidsOf(...)에서 명령어 매핑에 대한 pid

생성 값
TimeoutException
DeviceNotAvailableException

withProcessKill

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

테스트의 시작과 끝에서 프로세스를 종료합니다.

매개변수
device ITestDevice: 사용할 기기

pgrepRegex String: pgrep에 제공하기 위해 종료할 프로세스의 이름 패턴

beforeCloseKill Runnable: 프로세스가 끝날 때 정상적인 환경에서 프로세스를 실행합니다. null일 수 있습니다.

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: 프로세스가 끝날 때 정상적인 환경에서 프로세스를 실행합니다. null일 수 있습니다.

반환 값
AutoCloseable 프로세스가 닫힐 때 다시 프로세스를 종료하는 객체

생성 값
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException