从测试人员的 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);
将类添加到清单<application android:name=".MyApp"....
如果您想接收有关网络的详细信息,请将权限添加到清单<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
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的主要内容,如果未能解决你的问题,请参考以下文章
从Android访问Windows WebService获取IP地址