Journal 是一款基于现代 Android 技术栈开发的智能日记应用,采用 Jetpack Compose 构建流畅的用户界面,集成 AI 写作助手 和 情感分析 功能,为用户提供智能化的日记记录体验。
- AI 写作助手: 集成百度千帆 API,支持基于历史日记和图片的智能内容生成
- 情感分析: 本地 TensorFlow Lite 模型 + 云端 API 双重情感识别
- 智能标签: 自动提取日记关键词和情感标签
- 个性化建议: 基于用户写作习惯的智能推荐
- 富文本编辑: 支持 Markdown 格式,提供丰富的文本编辑体验
- 多媒体支持: 图片附件管理,支持多张图片上传和预览
- 位置标记: 集成高德地图 SDK,自动或手动添加位置信息
- 日期自定义: 灵活的日期选择,支持补记历史日记
- 收藏系统: 标记重要日记,快速访问珍贵回忆
- 现代化 UI: 完全基于 Jetpack Compose 构建的流畅界面
- 手势交互: 直观的滑动操作,支持标记和删除
- 动画效果: 精心设计的过渡动画和交互反馈
- 响应式设计: 适配不同屏幕尺寸和方向
- 暗色主题: 支持系统主题切换
| 技术领域 | 采用技术 | 版本 |
|---|---|---|
| 开发语言 | Kotlin | 2.0.21 |
| UI 框架 | Jetpack Compose | 2025.03.01 |
| 架构模式 | MVVM + Clean Architecture | - |
| 依赖注入 | Hilt (Dagger) | 2.51.1 |
| 数据库 | Room | 2.6.1 |
| 网络请求 | Retrofit + OkHttp | 2.11.0 / 4.12.0 |
| 异步处理 | Kotlin Coroutines | - |
| 图片加载 | Coil | 3.1.0 |
| AI 模型 | TensorFlow Lite | 2.15.0 |
┌─────────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Compose │ │ ViewModels │ │ UI Components │ │
│ │ Screens │ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Domain Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Use Cases │ │ Repositories│ │ Models │ │
│ │ │ │ (Interfaces)│ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Data Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Room │ │ Remote │ │ Utils │ │
│ │ Database │ │ API │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
- AIWritingViewModel: 管理 AI 写作功能的状态和逻辑
- SentimentAnalysis: 本地情感分析模型集成
- SentimentApiService: 云端情感分析 API 调用
- 智能推荐引擎: 基于用户行为的个性化内容推荐
- Room Database: 本地数据持久化,支持数据库版本迁移
- Repository Pattern: 数据访问抽象层,统一本地和远程数据源
- 数据同步: 自动备份和云端同步机制
- 权限管理: 动态权限请求和处理
- 图片处理: Base64 编码、压缩和缓存管理
- 位置服务: 高德地图集成,位置获取和地址解析
- 主题系统: 动态主题切换和自定义配色
- 懒加载: 使用 Paging 3 实现高效的列表分页加载
- 内存管理: 图片缓存策略和内存泄漏防护
- 构建优化: R8 代码混淆和资源压缩
- APK 拆分: 基于 ABI 的多 APK 构建策略
- 数据加密: 敏感数据本地加密存储
- 网络安全: HTTPS 强制和证书固定
- 权限最小化: 按需申请和使用权限
- 模块化设计: 清晰的代码组织和模块分离
- 依赖注入: Hilt 提供的编译时依赖检查
- 类型安全: Kotlin 的空安全和类型推断
- 协程支持: 结构化并发和异常处理
- 最低 Android 版本: API 28 (Android 9.0)
- 目标 Android 版本: API 35 (Android 15)
- 编译工具版本: AGP 8.9.0
- Kotlin 版本: 2.0.21
- Android Studio Ladybug | 2024.2.1+
- JDK 21+
- Android SDK 35+
- Gradle 8.9+
-
克隆项目
git clone https://github.com/yourusername/Journal.git cd Journal -
配置 API 密钥
- 在
app/src/main/kotlin/ovo/sypw/journal/common/APIKey.kt中配置相关 API 密钥 - 申请高德地图 API Key
- 配置百度千帆 API 访问权限
- 在
-
构建运行
./gradlew assembleDebug
本项目采用 MIT License 开源协议。