1日志里有什么
FT8AF 在其应用数据目录中维护一个名为 debug.log 的滚动文本文件。它会捕获如下内容:
- USB 插入 / 拔出事件,以及哪个 CAT 设备匹配
- 自动连接尝试及任何失败
- 发往电台与从电台收到的 CAT 串口帧
- 波段与频率的切换
- 应用启动和停止时的生命周期事件
它是纯文本,读起来安全,且不含密码或上传 API 密钥。如果你想在分享前浏览一下,请见下方的 隐私 一节。
2解锁调试模式
取出日志最简单的方式是使用应用内的调试界面 —— 无需电脑、无需文件管理器、无需 Android-data 文件夹权限。该界面默认隐藏,你可以像 Android 的开发者选项那样解锁它:点击版本块七次。
- 在 FT8AF 中打开 Settings 标签页。
- 滚动到最底部 —— ABOUT 部分。
- 点击 FAQ & Support。About 对话框打开,显示应用版本和一段以 "FT8, made easy." 开头的说明。
- 连续点击该说明文字七次。第七次点击后,调试模式打开,并在重启之间保持。
- 关闭 About 对话框。ABOUT 部分中、FAQ & Support 的正下方,现在会出现一行新的 Debug。
3打开 Debug & 分享
点击新的 Debug 行。一个全屏的日志查看器打开,实时尾随 debug.log 的最后几百行 —— 它每隔几秒刷新,并自动滚动到底部。
debug.log 的 Android 分享面板。选择 Gmail、Outlook、Drive、Files —— 你想用什么发送都行。从顶部工具栏:
- Share
- 打开 Android 分享面板,
debug.log作为文本文件附上(主题为 "FT8AF debug.log")。选择 Gmail 直接邮件发给我们,或任何处理附件的应用 —— Drive、Outlook、Slack、Signal、Telegram、系统 Files 应用,都可以。 - Clear
- 删除当前日志。如果你想在复现问题前从干净的状态开始,这很有用 —— 只需按 Clear,退出对话框,复现问题,回来再 Share。更短的日志让我们更容易发现相关事件。
- Logcat: ON / OFF
- 当为 ON 时,查看器还会附上应用自身进程的近期
logcat输出 —— 当崩溃或音频问题未被debug.log完全捕获时很有用。点击 Share 时,logcat 尾部会一并带上。
4退路:Files 应用
如果出于某种原因你无法进入应用内的 Debug 界面 —— 旧构建、解锁没生效、你只是更想用文件管理器 —— 日志文件也存在于磁盘上的:
/Android/data/com.bg7yoz.ft8cn/files/debug.log
- 在你的手机上打开 Files(或 我的文件)应用。
- 导航到 内部存储 → Android → data。在某些设备上,Android 默认隐藏此文件夹;点击三点菜单并启用 显示隐藏文件 或 系统文件夹。
- 打开名为
com.bg7yoz.ft8cn的文件夹,然后files。你应该会在里面看到debug.log。 - 长按
debug.log并点击 分享。
Android 11+ 可能在 Files 中屏蔽 /Android/data。
如果在较新的 Android 上你在 data 文件夹里看不到 com.bg7yoz.ft8cn,请从 Play Store 安装第三方文件管理器,例如 Material Files 或 Solid Explorer —— 两者都能读取应用数据文件夹。或者更简单:使用上面应用内的 Debug 界面,它会完全绕开这个问题。
5退路:ADB
面向拥有电脑和 Android adb 工具的开发者:
- 在你的手机上启用 开发者选项 → USB 调试。
- 用 USB 把手机连到电脑,接受调试授权提示。
- 在终端中,确认手机可见:
adb devices -l - 拉取日志:
在多设备的环境中,用adb pull /sdcard/Android/data/com.bg7yoz.ft8cn/files/debug.log .-s <serial>明确指定手机。
6写 issue
一份有用的错误报告很短 —— 三四个简短段落足矣。屡试不爽的模式:
- 你做了什么? 「插上我的 FT-891,在 20m 点了 CQ。」按顺序的具体操作。无需描述应用 —— 只说你点了什么。
- 你期望发生什么? 「我期望电台键控,应用开始在 14.074 发送音调。」
- 实际发生了什么? 「TX 条停在 LISTENING。没有 PTT,没有音调。」如果屏幕上出现了什么 —— 错误提示、卡住的界面、奇怪的瀑布图 —— 请描述它。一张截图价值千金。
- 多频繁? 每次?只在手机休眠后?只在 6m?你能锁定的任何信息都会缩小搜索范围。
- 附上日志。 在复现问题后立即取出
debug.log—— 最新的几行最有用。
7issue 模板
把这个复制到一个新的 issue 中,并填空:
## What happened
(One or two sentences describing the bug)
## Steps to reproduce
1. (First thing you tapped)
2. (Second thing)
3. (...)
## Expected vs. actual
Expected: (what should have happened)
Actual: (what did happen)
## Environment
- FT8AF version: (Settings → About, or the release tag you installed)
- Source: GitHub APK / Google Play / built from source
- Android version: (e.g. 14)
- Device: (e.g. Pixel 8, Samsung S23, etc.)
- Radio: (e.g. Yaesu FT-891 over USB-C)
- Cable: (USB-C direct / OTG adapter / brand if relevant)
## Log
(Attach debug.log, or paste the last ~50 lines in a code block.)
8如果应用崩溃了
当 FT8AF 彻底崩溃时,Android 会保留一份单独的崩溃报告。有两处可查看:
- 如果你是从 Google Play 获取的,请一次性选择加入匿名崩溃报告,我们就会自动看到堆栈跟踪。你无需做什么 —— 但在 issue 中加上「我刚在 <时间> 左右从设备 X 发送了一份崩溃报告」能帮我们对上号。
- 如果你能用 ADB,实时系统日志通常会在崩溃发生后立即包含其跟踪:
除adb logcat -d > logcat.txtdebug.log外,再附上logcat.txt。
9隐私
调试日志只是文本。它捕获应用的运行事件,而非你的个人数据。你会看到如下的行:
13:42:01 USB attach: vid=10c4 pid=ea60 (Silicon Labs CP210x)
13:42:01 autoConnect attempt #1 → SUCCESS
13:42:02 CAT > FE FE 94 E0 03 FD
13:42:02 CAT < FE FE E0 94 03 00 74 04 00 14 FD
13:42:05 band → 20m, freq 14.074 MHz
其中 没有 的:Cloudlog 或 QRZ 的 API 密钥、你的账户密码、照片、联系人或位置。你的呼号和网格 在 其中,因为它们标识你的电台 —— 但对持照业余无线电爱好者而言,这些本就是公开信息。
如果你想在发送前浏览或涂去,文件是纯 UTF-8 文本。任何文本编辑器都能打开它。
谢谢你抽出时间。
真实的现场报告 —— 「这台电台、这根线、这个波段,发生了这样的事」 —— 正是这个分支变得更好的方式。两轮捉虫和 58+ 项修复,正是从你即将提交的这类报告开始的。73。