|
|
|
|
@ -0,0 +1,757 @@
|
|
|
|
|
# Xiaomi Notes 功能扩展规划(精简版)
|
|
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
本文档规划了小米笔记应用的潜在功能扩展,按优先级和时间线组织。核心功能优先,高级功能作为后续迭代。
|
|
|
|
|
|
|
|
|
|
## 项目当前状态(2026-01-21)
|
|
|
|
|
|
|
|
|
|
### 已实现的核心功能 ✅
|
|
|
|
|
|
|
|
|
|
**基础功能**:
|
|
|
|
|
- ✅ 笔记创建和编辑
|
|
|
|
|
- ✅ 笔记列表显示
|
|
|
|
|
- ✅ 文件夹管理(树形结构、展开收起、面包屑导航)
|
|
|
|
|
- ✅ 笔记提醒(闹钟功能)
|
|
|
|
|
- ✅ 笔记背景颜色(5种颜色)
|
|
|
|
|
- ✅ 笔记字体样式(4种大小)
|
|
|
|
|
- ✅ 本地数据存储(SQLite + ContentProvider)
|
|
|
|
|
|
|
|
|
|
**高级功能**:
|
|
|
|
|
- ✅ MVVM架构重构(ViewModel + Repository Pattern)
|
|
|
|
|
- ✅ Google Tasks云同步
|
|
|
|
|
- ✅ 密码保护(图案锁 + 密码验证)
|
|
|
|
|
- ✅ 笔记锁定功能
|
|
|
|
|
- ✅ 笔记置顶功能
|
|
|
|
|
- ✅ 数据备份和恢复
|
|
|
|
|
- ✅ 桌面小部件(2x2, 4x4)
|
|
|
|
|
- ✅ 搜索功能(ContentProvider支持)
|
|
|
|
|
- ✅ 回收站功能
|
|
|
|
|
- ✅ 多语言支持(简体中文、繁体中文、英文)
|
|
|
|
|
- ✅ 材料设计UI(Material Design)
|
|
|
|
|
|
|
|
|
|
**技术架构**:
|
|
|
|
|
- ✅ MVVM架构模式
|
|
|
|
|
- ✅ Repository数据访问层
|
|
|
|
|
- ✅ LiveData响应式数据更新
|
|
|
|
|
- ✅ ContentProvider标准API
|
|
|
|
|
- ✅ SQLiteOpenHelper数据库管理
|
|
|
|
|
- ✅ ExecutorService异步操作
|
|
|
|
|
- ✅ 48个Java源文件
|
|
|
|
|
- ✅ 135个资源文件
|
|
|
|
|
- ✅ 数据库版本5(含10个触发器)
|
|
|
|
|
|
|
|
|
|
### 项目统计
|
|
|
|
|
|
|
|
|
|
| 类别 | 数量 | 说明 |
|
|
|
|
|
|------|-------|------|
|
|
|
|
|
| Java源文件 | 48个 | 包括data、ui、viewmodel、model、tool、widget、gtask |
|
|
|
|
|
| 资源文件 | 135个 | layout、values、drawable、menu、xml、raw |
|
|
|
|
|
| Android组件 | 14个 | 8个Activity、3个Receiver、1个Service、2个Widget |
|
|
|
|
|
| 测试文件 | 4个 | 1个单元测试、2个数据层测试、1个集成测试 |
|
|
|
|
|
| 数据库表 | 2个 | note表(21字段)、data表(11字段) |
|
|
|
|
|
| 系统文件夹 | 4个 | 根(0)、临时(-1)、通话记录(-2)、回收站(-3) |
|
|
|
|
|
|
|
|
|
|
## 功能分类
|
|
|
|
|
|
|
|
|
|
### 核心功能 (Phase 1 - 已完成)
|
|
|
|
|
- ✅ 笔记创建和编辑
|
|
|
|
|
- ✅ 笔记列表显示
|
|
|
|
|
- ✅ 文件夹管理(树形结构、面包屑导航)
|
|
|
|
|
- ✅ 笔记提醒(闹钟)
|
|
|
|
|
- ✅ 笔记背景颜色(黄/红/蓝/绿/白)
|
|
|
|
|
- ✅ 笔记字体样式(小/中/大/超大)
|
|
|
|
|
- ✅ 本地数据存储(SQLite + ContentProvider)
|
|
|
|
|
- ✅ 笔记锁定功能
|
|
|
|
|
- ✅ 笔记置顶功能
|
|
|
|
|
- ✅ 回收站功能
|
|
|
|
|
- ✅ Google Tasks同步
|
|
|
|
|
|
|
|
|
|
## 短期扩展 (Phase 2 - 1-2个月)
|
|
|
|
|
|
|
|
|
|
### P0 - 必须实现
|
|
|
|
|
|
|
|
|
|
#### 2.1 搜索功能增强 ⚠️ 部分实现
|
|
|
|
|
**描述**: 提供强大的搜索功能,支持全文搜索、筛选和排序
|
|
|
|
|
|
|
|
|
|
**当前状态**:
|
|
|
|
|
- ✅ 基础搜索功能(ContentProvider支持search URI)
|
|
|
|
|
- ✅ 搜索建议功能
|
|
|
|
|
- ❌ 搜索历史记录
|
|
|
|
|
- ❌ 高级筛选选项
|
|
|
|
|
- ❌ 搜索结果高亮
|
|
|
|
|
|
|
|
|
|
**待实现功能点**:
|
|
|
|
|
- [ ] 搜索历史记录(本地存储常用搜索词)
|
|
|
|
|
- [ ] 搜索结果高亮显示
|
|
|
|
|
- [ ] 搜索频率排序
|
|
|
|
|
|
|
|
|
|
**技术方案**:
|
|
|
|
|
- 使用 SharedPreferences 存储搜索历史
|
|
|
|
|
- 扩展 NotesRepository 搜索逻辑
|
|
|
|
|
- 实现搜索 UI 筛选面板
|
|
|
|
|
|
|
|
|
|
**优先级**: 高
|
|
|
|
|
**工作量**: 2-3天
|
|
|
|
|
|
|
|
|
|
#### 2.2 导入导出功能增强 ✅ 已实现基础版本
|
|
|
|
|
**描述**: 支持笔记的导入导出,便于数据迁移和分享
|
|
|
|
|
|
|
|
|
|
**用户需求**: 希望可以实现与没有应用的人分享也能有应用类似的便签显示效果
|
|
|
|
|
|
|
|
|
|
**当前状态**:
|
|
|
|
|
- ✅ 数据备份功能(BackupUtils.java)
|
|
|
|
|
- ✅ 数据恢复功能
|
|
|
|
|
- ❌ 导出为便签图片格式(便于分享给非用户)
|
|
|
|
|
- ❌ 导出为 Markdown/TXT/JSON
|
|
|
|
|
|
|
|
|
|
**待实现功能点**:
|
|
|
|
|
- [ ] 导出为便签图片格式(类似应用内笔记卡片样式)
|
|
|
|
|
- [ ] 支持自定义背景颜色
|
|
|
|
|
- [ ] 支持字体大小选择
|
|
|
|
|
- [ ] 支持水印(可选)
|
|
|
|
|
- [ ] 高分辨率导出(分享清晰)
|
|
|
|
|
- [ ] 导出为 Markdown 格式
|
|
|
|
|
- [ ] 导出为 TXT 格式
|
|
|
|
|
- [ ] 导出为 JSON 格式
|
|
|
|
|
- [ ] 批量导出选择界面
|
|
|
|
|
- [ ] 导入 JSON 格式
|
|
|
|
|
- [ ] 导入验证和冲突处理
|
|
|
|
|
|
|
|
|
|
**技术方案**:
|
|
|
|
|
- 使用现有的 BackupUtils 基础
|
|
|
|
|
- 使用 Canvas 绘制便签卡片并保存为图片
|
|
|
|
|
- 集成 Markdown 处理库
|
|
|
|
|
- 实现文件选择器(Storage Access Framework)
|
|
|
|
|
- 添加分享功能(Intent.ACTION_SEND)
|
|
|
|
|
|
|
|
|
|
**优先级**: 高
|
|
|
|
|
**工作量**: 3-4天
|
|
|
|
|
|
|
|
|
|
#### 2.3 撤回功能
|
|
|
|
|
**描述**: 支持简单的笔记撤回操作
|
|
|
|
|
|
|
|
|
|
**功能点**:
|
|
|
|
|
- [ ] 撤回上一次编辑
|
|
|
|
|
- [ ] 撤回历史栈(可连续撤回10-20次)
|
|
|
|
|
- [ ] 重做功能
|
|
|
|
|
- [ ] 撤回/重做状态提示
|
|
|
|
|
- [ ] 清空撤回历史
|
|
|
|
|
|
|
|
|
|
**技术方案**:
|
|
|
|
|
- 实现 UndoStack 数据结构
|
|
|
|
|
- 在 NoteEditText 中记录编辑历史
|
|
|
|
|
- 使用 Command Pattern 实现撤回逻辑
|
|
|
|
|
- 添加撤回/重做 UI 按钮
|
|
|
|
|
|
|
|
|
|
**优先级**: 中
|
|
|
|
|
**工作量**: 2-3天
|
|
|
|
|
|
|
|
|
|
### 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)
|
|
|
|
|
- [ ] 快捷手势(左滑删除、右滑置顶)
|
|
|
|
|
|
|
|
|
|
**优先级**: 低
|
|
|
|
|
**工作量**: 2天
|
|
|
|
|
|
|
|
|
|
## 中期扩展 (Phase 3 - 3-4个月)
|
|
|
|
|
|
|
|
|
|
### P1 - 应该实现
|
|
|
|
|
|
|
|
|
|
#### 3.1 富文本编辑
|
|
|
|
|
**描述**: 增强文本编辑功能,支持多种格式
|
|
|
|
|
|
|
|
|
|
**功能点**:
|
|
|
|
|
- [ ] 粗体、斜体、下划线
|
|
|
|
|
- [ ] 删除线
|
|
|
|
|
- [ ] 标题层级 (H1-H6)
|
|
|
|
|
- [ ] 列表(无序、有序、检查列表)
|
|
|
|
|
- [ ] 引用块
|
|
|
|
|
- [ ] 代码块
|
|
|
|
|
- [ ] 链接
|
|
|
|
|
- [ ] 分割线
|
|
|
|
|
- [ ] 文本颜色
|
|
|
|
|
- [ ] 文本背景色
|
|
|
|
|
|
|
|
|
|
**技术方案**:
|
|
|
|
|
- 集成富文本编辑库(如 RichEditor、SpannableStringBuilder)
|
|
|
|
|
- 或使用 Markdown 渲染器(如 Markwon)
|
|
|
|
|
- 实现格式工具栏
|
|
|
|
|
- 扩展 NoteEditText.java 支持富文本
|
|
|
|
|
|
|
|
|
|
**优先级**: 高
|
|
|
|
|
**工作量**: 4-5天
|
|
|
|
|
|
|
|
|
|
#### 3.2 图片附件
|
|
|
|
|
**描述**: 支持在笔记中插入图片
|
|
|
|
|
|
|
|
|
|
**功能点**:
|
|
|
|
|
- [ ] 从相册选择图片
|
|
|
|
|
- [ ] 拍照插入
|
|
|
|
|
- [ ] 图片裁剪
|
|
|
|
|
- [ ] 图片压缩
|
|
|
|
|
- [ ] 图片预览(全屏查看)
|
|
|
|
|
- [ ] 图片删除
|
|
|
|
|
- [ ] 图片大小调整
|
|
|
|
|
- [ ] 图片旋转
|
|
|
|
|
- [ ] 图片备注
|
|
|
|
|
|
|
|
|
|
**技术方案**:
|
|
|
|
|
- 使用 ContentResolver 访问图片
|
|
|
|
|
- 集成图片裁剪库(UCrop 或 Android Image Cropper)
|
|
|
|
|
- 集成图片加载库(Glide 或 Coil)
|
|
|
|
|
- 扩展 data 表支持图片存储(mime_type = "image/*")
|
|
|
|
|
- 创建图片查看器 Activity
|
|
|
|
|
|
|
|
|
|
**优先级**: 高
|
|
|
|
|
**工作量**: 4-5天
|
|
|
|
|
|
|
|
|
|
### 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 任务清单
|
|
|
|
|
**描述**: 在笔记中创建待办事项清单
|
|
|
|
|
|
|
|
|
|
**功能点**:
|
|
|
|
|
- [ ] 添加任务项(- [ ] 语法)
|
|
|
|
|
- [ ] 标记完成/未完成
|
|
|
|
|
- [ ] 任务优先级(高/中/低)
|
|
|
|
|
- [ ] 任务截止日期
|
|
|
|
|
- [ ] 任务提醒
|
|
|
|
|
- [ ] 任务统计(完成率)
|
|
|
|
|
- [ ] 过滤已完成任务
|
|
|
|
|
- [ ] 任务拖拽排序
|
|
|
|
|
|
|
|
|
|
**技术方案**:
|
|
|
|
|
- 扩展 data 表支持任务类型(mime_type = "text/x-todo")
|
|
|
|
|
- 实现任务 UI 组件(TodoItemView)
|
|
|
|
|
- 扩展 NoteEditText 解析任务语法
|
|
|
|
|
- 集成现有提醒功能
|
|
|
|
|
|
|
|
|
|
**优先级**: 中
|
|
|
|
|
**工作量**: 3-4天
|
|
|
|
|
|
|
|
|
|
## 长期扩展 (Phase 4 - 6个月+)
|
|
|
|
|
|
|
|
|
|
### P2 - 可以实现
|
|
|
|
|
|
|
|
|
|
#### 4.1 主题和自定义 ⚠️ 部分实现
|
|
|
|
|
**描述**: 提供更多主题和界面自定义选项
|
|
|
|
|
|
|
|
|
|
**用户需求**: 自定义壁纸
|
|
|
|
|
|
|
|
|
|
**当前状态**:
|
|
|
|
|
- ✅ 笔记背景颜色(5种)
|
|
|
|
|
- ✅ 字体大小(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 云同步和账号系统 ✅ 已实现基础版本
|
|
|
|
|
**描述**: 完善的数据备份和云同步机制
|
|
|
|
|
|
|
|
|
|
**用户需求**: 实现注册、登录和云同步
|
|
|
|
|
|
|
|
|
|
**当前状态**:
|
|
|
|
|
- ✅ Google Tasks 同步(已有账号系统)
|
|
|
|
|
- ✅ 手动备份(BackupUtils.java)
|
|
|
|
|
- ✅ 手动恢复
|
|
|
|
|
- ❌ 自定义账号系统(注册/登录)
|
|
|
|
|
- ❌ 云备份到自建服务器
|
|
|
|
|
- ❌ 多设备同步
|
|
|
|
|
|
|
|
|
|
**待实现功能点**:
|
|
|
|
|
- [ ] 自定义账号系统
|
|
|
|
|
- [ ] 用户注册(手机号/邮箱)
|
|
|
|
|
- [ ] 用户登录(密码 + 验证码)
|
|
|
|
|
- [ ] 密码找回
|
|
|
|
|
- [ ] 账号注销
|
|
|
|
|
- [ ] 账号安全设置(修改密码、绑定手机号)
|
|
|
|
|
- [ ] 云同步到自建服务器
|
|
|
|
|
- [ ] 自动同步(实时或定时)
|
|
|
|
|
- [ ] 手动同步
|
|
|
|
|
- [ ] 同步冲突解决
|
|
|
|
|
- [ ] 同步状态显示
|
|
|
|
|
- [ ] 多设备管理
|
|
|
|
|
- [ ] 查看已登录设备
|
|
|
|
|
- [ ] 远程登出设备
|
|
|
|
|
- [ ] 设备命名
|
|
|
|
|
- [ ] 备份文件加密
|
|
|
|
|
- [ ] 端到端加密
|
|
|
|
|
- [ ] 数据传输加密(HTTPS + 证书固定)
|
|
|
|
|
|
|
|
|
|
**技术方案**:
|
|
|
|
|
- 设计服务端(Node.js + MongoDB/PostgreSQL)
|
|
|
|
|
- 实现 REST API(用户认证、数据同步)
|
|
|
|
|
- 客户端集成 Retrofit + OkHttp
|
|
|
|
|
- 使用 JWT 或 OAuth 进行认证
|
|
|
|
|
- 实现增量同步算法
|
|
|
|
|
- 扩展现有 BackupUtils.java
|
|
|
|
|
|
|
|
|
|
**优先级**: 中
|
|
|
|
|
**工作量**: 10-15天(含服务端开发)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 功能实现时间线(精简版)
|
|
|
|
|
|
|
|
|
|
### 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)
|
|
|
|
|
|
|
|
|
|
#### 中优先级
|
|
|
|
|
- [ ] 引入依赖注入框架(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. ✅ 备份和恢复功能
|
|
|
|
|
|
|
|
|
|
**关键成功因素**:
|
|
|
|
|
1. 优先实现用户最需要的功能(搜索、便签导出、智能识别)
|
|
|
|
|
2. 保持代码质量和可维护性(持续重构)
|
|
|
|
|
3. 持续收集用户反馈并迭代(数据驱动)
|
|
|
|
|
4. 平衡功能丰富度和简洁性(用户体验)
|
|
|
|
|
5. 注重性能和用户体验(响应速度、流畅度)
|
|
|
|
|
6. 稳健的架构设计(可扩展、可测试)
|
|
|
|
|
|
|
|
|
|
**下一步行动**:
|
|
|
|
|
1. 实施 Phase 2 P0 功能(搜索增强、便签导出、撤回功能)
|
|
|
|
|
2. 技术债务清理(ViewBinding、Kotlin 迁移)
|
|
|
|
|
3. 建立自动化测试体系(单元测试、集成测试)
|
|
|
|
|
4. 设置监控和分析(崩溃率、使用率)
|
|
|
|
|
5. 规划服务端开发(云同步、账号系统)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
**文档版本**: v3.0(精简版)
|
|
|
|
|
**更新日期**: 2026-01-21
|
|
|
|
|
**维护者**: Sisyphus AI Agent
|
|
|
|
|
**更新说明**: 根据用户反馈精简功能列表,移除不必要的生物识别和复杂版本历史,强调便签图片导出、智能识别和云同步功能
|