在客户端设备上登录android应用程序

时间:2011-05-12 09:50:15

标签: android debugging logging remote-debugging logcat

我有一个我在市场上发布的Android应用程序。一些客户报告了某些设备的兼容性问题。我相信我需要查看这些设备的LogCat来发现问题。问题是我没有那些便于测试的设备。

是否有某种方法可以让应用程序在其活动期间记录logcat输出?我知道我可以添加手动记录并将其写入文件,但我不想仅从我的应用程序记录输出,而是从LogCat记录所有内容。然后,我可以让客户将日志文件发送给我进行分析。

2 个答案:

答案 0 :(得分:2)

您可以要求用户安装logcat应用,例如aLogCat。这似乎是最快的解决方案

答案 1 :(得分:2)

如果他们安装了SDK,只需连接手机即可:

adb logcat -d > logcat.txt

我认为Android OS上的“开箱即用”解决方案并不是您想要的。这将是一个安全风险恕我直言。可能有一个应用程序。

您可以在此处找到有关此问题的主题:http://forum.xda-developers.com/showthread.php?t=543128

处理此问题的方法是当应用程序崩溃或执行某些操作失败时(try..catch或if ...),然后您可以将堆栈保存到文件以供用户发送给您,或自动发送到你的服务器(当然你应该警告用户)

修改

正如在另一篇文章中所说的“有一个应用程序”:https://market.android.com/details?id=org.jtb.alogcat

这也很有用:https://market.android.com/details?id=net.robotmedia.bugreporter 一个真正用于Bug报告的应用程序。

编辑2:

我错了,您可以从应用程序中捕获logcat:

Process logcat = Runtime.getRuntime().exec("logcat"); // start process
BufferedReader reader = new BufferedReader( new InputStreamReader(logcat.getInputStream())); // grab output stream

这应该在一个单独的线程中完成。