客戶

public interface Client

com.android.tradefed.device.server.Client


這代表單一用戶端,通常是 Dalvik VM 程序。

這個類別可存取基本用戶端資訊,以及對用戶端執行動作的方法。

如要查看更詳細的資訊 (通常會即時更新),請使用 ClientData 類別。每個 Client 物件都有自己的 ClientData,可透過 getClientData() 存取。

摘要

常數

int CHANGE_DEBUGGER_STATUS

用戶端變更位元遮罩:偵錯工具狀態變更

int CHANGE_HEAP_ALLOCATIONS

用戶端變更位元遮罩:已更新分配資訊

int CHANGE_HEAP_ALLOCATION_STATUS

用戶端變更位元遮罩:已更新分配資訊

int CHANGE_HEAP_DATA

用戶端變更位元遮罩:已更新標題資料

int CHANGE_HEAP_MODE

用戶端變更位元遮罩:堆積更新旗標變更

int CHANGE_HPROF

用戶端變更位元遮罩:已更新 hprof 資料

int CHANGE_INFO

用戶端變更位元遮罩:Client.CHANGE_NAMECHANGE_DEBUGGER_STATUSClient.CHANGE_PORT 的組合。

int CHANGE_METHOD_PROFILING_STATUS

用戶端變更位元遮罩:已更新分配資訊

int CHANGE_NAME

用戶端變更位元遮罩:應用程式名稱變更

int CHANGE_NATIVE_HEAP_DATA

用戶端變更位元遮罩:已更新原生堆積資料

int CHANGE_PORT

用戶端變更位元遮罩:偵錯工具通訊埠變更

int CHANGE_THREAD_DATA

用戶端變更位元遮罩:已更新執行緒資料

int CHANGE_THREAD_MODE

用戶端變更位元遮罩:執行緒更新旗標變更

int CHANGE_THREAD_STACKTRACE

用戶端變更位元遮罩:已更新執行緒堆疊追蹤記錄

int SERVER_PROTOCOL_VERSION

公用方法

abstract void captureView(String viewRoot, String view, DebugViewDumpHandler handler)
abstract void dumpDisplayList(String viewRoot, String view)
abstract void dumpViewHierarchy(String viewRoot, boolean skipChildren, boolean includeProperties, boolean useV2, DebugViewDumpHandler handler)
abstract void enableAllocationTracker(boolean enabled)

為這個用戶端啟用或停用分配追蹤器。

abstract void executeGarbageCollector()

強制用戶端執行垃圾收集器。

abstract ClientData getClientData()

傳回包含這項用戶端資訊的 ClientData 物件。

abstract int getDebuggerListenPort()

傳回這個用戶端的偵錯工具連接埠。

abstract IDevice getDevice()

傳回這個 Client 執行的 IDevice

abstract boolean isDdmAware()

如果用戶端 VM 可感知 DDM,則傳回 true

abstract boolean isDebuggerAttached()

如果偵錯工具目前已附加至用戶端,則傳回 true

abstract boolean isValid()

傳回這個 ClientImpl 是否與應用程式 VM 建立有效連線。

abstract void kill()

Sends a kill message to the VM.

abstract void listViewRoots(DebugViewDumpHandler replyHandler)
abstract void notifyVmMirrorExited()

偵錯工具 VM 鏡像可能會在 DDMLib 的後方退出,導致各種競爭或永久性Client遺失情況。

abstract void requestAllocationDetails()

向 VM 傳送要求,以傳送自呼叫 enableAllocationTracker(boolean)enable 設為 null 以來的所有分配資訊。

abstract void startMethodTracer()
abstract void startSamplingProfiler(int samplingInterval, TimeUnit timeUnit)
abstract void stopMethodTracer()
abstract void stopSamplingProfiler()

常數

CHANGE_DEBUGGER_STATUS

public static final int CHANGE_DEBUGGER_STATUS

用戶端變更位元遮罩:偵錯工具狀態變更

常數值: 2 (0x00000002)

CHANGE_HEAP_ALLOCATIONS

public static final int CHANGE_HEAP_ALLOCATIONS

用戶端變更位元遮罩:已更新分配資訊

常數值: 512 (0x00000200)

CHANGE_HEAP_ALLOCATION_STATUS

public static final int CHANGE_HEAP_ALLOCATION_STATUS

用戶端變更位元遮罩:已更新分配資訊

常數值: 1024 (0x00000400)

CHANGE_HEAP_DATA

public static final int CHANGE_HEAP_DATA

用戶端變更位元遮罩:已更新標題資料

常數值: 64 (0x00000040)

CHANGE_HEAP_MODE

public static final int CHANGE_HEAP_MODE

用戶端變更位元遮罩:堆積更新旗標變更

常數值: 32 (0x00000020)

CHANGE_HPROF

public static final int CHANGE_HPROF

用戶端變更位元遮罩:已更新 hprof 資料

常數值: 4096 (0x00001000)

CHANGE_INFO

public static final int CHANGE_INFO

用戶端變更位元遮罩:Client.CHANGE_NAMECHANGE_DEBUGGER_STATUSClient.CHANGE_PORT 的組合。

常數值: 7 (0x00000007)

CHANGE_METHOD_PROFILING_STATUS

public static final int CHANGE_METHOD_PROFILING_STATUS

用戶端變更位元遮罩:已更新分配資訊

常數值: 2048 (0x00000800)

CHANGE_NAME

public static final int CHANGE_NAME

用戶端變更位元遮罩:應用程式名稱變更

常數值: 1 (0x00000001)

CHANGE_NATIVE_HEAP_DATA

public static final int CHANGE_NATIVE_HEAP_DATA

用戶端變更位元遮罩:已更新原生堆積資料

常數值: 128 (0x00000080)

CHANGE_PORT

public static final int CHANGE_PORT

用戶端變更位元遮罩:偵錯工具通訊埠變更

常數值: 4 (0x00000004)

CHANGE_THREAD_DATA

public static final int CHANGE_THREAD_DATA

用戶端變更位元遮罩:已更新執行緒資料

常數值: 16 (0x00000010)

CHANGE_THREAD_MODE

public static final int CHANGE_THREAD_MODE

用戶端變更位元遮罩:執行緒更新旗標變更

常數值: 8 (0x00000008)

CHANGE_THREAD_STACKTRACE

public static final int CHANGE_THREAD_STACKTRACE

用戶端變更位元遮罩:已更新執行緒堆疊追蹤

常數值: 256 (0x00000100)

SERVER_PROTOCOL_VERSION

public static final int SERVER_PROTOCOL_VERSION

常數值: 1 (0x00000001)

公用方法

captureView

public abstract void captureView (String viewRoot, 
                String view, 
                DebugViewDumpHandler handler)

參數
viewRoot String

view String

handler DebugViewDumpHandler

dumpDisplayList

public abstract void dumpDisplayList (String viewRoot, 
                String view)

參數
viewRoot String

view String

dumpViewHierarchy

public abstract void dumpViewHierarchy (String viewRoot, 
                boolean skipChildren, 
                boolean includeProperties, 
                boolean useV2, 
                DebugViewDumpHandler handler)

參數
viewRoot String

skipChildren boolean

includeProperties boolean

useV2 boolean

handler DebugViewDumpHandler

enableAllocationTracker

public abstract void enableAllocationTracker (boolean enabled)

為這個用戶端啟用或停用分配追蹤器。

如果啟用,虛擬機器就會開始追蹤分配資訊。呼叫 requestAllocationDetails() 會讓 VM 傳送啟用和要求之間發生的所有分配作業相關資訊。

參數
enabled boolean

另請參閱:

executeGarbageCollector

public abstract void executeGarbageCollector ()

強制用戶端執行垃圾收集器。

getClientData

public abstract ClientData getClientData ()

傳回包含這項用戶端資訊的 ClientData 物件。

傳回
ClientData

getDebuggerListenPort

public abstract int getDebuggerListenPort ()

傳回這個用戶端的偵錯工具連接埠。

傳回
int

getDevice

public abstract IDevice getDevice ()

傳回這個 Client 執行的 IDevice

傳回
IDevice

isDdmAware

public abstract boolean isDdmAware ()

如果用戶端 VM 可感知 DDM,則傳回 true

建立連線後,才能在這裡進行呼叫。

傳回
boolean

isDebuggerAttached

public abstract boolean isDebuggerAttached ()

如果偵錯工具目前已附加至用戶端,則傳回 true

傳回
boolean

isValid

public abstract boolean isValid ()

傳回這個 ClientImpl 是否與應用程式 VM 建立有效連線。

傳回
boolean

kill

public abstract void kill ()

將終止訊息傳送至 VM。如果 VM 處於當機狀態,這個方法不一定有效。

listViewRoots

public abstract void listViewRoots (DebugViewDumpHandler replyHandler)

參數
replyHandler DebugViewDumpHandler

notifyVmMirrorExited

public abstract void notifyVmMirrorExited ()

偵錯工具 VM 鏡像可能會在 DDMLib 的後方退出,導致各種競爭或永久性Client遺失情況。我們需要通知 DDMLib,目前附加的偵錯工具正在結束並終止其 VM 鏡像連線。

requestAllocationDetails

public abstract void requestAllocationDetails ()

向 VM 傳送要求,以傳送自呼叫 enableAllocationTracker(boolean) (enable 設為 null) 以來發生的所有分配作業相關資訊。這是非同步作業。

您可以透過 ClientData.getAllocations() 存取分配資訊。系統會透過 AndroidDebugBridge.clientChanged(com.android.tradefed.device.server.ClientImpl, int) 傳送通知,告知您有新資料可用,其中包含遮罩 CHANGE_HEAP_ALLOCATIONS changeMask

startMethodTracer

public abstract void startMethodTracer ()

startSamplingProfiler

public abstract void startSamplingProfiler (int samplingInterval, 
                TimeUnit timeUnit)

參數
samplingInterval int

timeUnit TimeUnit

stopMethodTracer

public abstract void stopMethodTracer ()

stopSamplingProfiler

public abstract void stopSamplingProfiler ()