有没有办法在应用程序崩溃时进行内存转储?

时间:2010-10-04 20:13:57

标签: android

我正在忙着编写一个应用程序而且我注意到它有时会崩溃,当它发生时我会回到我的计算机然后我只有堆栈跟踪。

我有办法在崩溃时对应用程序进行内存转储吗?

由于

3 个答案:

答案 0 :(得分:4)

如果调用android.os.Debug.dumpHprofData(String fileName),则可以捕获可以使用jhat或MAT查看的HPROF转储。你需要以某种方式捕获异常(try / catch或指定你自己的全局默认异常处理程序),如果你想写入/ sdcard,你需要WRITE_EXTERNAL_STORAGE权限。

另见Dalvik Heap Profiling

答案 1 :(得分:1)

不是内存转储,而是ACRA,http://code.google.com/p/acra/,(Android的应用程序崩溃报告)非常擅长记录有关正在发生的事情的信息。最详细的信息是堆栈跟踪。

它自己的调试信息可能不是很有用,但你可以修改它们的代码来执行并在你的应用程序崩溃时发送一个logcat,这样你就可以得到更多有关正在发生的事情的详细信息。出于隐私/安全原因,我认为默认情况下它们不会这样做,但是看到崩溃周围的logcat会更有用。

除此之外,您需要使用调试器进行调试。

答案 2 :(得分:1)

  

我有办法在崩溃时对应用程序进行内存转储吗?

不是我知道的 - 抱歉!