diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/markdown.xml b/.idea/markdown.xml deleted file mode 100644 index c61ea33..0000000 --- a/.idea/markdown.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 639900d..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/doc/小米便签泛读、标注和维护报告文档.docx b/doc/小米便签泛读、标注和维护报告文档.docx index ed2a10e..2511cfa 100644 Binary files a/doc/小米便签泛读、标注和维护报告文档.docx and b/doc/小米便签泛读、标注和维护报告文档.docx differ diff --git a/doc/小米便签的质量分析报告.docx b/doc/小米便签的质量分析报告.docx index 0799d57..7d6f830 100644 Binary files a/doc/小米便签的质量分析报告.docx and b/doc/小米便签的质量分析报告.docx differ diff --git a/docs/开发共享文档/功能扩展规划-精简版.md b/docs/开发共享文档/功能扩展规划-精简版.md deleted file mode 100644 index b4e3e55..0000000 --- a/docs/开发共享文档/功能扩展规划-精简版.md +++ /dev/null @@ -1,861 +0,0 @@ -# Xiaomi Notes 功能扩展规划(精简版) - -## 概述 -本文档规划了小米笔记应用的潜在功能扩展,按优先级和时间线组织。核心功能优先,高级功能作为后续迭代。 - -## 项目当前状态(2026-01-28) - -### 已实现的核心功能 ✅ - -**基础功能**: -- ✅ 笔记创建和编辑(支持富文本) -- ✅ 笔记列表显示(支持左滑菜单操作) -- ✅ 文件夹管理(树形结构、展开收起、面包屑导航) -- ✅ 笔记提醒(闹钟功能) -- ✅ 笔记背景颜色(10种颜色 + 自定义颜色 + 壁纸) -- ✅ 笔记字体样式(4种大小) -- ✅ 本地数据存储(SQLite + ContentProvider) -- ✅ 便签标题编辑(独立TITLE字段) -- ✅ 便签重命名(左滑菜单 + 编辑界面) - -**高级功能**: -- ✅ MVVM架构重构(ViewModel + Repository Pattern) -- ✅ Google Tasks云同步 -- ✅ 密码保护(图案锁 + 密码验证) -- ✅ 笔记锁定功能 - - ✅ 笔记置顶功能 - - ✅ 数据备份和恢复 - - ✅ 桌面小部件(2x2, 4x4) - - ✅ 搜索功能(ContentProvider支持) - - ✅ 回收站功能 - - ✅ 多语言支持(简体中文、繁体中文、英文) - - ✅ 材料设计UI(Material Design 3) - - ✅ 待办任务管理(TaskListActivity/TaskEditActivity) - - ✅ 撤销/重做功能(UndoRedoManager) - - ✅ 搜索历史管理(SearchHistoryManager) - - ✅ 阿里云EMAS云同步(用户注册、登录、多设备同步) - -**富文本编辑功能**: -- ✅ 粗体、斜体、下划线 -- ✅ 删除线 -- ✅ 标题层级 (H1-H6) -- ✅ 列表(无序、有序) -- ✅ 引用块 -- ✅ 代码块 -- ✅ 链接插入 -- ✅ 分割线 -- ✅ 文本颜色 -- ✅ 文本背景色 -- ✅ 图片插入和缩放 - -**技术架构**: -- ✅ MVVM架构模式 -- ✅ Repository数据访问层 -- ✅ LiveData响应式数据更新 -- ✅ ContentProvider标准API -- ✅ SQLiteOpenHelper数据库管理 - - ✅ ExecutorService异步操作 - - ✅ ViewBinding(100%迁移完成) - - ✅ 55个Java源文件 - - ✅ 176个资源文件 - - ✅ 数据库版本V13(含10个触发器、云同步字段、TITLE字段) - -### 项目统计 - -| 类别 | 数量 | 说明 | -|------|-------|------| -| Java源文件 | 55个 | UI层28个、数据层7个、ViewModel2个、Model6个、工具7个、Widget3个、其他2个 | -| 资源文件 | 176个 | layout、values、drawable、menu、xml、raw、anim | -| Android组件 | 16个 | 10个Activity、3个Receiver、1个Service、2个Widget | -| 测试文件 | 4个 | 1个单元测试、2个数据层测试、1个集成测试 | - | 数据库表 | 2个 | note表(25字段)、data表(11字段) | - | 系统文件夹 | 4个 | 根(0)、临时(-1)、通话记录(-2)、回收站(-3) | - | 数据库版本 | V13 | 包含TITLE字段、云同步字段、CLOUD_NOTE_ID等 | - -## 功能分类 - -### 核心功能 (Phase 1 - 大部分已完成) -- ✅ 笔记创建和编辑(支持富文本) -- ✅ 笔记列表显示(左滑菜单:置顶、锁定、移动、删除、重命名) -- ✅ 文件夹管理(树形结构、面包屑导航) -- ✅ 笔记提醒(闹钟) -- ✅ 笔记背景颜色(10种预设 + 自定义 + 壁纸) -- ✅ 笔记字体样式(小/中/大/超大) - - ✅ 本地数据存储(SQLite + ContentProvider) - - ✅ 便签标题编辑(独立TITLE字段) - - ✅ 便签重命名(左滑菜单 + 编辑界面) - - ✅ 笔记锁定功能 - - ✅ 笔记置顶功能 - - ✅ 回收站功能 - - ✅ 待办任务管理 - - ✅ 撤销/重做功能 - - ✅ 搜索历史 - - ✅ 阿里云EMAS云同步 - -**标题字段修复 (2026-01-30)**: -- ✅ 修复 `insertFolder()` 未设置TITLE字段问题 -- ✅ 创建V13数据库升级脚本(修复现有文件夹TITLE) -- ✅ 修复 `CloudNote.toWorkingNote()` 方法调用顺序(先设置类型,再设置标题) -- ✅ 修复云同步下载时文件夹名字不显示问题 -- **修复内容**: - - 数据库版本升级:12 → 13 - - 添加 `upgradeToV13()` 方法:迁移 `UPDATE note SET title = snippet WHERE type = 1 AND title = ''` - - `insertFolder()` 添加:`values.put(NoteColumns.TITLE, name);` - - `CloudNote.toWorkingNote()` 调整顺序:`note.setType(mType)` → `note.setTitle(mTitle)` -- **影响范围**: - - 模板文件夹创建时正确设置TITLE - - 云同步下载的文件夹正确设置SNIPPET(侧边栏显示) - - 新虚拟机同步后侧边栏文件夹名正常显示 - -## 短期扩展 (Phase 2 - 1-2个月) - -### P0 - 必须实现 - -#### 2.1 搜索功能增强 ✅ 已实现 -**描述**: 提供强大的搜索功能,支持全文搜索、筛选和排序 - -**当前状态**: -- ✅ 基础搜索功能(ContentProvider支持search URI) -- ✅ 搜索建议功能 -- ✅ 搜索历史记录(SearchHistoryManager) -- ✅ 搜索结果高亮 - -**技术方案**: -- 使用 SearchHistoryManager 存储搜索历史 -- 扩展 NotesRepository 搜索逻辑 -- 实现搜索 UI 筛选面板 - -**优先级**: 已完成 -**工作量**: 0天 - -#### 2.2 导入导出功能增强 ✅ 已实现基础版本 -**描述**: 支持笔记的导入导出,便于数据迁移和分享 - -**用户需求**: 希望可以实现与没有应用的人分享也能有应用类似的便签显示效果 - -**当前状态**: -- ✅ 数据备份功能(BackupUtils.java) -- ✅ 数据恢复功能 -- ❌ 导出为便签图片格式(便于分享给非用户) -- ❌ 导出为 Markdown/TXT/JSON - -**待实现功能点**: -- [ ] 导出为便签图片格式(类似应用内笔记卡片样式) - - [ ] 支持自定义背景颜色 - - [ ] 支持字体大小选择 - - [ ] 支持水印(可选) - - [ ] 高分辨率导出(分享清晰) -- [ ] 导出为 Markdown 格式 -- [ ] 导出为 TXT 格式 -- [ ] 导出为 JSON 格式 -- [ ] 批量导出选择界面 -- [ ] 导入 JSON 格式 -- [ ] 导入验证和冲突处理 - -**技术方案**: -- 使用现有的 BackupUtils 基础 -- 使用 Canvas 绘制便签卡片并保存为图片 -- 集成 Markdown 处理库 -- 实现文件选择器(Storage Access Framework) -- 添加分享功能(Intent.ACTION_SEND) - -**优先级**: 高 -**工作量**: 3-4天 - -#### 2.3 撤回功能 -**描述**: 支持简单的笔记撤回操作 - -**功能点**: -- ✅ 撤回上一次编辑 -- ✅ 撤回历史栈(UndoRedoManager) -- ✅ 重做功能 -- ✅ 撤回/重做状态提示 - -**技术方案**: -- 实现 UndoRedoManager 管理器 -- 使用 Command Pattern 实现撤回逻辑 -- 在 NoteEditActivity 中集成撤回/重做按钮 - -**优先级**: 已完成 -**工作量**: 0天 - -### P1 - 应该实现 - -#### 2.4 标签系统 -**描述**: 为笔记添加标签,便于分类和筛选 - -**用户疑问**: 是否与文件夹功能重叠? - -**功能定位**: -- **文件夹**: 层级分类(父文件夹 → 子文件夹),一个笔记只能属于一个文件夹 -- **标签**: 扁平分类,一个笔记可以有多个标签,支持交叉分类 - -**场景对比**: -| 功能 | 文件夹 | 标签 | -|------|-------|------| -| 结构 | 树形层级 | 扁平列表 | -| 归属关系 | 一个笔记 → 一个文件夹 | 一个笔记 ↔ 多个标签 | -| 查询 | 按文件夹筛选 | 按标签筛选、多标签组合 | -| 适用场景 | 主要分类、项目分组 | 辅助分类、主题标记、状态标记 | -| 示例 | "工作/项目A/会议记录" | "重要"、"待办"、"学习"、"会议" | - -**功能点**: -- [ ] 创建标签 -- [ ] 编辑标签(名称、颜色) -- [ ] 删除标签 -- [ ] 为笔记添加/移除标签(多选支持) -- [ ] 按标签筛选笔记 -- [ ] 按多标签组合筛选(AND/OR 逻辑) -- [ ] 标签颜色自定义 -- [ ] 标签统计(每个标签的笔记数) -- [ ] 标签云视图 - -**技术方案**: -- 设计 Tag 数据表(id, name, color, created_date) -- 设计 NoteTag 关联表(note_id, tag_id) -- 实现标签选择器 UI(类似文件夹树) -- 扩展 NotesRepository 标签查询逻辑 -- 添加标签管理 ViewModel - -**优先级**: 高 -**工作量**: 3-4天 - -#### 2.5 笔记锁定 ✅ 已实现 -**描述**: 为敏感笔记添加密码保护 - -**用户需求**: 只需要密码保护就行了 - -**当前状态**: -- ✅ 图案锁保护(LockPatternView.java) -- ✅ 密码保护(PasswordActivity.java) -- ✅ SecurityManager.java 加密工具 - -**优先级**: 已完成 -**工作量**: 0天 - -#### 2.6 笔记模板 -**描述**: 提供常用笔记模板,快速创建标准化笔记 - -**功能点**: -- [ ] 预置模板(会议记录、日记、待办事项、读书笔记等) -- [ ] 创建自定义模板 -- [ ] 编辑模板 -- [ ] 删除模板 -- [ ] 应用模板到新笔记 -- [ ] 模板分类(工作、生活、学习) -- [ ] 模板预览 - -**技术方案**: -- 设计 Template 数据表(id, name, content, category, created_date) -- 实现模板管理 UI -- 创建模板应用逻辑(复制模板内容到新笔记) -- 添加模板管理 Activity/Fragment - -**优先级**: 中 -**工作量**: 2-3天 - -### P2 - 可以实现 - -#### 2.7 笔记统计和分析 -**描述**: 提供笔记使用情况的统计信息 - -**功能点**: -- [ ] 笔记数量统计(总数、本周新增、本月新增) -- [ ] 笔记创建频率图表 -- [ ] 常用词分析 -- [ ] 文件夹分布(饼图) -- [ ] 标签使用统计 -- [ ] 笔记长度统计 -- [ ] 活跃时间段分析 -- [ ] 周/月/年报告 - -**技术方案**: -- 扩展 NotesRepository 统计查询 -- 集成图表库(MPAndroidChart 或 AnyChart) -- 实现统计数据计算(基于现有表) -- 创建统计图表 UI Activity - -**优先级**: 低 -**工作量**: 3-4天 - -#### 2.8 快捷操作优化 ✅ 已实现 -**描述**: 添加快捷操作,提高效率 - -**当前状态**: -- ✅ 长按笔记快捷菜单(复制、分享、删除、移动、设置提醒) -- ✅ 桌面小组件(2x2, 4x4) -- ✅ 左滑菜单(置顶、锁定、移动、删除、重命名) -- ❌ 通知栏快捷操作 - -**待实现功能点**: -- [ ] 通知栏快捷操作(创建笔记、语音输入) -- [ ] 快捷方式(Launcher Shortcuts API) - -**优先级**: 低 -**工作量**: 1-2天 - -## 中期扩展 (Phase 3 - 3-4个月) - -### P1 - 应该实现 - -#### 3.1 富文本编辑 ✅ 已实现 -**描述**: 增强文本编辑功能,支持多种格式 - -**功能点**: -- ✅ 粗体、斜体、下划线 -- ✅ 删除线 -- ✅ 标题层级 (H1-H6) -- ✅ 列表(无序、有序) -- ✅ 引用块 -- ✅ 代码块 -- ✅ 链接插入 -- ✅ 分割线 -- ✅ 文本颜色 -- ✅ 文本背景色 -- ✅ 图片插入和缩放 - -**技术方案**: -- 使用 RichTextHelper 工具类 -- 基于 SpannableString 实现富文本 -- 实现格式工具栏(rich_text_selector) -- 扩展 NoteEditText.java 支持富文本 - -**优先级**: 已完成 -**工作量**: 0天 - -#### 3.2 图片附件 ⚠️ 部分实现 -**描述**: 支持在笔记中插入图片 - -**当前状态**: -- ✅ 从相册选择图片 -- ✅ 图片插入到笔记 -- ✅ 图片缩放(双指缩放) -- ✅ 图片大小调整(SeekBar对话框) -- ❌ 拍照插入 -- ❌ 图片裁剪 -- ❌ 图片预览(全屏查看) -- ❌ 图片旋转 - -**待实现功能点**: -- [ ] 拍照插入 -- [ ] 图片裁剪 -- [ ] 图片预览(全屏查看) -- [ ] 图片旋转 -- [ ] 图片备注 - -**技术方案**: -- 使用 ContentResolver 访问图片 -- 集成图片裁剪库(UCrop 或 Android Image Cropper) -- 集成图片加载库(Glide 或 Coil) -- 扩展 data 表支持图片存储(mime_type = "image/*") -- 创建图片查看器 Activity - -**优先级**: 高 -**工作量**: 3-4天 - -### P2 - 可以实现 - -#### 3.3 智能识别功能 -**描述**: 智能识别笔记中的地址和时间,支持快速跳转 - -**用户需求**: 希望可以添加智能识别地址、时间功能,跳转导航和闹钟设置 - -**功能点**: -- [ ] 智能识别地址信息 - - [ ] 自动检测地址模式(省市区、街道地址) - - [ ] 高亮显示识别的地址 - - [ ] 点击地址跳转地图应用(高德地图、百度地图、Google Maps) - - [ ] 支持地址标注(在地址旁显示位置图标) -- [ ] 智能识别时间信息 - - [ ] 自动检测日期时间模式(今天14:30、明天上午9点、2025年1月21日) - - [ ] 高亮显示识别的时间 - - [ ] 点击时间快速设置闹钟/提醒 - - [ ] 支持时间相对表达(下周三、后天) -- [ ] 智能识别电话号码 - - [ ] 自动检测电话号码 - - [ ] 点击电话号码直接拨号 -- [ ] 智能识别URL链接 - - [ ] 自动检测URL并使其可点击 - - [ ] 长按URL显示预览或复制选项 - -**技术方案**: -- 使用正则表达式识别地址、时间、电话、URL模式 -- 实现智能解析器(SmartParser.java) -- 扩展 NoteEditText 支持高亮显示 -- 集成 Intent 跳转地图、电话、闹钟 -- 使用 SpannableString 设置可点击区域 - -**优先级**: 中 -**工作量**: 5-6天 - -#### 3.4 链接笔记 -**描述**: 支持笔记之间的链接引用 - -**功能点**: -- [ ] 创建笔记链接([[笔记标题]]语法) -- [ ] 自动检测笔记标题链接 -- [ ] 反向链接查看(哪些笔记引用了当前笔记) -- [ ] 链接预览(悬浮显示笔记摘要) -- [ ] 链接计数 -- [ ] 图谱视图(可视化笔记关系) - -**技术方案**: -- 设计 NoteLink 数据表(id, source_note_id, target_note_id, position) -- 实现链接语法解析(正则表达式) -- 创建链接管理 UI -- 集成图表库绘制笔记关系图谱 - -**优先级**: 中 -**工作量**: 4-5天 - -#### 3.5 任务清单 ✅ 已实现 -**描述**: 独立的待办任务管理功能 - -**当前状态**: -- ✅ TaskListActivity/TaskEditActivity 独立页面 -- ✅ 任务创建、编辑、删除 -- ✅ 任务状态管理(待办/已完成) -- ✅ 任务提醒设置 - -**技术方案**: -- 使用 TYPE_TASK 笔记类型存储任务 -- 实现 TaskListAdapter 任务列表适配器 -- 集成现有提醒功能 - -**优先级**: 已完成 -**工作量**: 0天 - -## 长期扩展 (Phase 4 - 6个月+) - -### P2 - 可以实现 - -#### 4.1 主题和自定义 ⚠️ 部分实现 -**描述**: 提供更多主题和界面自定义选项 - -**用户需求**: 自定义壁纸 - -**当前状态**: -- ✅ 笔记背景颜色(10种预设) -- ✅ 字体大小(4种) -- ✅ 夜间主题(values-night) -- ✅ 自定义颜色选择器 -- ✅ 自定义壁纸(从相册选择) -- ❌ 完整主题系统 -- ❌ 预设壁纸库 - -**待实现功能点**: -- [ ] 多种预设主题 - - [ ] 简约白 - - [ ] 深夜黑 - - [ ] 护眼绿 - - [ ] 暖色系 - - [ ] 冷色系 -- [ ] 自定义主题颜色 -- [ ] 自定义应用壁纸 - - [ ] 从相册选择壁纸 - - [ ] 预设壁纸库 - - [ ] 瓷片平铺/居中/拉伸 - - [ ] 磨砂玻璃效果(可选) -- [ ] 自定义字体家族(使用 Google Fonts) -- [ ] 自定义卡片样式 -- [ ] 自定义图标包 -- [ ] 动态取色(基于壁纸) - -**技术方案**: -- 使用 Material You (Material 3) 动态颜色 -- 实现主题管理 ViewModel -- 创建主题编辑器 Activity -- 集成 Google Fonts API -- 实现壁纸设置和管理 - -**优先级**: 低 -**工作量**: 5-6天 - -#### 4.2 智能功能 -**描述**: 利用 AI 提供智能辅助功能 - -**功能点**: -- [ ] 自动摘要(AI生成笔记摘要) -- [ ] 智能分类建议(基于内容推荐文件夹/标签) -- [ ] 关键词提取 -- [ ] 相关笔记推荐(基于内容相似度) -- [ ] 语法检查 -- [ ] 翻译功能 -- [ ] 智能纠错 - -**技术方案**: -- 集成本地 NLP 模型(TensorFlow Lite) -- 或使用第三方 AI API(OpenAI、百度文心等) -- 实现智能分析逻辑 -- 创建智能功能 UI 组件 - -**优先级**: 低 -**工作量**: 7-10天 - - #### 4.3 云同步和账号系统 ✅ 已完成 - **描述**: 完善的数据备份和云同步机制 - - **用户需求**: 实现注册、登录和云同步 - - **当前状态** (2026-01-30): - - ✅ 阿里云EMAS云同步(完整实现) - - ✅ 自定义账号系统(注册/登录) - - ✅ 用户注册(用户名 + 密码) - - ✅ 用户登录(密码SHA-256加密) - - ✅ Token管理(有效期7天 + RefreshToken) - - ✅ 自动Token刷新 - - ✅ 设备ID绑定 - - ✅ 登录后数据迁移(新用户接管所有笔记) - - ✅ 全量同步(新用户) - - ✅ 增量同步(已登录用户) - - ✅ 云同步功能 - - ✅ 上传本地修改(LOCAL_MODIFIED=1) - - ✅ 下载云端更新 - - ✅ 冲突检测和记录 - - ✅ 同步状态显示(同步中、同步完成、同步失败) - - ✅ 同步进度回调 - - ✅ 手动同步按钮 - - ✅ 首次同步标记 - - ✅ 多设备同步 - - ✅ 数据传输加密(HTTPS + Bearer Token) - - ✅ 手动备份(BackupUtils.java) - - ✅ 手动恢复 - - **实现的核心文件**: - - `UserAuthManager.java` - 用户认证管理器 - - `LoginActivity.java` - 登录/注册UI - - `LoginViewModel.java` - 登录/注册业务逻辑 - - `SyncManager.java` - 同步管理器(核心逻辑) - - `CloudDatabaseHelper.java` - 云数据库API - - `CloudNote.java` - 云端笔记模型 - - `WorkingNote.java` - 本地工作笔记(含同步逻辑) - - **已实现功能点** (已完成): - - ✅ 自定义账号系统 - - ✅ 用户注册(用户名) - - ✅ 用户登录(密码 + SHA-256加密) - - ✅ Token管理(Access Token + Refresh Token) - - ✅ 自动Token刷新机制 - - ✅ 设备ID绑定(DeviceUtils.getDeviceId()) - - ✅ 云同步到阿里云EMAS - - ✅ 自动同步(定时/手动) - - ✅ 手动同步(同步按钮) - - ✅ 同步冲突检测(双方修改记录冲突) - - ✅ 同步状态显示(Toast提示) - - ✅ 同步进度回调(实时进度) - - ✅ 增量同步(基于lastSyncTime) - - ✅ 全量同步(forceFullSync) - - ✅ 多设备管理 - - ✅ 查看已登录设备(侧边栏显示设备ID) - - ✅ 远程登出设备(未实现UI,后端支持) - - ✅ 备份文件加密 - - ✅ 密码加密传输(SHA-256) - - ✅ 数据传输加密(HTTPS + Bearer Token) - - ✅ 文件夹同步修复(2026-01-30) - - ✅ TITLE字段正确设置 - - ✅ SNIPPET字段兼容性处理 - - ✅ 云下载文件夹名字正确显示 - - **待实现功能点** (可选优化): - - [ ] 密码找回 - - [ ] 账号注销 - - [ ] 账号安全设置(修改密码、绑定手机号) - - [ ] 远程登出设备UI - - [ ] 同步冲突解决UI(当前仅记录,未提供解决界面) - - [ ] 端到端加密(当前仅传输加密) - - **技术方案**: - - **服务端**: 阿里云EMAS(移动开发平台) - - **API认证**: JWT Token + Refresh Token机制 - - **客户端**: Apache HttpClient 4.5.14 - - **密码加密**: SHA-256哈希 - - **数据传输**: HTTPS + Bearer Token - - **同步算法**: 增量同步(基于时间戳)+ 冲突检测 - - **数据库**: 本地SQLite + 云端EMAS数据库 - - **架构**: SyncManager单例 + ExecutorService异步处理 - - **优先级**: 已完成 - **工作量**: 15天(含后端集成) - **完成日期**: 2026-01-30 - - - -## 功能实现时间线(精简版) - -### Month 1-2: 核心功能增强 -- ✅ Week 1: 搜索功能增强 (2.1) - 搜索历史、高级筛选 -- [ ] Week 2: 导入导出功能增强 (2.2) - 便签图片导出、Markdown/TXT -- ✅ Week 3: 撤回功能 (2.3) - 撤回/重做 -- [ ] Week 4: 标签系统 (2.4) - 标签分类和筛选 - -### Month 3-4: 用户体验提升 -- [ ] Week 5: 笔记模板 (2.6) - 模板管理 -- ✅ Week 6-8: 富文本编辑 (3.1) - 完整格式支持 - -### Month 5-6: 功能扩展 -- [ ] Week 9-10: 图片附件 (3.2) - 图片管理和预览 -- [ ] Week 11-12: 智能识别功能 (3.3) - 地址、时间识别 - -### Month 7-8: 高级功能 -- [ ] Week 13-14: 链接笔记 (3.4) - 笔图谱 -- ✅ Week 15-16: 任务清单 (3.5) - 任务管理 - - ### Month 9+: 智能化和生态 - - ✅ Week 17-20: 云同步和账号系统 (4.3) - 注册登录、云同步 - - [ ] Week 21-22: 主题和自定义 (4.1) - Material 3 动态主题、自定义壁纸 - - [ ] Week 23+: 智能功能 (4.2)、跨平台同步 (4.4) 等 - -## 技术栈规划(基于当前架构) - -### 当前技术栈 -- **UI 框架**: Material Design Components -- **架构**: MVVM + Repository Pattern -- **数据库**: SQLite + SQLiteOpenHelper -- **异步**: ExecutorService -- **视图绑定**: findViewById(传统方式) -- **依赖管理**: Gradle Version Catalog (libs.versions.toml) -- **网络**: Apache HttpClient 4.5.14 - -### 建议技术演进 - -#### 短期演进(保持Java) -- **UI 框架**: 升级到 Material Design 3 -- **架构**: 保持 MVVM + Repository Pattern -- **数据库**: 保持 SQLiteOpenHelper,考虑迁移到 Room -- **异步**: 保持 ExecutorService,考虑迁移到 Kotlin Coroutines -- **依赖注入**: 考虑引入 Hilt(可选) - -#### 中期演进(可选Kotlin迁移) -- **语言**: 逐步迁移到 Kotlin(100% 互操作) -- **UI**: 迁移到 Jetpack Compose(可选) -- **异步**: 迁移到 Kotlin Coroutines + Flow -- **依赖注入**: Hilt -- **数据库**: Room + Coroutines - -#### 可能引入的技术栈 -- **富文本编辑**: - - RichEditor (Java) - - Markwon (Markdown渲染,Kotlin优先) -- **图片处理**: - - Glide / Coil (图片加载) - - UCrop / Android Image Cropper (图片裁剪) -- **图表**: MPAndroidChart / AnyChart / ECharts -- **文件压缩**: Zip4j -- **加密**: Android Keystore + AES (已有 SecurityManager) -- **智能识别**: - - 正则表达式(地址、时间、电话识别) - - 第三方 API(地址解析、时间解析) -- **服务端开发**: - - Node.js + Express/Koa - - MongoDB / PostgreSQL - - Redis(缓存) - - Nginx(反向代理) - -### 技术债务清理 - -#### 高优先级 -- [ ] 迁移从 findViewById 到 ViewBinding / Jetpack Compose -- [ ] 迁移从 ExecutorService 到 Kotlin Coroutines / Flow - - [ ] 迁移从 SQLiteOpenHelper 到 Room - - [ ] 重构 Apache HttpClient 依赖(使用 Retrofit + OkHttp) - - [ ] **菜单栏与侧边栏功能同步** (2026-01-28 新增) - - [ ] 同步功能:菜单栏当前显示"同步功能暂不可用",需改为跳转到 `SyncActivity` - - [ ] 设置功能:菜单栏当前显示"设置功能开发中",需改为跳转到 `NotesPreferenceActivity` - - [ ] 导出功能:统一菜单栏和侧边栏的提示信息(当前不一致) - - [ ] 功能对齐:考虑在菜单栏添加回收站入口,或在侧边栏添加任务清单、搜索入口 - - **问题详情**: - - 右上角菜单栏 (`note_list.xml`) 和侧边栏 (`sidebar_layout.xml`) 存在功能不一致 - - 同步、设置在侧边栏已实现,但在菜单栏仍为未实现状态 - - 任务清单、搜索、新建文件夹仅在菜单栏可用 - - 回收站、登录、模板仅在侧边栏可用 - - [ ] **云同步优化** (2026-01-30 新增) - - [ ] 同步冲突解决UI(当前仅记录冲突,未提供手动解决界面) - - [ ] 远程登出设备UI - - [ ] 同步失败重试机制(当前失败仅记录,未自动重试) - - [ ] 同步状态持久化(应用重启后恢复同步状态) - -#### 中优先级 -- [ ] 引入依赖注入框架(Hilt) -- [ ] 升级到 Material Design 3 -- [ ] 迁移到 Kotlin(逐步) -- [ ] 统一异常处理机制 - -#### 低优先级 -- [ ] Jetpack Compose 迁移 -- [ ] 单向数据流(UDF)架构优化 -- [ ] 模块化架构(Dynamic Feature Modules) - -## 性能优化 - -### 短期优化 -- [ ] RecyclerView 性能优化(DiffUtil、预加载) -- [ ] 图片加载和缓存优化(使用 Glide/Coil) -- [ ] 数据库查询优化(添加索引、避免 N+1 查询) -- [ ] 内存泄漏检测和修复(LeakCanary) -- [ ] 启动速度优化(Application 初始化优化) - -### 长期优化 -- [ ] 启用 ProGuard/R8 混淆和优化 -- [ ] APK 体积优化(资源压缩、动态下发) -- [ ] 启动速度优化(延迟加载、线程优化) -- [ ] 电池使用优化(WorkManager 替代 AlarmManager) -- [ ] 网络请求优化(缓存策略、请求合并) - -## 安全性考虑 - -### 数据安全 -- [x] 数据加密存储(已有 SecurityManager) -- [ ] 敏感信息保护(日志脱敏) -- [x] 权限最小化原则(运行时权限请求) -- [ ] 安全的文件存储(Scoped Storage) -- [ ] 密码保护(已有) - -### 隐私保护 -- [x] 本地数据处理优先 -- [ ] 明确的隐私政策 -- [ ] 用户数据控制权(数据导出、删除) -- [ ] 安全的数据传输(HTTPS + 证书固定) - -### 代码安全 -- [ ] 代码混淆(ProGuard/R8) -- [ ] 防止重打包(签名校验) -- [ ] 日志脱敏(不记录敏感信息) -- [ ] SQL 注入防护(使用参数化查询,已实现) - -## 测试策略 - -### 单元测试 -- [x] 数据库操作测试(已有 FolderDatabaseTest) -- [x] 仓库层测试(已有 NotesRepositoryTest) -- [ ] 业务逻辑测试(ViewModel 单元测试) -- [ ] 工具类测试(Utils 单元测试) - -### 集成测试 -- [ ] 主要功能流程测试(笔记创建、编辑、删除) -- [ ] 数据迁移测试(数据库版本升级) -- [ ] ContentProvider 接口测试 -- [ ] 同步功能测试 - -### UI 测试 -- [ ] Espresso UI 测试(关键流程) -- [ ] 用户交互测试(手势、快捷操作) -- [ ] 兼容性测试(不同 Android 版本、屏幕尺寸) - -### 性能测试 -- [ ] 大数据量测试(1000+ 笔记) -- [ ] 内存使用测试(内存泄漏、峰值) -- [ ] 启动时间测试(冷启动、热启动) -- [ ] 电池使用测试(长时间运行) - -## 用户反馈和迭代 - -### 收集反馈 -- [ ] 应用内反馈功能(反馈表单) -- [ ] 应用商店评论监控 -- [ ] 用户调研(问卷调查) -- [ ] 数据分析(崩溃率、使用频率、功能使用率) -- [ ] Beta 测试计划(Play Console) - -### 迭代流程 -1. 收集用户反馈(多渠道) -2. 分析需求优先级(影响力 vs 成本) -3. 制定开发计划(Sprint Planning) -4. 开发和测试(Code Review + CI/CD) -5. 发布新版本(灰度发布) -6. 收集新反馈(持续监控) - -### 数据驱动决策 -- [ ] 功能使用率统计 -- [ ] 用户留存率分析 -- [ ] 崩溃率监控 -- [ ] 性能指标追踪 -- [ ] A/B 测试(新功能) - -## 风险评估 - -### 技术风险 -- [ ] 第三方库兼容性(版本冲突、废弃) -- [ ] Android 版本兼容性(碎片化) -- [ ] 性能瓶颈(大数据量、复杂查询) -- [ ] 数据迁移风险(版本升级失败) -- [ ] Kotlin 迁移风险(互操作问题) -- [ ] 服务端开发风险(并发、安全、扩展性) - -### 产品风险 -- [ ] 功能过度复杂(用户体验下降) -- [ ] 用户学习成本高(功能过多) -- [ ] 功能使用率低(开发浪费) -- [ ] 维护成本高(技术债务积累) -- [ ] 竞品功能差距(市场竞争力) - -### 缓解措施 -- [ ] 渐进式功能发布(Feature Flags) -- [ ] 充分的测试覆盖(单元测试、集成测试) -- [ ] 用户教育文档(帮助中心、教程) -- [ ] 灵活的架构设计(解耦、可扩展) -- [ ] 持续重构(技术债管理) -- [ ] 可配置功能(用户可选) - -## 成功指标 - -### 技术指标 -- [ ] 崩溃率 < 0.5% -- [ ] ANR 率 < 0.1% -- [ ] 启动时间 < 2 秒 -- [ ] 代码覆盖率 > 60% -- [ ] 技术债务指数降低 - -### 产品指标 -- [ ] 日活跃用户(DAU)增长 -- [ ] 用户留存率(7日、30日) -- [ ] 功能使用率(每个功能的用户比例) -- [ ] 应用商店评分 > 4.5 -- [ ] 用户反馈响应时间 < 24h - -## 总结 - -本规划基于当前项目实际状态(MVVM架构、Repository Pattern、48个Java文件、135个资源文件),并根据用户反馈精简了功能列表,提供了从核心功能增强到高级功能扩展的完整路线图。 - -**项目优势**: -1. ✅ 完整的 MVVM 架构(ViewModel + Repository) -2. ✅ 响应式数据更新(LiveData) -3. ✅ 标准化数据访问(ContentProvider) -4. ✅ 稳定的数据库设计(SQLite + 10个触发器) -5. ✅ 多语言支持(中英文) -6. ✅ Google Tasks 云同步 - 7. ✅ 密码保护和安全功能 - 8. ✅ 备份和恢复功能 - 9. ✅ 阿里云EMAS云同步(注册、登录、多设备同步) - - **关键成功因素**: - 1. 优先实现用户最需要的功能(搜索、便签导出、智能识别) - 2. 保持代码质量和可维护性(持续重构) - 3. 持续收集用户反馈并迭代(数据驱动) - 4. 平衡功能丰富度和简洁性(用户体验) - 5. 注重性能和用户体验(响应速度、流畅度) - 6. 稳健的架构设计(可扩展、可测试) - - **下一步行动**: - 1. 实施 Phase 2 P0 功能(便签图片导出、Markdown/TXT导出) - 2. 技术债务清理(Kotlin 迁移考虑、Apache HttpClient重构) - 3. 建立自动化测试体系(单元测试、集成测试) - 4. 设置监控和分析(崩溃率、使用率) - 5. 优化云同步功能(冲突解决UI、同步失败重试、远程登出设备) - 6. 菜单栏与侧边栏功能同步(统一功能入口和提示信息) - - --- - -**文档版本**: v5.0(精简版) -**更新日期**: 2026-01-30 -**维护者**: Sisyphus AI Agent -**更新说明**: - - 更新云同步功能状态:✅ 阿里云EMAS云同步已完成(注册、登录、多设备同步、冲突检测) - - 更新标题字段修复:✅ 完成TITLE/SNIPPET字段问题修复 - - 修复 `insertFolder()` 未设置TITLE字段问题 - - 创建V13数据库升级脚本(修复现有文件夹TITLE) - - 修复 `CloudNote.toWorkingNote()` 方法调用顺序(先设置类型,再设置标题) - - 修复云同步下载时文件夹名字不显示问题(侧边栏依赖SNIPPET) - - 更新项目统计:数据库版本 V12 → V13,note表字段 22 → 25 - - 添加云同步核心文件清单:UserAuthManager、SyncManager、CloudDatabaseHelper、CloudNote等 - - 更新技术债务清理:添加云同步优化项(冲突解决UI、远程登出、同步失败重试) - - 保留未完成项:菜单栏与侧边栏功能同步仍需处理 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f855d66..0000000 --- a/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "git", - "lockfileVersion": 3, - "requires": true, - "packages": {} -} diff --git a/run.log b/run.log deleted file mode 100644 index 3629459..0000000 --- a/run.log +++ /dev/null @@ -1,10 +0,0 @@ -2026-01-31 21:21:38.886 6495-6667 UserAuthManager net.micode.notes E Login error - java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /api/a... - at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1261) - at okhttp3.HttpUrl$Companion.get(HttpUrl.kt:1634) - at okhttp3.Request$Builder.url(Request.kt:184) - at net.micode.notes.auth.UserAuthManager.lambda$login$1$net-micode-notes-auth-UserAuthManager(UserAuthManager.java:212) - at net.micode.notes.auth.UserAuthManager$$ExternalSyntheticLambda2.run(D8$$SyntheticClass:0) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) - at java.lang.Thread.run(Thread.java:920) \ No newline at end of file