Skip to content

Repository files navigation

行为记录 (BehaviorTracker)

一款完全由AI构建的Android行为追踪应用,支持布尔值(打卡)和数值型记录,提供统计图表、提醒和数据导出/导入功能。

zread

功能特性

  • 行为管理:创建、编辑、归档自定义行为,支持8种颜色选择
  • 两种记录类型
    • 布尔型:打卡式记录(是/否),支持选择日期时间
    • 数值型:带单位的数值记录(如"ml"、"km"),支持备注
  • 统计与图表
    • 布尔型:连续打卡天数、最长连续、总次数
    • 数值型:日均值、总次数、总和
    • 动态图表(柱状图/折线图),支持7/30/90天时间范围
  • 提醒功能
    • 固定时间提醒:每日指定时间
    • 间隔提醒:在时间窗口内按间隔重复
    • 开机自动恢复提醒
  • 数据导出/导入:通过JSON格式完整备份和恢复数据(使用SAF,无需存储权限)
  • 主题设置:系统/浅色/深色模式切换,支持Material You动态配色

技术栈

类别 技术
语言 Java 21
最低SDK 33 (Android 13)
目标SDK 36
架构 MVVM (Activity + ViewModel + Repository)
数据库 Room 2.8.4
UI框架 Material Design 3, ViewBinding
图表 MPAndroidChart v3.1.0
序列化 Gson 2.13.2
后台任务 WorkManager 2.11.1
构建工具 Gradle 9.1.0

项目结构

app/src/main/java/com/github/timeaissr/behaviortracker/
├── data/                          # 数据层
│   ├── entity/                    # Room实体
│   │   ├── Behavior.java          # 行为实体
│   │   ├── Record.java            # 记录实体
│   │   ├── Reminder.java          # 提醒实体
│   │   ├── RecordType.java        # 记录类型枚举
│   │   └── ReminderType.java      # 提醒类型枚举
│   ├── dao/                       # 数据访问对象
│   │   ├── BehaviorDao.java
│   │   ├── RecordDao.java
│   │   └── ReminderDao.java
│   ├── converter/
│   │   └── Converters.java        # Room类型转换器
│   ├── repository/
│   │   └── BehaviorRepository.java # 统一数据仓库
│   └── AppDatabase.java           # Room数据库单例
├── ui/                            # 界面层
│   ├── main/                      # 主页
│   │   ├── MainActivity.java
│   │   ├── MainViewModel.java
│   │   └── BehaviorAdapter.java
│   ├── add/                       # 添加/编辑行为
│   │   ├── AddBehaviorActivity.java
│   │   ├── AddBehaviorViewModel.java
│   │   └── ColorPickerAdapter.java
│   ├── detail/                    # 行为详情与统计
│   │   ├── BehaviorDetailActivity.java
│   │   ├── DetailViewModel.java
│   │   └── RecordAdapter.java
│   └── settings/                  # 设置
│       └── SettingsActivity.java
├── notification/                  # 提醒通知
│   ├── BootReceiver.java          # 开机广播接收器
│   ├── ReminderReceiver.java      # 提醒广播接收器
│   └── ReminderScheduler.java     # 提醒调度器
├── export/                        # 数据导出/导入
│   ├── DataManager.java
│   └── ExportData.java
├── util/
│   └── DateUtils.java             # 日期工具类
└── BehaviorTrackerApp.java        # Application类

构建与运行

# 构建调试版本
./gradlew assembleDebug

# 构建发布版本(含ProGuard混淆)
./gradlew assembleRelease

# 运行单元测试
./gradlew test

# 运行仪器测试(需要设备/模拟器)
./gradlew connectedAndroidTest

# 运行单个测试类
./gradlew test --tests "com.github.timeaissr.behaviortracker.ExampleUnitTest"

# 清理并构建
./gradlew clean assembleDebug

# 安装到设备
./gradlew installDebug

数据库设计

Behavior(行为)

字段 类型 说明
id long (自增主键) 唯一标识
name String 行为名称
recordType RecordType BOOLEAN 或 NUMERIC
unit String (可空) 数值型单位
color String 卡片颜色(十六进制)
createdAt long 创建时间戳
archived boolean 软删除标记

Record(记录)

字段 类型 说明
id long (自增主键) 唯一标识
behaviorId long (外键) 关联行为
timestamp long 记录时间戳
value double 数值(布尔型固定为1.0)
note String (可空) 备注

Reminder(提醒)

字段 类型 说明
id long (自增主键) 唯一标识
behaviorId long (外键) 关联行为
active boolean 是否启用
type ReminderType FIXED_TIME 或 INTERVAL
timeOfDayMinutes int 固定时间(距午夜分钟数)
startTimeMinutes int 间隔窗口开始
endTimeMinutes int 间隔窗口结束
intervalMinutes int 间隔分钟数

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages