Skip to content

2977094657/ScreenMemo

Repository files navigation

ScreenMemo Logo

ScreenMemo

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

「屏幕无痕,记忆有痕」

Dart Android License: AGPL v3 ![QQ 群](https://img.shields.io/badge/QQ-屏忆 640740880-12B7F5?logo=tencentqq&logoColor=white) Downloads

语言: 简体中文 | English | 日本語 | 한국어


项目概览

ScreenMemo 是一款在本地运行的智能截屏备忘与检索工具:自动记录你在 Android 设备上的屏幕画面,通过 OCR 与 AI 助手让信息可检索,帮助你在需要时迅速找回线索、还原上下文。

从今天开始构建你的个人数字记忆

为什么现在就要开始?

  • 不可逆的知识流失:当越来越多人开始用日常数据喂养个人 AI,每一天的未曾记录,都在让你未来的 AI 助手少了一分“懂你”的底气。
  • 悄然拉开的时间复利:数据无法速成。今天就开始沉淀数字标本的人,在未来 AI 迎来质变时,将天然拥有一座别人难以追赶的专属记忆库。
  • 打捞散落的数字自我:你最宝贵的上下文往往碎落在不同的 App 与设备里;如果没有 ScreenMemo 去妥善收留,它们终将随流逝的时间消散,再难被完整唤醒。

应用截图

下面展示的是一些高频页面截图,更多细节和页面没有一一展开,欢迎体验。

首页概览
首页概览
语义搜索
语义搜索
时间线与回放
时间线与回放
Activity 详情
Activity 详情
收藏与备注
收藏与备注
设置总览
设置总览
每日总结
每日总结
存储分析
存储分析
AI 回顾对话
AI 回顾对话
AI 提供商
AI 提供商
Prompt 管理
Prompt 管理
NSFW 搜索结果
NSFW 搜索结果
敏感内容分析
敏感内容分析
AI 工具调用报告
AI 工具调用报告
深度链接
深度链接

社区群聊

常见问题(FAQ)

每月大概占用多少存储空间?
  • 经验值示例:若压缩后约 50 KB / 张,且按每分钟 1 张截图,30 天约 43,200 张,约 2.1 GB / 月。
  • 估算公式:月占用(GB)≈ (60 ÷ 截屏间隔秒) × 60 × 24 × 30 × 单张大小(KB) ÷ 1024 ÷ 1024
  • 降占用建议:增大截屏间隔、启用目标大小压缩、打开过期清理、只对需要的应用开启采集
数据会上传到云端吗?
  • 默认不会。截图、OCR、索引、统计和大多数配置都保存在本地
  • 只有在你显式启用 AI 能力并配置提供商后,相关总结 / 对话请求才会发往你配置的模型服务
支持哪些 AI 提供商?
  • 当前内置提供商类型包括 OpenAIAzure OpenAIClaudeGeminiCustom
  • Custom 适合接入兼容 OpenAI 风格接口的自建或第三方中转服务
  • 不同 AI 上下文可以分别绑定不同的提供商与模型
主应用支持 iOS / 桌面自动采集吗?
  • 当前不支持。主采集链路围绕 Android 的无障碍截屏能力实现
  • 桌面端当前提供的是备份合并工具,不是完整的跨平台采集客户端
如何备份 / 迁移数据?
  • 在“数据与备份”里可以导出 ZIP 备份;导出前会先扫描范围、生成 manifest,并展示分类进度
  • 导入时支持“覆盖导入”和“合并导入”;合并模式会尽量去重并保留现有数据
  • 多个大备份建议使用桌面合并工具在电脑上处理,再回传到手机
  • 如果导入后发现索引或 OCR 缺失,可在“导入诊断”中执行诊断与 OCR 修复
  • 备份默认不包含 cache、code cache、临时缩略图和外部日志
对电量与性能的影响如何?
  • 主要取决于截屏间隔、压缩策略、AI 重建频率和后台保活状态
  • 建议启用目标大小压缩、过期清理,并按应用细分策略,避免对不重要应用持续采集

快速开始

环境要求

  • Flutter SDK3.35.7(当前 CI 验证版本)
  • Dart SDK3.9.2(随 Flutter 3.35.7 提供;项目约束为 >=3.8.1
  • JDK:推荐 17(CI 使用 17;Android 代码仍以 Java 11 字节码为目标)
  • Android SDK:发布工作流使用 Platform 36Build-Tools 36.0.0NDK 27.0.12077973
  • APK 当前构建配置minSdk 24targetSdk 36
  • 主功能平台要求:自动截屏依赖 Android 11(API 30)及以上
  • IDE:Android Studio / VS Code + Flutter 插件

安装与运行

  1. 克隆项目

    git clone <repository-url>
    cd screen_memo
  2. 安装依赖

    flutter pub get
  3. 生成国际化代码

    flutter gen-l10n
  4. 运行应用

    flutter run

在电脑上通过 Android 模拟器测试

  1. 在 Android Studio 的 Device Manager 中创建 Android 11+ 模拟器
  2. 启动模拟器后执行:
    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/symbols

Android 原生 JVM 单元测试:

Windows

cd android
.\gradlew.bat test

macOS / 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 --release

macOS

flutter build macos -t lib/main_desktop_merger.dart --release

Linux

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-baseline

flutter test 会自动运行 test/i18n_audit_test.dart,用于阻止新的多语言回归。

赞助与支持

如果本项目对你有帮助,欢迎通过以下方式赞助。付款时请在备注中填写“希望公开展示的链接”(如个人主页、B 站空间、GitHub 仓库等),我们会在 README 的“赞助鸣谢”表格中展示。

微信收款码
微信赞助
支付宝收款码
支付宝赞助

赞助鸣谢

赞助者 展示链接
暂无 暂无

贡献指南

欢迎贡献代码、报告问题或提出建议。

  1. Fork 本项目
  2. 创建分支:git checkout -b feature/your-change
  3. 提交修改:git commit -m "feat: describe your change"
  4. 推送分支:git push origin feature/your-change
  5. 提交 Pull Request

提交前建议至少运行:

  • flutter analyze
  • flutter test
  • dart run tool/i18n_audit.dart --check

致谢

About

ScreenMemo 是一款在本地运行的智能截屏备忘与检索工具:自动记录你在 Android 设备上的屏幕画面,通过 OCR 与 AI 总结让信息可检索、可回顾、可沉淀,帮助你在需要时迅速找回线索、还原上下文。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors