**版本: 1.1**
**日期: 2025年9月11日**
**更新日期: 2025年10月15日**

### 1. 项目概述

### 1.1. 项目背景

在快节奏的现代生活中，人们面临着各种情绪压力，但往往缺乏一个简单、直观且私密的情感表达渠道。“别摇小鸡”旨在通过一种新颖的物理交互方式——摇晃手机，帮助用户量化、记录并释放自己的情绪，让心情记录变得生动有趣。

### 1.2. 产品定位与目标

一款以“小鸡”为核心IP形象的趣味性心情记录工具。

- **核心定位:** 你的随身情绪宣泄伙伴。
- 产品目标:
  - **近期目标:** 提供稳定、流畅的核心功能，让用户能够顺利完成“选择情绪 -> 摇晃记录 -> 添加详情 -> 保存”的全过程。打造可爱、治愈的品牌形象，吸引首批种子用户。
  - **远期目标:** 扩展情绪回顾与分析功能，构建一个正向的情感支持社区，提升用户粘性。

### 1.3. 目标用户

- **核心用户:** 16-28岁的年轻学生、职场新人。他们乐于尝试新鲜事物，注重个人感受，习惯使用手机记录生活，需要一个简单有趣的方式来管理自己的情绪。
- **次要用户:** 所有希望通过简单方式记录和了解自己情绪波动的用户。

### 2. UI/UX 设计规范

### 2.1. 核心形象：小鸡 (Piyo)

小鸡是整个App的灵魂，它的设计应遵循以下原则：

- **形象:** 简约、圆润、可爱。主体为鲜明的黄色，能唤起温暖、活泼的感觉。

- 动态效果:

   小鸡的动画是核心交互反馈。

  - **待机状态:** 在情绪选择页，小鸡会有轻微的呼吸、眨眼等待机动画。
  - **情绪状态:** 当用户选定一种情绪后，小鸡的表情和配饰会发生相应变化（例如，生气时头顶冒烟，悲伤时流泪）。
  - **摇晃状态:** 在摇晃过程中，小鸡会根据摇晃的激烈程度，呈现出从轻微晃动到头晕眼花的夸张动画效果。

### 2.2. 色彩体系

整体色调以温暖、治愈为主。主色调为小鸡的黄色，并为六种情绪设计了专属的辅助色系，确保视觉统一性。

| 情绪       | 代表色     | 十六进制色码  | 情绪描述             |
| ---------- | ---------- | ------------- | -------------------- |
| **主题色** | **小鸡黄** | **`#FFD954`** | **温暖、活力、核心** |
| 开心       | 活力橙     | `#FFAB76`     | 阳光、喜悦、温暖     |
| 生气       | 警告红     | `#D9534F`     | 愤怒、激烈、烦躁     |
| 悲伤       | 忧郁蓝     | `#6B7AFF`     | 沉静、伤感、低落     |
| 烦恼       | 浅熏紫     | `#A989C5`     | 焦虑、困惑、思索     |
| 孤单       | 深海青     | `#4E89AE`     | 孤独、冷静、疏离     |
| 害怕       | 中性灰     | `#888888`     | 不安、恐惧、紧张     |

### 2.3. 字体规范

- **中文字体:** 苹方-常规体 (PingFang SC) 或 思源黑体-常规体 (Source Han Sans)
- **英文字体/数字:** Inter / Montserrat
- **特点:** 字体应选择清晰易读的无衬线体，字号根据信息层级清晰划分。

### 3. 产品功能详述

### 3.1. 核心流程：记录心情

这是产品的核心功能闭环。

**流程:**`启动App` -> `进入主页/选择情绪` -> `进入准备页` -> `开始摇晃` -> `查看结果` -> `编辑详情页` -> `保存记录`

**3.1.1. 主页 - 情绪选择**

- 界面布局:
  - 屏幕中央是动态的小鸡形象。
  - 周围环绕/下方陈列六个情绪按钮，每个按钮包含情绪名称和代表性图标。
  - 底部有导航栏，通往“今日记录”和“我的”页面。
- 交互:
  - 用户点击某个情绪按钮，按钮呈现选中状态，中央的小鸡表情切换为对应情绪的可爱动画。
  - 再次点击可取消选择，或选择其他情绪。
  - 选定后，屏幕下方出现一个明确的“下一步”或“开始记录”按钮。

**3.1.2. 准备摇晃页**

- 界面布局:
  - 屏幕中央是进入特定情绪状态的小鸡。
  - 屏幕上出现清晰的引导文案，如“准备好了吗？请握紧手机，开始摇晃来捕捉你的【开心】情绪吧！”
- 交互:
  - 此页面作为用户摇晃前的过渡，给予用户明确的心理和动作准备。
  - 用户点击“开始”按钮后进入摇晃阶段。

**3.1.3. 摇晃捕捉页**

- 界面布局:
  - 整个屏幕成为交互区域。
  - 中央是小鸡，它会根据手机的晃动产生实时动画反馈。
  - 屏幕顶部或周围有一个进度条/能量环，用于实时可视化“心情值”的累积。
  - 屏幕下方有一个“结束”按钮。
- 交互与技术实现:
  - 调用手机的**陀螺仪和加速度传感器**来检测摇晃的幅度和频率。
  - **心情值算法 (示例):** `心情值 = SUM(摇晃事件的加速度 * 权重) / 时间`。摇晃越剧烈、时间越长，心情值越高。
  - 心情值实时反馈在进度条上，进度条的颜色会随着数值的增加，由浅变深。
  - 用户可以随时点击“结束”按钮来停止记录。
  - **安全机制:** 如果摇晃停止超过3-5秒，系统可以自动结束记录，防止误操作。

**3.1.4. 心情强度分级** 根据最终累积的“心情值”，系统自动判定情绪的激烈程度。

| 心情值范围  | 强度等级 | 界面显示         |
| ----------- | -------- | ---------------- |
| 1 - 1000    | 有些     | 有些开心         |
| 1001 - 3000 | 非常     | 非常开心         |
| 3001 - 6000 | 极度     | 极度开心         |
| 6001+       | 无法控制 | 无法控制的开心！ |

**3.1.5. 详情编辑与保存页**

- 界面布局:
  - 顶部显示本次记录的结果，如“**有些 开心**”，心情值为“**880**”。
  - 记录的日期和时间。
  - 一个大的文本输入框，提示用户“记录下此刻的想法吧...”。
  - 一个“添加图片”的按钮。
  - 底部是“保存”按钮。
- 交互:
  - 用户可以输入文字，或从相册选择/拍摄一张图片。
  - 点击“保存”，系统会弹出“保存成功”的提示，并自动跳转到当天的记录列表或日历视图。

### 3.2. 心情日历/回顾

- 界面布局:
  - 以月视图日历的形式展示。
  - 记录过心情的日期，会用当天主要情绪的代表色进行标记或填充一个小圆点。
  - 点击某个日期，下方会以卡片列表的形式展示当天的所有心情记录。
- 交互:
  - 用户可以轻松地切换月份，回顾过去的情绪变化。
  - 点击单条记录卡片，可以查看完整的心情详情（包括文字和图片）。

### 3.3. “我的”页面

- 功能:
  - **个人资料:** 设置昵称和头像。
  - **心情统计 (未来功能):** 以图表形式（如饼图、折线图）展示一段时间内的情绪分布和变化趋势。
  - **设置:** 通知、主题切换、关于我们、反馈等。

### 4. 技术架构与实现

### 4.1. 开发平台与技术栈

**平台选择:** Android原生开发（暂不开发iOS版本）
- **最低支持版本:** Android 5.0 (API 21+)
- **目标版本:** Android 13+ (API 33+)
- **开发语言:** Kotlin (主) + Java (兼容)

**核心技术栈:**
- **UI框架:** Android Jetpack (ViewModel, LiveData, Navigation)
- **动画引擎:** Lottie + Property Animation
- **传感器:** Android Sensor Framework (Accelerometer)
- **数据存储:** SQLite Room + SharedPreferences
- **图片处理:** Glide

### 4.2. 心情值算法 (V1.0简化版)

```
心情值 = Σ(加速度幅值) / 摇晃时间
加速度幅值 = √(x² + y² + z²)
```

**实现细节:**
- **采样频率:** 50Hz (每20ms采样一次)
- **最小摇晃时间:** 3秒
- **数据滤波:** 低通滤波器去除高频噪声
- **单位标准化:** 不同设备间的加速度值标准化处理

### 4.3. 数据库设计

```sql
-- 用户配置表
CREATE TABLE user_config (
  id INTEGER PRIMARY KEY,
  nickname TEXT,
  avatar_path TEXT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 心情记录表
CREATE TABLE mood_records (
  id INTEGER PRIMARY KEY,
  emotion_type TEXT NOT NULL,        -- 开心/生气/悲伤/烦恼/孤单/害怕
  intensity_level TEXT NOT NULL,     -- 有些/非常/极度/无法控制
  mood_value INTEGER NOT NULL,       -- 心情值数值
  note TEXT,                         -- 用户备注
  image_path TEXT,                   -- 图片路径 (V1.1功能)
  shake_duration_ms INTEGER,         -- 摇晃持续时间(毫秒)
  shake_data TEXT,                   -- 摇晃原始数据(JSON格式)
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 预留云端同步接口表 (V2.0)
CREATE TABLE sync_queue (
  id INTEGER PRIMARY KEY,
  record_id INTEGER,
  sync_status TEXT DEFAULT 'pending',
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
```

### 4.4. 非功能性需求

- **性能:** App启动时间 < 2秒，摇晃动画延迟 < 50ms
- **兼容性:** 支持Android 5.0+，覆盖95%以上Android设备
- **数据存储:** SQLite本地存储，预留云端同步接口
- **隐私:** 数据仅本地存储，明确告知用户隐私政策
- **电池优化:** 传感器使用时功耗控制，空闲时自动释放
- **权限管理:** 动态申请传感器权限，首次使用时引导用户授权

### 5. 版本规划与迭代路线

### 5.1. V1.0 - MVP核心功能 (当前开发版本)

**必须实现功能:**
- ✅ 六种基础情绪选择（开心、生气、悲伤、烦恼、孤单、害怕）
- ✅ 传感器摇晃检测与心情值计算
- ✅ 小鸡2D动画响应系统
- ✅ 心情记录保存（文字+心情值）
- ✅ 心情日历月视图展示
- ✅ 基础用户设置（昵称、头像）

**延后功能 (V1.1+):**
- ❌ 图片添加功能
- ❌ 心情统计图表
- ❌ 云端数据同步

### 5.2. V1.1 - 功能增强版 (预计2个月后)

**新增功能:**
- 📷 图片添加与编辑功能
- 📊 基础心情统计（饼图、趋势图）
- 🎨 更多小鸡动画效果和皮肤
- 🔔 心情记录提醒功能
- 🔧 心情值算法优化（基于用户数据）

### 5.3. V1.2 - 数据分析版 (预计6个月后)

**新增功能:**
- 📈 详细心情统计报告（周报/月报）
- 🏷️ 标签功能与事件分类
- 📱 数据导出功能（CSV格式）
- 🔄 云端数据同步选项
- 🎯 心情目标设置与追踪

### 5.4. V2.0 - 社区与商业化 (预计1年后)

**新增功能:**
- 👥 匿名情绪分享社区
- 🧘 正念引导与呼吸练习
- 💎 会员体系与高级功能
- 🤖 AI心情分析与建议
- 🎁 小鸡虚拟物品与装扮系统

### 5.5. 技术债务与优化

**持续优化项:**
- 传感器算法精准度提升
- 动画性能优化
- 电池消耗优化
- 不同Android设备的兼容性测试
- 用户隐私保护增强
