|
|
|
@ -1,133 +1,129 @@
|
|
|
|
|
# MiCode Notes - Modern Android Version
|
|
|
|
|
|
|
|
|
|
## 📱 项目简介
|
|
|
|
|
|
|
|
|
|
这是小米便签(MiCode Notes)的现代化版本,已从原始的Eclipse ADT项目迁移到现代的Android Studio Gradle构建系统。
|
|
|
|
|
|
|
|
|
|
## 🔄 迁移说明
|
|
|
|
|
|
|
|
|
|
### 原始项目问题
|
|
|
|
|
- 使用Eclipse ADT项目结构
|
|
|
|
|
- 基于非常老的Android API (minSdkVersion 14)
|
|
|
|
|
- 缺少现代Android项目必需的构建配置
|
|
|
|
|
- 无法在最新版Android Studio中正常运行
|
|
|
|
|
|
|
|
|
|
### 迁移改进
|
|
|
|
|
- ✅ 转换为标准Gradle项目结构
|
|
|
|
|
- ✅ 更新到现代Android API (minSdk 21, targetSdk 34)
|
|
|
|
|
- ✅ 添加Material Design支持
|
|
|
|
|
- ✅ 修复已废弃的API调用
|
|
|
|
|
- ✅ 添加现代Android构建配置
|
|
|
|
|
- ✅ 支持AndroidX库
|
|
|
|
|
|
|
|
|
|
## 🏗️ 项目结构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
MiCode-Notes/
|
|
|
|
|
├── app/ # 主应用模块
|
|
|
|
|
│ ├── src/main/
|
|
|
|
|
│ │ ├── java/ # Java源代码
|
|
|
|
|
│ │ ├── res/ # 资源文件
|
|
|
|
|
│ │ └── AndroidManifest.xml # 应用清单
|
|
|
|
|
│ ├── build.gradle # 模块构建配置
|
|
|
|
|
│ └── proguard-rules.pro # ProGuard规则
|
|
|
|
|
├── gradle/ # Gradle Wrapper
|
|
|
|
|
├── build.gradle # 项目构建配置
|
|
|
|
|
├── settings.gradle # 项目设置
|
|
|
|
|
└── gradle.properties # Gradle属性
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🛠️ 构建要求
|
|
|
|
|
|
|
|
|
|
- **Android Studio**: Arctic Fox (2020.3.1) 或更高版本
|
|
|
|
|
- **Gradle**: 8.2
|
|
|
|
|
- **Android Gradle Plugin**: 8.2.0
|
|
|
|
|
- **Java**: JDK 8 或更高版本
|
|
|
|
|
- **Android SDK**: API 34
|
|
|
|
|
|
|
|
|
|
## 🚀 快速开始
|
|
|
|
|
|
|
|
|
|
### 1. 克隆项目
|
|
|
|
|
```bash
|
|
|
|
|
git clone <repository-url>
|
|
|
|
|
cd Notes-master
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2. 在Android Studio中打开
|
|
|
|
|
1. 启动Android Studio
|
|
|
|
|
2. 选择 "Open an existing Android Studio project"
|
|
|
|
|
3. 选择项目根目录
|
|
|
|
|
4. 等待Gradle同步完成
|
|
|
|
|
|
|
|
|
|
### 3. 构建项目
|
|
|
|
|
```bash
|
|
|
|
|
./gradlew build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4. 运行应用
|
|
|
|
|
```bash
|
|
|
|
|
./gradlew installDebug
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 📋 主要功能
|
|
|
|
|
|
|
|
|
|
- 📝 便签创建、编辑、删除
|
|
|
|
|
- 📁 文件夹管理和分类
|
|
|
|
|
- 🔍 便签搜索功能
|
|
|
|
|
- ⏰ 提醒功能
|
|
|
|
|
- 🔄 Google Task同步
|
|
|
|
|
- 🏠 桌面小部件 (2x2, 4x4)
|
|
|
|
|
- 📤 文本导出功能
|
|
|
|
|
- 🎨 多种背景颜色
|
|
|
|
|
|
|
|
|
|
## 🔧 技术栈
|
|
|
|
|
|
|
|
|
|
- **语言**: Java
|
|
|
|
|
- **架构**: MVC
|
|
|
|
|
- **数据库**: SQLite
|
|
|
|
|
- **UI框架**: Material Design Components
|
|
|
|
|
- **同步**: Google Tasks API
|
|
|
|
|
- **构建工具**: Gradle
|
|
|
|
|
|
|
|
|
|
## 📱 兼容性
|
|
|
|
|
|
|
|
|
|
- **最低支持**: Android 5.0 (API 21)
|
|
|
|
|
- **目标版本**: Android 14 (API 34)
|
|
|
|
|
- **架构支持**: ARM, ARM64, x86, x86_64
|
|
|
|
|
|
|
|
|
|
## 🐛 已知问题
|
|
|
|
|
|
|
|
|
|
1. **Google同步功能暂时禁用** - 为了确保项目能正常编译运行,暂时禁用了Google Tasks同步功能
|
|
|
|
|
2. 部分UI可能需要进一步适配Material Design
|
|
|
|
|
3. 某些老旧设备可能存在兼容性问题
|
|
|
|
|
|
|
|
|
|
## ⚠️ 当前状态
|
|
|
|
|
|
|
|
|
|
- ✅ **核心功能正常** - 便签创建、编辑、删除、搜索等功能完全可用
|
|
|
|
|
- ✅ **现代化构建** - 使用最新的Gradle和Android构建工具
|
|
|
|
|
- ⚠️ **同步功能禁用** - Google Tasks同步功能暂时禁用,可在后续版本中重新启用
|
|
|
|
|
- ✅ **桌面小部件** - 2x2和4x4桌面小部件功能正常
|
|
|
|
|
|
|
|
|
|
## 🤝 贡献指南
|
|
|
|
|
|
|
|
|
|
1. Fork 项目
|
|
|
|
|
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
|
|
|
|
|
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
|
|
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
|
|
|
5. 创建 Pull Request
|
|
|
|
|
|
|
|
|
|
## 📄 开源协议
|
|
|
|
|
|
|
|
|
|
本项目遵循 Apache License 2.0 协议。详见 [NOTICE](NOTICE) 文件。
|
|
|
|
|
|
|
|
|
|
## 🙏 致谢
|
|
|
|
|
|
|
|
|
|
- 原始项目由 MIUI 团队发起
|
|
|
|
|
- 现由 MiCode 社区维护
|
|
|
|
|
- 感谢所有贡献者的努力
|
|
|
|
|
|
|
|
|
|
## 📞 支持
|
|
|
|
|
|
|
|
|
|
- **Bug反馈**: [GitHub Issues](https://github.com/MiCode/Notes/issues)
|
|
|
|
|
- **功能建议**: [MiCode论坛](http://micode.net/forum.php?mod=forumdisplay&fid=38)
|
|
|
|
|
- **文档**: 查看项目Wiki
|
|
|
|
|
# 小米便签应用
|
|
|
|
|
|
|
|
|
|
## 项目概述
|
|
|
|
|
|
|
|
|
|
小米便签是一款功能丰富的笔记应用,支持创建、编辑、分类和同步笔记。本应用提供了直观的用户界面,让用户可以轻松管理日常记事、待办事项和重要信息。
|
|
|
|
|
|
|
|
|
|
## 主要功能
|
|
|
|
|
|
|
|
|
|
- **笔记管理**:创建、编辑、删除和查看笔记
|
|
|
|
|
- **文件夹组织**:将笔记分类到不同文件夹
|
|
|
|
|
- **提醒功能**:为笔记设置时间提醒
|
|
|
|
|
- **通话记录**:支持通话记录笔记
|
|
|
|
|
- **背景颜色**:自定义笔记背景颜色
|
|
|
|
|
- **Google账号同步**:支持与Google任务同步
|
|
|
|
|
- **小部件支持**:桌面小部件快速访问笔记
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
项目采用MVC架构,主要分为以下几个部分:
|
|
|
|
|
|
|
|
|
|
### 数据层 (Model)
|
|
|
|
|
|
|
|
|
|
- **数据结构**:`Notes.java` 定义了应用的数据结构、URI和列名
|
|
|
|
|
- **数据库**:`NotesDatabaseHelper.java` 负责创建和升级数据库
|
|
|
|
|
- **内容提供者**:`NotesProvider.java` 处理笔记数据的CRUD操作
|
|
|
|
|
- **联系人管理**:`Contact.java` 处理电话号码与联系人的映射
|
|
|
|
|
|
|
|
|
|
### 模型层 (Model)
|
|
|
|
|
|
|
|
|
|
- **笔记模型**:`Note.java` 管理笔记数据的操作
|
|
|
|
|
- **工作笔记**:`WorkingNote.java` 管理当前编辑的笔记
|
|
|
|
|
|
|
|
|
|
### 工具类 (Utilities)
|
|
|
|
|
|
|
|
|
|
- **资源解析器**:`ResourceParser.java` 管理背景颜色、字体大小等资源
|
|
|
|
|
- **字符串工具**:`GTaskStringUtils.java` 定义同步相关常量
|
|
|
|
|
- **数据工具**:`DataUtils.java` 提供笔记数据的批量操作方法
|
|
|
|
|
- **备份工具**:`BackupUtils.java` 将笔记导出到SD卡
|
|
|
|
|
|
|
|
|
|
### 用户界面层 (View/Controller)
|
|
|
|
|
|
|
|
|
|
- **笔记列表**:`NotesListActivity.java` 显示笔记列表和文件夹列表
|
|
|
|
|
- **笔记编辑**:`NoteEditActivity.java` 处理笔记的编辑、保存、删除等操作
|
|
|
|
|
- **提醒功能**:
|
|
|
|
|
- `AlarmAlertActivity.java` 显示提醒对话框并播放提醒音效
|
|
|
|
|
- `AlarmInitReceiver.java` 重新设置笔记的提醒闹钟
|
|
|
|
|
- `AlarmReceiver.java` 接收闹钟触发的广播并启动提醒活动
|
|
|
|
|
- **日期时间选择**:
|
|
|
|
|
- `DateTimePicker.java` 日期时间选择器控件
|
|
|
|
|
- `DateTimePickerDialog.java` 日期时间选择对话框
|
|
|
|
|
- **列表适配器**:
|
|
|
|
|
- `NotesListAdapter.java` 笔记列表适配器
|
|
|
|
|
- `NotesListItem.java` 笔记列表项视图
|
|
|
|
|
- `FoldersListAdapter.java` 文件夹列表适配器
|
|
|
|
|
- **自定义控件**:
|
|
|
|
|
- `NoteEditText.java` 自定义编辑框,支持特殊按键处理和链接识别
|
|
|
|
|
- `DropdownMenu.java` 下拉菜单控件
|
|
|
|
|
- **设置界面**:`NotesPreferenceActivity.java` 管理应用设置,包括账号同步和背景颜色
|
|
|
|
|
|
|
|
|
|
## 功能详解
|
|
|
|
|
|
|
|
|
|
### 笔记管理
|
|
|
|
|
|
|
|
|
|
应用支持创建普通笔记和待办事项清单。用户可以编辑笔记内容,设置背景颜色,并将笔记分类到不同文件夹。笔记列表按修改时间排序,方便用户查找最近编辑的内容。
|
|
|
|
|
|
|
|
|
|
### 提醒功能
|
|
|
|
|
|
|
|
|
|
用户可以为重要笔记设置时间提醒。当提醒时间到达时,应用会显示提醒对话框并播放提醒音效,确保用户不会错过重要事项。
|
|
|
|
|
|
|
|
|
|
### Google账号同步
|
|
|
|
|
|
|
|
|
|
应用支持与Google任务同步,用户可以在设置中选择Google账号进行同步。同步功能确保用户的笔记可以在多个设备上访问和编辑。
|
|
|
|
|
|
|
|
|
|
### 小部件支持
|
|
|
|
|
|
|
|
|
|
应用提供桌面小部件,让用户可以直接从桌面查看和访问笔记,无需打开应用。
|
|
|
|
|
|
|
|
|
|
## 使用方法
|
|
|
|
|
|
|
|
|
|
### 创建笔记
|
|
|
|
|
|
|
|
|
|
1. 在笔记列表界面点击"+"按钮
|
|
|
|
|
2. 输入笔记内容
|
|
|
|
|
3. 点击返回按钮自动保存
|
|
|
|
|
|
|
|
|
|
### 编辑笔记
|
|
|
|
|
|
|
|
|
|
1. 在笔记列表中点击要编辑的笔记
|
|
|
|
|
2. 修改笔记内容
|
|
|
|
|
3. 点击返回按钮自动保存
|
|
|
|
|
|
|
|
|
|
### 设置提醒
|
|
|
|
|
|
|
|
|
|
1. 在编辑笔记界面点击菜单按钮
|
|
|
|
|
2. 选择"提醒"选项
|
|
|
|
|
3. 设置提醒日期和时间
|
|
|
|
|
4. 点击"确定"保存提醒
|
|
|
|
|
|
|
|
|
|
### 分类笔记
|
|
|
|
|
|
|
|
|
|
1. 在编辑笔记界面点击菜单按钮
|
|
|
|
|
2. 选择"移动到文件夹"选项
|
|
|
|
|
3. 选择目标文件夹或创建新文件夹
|
|
|
|
|
|
|
|
|
|
### 同步笔记
|
|
|
|
|
|
|
|
|
|
1. 进入设置界面
|
|
|
|
|
2. 在"账号"部分选择Google账号
|
|
|
|
|
3. 点击"立即同步"按钮开始同步
|
|
|
|
|
|
|
|
|
|
## 技术特点
|
|
|
|
|
|
|
|
|
|
- 使用ContentProvider管理数据,支持跨应用数据访问
|
|
|
|
|
- 采用BroadcastReceiver处理系统事件和提醒
|
|
|
|
|
- 实现自定义视图控件,提升用户体验
|
|
|
|
|
- 优化数据库操作,提高应用性能
|
|
|
|
|
- 支持多种笔记格式和样式
|
|
|
|
|
|
|
|
|
|
## 系统要求
|
|
|
|
|
|
|
|
|
|
- Android 4.0 (API级别14)或更高版本
|
|
|
|
|
- 至少10MB可用存储空间
|
|
|
|
|
- 可选:Google账号(用于同步功能)
|
|
|
|
|
|
|
|
|
|
## 开发环境
|
|
|
|
|
|
|
|
|
|
- Android Studio
|
|
|
|
|
- Java开发工具包 (JDK)
|
|
|
|
|
- Android SDK
|