从测试人员的 android 设备获取 logcat

Posted

技术标签:

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

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

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

【问题讨论】:

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

试试这个:

下载Logger应用到您的设备:Logger - 离线本地调试 https://play.google.com/store/apps/details?id=sk.rogansky.logger.app 下载Logger库到你的项目并初始化库

下载并初始化库:

    通过依赖compile 'sk.rogansky.logger:logger:+'下载Loger库

    如果你想自动向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"....

    如果您想接收有关网络的详细信息,请将权限添加到清单&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

【讨论】:

以上是关于从测试人员的 android 设备获取 logcat的主要内容,如果未能解决你的问题,请参考以下文章

Matlab从移动设备获取加速度数据对步数进行计数

从Android访问Windows WebService获取IP地址

Alpha 版测试人员从哪里下载 Google Play Android 应用程序?

Android客户端性能测试—内存先码

Android蓝牙连接自动测试工具

从图库 iOS 获取图像?