【问题标题】:Getting logcat from a tester's android device从测试人员的 android 设备获取 logcat
【发布时间】:2011-11-29 19:28:41
【问题描述】:

我们无法重现我们正在开发的应用程序中的一些错误,因此我想从测试人员的 android 设备中检索 logcat 日志。他没有插入计算机进行测试,而且由于他正在另一个位置进行测试,因此我们无法定期物理访问他的机器。

他遇到错误后向我们发送 logcat 日志的最简单方法是什么?请记住,他不是技术专家,但他似乎确实有诱导错误的诀窍:)

【问题讨论】:

  • 如果您可以直接“WiFi”访问他的设备,我可以为您提供 LogRabbit 的预发布版本,它可以让您通过 WiFi 捕获日志,甚至通过 WiFi 进行调试。我会喜欢早期的反馈,它可以帮助您解决问题。这一切都假设您可以物理访问他的设备,并且 oyu 正在使用 Mac 进行开发。请在 support@lograbbit.com 给我发消息。

标签: android testing remote-debugging logcat


【解决方案1】:

进行 AFAIK 的最佳方法是安装 Log 应用程序,例如:LogCollector:http://www.appbrain.com/app/log-collector/com.xtralogic.android.logcollector


通过这种方式,测试人员可以将日志数据发送到您的电子邮件或消息中。

【讨论】:

  • 此应用不适用于更高版本的 Android。有更新吗?
【解决方案2】:

远程收集日志消息的有用工具是www.remotelogcat.com - 它可用于存储字符串,或当前应用程序的 logcat。

你需要添加权限:

<uses-permission android:name="android.permission.READ_LOGS" />

为了读取日志。

【讨论】:

    【解决方案3】:

    您可以尝试使用PhoneHome。将在没有 root 的情况下工作 >= 4.1,本质上是在您的日志调用和 logcat 之间插入一个层......

    【讨论】:

      【解决方案4】:

      试试这个:

      下载并初始化库:

      1. 通过依赖compile 'sk.rogansky.logger:logger:+'下载Loger库
      2. 如果你想自动向Logger app发送致命异常,在App类的onCreate中初始化Logger library(别忘了添加类到manifest)

        public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); Log.initialize(getApplicationContext()); // to send fatal exceptions in RELEASE mode too, initialize Logger with unique string channel Log.initialize(context, channel); } }

        将类添加到清单&lt;application android:name=".MyApp"....

      3. 如果您想接收有关网络的详细信息,请将权限添加到清单&lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;

      Logger 库与 java logger 具有相同的界面,但具有一些不错的功能。 初始化后,库会自动向 Logger 应用发送致命异常。

      您也可以发送消息。只需将操作添加到调用方法即可。

      import sk.rogansky.logger.Log;
      
      Log.d(Log.Action.SHOW_NOTIFICATION, "TAG", "Message"); 
      Log.d(Log.Action.SAVE, "TAG", "Message"); // it will save locally in Logger app
      

      一切都可以在本地和离线状态下运行,但测试人员可以通过 Logger 应用共享日志。

      【讨论】:

        【解决方案5】:

        我找到了一种无需库或日志应用程序即可收集日志的方法。 您需要通过执行 Runtime 命令并指定参数来创建一个 Process 对象:

        new String[]{"logcat", "-v", "threadtime"}

        然后,您可以使用 Process 中的 InputStream 来读取日志。有关示例代码和更多详细信息,请参见本文: https://medium.com/@danileron/collect-testers-devices-logs-without-libraries-or-third-party-applications-9e6a7e609a2c

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-09
          • 2015-11-02
          • 2019-06-18
          • 1970-01-01
          • 2020-09-28
          • 2017-05-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多