2012-05-22 48 views
0

Eclipse調試器仍然適用於Android應用程序。這讓我想知道這個調試器是如何實現的。它是否爲DVM和JVM單獨實現,還是有一些通用的接口可供人們獲取堆棧和堆棧信息?我正在嘗試爲我找到一個可編程接口來獲取Android應用程序的堆快照。適用於Android應用程序的任何DVM工具界面(適用於Java的JVMTI)?

+0

像這樣的功能在android.os.Debug類中提供(http://developer.android.com/reference/android/os/Debug.html)。 – dacongy

回答

0

Eclipse支持一種名爲「Java Platform Developer Architecture」(JPDA)的調試體系結構,並支持遠程調試基礎結構(如JDWP(Java Debug Wire Protocol))。有關詳細信息,請參閱http://www.ibm.com/developerworks/java/library/os-eclipse-javadebug/index.html

Android實現了JDWP(在Android上調試的應用程序有一個實例化的JDWP線程,它監聽特定的端口)協議,這就是Eclipse能夠用來調試Android應用程序的東西。

不確定您是否可以使用JDWP協議要進行堆轉儲,但可以使用'am'命令'以編程方式'觸發heapdump。

下面是使用命令從ADB介面

的一例$ ADB殼是

或一個應用程序可以Exec的「AM」和觸發堆轉儲。

希望這會有所幫助。

相關問題