Echo是一个免费且自由开源Android应用,定位为 “时间旅行记录器” (Time travelling recorder)。其核心功能是实时音频录制,并采用独特的内存管理机制保存音频片段,支持用户回溯或“时间旅行”式访问历史录音。原理是Echo在手机后台 24 小时自动循环录音。项目基于Java编写,遵守GPL3.0开源协议。

功能特色:

  • 记录骚扰和欺凌(即使您没有预料到)
  • 保存重要信息(电话号码/密码/说明)
  • 记录可爱/有趣的时刻
  • 证明某人说了(或没有说)某事

核心组件解析

  1. SaidItFragment
    • 作用:作为应用的主界面视图(UI层)。
    • 功能:负责用户交互和录音状态的视觉呈现,是用户操作的核心入口。
  2. SaidItService
    • 作用:管理录音后台服务。
    • 关键机制
      • 通过高优先级线程(audioHandler)实现实时音频录制。
      • 采用状态机模型控制录音流程,通过AndroidHandler接收并处理任务指令(如开始/暂停/保存录音)。
    • 优势:确保录音过程稳定且响应及时,避免因系统资源竞争导致中断。
  3. AudioMemory
    • 作用:管理内存中的音频数据存储。
    • 核心设计
      • 使用 环形缓冲区(ring buffer) 动态存储音频片段(chunks)。
      • 非线程安全:需外部调用者(如SaidItService)保证线程同步,避免并发读写冲突。
    • 价值:高效利用内存空间,实现录音数据的循环覆盖存储,支持长时间连续录制。

源代码:https://github.com/mafik/echo

F-droid下载:https://f-droid.org/packages/eu.mrogalski.saidit/