我正在忙着编写一个应用程序而且我注意到它有时会崩溃,当它发生时我会回到我的计算机然后我只有堆栈跟踪。
我有办法在崩溃时对应用程序进行内存转储吗?
由于
答案 0 :(得分:4)
如果调用android.os.Debug.dumpHprofData(String fileName),则可以捕获可以使用jhat或MAT查看的HPROF转储。你需要以某种方式捕获异常(try / catch或指定你自己的全局默认异常处理程序),如果你想写入/ sdcard,你需要WRITE_EXTERNAL_STORAGE权限。
答案 1 :(得分:1)
不是内存转储,而是ACRA,http://code.google.com/p/acra/,(Android的应用程序崩溃报告)非常擅长记录有关正在发生的事情的信息。最详细的信息是堆栈跟踪。
它自己的调试信息可能不是很有用,但你可以修改它们的代码来执行并在你的应用程序崩溃时发送一个logcat,这样你就可以得到更多有关正在发生的事情的详细信息。出于隐私/安全原因,我认为默认情况下它们不会这样做,但是看到崩溃周围的logcat会更有用。
除此之外,您需要使用调试器进行调试。
答案 2 :(得分:1)
我有办法在崩溃时对应用程序进行内存转储吗?
不是我知道的 - 抱歉!