本地运行的智能截屏备忘与检索工具:自动记录 Android 屏幕,通过 OCR 与 AI 助手让内容可检索、可回顾。
「屏幕无痕,记忆有痕」

语言: 简体中文 | English | 日本語 | 한국어
ScreenMemo 是一款在本地运行的智能截屏备忘与检索工具:自动记录你在 Android 设备上的屏幕画面,通过 OCR 与 AI 助手让信息可检索,帮助你在需要时迅速找回线索、还原上下文。
为什么现在就要开始?
- 不可逆的知识流失:当越来越多人开始用日常数据喂养个人 AI,每一天的未曾记录,都在让你未来的 AI 助手少了一分“懂你”的底气。
- 悄然拉开的时间复利:数据无法速成。今天就开始沉淀数字标本的人,在未来 AI 迎来质变时,将天然拥有一座别人难以追赶的专属记忆库。
- 打捞散落的数字自我:你最宝贵的上下文往往碎落在不同的 App 与设备里;如果没有 ScreenMemo 去妥善收留,它们终将随流逝的时间消散,再难被完整唤醒。
下面展示的是一些高频页面截图,更多细节和页面没有一一展开,欢迎体验。
首页概览
|
语义搜索
|
时间线与回放
|
Activity 详情
|
收藏与备注
|
设置总览
|
每日总结
|
存储分析
|
AI 回顾对话
|
AI 提供商
|
Prompt 管理
|
NSFW 搜索结果
|
敏感内容分析
|
AI 工具调用报告
|
深度链接
|
每月大概占用多少存储空间?
- 经验值示例:若压缩后约 50 KB / 张,且按每分钟 1 张截图,30 天约 43,200 张,约 2.1 GB / 月。
- 估算公式:月占用(GB)≈
(60 ÷ 截屏间隔秒) × 60 × 24 × 30 × 单张大小(KB) ÷ 1024 ÷ 1024 - 降占用建议:增大截屏间隔、启用目标大小压缩、打开过期清理、只对需要的应用开启采集
数据会上传到云端吗?
- 默认不会。截图、OCR、索引、统计和大多数配置都保存在本地
- 只有在你显式启用 AI 能力并配置提供商后,相关总结 / 对话请求才会发往你配置的模型服务
支持哪些 AI 提供商?
- 当前内置提供商类型包括
OpenAI、Azure OpenAI、Claude、Gemini和Custom Custom适合接入兼容 OpenAI 风格接口的自建或第三方中转服务- 不同 AI 上下文可以分别绑定不同的提供商与模型
主应用支持 iOS / 桌面自动采集吗?
- 当前不支持。主采集链路围绕 Android 的无障碍截屏能力实现
- 桌面端当前提供的是备份合并工具,不是完整的跨平台采集客户端
如何备份 / 迁移数据?
- 在“数据与备份”里可以导出 ZIP 备份;导出前会先扫描范围、生成 manifest,并展示分类进度
- 导入时支持“覆盖导入”和“合并导入”;合并模式会尽量去重并保留现有数据
- 多个大备份建议使用桌面合并工具在电脑上处理,再回传到手机
- 如果导入后发现索引或 OCR 缺失,可在“导入诊断”中执行诊断与 OCR 修复
- 备份默认不包含 cache、code cache、临时缩略图和外部日志
对电量与性能的影响如何?
- 主要取决于截屏间隔、压缩策略、AI 重建频率和后台保活状态
- 建议启用目标大小压缩、过期清理,并按应用细分策略,避免对不重要应用持续采集
- Flutter SDK:
3.35.7(当前 CI 验证版本) - Dart SDK:
3.9.2(随 Flutter3.35.7提供;项目约束为>=3.8.1) - JDK:推荐
17(CI 使用17;Android 代码仍以 Java 11 字节码为目标) - Android SDK:发布工作流使用
Platform 36、Build-Tools 36.0.0、NDK 27.0.12077973 - APK 当前构建配置:
minSdk 24、targetSdk 36 - 主功能平台要求:自动截屏依赖 Android 11(API 30)及以上
- IDE:Android Studio / VS Code + Flutter 插件
-
克隆项目
git clone <repository-url> cd screen_memo
-
安装依赖
flutter pub get
-
生成国际化代码
flutter gen-l10n
-
运行应用
flutter run
- 在 Android Studio 的 Device Manager 中创建 Android 11+ 模拟器
- 启动模拟器后执行:
flutter emulators flutter devices flutter run -d <device_id>
# 代码检查
flutter analyze
# Flutter 测试
flutter test
# i18n 审计
dart run tool/i18n_audit.dart --check
# Debug APK
flutter build apk --debug
# Release APK(按 ABI 拆分)
flutter build apk --release --split-per-abi --tree-shake-icons --obfuscate --split-debug-info=build/symbolsAndroid 原生 JVM 单元测试:
Windows
cd android
.\gradlew.bat testmacOS / Linux
cd android
./gradlew test手机端处理多个大备份 ZIP 时速度有限,因此项目额外提供桌面合并入口 lib/main_desktop_merger.dart。
- 选择多个 ZIP 备份文件和输出目录
- 合并前执行结构预检,尽量提前发现坏包或不兼容数据
- 合并备份中的
output数据树:截图文件、分片数据库和主库元数据,并跳过重复内容 - 合并收藏、NSFW 标记和用户设置等元数据
- 实时显示处理进度、告警、影响应用和去重结果
- 处理完成后将合并结果重新打包成新的 ZIP
Windows
flutter build windows -t lib/main_desktop_merger.dart --releasemacOS
flutter build macos -t lib/main_desktop_merger.dart --releaseLinux
flutter build linux -t lib/main_desktop_merger.dart --release| 权限 | 作用 | 建议 |
|---|---|---|
| 通知权限 | 前台服务、导出 / 修复 / 重建进度、每日提醒 | 建议开启 |
| 无障碍服务 | 自动截屏、Activity 重建、部分后台 AI 流程 | 主功能必需 |
| 使用统计权限 | 前台应用识别、应用维度筛选与统计 | 强烈建议 |
| 已安装应用可见性 | 读取已安装应用列表,用于应用选择、筛选与统计 | 主功能需要 |
| 忽略电池优化 / 自启动 | 提高后台持续采集与重建稳定性 | 强烈建议 |
| 精确闹钟 | 每日总结提醒 | 可选 |
| 相册 / 下载写入 | 保存截图、回放视频或导出结果 | 可选 |
当前 README 与应用界面都维护以下四种语言:
- 简体中文
- English
- 日本語
- 한국어
常用命令:
# 生成 l10n 代码
flutter gen-l10n
# 检查 ARB / 平台层 / UI 硬编码回归
dart run tool/i18n_audit.dart --check
# 在确认例外后更新 baseline
dart run tool/i18n_audit.dart --update-baselineflutter test 会自动运行 test/i18n_audit_test.dart,用于阻止新的多语言回归。
如果本项目对你有帮助,欢迎通过以下方式赞助。付款时请在备注中填写“希望公开展示的链接”(如个人主页、B 站空间、GitHub 仓库等),我们会在 README 的“赞助鸣谢”表格中展示。
| 赞助者 | 展示链接 |
|---|---|
| 暂无 | 暂无 |
欢迎贡献代码、报告问题或提出建议。
- Fork 本项目
- 创建分支:
git checkout -b feature/your-change - 提交修改:
git commit -m "feat: describe your change" - 推送分支:
git push origin feature/your-change - 提交 Pull Request
提交前建议至少运行:
flutter analyzeflutter testdart run tool/i18n_audit.dart --check
- Flutter
- Google ML Kit
- SQLite
- 感谢 linux.do 社区的交流与讨论支持。
- 所有贡献者与依赖维护者














