Most visited

Recently visited

Added in API level 1

Debug

public final class Debug
extends Object

java.lang.Object
   ↳ android.os.Debug


为Android应用程序提供各种调试方法,包括跟踪和分配计数。

记录跟踪文件

调试可以创建日志文件,提供有关应用程序的详细信息,例如调用堆栈以及任何正在运行的方法的启动/停止时间。 有关读取跟踪文件的信息,请参阅Traceview: A Graphical Log Viewer 要开始记录跟踪文件,请调用startMethodTracing()方法之一。 要停止跟踪,请拨打stopMethodTracing()

Summary

Nested classes

class Debug.InstructionCount

此类已在API级别23中弃用。不再支持指令计数。

class Debug.MemoryInfo

该类用于检索有关此过程的内存映射的各种统计信息。

Constants

int SHOW_CLASSLOADER

int SHOW_FULL_DETAIL

printLoadedClasses()的标志。

int SHOW_INITIALIZED

int TRACE_COUNT_ALLOCS

此常数在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

Public methods

static void changeDebugPort(int port)

此方法在API级别3中已弃用。不再需要或无用

static void dumpHprofData(String fileName)

将“hprof”数据转储到指定的文件。

static boolean dumpService(String name, FileDescriptor fd, String[] args)

按名称获取系统服务的调试转储。

static void enableEmulatorTraceOutput()

启用“仿真器轨迹”,其中关于当前方法的信息可用于“仿真器轨迹”功能。

static final int getBinderDeathObjectCount()

返回当前进程中存在的Binder对象的死亡通知链接数。

static final int getBinderLocalObjectCount()

返回当前进程中存在的活动本地Binder对象的数量。

static final int getBinderProxyObjectCount()

返回当前进程中存在的远程代理Binder对象的引用数量。

static int getBinderReceivedTransactions()

返回活页夹驱动程序收到的事务数量。

static int getBinderSentTransactions()

返回此进程发送的事务数。

static int getGlobalAllocCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getGlobalAllocSize()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getGlobalClassInitCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getGlobalClassInitTime()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getGlobalExternalAllocCount()

此方法在API级别11中已弃用。此方法现在已过时。

static int getGlobalExternalAllocSize()

此方法在API级别11中已弃用。此方法现在已过时。

static int getGlobalExternalFreedCount()

此方法在API级别11中已弃用。此方法现在已过时。

static int getGlobalExternalFreedSize()

此方法在API级别11中已弃用。此方法现在已过时。

static int getGlobalFreedCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getGlobalFreedSize()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getGlobalGcInvocationCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getLoadedClassCount()

获取加载类的数量。

static void getMemoryInfo(Debug.MemoryInfo memoryInfo)

检索有关此进程内存使用情况的信息。

static long getNativeHeapAllocatedSize()

返回本地堆中分配的内存量。

static long getNativeHeapFreeSize()

返回本机堆中的可用内存量。

static long getNativeHeapSize()

返回本机堆的大小。

static long getPss()

检索smaps给出的进程使用的PSS内存。

static String getRuntimeStat(String statName)

如果不存在此类运行时统计信息,则返回特定运行时统计信息的值或 null

static Map<StringString> getRuntimeStats()

返回 getRuntimeStat(String)支持的运行时统计信息的名称/值的 getRuntimeStat(String)

static int getThreadAllocCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getThreadAllocSize()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int getThreadExternalAllocCount()

此方法在API级别11中已弃用。此方法现在已过时。

static int getThreadExternalAllocSize()

此方法在API级别11中已弃用。此方法现在已过时。

static int getThreadGcInvocationCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static boolean isDebuggerConnected()

确定调试器当前是否连接。

static void printLoadedClasses(int flags)

将所有当前加载的类的列表转储到日志文件。

static void resetAllCounts()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetGlobalAllocCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetGlobalAllocSize()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetGlobalClassInitCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetGlobalClassInitTime()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetGlobalExternalAllocCount()

此方法在API级别11中已弃用。此方法现在已过时。

static void resetGlobalExternalAllocSize()

此方法在API级别11中已弃用。此方法现在已过时。

static void resetGlobalExternalFreedCount()

此方法在API级别11中已弃用。此方法现在已过时。

static void resetGlobalExternalFreedSize()

此方法在API级别11中已弃用。此方法现在已过时。

static void resetGlobalFreedCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetGlobalFreedSize()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetGlobalGcInvocationCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetThreadAllocCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetThreadAllocSize()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static void resetThreadExternalAllocCount()

此方法在API级别11中已弃用。此方法现在已过时。

static void resetThreadExternalAllocSize()

此方法在API级别11中已弃用。此方法现在已过时。

static void resetThreadGcInvocationCount()

此方法在API级别23中已弃用。精确计数是运行时的负担,可能会被删除。

static int setAllocationLimit(int limit)

此方法在API级别11中已弃用。此方法现在已过时。

static int setGlobalAllocationLimit(int limit)

此方法在API级别11中已弃用。此方法现在已过时。

static void startAllocCounting()

此方法在API级别18中已弃用。精确计数是运行时的负担,可能会被删除。

static void startMethodTracing()

使用默认日志名称和缓冲区大小启动方法跟踪。

static void startMethodTracing(String tracePath, int bufferSize, int flags)

启动方法跟踪,指定跟踪日志文件名称,缓冲区大小和标志。

static void startMethodTracing(String tracePath)

启动方法跟踪,指定跟踪日志文件路径。

static void startMethodTracing(String tracePath, int bufferSize)

启动方法跟踪,指定跟踪日志文件名称和缓冲区大小。

static void startMethodTracingSampling(String tracePath, int bufferSize, int intervalUs)

开始基于采样的方法跟踪,指定跟踪日志文件名称,缓冲区大小和采样间隔。

static void startNativeTracing()

启用qemu跟踪。

static void stopAllocCounting()

此方法在API级别18中已弃用。精确计数是运行时的负担,可能会被删除。

static void stopMethodTracing()

停止方法追踪。

static void stopNativeTracing()

停止qemu跟踪。

static long threadCpuTimeNanos()

获取线程CPU使用情况的指示。

static void waitForDebugger()

等到调试器连接。

static boolean waitingForDebugger()

如果一个或多个线程正在等待调试器附加,则返回“true”。

Inherited methods

From class java.lang.Object

Constants

SHOW_CLASSLOADER

Added in API level 1
int SHOW_CLASSLOADER

常量值:2(0x00000002)

SHOW_FULL_DETAIL

Added in API level 1
int SHOW_FULL_DETAIL

printLoadedClasses()的标志。 默认行为是只显示类名。

常数值:1(0x00000001)

SHOW_INITIALIZED

Added in API level 1
int SHOW_INITIALIZED

常量值:4(0x00000004)

TRACE_COUNT_ALLOCS

Added in API level 1
int TRACE_COUNT_ALLOCS

此常数在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

startMethodTracing()的标志。 这些可以进行或运算。 TRACE_COUNT_ALLOCS将startAllocCounting的结果添加到跟踪密钥文件。

常数值:1(0x00000001)

Public methods

changeDebugPort

Added in API level 1
void changeDebugPort (int port)

此方法在API级别3中已被弃用。
不再需要或有用

更改JDWP端口。

Parameters
port int

dumpHprofData

Added in API level 3
void dumpHprofData (String fileName)

将“hprof”数据转储到指定的文件。 这可能会导致GC。

Parameters
fileName String: Full pathname of output file (e.g. "/sdcard/dump.hprof").
Throws
UnsupportedOperationException if the VM was built without HPROF support.
IOException if an error occurs while opening or writing files.

dumpService

Added in API level 8
boolean dumpService (String name, 
                FileDescriptor fd, 
                String[] args)

按名称获取系统服务的调试转储。

大多数服务都要求调用者保存android.permission.DUMP。

Parameters
name String: of the service to dump
fd FileDescriptor: to write dump output to (usually an output log file)
args String: to pass to the service's dump method, may be null
Returns
boolean true if the service was dumped successfully, false if the service could not be found or had an error while dumping

enableEmulatorTraceOutput

Added in API level 1
void enableEmulatorTraceOutput ()

启用“仿真器轨迹”,其中关于当前方法的信息可用于“仿真器轨迹”功能。 没有相应的“禁用”调用 - 当追踪应该打开并且保持原样时,此框架将用于框架,以便使用F9 / F10捕获的跟踪将包含必要的数据。 这将虚拟机置于“配置文件”模式,这会产生性能影响。 要暂时启用跟踪,请使用startNativeTracing()

getBinderDeathObjectCount

Added in API level 1
int getBinderDeathObjectCount ()

返回当前进程中存在的Binder对象的死亡通知链接数。

Returns
int

getBinderLocalObjectCount

Added in API level 1
int getBinderLocalObjectCount ()

返回当前进程中存在的活动本地Binder对象的数量。

Returns
int

getBinderProxyObjectCount

Added in API level 1
int getBinderProxyObjectCount ()

返回当前进程中存在的远程代理Binder对象的引用数量。

Returns
int

getBinderReceivedTransactions

Added in API level 1
int getBinderReceivedTransactions ()

返回活页夹驱动程序收到的事务数量。

Returns
int The number of received transactions or -1 if it could not read the stats.

getBinderSentTransactions

Added in API level 1
int getBinderSentTransactions ()

返回此进程发送的事务数。

Returns
int The number of sent transactions or -1 if it could not read t.

getGlobalAllocCount

Added in API level 1
int getGlobalAllocCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间由运行时分配的对象的全局计数。

Returns
int

getGlobalAllocSize

Added in API level 1
int getGlobalAllocSize ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间由运行时分配的对象的全局大小(以字节为 stop

Returns
int

getGlobalClassInitCount

Added in API level 8
int getGlobalClassInitCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回在 startstop之间成功初始化的类的数量(即那些没有抛出异常而执行的类)。

Returns
int

getGlobalClassInitTime

Added in API level 8
int getGlobalClassInitTime ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回成功初始化 startstop之间的类所用的时间。

Returns
int

getGlobalExternalAllocCount

Added in API level 1
int getGlobalExternalAllocCount ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性并始终返回0。

Returns
int

getGlobalExternalAllocSize

Added in API level 1
int getGlobalExternalAllocSize ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性并始终返回0。

Returns
int

getGlobalExternalFreedCount

Added in API level 1
int getGlobalExternalFreedCount ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性并始终返回0。

Returns
int

getGlobalExternalFreedSize

Added in API level 1
int getGlobalExternalFreedSize ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

Returns
int

getGlobalFreedCount

Added in API level 1
int getGlobalFreedCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间由运行时释放的对象的全局计数。

Returns
int

getGlobalFreedSize

Added in API level 1
int getGlobalFreedSize ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间由运行时释放的对象的全局大小(以字节为 stop

Returns
int

getGlobalGcInvocationCount

Added in API level 1
int getGlobalGcInvocationCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间的非并发GC调用 stop

Returns
int

getLoadedClassCount

Added in API level 1
int getLoadedClassCount ()

获取加载类的数量。

Returns
int the number of loaded classes.

getMemoryInfo

Added in API level 1
void getMemoryInfo (Debug.MemoryInfo memoryInfo)

检索有关此进程内存使用情况的信息。 这些信息被达尔维克,本地堆以及其他所有内容的使用量所分解。

注意:此方法直接从可用的低级数据中为给定进程检索内存信息。 它可能无法检索有关某些受保护分配的信息,例如图形。 如果您想确保您可以看到有关流程分配的所有信息,请改用getProcessMemoryInfo(int[])

Parameters
memoryInfo Debug.MemoryInfo

getNativeHeapAllocatedSize

Added in API level 1
long getNativeHeapAllocatedSize ()

返回本地堆中分配的内存量。

Returns
long The allocated size in bytes.

getNativeHeapFreeSize

Added in API level 1
long getNativeHeapFreeSize ()

返回本机堆中的可用内存量。

Returns
long The freed size in bytes.

getNativeHeapSize

Added in API level 1
long getNativeHeapSize ()

返回本机堆的大小。

Returns
long The size of the native heap in bytes.

getPss

Added in API level 14
long getPss ()

检索smaps给出的进程使用的PSS内存。

Returns
long

getRuntimeStat

Added in API level 23
String getRuntimeStat (String statName)

如果不存在此类运行时统计信息,则返回特定运行时统计信息的值或 null

下表列出了运行时支持的运行时统计信息。 注意运行时统计信息可以在未来的API级别添加或删除。

Runtime statistic name Meaning Example Supported (API Levels)
art.gc.gc-count The number of garbage collection runs. 164 23
art.gc.gc-time The total duration of garbage collection runs in ms. 62364 23
art.gc.bytes-allocated The total number of bytes that the application allocated. 1463948408 23
art.gc.bytes-freed The total number of bytes that garbage collection reclaimed. 1313493084 23
art.gc.blocking-gc-count The number of blocking garbage collection runs. 2 23
art.gc.blocking-gc-time The total duration of blocking garbage collection runs in ms. 804 23
art.gc.gc-count-rate-histogram Every 10 seconds, the gc-count-rate is computed as the number of garbage collection runs that have occurred over the last 10 seconds. art.gc.gc-count-rate-histogram is a histogram of the gc-count-rate samples taken since the process began. The histogram can be used to identify instances of high rates of garbage collection runs. For example, a histogram of "0:34503,1:45350,2:11281,3:8088,4:43,5:8" shows that most of the time there are between 0 and 2 garbage collection runs every 10 seconds, but there were 8 distinct 10-second intervals in which 5 garbage collection runs occurred. 0:34503,1:45350,2:11281,3:8088,4:43,5:8 23
art.gc.blocking-gc-count-rate-histogram Every 10 seconds, the blocking-gc-count-rate is computed as the number of blocking garbage collection runs that have occurred over the last 10 seconds. art.gc.blocking-gc-count-rate-histogram is a histogram of the blocking-gc-count-rate samples taken since the process began. The histogram can be used to identify instances of high rates of blocking garbage collection runs. For example, a histogram of "0:99269,1:1,2:1" shows that most of the time there are zero blocking garbage collection runs every 10 seconds, but there was one 10-second interval in which one blocking garbage collection run occurred, and there was one interval in which two blocking garbage collection runs occurred. 0:99269,1:1,2:1 23

Parameters
statName String: the name of the runtime statistic to look up.
Returns
String the value of the specified runtime statistic or null if the runtime statistic doesn't exist.

getRuntimeStats

Added in API level 23
Map<StringString> getRuntimeStats ()

返回 getRuntimeStat(String)支持的运行时统计信息的名称/值的 getRuntimeStat(String)

Returns
Map<StringString> a map of the names/values of the supported runtime statistics.

getThreadAllocCount

Added in API level 1
int getThreadAllocCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间由运行时分配的对象的线程本地计数。

Returns
int

getThreadAllocSize

Added in API level 1
int getThreadAllocSize ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间由运行时分配的对象的线程本地大小。

Returns
int The allocated size in bytes.

getThreadExternalAllocCount

Added in API level 1
int getThreadExternalAllocCount ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

Returns
int

getThreadExternalAllocSize

Added in API level 1
int getThreadExternalAllocSize ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

Returns
int

getThreadGcInvocationCount

Added in API level 1
int getThreadGcInvocationCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

返回 startstop之间的线程本地非并发GC调用的 stop

Returns
int

isDebuggerConnected

Added in API level 1
boolean isDebuggerConnected ()

确定调试器当前是否连接。

Returns
boolean

printLoadedClasses

Added in API level 1
void printLoadedClasses (int flags)

将所有当前加载的类的列表转储到日志文件。

Parameters
flags int: See constants above.

resetAllCounts

Added in API level 1
void resetAllCounts ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除所有全局和线程本地内存分配计数器。

也可以看看:

resetGlobalAllocCount

Added in API level 1
void resetGlobalAllocCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除分配的对象的全局计数。

也可以看看:

resetGlobalAllocSize

Added in API level 1
void resetGlobalAllocSize ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除分配的对象的全局大小。

也可以看看:

resetGlobalClassInitCount

Added in API level 8
void resetGlobalClassInitCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除已初始化的类的数量。

也可以看看:

resetGlobalClassInitTime

Added in API level 8
void resetGlobalClassInitTime ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除初始化类所花费的时间。

也可以看看:

resetGlobalExternalAllocCount

Added in API level 1
void resetGlobalExternalAllocCount ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

resetGlobalExternalAllocSize

Added in API level 1
void resetGlobalExternalAllocSize ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

resetGlobalExternalFreedCount

Added in API level 1
void resetGlobalExternalFreedCount ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

resetGlobalExternalFreedSize

Added in API level 1
void resetGlobalExternalFreedSize ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

resetGlobalFreedCount

Added in API level 1
void resetGlobalFreedCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除释放对象的全局计数。

也可以看看:

resetGlobalFreedSize

Added in API level 1
void resetGlobalFreedSize ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除释放对象的全局大小。

也可以看看:

resetGlobalGcInvocationCount

Added in API level 1
void resetGlobalGcInvocationCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除非并发GC调用的计数。

也可以看看:

resetThreadAllocCount

Added in API level 1
void resetThreadAllocCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除分配的对象的线程本地计数。

也可以看看:

resetThreadAllocSize

Added in API level 1
void resetThreadAllocSize ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除分配的对象的线程本地计数。

也可以看看:

resetThreadExternalAllocCount

Added in API level 1
void resetThreadExternalAllocCount ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

resetThreadExternalAllocSize

Added in API level 1
void resetThreadExternalAllocSize ()

此方法在API级别11中已弃用。
这种方法现在已经过时了。

此方法存在兼容性,不起作用。

resetThreadGcInvocationCount

Added in API level 1
void resetThreadGcInvocationCount ()

此方法在API级别23中已弃用。
准确计数是运行时的负担,可能会被删除。

清除非并发GC调用的线程本地计数。

也可以看看:

setAllocationLimit

Added in API level 1
int setAllocationLimit (int limit)

此方法在API级别11中已弃用。
这种方法现在已经过时了。

在当前线程中建立对象分配限制。 此功能在发布版本中从未启用。 Honeycomb中删除了分配限制功能。 此方法存在兼容性,并且始终返回-1且不起作用。

Parameters
limit int
Returns
int

setGlobalAllocationLimit

Added in API level 1
int setGlobalAllocationLimit (int limit)

此方法在API级别11中已弃用。
这种方法现在已经过时了。

建立全局对象分配限制。 此功能在发布版本中从未启用。 Honeycomb中删除了分配限制功能。 此方法存在兼容性,并且始终返回-1且不起作用。

Parameters
limit int
Returns
int

startAllocCounting

Added in API level 1
void startAllocCounting ()

此方法在API级别18中已被弃用。
准确计数是运行时的负担,可能会被删除。

开始计算内存分配的数量和聚合大小。

start方法重置计数并启用计数。 stop方法禁用计数,以便分析代码不会导致其他分配。 各种get方法返回指定的值。 各种reset方法重置指定的计数。

为整个系统(全局)和每个线程保留计数。 除当前线程以外的线程的每线程计数不会被“重置”或“开始”调用清除。

startMethodTracing

Added in API level 1
void startMethodTracing ()

使用默认日志名称和缓冲区大小启动方法跟踪。

默认情况下,跟踪文件被称为“dmtrace.trace”,它位于主共享/外部存储上的特定于软件包的目录下,由 getExternalFilesDir(String)返回。

有关读取跟踪文件的信息,请参阅 Traceview: A Graphical Log Viewer

启用方法跟踪时,虚拟机的运行速度比平时慢,因此跟踪文件的计时应该只考虑相对条件(例如运行#1比运行#2运行速度快)。 原生方法的时间不会改变,所以不要试图用它来比较同一方法的解释和原生实现的性能。 作为替代方案,可考虑经由使用基于采样的方法跟踪startMethodTracingSampling(String, int, int)或“天然的”通过在仿真器跟踪startNativeTracing()

startMethodTracing

Added in API level 1
void startMethodTracing (String tracePath, 
                int bufferSize, 
                int flags)

启动方法跟踪,指定跟踪日志文件名称,缓冲区大小和标志。

当给出相对文件路径时,跟踪文件将被放置在主共享/外部存储上的特定于软件包的目录下,如 getExternalFilesDir(String)所返回的 getExternalFilesDir(String)

有关读取跟踪文件的信息,请参阅 Traceview: A Graphical Log Viewer

启用方法跟踪时,虚拟机的运行速度比平时慢,因此跟踪文件的计时应该只考虑相对条件(例如运行#1比运行#2运行速度快)。 原生方法的时间不会改变,所以不要试图用它来比较同一方法的解释和原生实现的性能。 作为替代方案,可考虑经由使用基于采样的方法跟踪startMethodTracingSampling(String, int, int)或“天然的”通过在仿真器跟踪startNativeTracing()

Parameters
tracePath String: Path to the trace log file to create. If null, this will default to "dmtrace.trace". If the file already exists, it will be truncated. If the path given does not end in ".trace", it will be appended for you.
bufferSize int: The maximum amount of trace data we gather. If not given, it defaults to 8MB.
flags int: Flags to control method tracing. The only one that is currently defined is TRACE_COUNT_ALLOCS.

startMethodTracing

Added in API level 1
void startMethodTracing (String tracePath)

启动方法跟踪,指定跟踪日志文件路径。

当给出相对文件路径时,跟踪文件将被放置在主共享/外部存储上的特定于软件包的目录下,由 getExternalFilesDir(String)返回。

有关读取跟踪文件的信息,请参阅 Traceview: A Graphical Log Viewer

启用方法跟踪时,虚拟机的运行速度比平时慢,因此跟踪文件的计时应该只考虑相对条件(例如运行#1比运行#2运行速度快)。 原生方法的时间不会改变,所以不要试图用它来比较同一方法的解释和原生实现的性能。 作为替代方案,可考虑经由使用基于采样的方法跟踪startMethodTracingSampling(String, int, int)或“天然的”通过在仿真器跟踪startNativeTracing()

Parameters
tracePath String: Path to the trace log file to create. If null, this will default to "dmtrace.trace". If the file already exists, it will be truncated. If the path given does not end in ".trace", it will be appended for you.

startMethodTracing

Added in API level 1
void startMethodTracing (String tracePath, 
                int bufferSize)

启动方法跟踪,指定跟踪日志文件名称和缓冲区大小。

当给出相对文件路径时,跟踪文件将被放置在主共享/外部存储上的特定于软件包的目录下,由 getExternalFilesDir(String)返回。

有关读取跟踪文件的信息,请参阅 Traceview: A Graphical Log Viewer

启用方法跟踪时,虚拟机的运行速度比平时慢,因此跟踪文件的计时应该只考虑相对条件(例如运行#1比运行#2运行速度快)。 原生方法的时间不会改变,所以不要试图用它来比较同一方法的解释和原生实现的性能。 作为替代方案,可考虑经由使用基于采样的方法跟踪startMethodTracingSampling(String, int, int)或“天然的”通过在仿真器跟踪startNativeTracing()

Parameters
tracePath String: Path to the trace log file to create. If null, this will default to "dmtrace.trace". If the file already exists, it will be truncated. If the path given does not end in ".trace", it will be appended for you.
bufferSize int: The maximum amount of trace data we gather. If not given, it defaults to 8MB.

startMethodTracingSampling

Added in API level 21
void startMethodTracingSampling (String tracePath, 
                int bufferSize, 
                int intervalUs)

开始基于采样的方法跟踪,指定跟踪日志文件名称,缓冲区大小和采样间隔。

当给出相对文件路径时,跟踪文件将被放置在主共享/外部存储上的特定于软件包的目录下,由 getExternalFilesDir(String)返回。

有关读取跟踪文件的信息,请参阅 Traceview: A Graphical Log Viewer

Parameters
tracePath String: Path to the trace log file to create. If null, this will default to "dmtrace.trace". If the file already exists, it will be truncated. If the path given does not end in ".trace", it will be appended for you.
bufferSize int: The maximum amount of trace data we gather. If not given, it defaults to 8MB.
intervalUs int: The amount of time between each sample in microseconds.

startNativeTracing

Added in API level 1
void startNativeTracing ()

启用qemu跟踪。 为了这个工作需要运行qemu模拟器中的所有东西; 否则,此方法将不起作用。 跟踪文件在模拟器启动时在命令行中指定。 例如,下面的命令行
emulator -trace foo
将开始运行模拟器并创建一个名为“foo”的跟踪文件。 此方法只是将跟踪记录写入跟踪文件。

这与startMethodTracing()之间的主要区别在于,qemu仿真器中的跟踪跟踪每个进程的每个cpu指令,包括内核代码,因此我们拥有更完整的信息,包括所有上下文切换。 我们还可以获得更多详细信息,如缓存未命中。 调用的顺序是通过后处理指令跟踪来确定的。 qemu跟踪也是在不修改应用程序或扰乱调用时间的情况下完成的,因为没有将检测添加到正在跟踪的应用程序中。

使用此方法的一个限制与在真实设备上使用startMethodTracing()相比,是仿真器不能模拟所有真实的硬件效应,如内存和总线争用。 仿真器也有一个简单的缓存模型,不能捕获真正缓存的所有复杂性。

stopAllocCounting

Added in API level 1
void stopAllocCounting ()

此方法在API级别18中已被弃用。
准确计数是运行时的负担,可能会被删除。

停止计算内存分配的数量和聚合大小。

stopMethodTracing

Added in API level 1
void stopMethodTracing ()

停止方法追踪。

stopNativeTracing

Added in API level 1
void stopNativeTracing ()

停止qemu跟踪。 请参阅startNativeTracing()开始跟踪。

跟踪可以根据需要多次启动和停止。 当qemu模拟器本身停止时,缓冲的跟踪记录将被刷新并写入跟踪文件。 事实上,根本没有必要调用这种方法; 简单地杀死qemu就足够了。 但是启动和停止跟踪对于检查代码的特定区域很有用。

threadCpuTimeNanos

Added in API level 1
long threadCpuTimeNanos ()

获取线程CPU使用情况的指示。 返回的值表示当前线程执行代码或等待某些类型的I / O所花费的时间。 时间以纳秒表示,并且与早期调用的结果相比仅有意义。 请注意,纳秒分辨率并不意味着纳秒精度。 在不支持此操作的系统上,该调用返回-1。

Returns
long

waitForDebugger

Added in API level 1
void waitForDebugger ()

等到调试器连接。 只要调试器附加了,就会返回,因此如果要立即开始跟踪,则需要在waitForDebugger()调用之后放置一个断点。

waitingForDebugger

Added in API level 1
boolean waitingForDebugger ()

如果一个或多个线程正在等待调试器附加,则返回“true”。

Returns
boolean

Hooray!