在 Android 世界中,遇到应用程序或系统中的错误和缺陷并不少见。 用户和开发人员经常会遇到意外消息、崩溃或异常行为,需要有关设备内部发生情况的详细信息才能解决。
如果您缺乏经验,访问和理解 Android 中的错误报告似乎是一项复杂的任务。但它是检测问题根源并提升应用和 Android 系统性能的基本工具。本文将详细解释这些报告的工作原理、它们包含的信息,以及如何生成和使用它们(无论您是用户还是开发者)。
Android 中的错误和崩溃日志是什么?
Android 中的错误报告是有关故障或问题发生时系统和应用程序状态的全面技术信息集合。 它们包括内部日志、堆栈跟踪、内存转储、应用程序版本、硬件状态以及许多其他信息。这就像对设备进行 X 光检查,当出现问题时,可以准确查看“内部”发生的情况。
这些报告不仅对技术人员或开发人员有用: 当用户报告难以通过屏幕截图或简单描述重现或调查的错误时,Avast 或 Google Play 等应用程序和服务的技术支持团队要求提供错误报告的情况变得越来越普遍。
Android 错误报告包含哪些数据?
Android 崩溃报告通常以 ZIP 格式生成。 并且很容易达到几十甚至几百兆字节,因为它包含:
- 系统日志 (logcat):详细列出设备应用程序和服务中发生的所有事件,按时间顺序排列并具有不同的重要性级别。
- 堆栈跟踪: 它们捕获发生故障或异常的代码的确切执行流程。
- 内存转储和使用情况统计: 它们有助于识别由于资源缺乏或内存泄漏而导致的问题。
- 有关活动应用和服务、版本和状态的信息: 对于检查发生错误时正在运行的每个软件的确切版本非常有用。
- 系统活动和事件的历史记录: 这包括启动和停止应用程序、进程、事件广播和接收器、屏幕变化、电池活动和唤醒锁。
- 硬件数据:传感器状态、CPU 使用率、设备型号详情和 Android 版本。
- 进程日志、服务、RAM 使用情况和 ANR(应用程序无响应)错误.
ZIP 中的主文件是一个文本文件 (.txt),它编译了以上所有内容,有时还附带元数据、屏幕截图和特定于应用程序的转储。 如果您缺乏经验,阅读和分析这些文件可能会很棘手,但对于开发人员来说,在调试和修复难以发现的错误时,它是纯金。
如何在 Android 上生成崩溃报告?
在 Android 中生成 Bug 报告的方法有很多种,但所有方法都要求你首先 激活开发者选项 从您的设备中获取。这可以通过“设置”完成,通常:
- 你去 关于手机 o 软件信息.
- 你按 连续七次出现在“Build Number”上 直到系统确认开发者选项已启用。
一旦激活,您可以选择多种方法来创建报告:
从设备(简易方法)
对于大多数用户来说,这种方法是最简单的,因为一切都可以通过手机或平板电脑本身完成。
- 访问 设置>开发者选项.
- 寻找选项 接受错误报告 o 提交错误报告 并播放它。
- 选择报告类型(通常为“完整”或“交互式”)。在交互式版本中,您还可以添加屏幕截图和评论。
- 等待报告生成完成(这可能需要几秒到几分钟,具体取决于设备)。
- 完成后系统会发出通知,您可以直接通过电子邮件、云端硬盘或其他应用程序分享。
请记住,此文件可能包含个人或敏感信息,因此仅与受信任的服务或开发人员共享。
使用 Android 调试桥 (ADB)
这种方法更为先进,专为具有计算机技能的开发人员或用户设计。
- 下载并安装 Android SDK Platform-Tools(包括 亚洲开发银行).
- 在设备上,同时激活 USB调试 在开发者选项中。
- 通过 USB 将您的手机或平板电脑连接到您的电脑。
- 在您的计算机上打开控制台或终端并运行:
adb devices
(检查设备是否被检测到)adb bugreport <ruta_de_destino>
(例如,adb bugreport C:\BugReports\
)
从 Android 模拟器
在模拟器上测试时, 您可以通过打开扩展控制来生成错误报告。并使用函数 错误报告选择“提交错误”,根据需要添加其他信息,并保存生成的报告以供日后分析。
如何解读或查阅崩溃日志?
Android 上的错误报告不适合普通用户直接阅读, 但有些部分更容易理解:
- 如果你打开 ZIP 文件并输入 错误报告-XXXX.txt 您将看到不同的部分,例如系统日志、事件日志、内存转储、活动进程、打开的应用程序、包列表等。
- 使用类似工具 逻辑猫 或高级文本编辑器,您可以搜索“崩溃”、“异常”、“ANR”或有问题的应用程序的包名称等关键字。
- 要确定 ANR(应用程序无响应)错误的原因,请在事件日志中查找“am_anr”条目,或在系统 logcat 中查找“ANR in”条目。
- 如果您遇到内存问题或进程崩溃,请检查与“am_low_memory”或异常 RAM 和 CPU 使用情况相关的部分。
这些报告通过提供系统环境和执行流程的准确上下文帮助开发人员重现和修复错误。
自动错误收集系统:Crashlytics、Android Vitals 等
除了手动报告外,还有内置的自动化系统,例如 Firebase Crashlytics 和 Android Vitals(在 Google Play 控制台中)。
- Crashlytics 自动实时收集错误和性能问题,按严重程度、设备、版本等对错误进行分组。它允许开发人员准确地看到代码中出现错误的位置以及它对用户的影响。
- Android Vitals可从 Play 管理中心访问,集中管理从已授权发送统计信息的用户设备收到的崩溃和 ANR 数据,帮助识别模式并确定首先要修复的错误优先级。
Crashlytics 和 Android Vitals 都允许您查看堆栈跟踪、检测错误频率并获取有关设备的上下文信息,包括版本、内存等。
管理错误报告的其他工具和技巧
- 专用 SDK 例如 Datadog,它允许您在 Java/Kotlin 和本机代码(通过 NDK 的 C/C++)中集成自定义崩溃报告、事件跟踪、趋势分析和错误收集。
- Avanzada配置文件:您可以自定义收集哪些数据、如何存储以及如何发送数据,以遵守隐私政策并调整收集的数据量。
- 一些 SDK 允许您使用配置中的其他方法甚至在用户视图出现之前关联 ANR 错误。
作为确保安全和隐私的第一步,在提交错误报告之前检查所包含的数据非常重要,因为许多数据包含敏感信息。