|
|
|
|
@ -1,133 +1,92 @@
|
|
|
|
|
# MiCode Notes - Modern Android Version
|
|
|
|
|
# 小米便签 (MiCode Notes)
|
|
|
|
|
|
|
|
|
|
## 📱 项目简介
|
|
|
|
|
## 项目简介
|
|
|
|
|
|
|
|
|
|
这是小米便签(MiCode Notes)的现代化版本,已从原始的Eclipse ADT项目迁移到现代的Android Studio Gradle构建系统。
|
|
|
|
|
小米便签是一款轻量级的便签应用,提供便签创建、编辑、管理等功能,支持文件夹分类、便签提醒、桌面小部件等特性。本项目是小米便签的开源版本,采用现代Android开发技术栈,基于MVC架构模式设计。
|
|
|
|
|
|
|
|
|
|
## 🔄 迁移说明
|
|
|
|
|
## 主要功能
|
|
|
|
|
|
|
|
|
|
### 原始项目问题
|
|
|
|
|
- 使用Eclipse ADT项目结构
|
|
|
|
|
- 基于非常老的Android API (minSdkVersion 14)
|
|
|
|
|
- 缺少现代Android项目必需的构建配置
|
|
|
|
|
- 无法在最新版Android Studio中正常运行
|
|
|
|
|
- **便签管理**:创建、编辑、删除便签
|
|
|
|
|
- **文件夹分类**:支持创建文件夹对便签进行分类管理
|
|
|
|
|
- **便签提醒**:可设置便签提醒时间,到点提醒
|
|
|
|
|
- **桌面小部件**:支持2x2和4x4两种尺寸的桌面小部件
|
|
|
|
|
- **便签搜索**:快速查找便签内容
|
|
|
|
|
- **背景颜色**:支持设置便签背景颜色,便于分类识别
|
|
|
|
|
- **文本导出**:支持将便签导出为文本文件
|
|
|
|
|
- **Google Task同步**:支持与Google Task同步(当前版本已禁用)
|
|
|
|
|
|
|
|
|
|
### 迁移改进
|
|
|
|
|
- ✅ 转换为标准Gradle项目结构
|
|
|
|
|
- ✅ 更新到现代Android API (minSdk 21, targetSdk 34)
|
|
|
|
|
- ✅ 添加Material Design支持
|
|
|
|
|
- ✅ 修复已废弃的API调用
|
|
|
|
|
- ✅ 添加现代Android构建配置
|
|
|
|
|
- ✅ 支持AndroidX库
|
|
|
|
|
## 系统架构
|
|
|
|
|
|
|
|
|
|
## 🏗️ 项目结构
|
|
|
|
|
项目采用MVC架构模式,主要分为以下几个模块:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
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)
|
|
|
|
|
- 📤 文本导出功能
|
|
|
|
|
- 🎨 多种背景颜色
|
|
|
|
|
### 数据层 (Model)
|
|
|
|
|
- **data包**:包含数据库相关类,如Notes、NotesDatabaseHelper和NotesProvider
|
|
|
|
|
- **model包**:定义核心数据模型,如Note和WorkingNote类
|
|
|
|
|
|
|
|
|
|
## 🔧 技术栈
|
|
|
|
|
### 视图层 (View)
|
|
|
|
|
- **ui包**:包含所有用户界面相关类,如NotesListActivity、NoteEditActivity等
|
|
|
|
|
- **widget包**:实现桌面小部件功能
|
|
|
|
|
|
|
|
|
|
- **语言**: Java
|
|
|
|
|
- **架构**: MVC
|
|
|
|
|
- **数据库**: SQLite
|
|
|
|
|
- **UI框架**: Material Design Components
|
|
|
|
|
- **同步**: Google Tasks API
|
|
|
|
|
- **构建工具**: Gradle
|
|
|
|
|
### 控制层 (Controller)
|
|
|
|
|
- **tool包**:提供工具类,如BackupUtils、DataUtils等
|
|
|
|
|
- **gtask包**:负责与Google Task同步的功能
|
|
|
|
|
|
|
|
|
|
## 📱 兼容性
|
|
|
|
|
## 技术特点
|
|
|
|
|
|
|
|
|
|
- **最低支持**: Android 5.0 (API 21)
|
|
|
|
|
- **目标版本**: Android 14 (API 34)
|
|
|
|
|
- **架构支持**: ARM, ARM64, x86, x86_64
|
|
|
|
|
- 使用ContentProvider提供统一的数据访问接口
|
|
|
|
|
- 采用SQLite数据库存储便签数据
|
|
|
|
|
- 使用触发器(Trigger)维护数据一致性
|
|
|
|
|
- 实现AppWidget提供桌面小部件功能
|
|
|
|
|
- 采用异步任务处理数据同步
|
|
|
|
|
|
|
|
|
|
## 🐛 已知问题
|
|
|
|
|
## 环境要求
|
|
|
|
|
|
|
|
|
|
1. **Google同步功能暂时禁用** - 为了确保项目能正常编译运行,暂时禁用了Google Tasks同步功能
|
|
|
|
|
2. 部分UI可能需要进一步适配Material Design
|
|
|
|
|
3. 某些老旧设备可能存在兼容性问题
|
|
|
|
|
- Android Studio 3.0+
|
|
|
|
|
- Android SDK API 21+
|
|
|
|
|
- JDK 8+
|
|
|
|
|
|
|
|
|
|
## ⚠️ 当前状态
|
|
|
|
|
## 安装与使用
|
|
|
|
|
|
|
|
|
|
- ✅ **核心功能正常** - 便签创建、编辑、删除、搜索等功能完全可用
|
|
|
|
|
- ✅ **现代化构建** - 使用最新的Gradle和Android构建工具
|
|
|
|
|
- ⚠️ **同步功能禁用** - Google Tasks同步功能暂时禁用,可在后续版本中重新启用
|
|
|
|
|
- ✅ **桌面小部件** - 2x2和4x4桌面小部件功能正常
|
|
|
|
|
1. 克隆项目到本地:
|
|
|
|
|
```
|
|
|
|
|
git clone https://bdgit.educoder.net/pgjkpzfyq/MiCode-Notes.git
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🤝 贡献指南
|
|
|
|
|
2. 使用Android Studio打开项目
|
|
|
|
|
|
|
|
|
|
1. Fork 项目
|
|
|
|
|
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
|
|
|
|
|
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
|
|
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
|
|
|
5. 创建 Pull Request
|
|
|
|
|
3. 构建并运行项目到模拟器或实际设备
|
|
|
|
|
|
|
|
|
|
## 📄 开源协议
|
|
|
|
|
## 主要类说明
|
|
|
|
|
|
|
|
|
|
本项目遵循 Apache License 2.0 协议。详见 [NOTICE](NOTICE) 文件。
|
|
|
|
|
| 包 | 类 | 主要作用 |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| data | Notes | 便签数据库,用于记录便签相关属性和数据 |
|
|
|
|
|
| data | NotesDatabaseHelper | 数据库帮助类,用于辅助创建、处理数据库的表目 |
|
|
|
|
|
| data | NotesProvider | 便签信息提供类,提供便签数据的访问接口 |
|
|
|
|
|
| model | Note | 便签模型类,表示便签的核心数据结构和操作方法 |
|
|
|
|
|
| model | WorkingNote | 工作便签类,在UI层和数据层之间提供便捷的接口 |
|
|
|
|
|
| ui | NotesListActivity | 便签列表界面,显示所有便签和文件夹 |
|
|
|
|
|
| ui | NoteEditActivity | 便签编辑界面,用于创建和编辑便签 |
|
|
|
|
|
| widget | NoteWidgetProvider | 桌面小部件提供者,管理便签小部件 |
|
|
|
|
|
| tool | BackupUtils | 备份工具类,提供便签数据的导出和备份功能 |
|
|
|
|
|
|
|
|
|
|
## 🙏 致谢
|
|
|
|
|
## 项目目录结构
|
|
|
|
|
|
|
|
|
|
- 原始项目由 MIUI 团队发起
|
|
|
|
|
- 现由 MiCode 社区维护
|
|
|
|
|
- 感谢所有贡献者的努力
|
|
|
|
|
```
|
|
|
|
|
app/src/main/
|
|
|
|
|
├── java/net/micode/notes/
|
|
|
|
|
│ ├── data/ # 数据库相关类
|
|
|
|
|
│ ├── gtask/ # Google Task同步相关类
|
|
|
|
|
│ │ ├── data/ # 同步数据模型
|
|
|
|
|
│ │ ├── exception/ # 异常处理类
|
|
|
|
|
│ │ └── remote/ # 远程同步类
|
|
|
|
|
│ ├── model/ # 核心数据模型
|
|
|
|
|
│ ├── tool/ # 工具类
|
|
|
|
|
│ ├── ui/ # 用户界面类
|
|
|
|
|
│ └── widget/ # 桌面小部件类
|
|
|
|
|
└── res/ # 资源文件
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 📞 支持
|
|
|
|
|
## 开源协议
|
|
|
|
|
|
|
|
|
|
- **Bug反馈**: [GitHub Issues](https://github.com/MiCode/Notes/issues)
|
|
|
|
|
- **功能建议**: [MiCode论坛](http://micode.net/forum.php?mod=forumdisplay&fid=38)
|
|
|
|
|
- **文档**: 查看项目Wiki
|
|
|
|
|
本项目遵循Apache License 2.0协议。
|