代码之家  ›  专栏  ›  技术社区  ›  Jason

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

  •  3
  • Jason  · 技术社区  · 15 年前

    我正忙于编写一个应用程序,我注意到它有时会崩溃,当它死机时,我回到我的计算机上,我只有堆栈跟踪。

    有什么方法可以让我在崩溃时对应用程序进行内存转储吗?

    谢谢

    3 回复  |  直到 15 年前
        1
  •  4
  •   fadden    15 年前

    如果您调用android.os.debug.dumphprofdata(字符串文件名),您可以捕获一个可以用jhat或mat查看的hprof转储。您将需要以某种方式捕获异常(尝试/catch或指定自己的全局默认异常处理程序),如果要写入/sdcard,则需要“写入外部存储”权限。

    也见 Dalvik Heap Profiling .

        2
  •  1
  •   William    15 年前

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

    它本身的调试信息可能不是很有用,但是您可以修改它们的代码来完成,并在应用程序崩溃时发送一个日志cat,这样您就可以获得关于正在发生的事情的更多详细信息。我认为他们不会因为隐私/安全的原因而默认这样做,但是在崩溃时看到logcat会更有用一些。

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

        3
  •  1
  •   CommonsWare    15 年前

    有什么方法可以让我在崩溃时对应用程序进行内存转储吗?

    我不知道——对不起!