架构总览
BlinkLife Flutter 客户端分层架构:screens → services/utils → models → SQLite/文件系统
时间轴模型
三层 CustomPainter 绘制(片段/进度打点/Thumb)+ 磁吸算法 + 双 Model 状态分层
事件模型
DotRecord 是全系统核心数据单元,包含动作类型、时间戳、输入源和对齐逻辑
.blink 打点文件格式
自定义二进制格式:AES-256-CBC 加密 JSON + HMAC-SHA256 完整性校验,v1/v2 版本兼容
剪辑任务与批次机制
fire-and-forget 后台任务模式 + task_id 批次分组 + VideoClipTaskManager 全局单例
FFmpeg 剪辑管线
FFmpegKit 视频剪辑:input seeking + copy codec + concat demuxer 合集生成
蓝牙通信
BLE 蓝牙外设通信:Flutter 扫描连接 + 原生 GATT 按键监听 + KeepAlive 保活策略
数据库 Schema
SQLite 本地数据库 v13:5 个核心表 + 13 个版本的增量迁移历史
云同步架构
微信登录 + JWT 认证 + 单向打点数据同步 + 游客数据 claim
状态管理
PlaybackSession(高频播放状态)+ ReviewDetailData(低频页面数据)双 Model 分层
复盘页研发拆解
按 6 个模块拆解复盘页研发任务:数据模型、手表采集、同步落库、时间轴对齐、复盘页消费、AI 约束
数据存储与云同步方案
三层数据分级存储 + 软删除保护 + 传感器数据同步策略 + 数据恢复机制