docs: reorganize project documentation (#15)

## Summary
- add a root README with project overview, setup, usage, architecture, security, and contribution guidance
- replace stale planning and requirement notes with current 1.0 project overview
- update architecture and hardware validation docs to match the implemented app
- remove obsolete UI branch notes and the old Java/XML AsyncTask example
- remove the superpowers documentation and move vendor ABSDK references into docs/vendor
- preserve vendor Markdown and XLS content byte-for-byte

## Verification
- Markdown relative links checked
- vendor files verified as 100% Git renames
- git diff --check passed
- no application tests run; documentation-only change

Reviewed-on: #15
Co-authored-by: KremeCN <3265494849@qq.com>
This commit was merged in pull request #15.
This commit is contained in:
2026-08-28 10:57:47 +08:00
committed by KremeCN
parent 32c7d4f8cc
commit 0144ea992c
22 changed files with 497 additions and 5202 deletions
+75 -24
View File
@@ -1,38 +1,89 @@
# 发布版局域网硬件验证协议
# 正式版局域网硬件验收
## 目的与边界
本协议只用于获授权的隔离局域网。使用签名的 Release APK、已确认的测试账号和明确授权的实体设备;不得把测试扩展到未授权网络或设备。
本协议验证签名 Release APK 在已授权 ABox 局域网中的完整产品路径。本地体验和测试 Fake 不能替代真实硬件验收。
协议验证真实产品路径,不把本地体验或测试 Fake 的结果当作 ABox 硬件证据。每条记录使用脱敏 profile、设备和操作标识。
报告不得包含密码、Token、原始厂商响应、红外码值、完整网关地址或完整硬件标识。设备和 profile 使用脱敏别名。
## 执行前检查
- 确认 APK 签名、版本和提交号,记录到测试报告。
- 确认测试网络与设备均获授权,并记录网络的脱敏名称。
- 先使用已知无效凭据验证登录失败,再使用授权凭据登录。
- 检查当前 profile、会话状态和已配置设备目录;只验证用户明确配置的设备。
- 不在报告、截图、日志或缺陷单中保存密码、令牌、原始厂商响应、红外码值、完整网关地址或完整 IEEE 地址。
- 记录 App 版本、versionCode、Git 提交和 APK 签名摘要;
- 确认测试网络、账号、网关和实体设备均已授权;
- 确认 Android 通知权限和系统省电策略;
- 准备实际名称分别为 `智能插座`、`温湿度传感器` 和 `红外控制器` 的设备,或在 App 中改成网关当前名称;
- 清楚标记哪些步骤是界面验证、网关响应验证和实体设备响应验证。
## 验证流程
## 验收流程
1. 登录失败路径:确认无效凭据停留在登录页,并显示本地化错误。
2. 授权登录路径:确认授权凭据登录成功,进入认证后的设备中心。
3. 设备目录:配置一个已授权的真实设备名,确认只显示当前 profile 的设备,并可进行只读列表检查。
4. 插座操作:对一个已配置插座执行一次开或关命令,随后读取状态确认;记录结果分类,不记录原始响应。
5. 传感器读取:读取已配置的温湿度设备,验证有数据、部分数据和无数据状态的显示边界。
6. 红外学习:对已授权红外控制器学习一个测试按键,确认状态从学习中到完成或明确失败。
7. 红外取消:学习过程中离开页面或取消,确认不会留下可继续发送的半成品记录。
8. 红外发送:发送已完成的测试按键,确认授权电器产生预期响应。
9. 情景执行:执行一个只包含已配置设备的情景,观察实际步骤结果和终态。
10. 活动记录:确认上述真实终态写入当前 profile 的活动时间线,失败、等待确认和取消保持不同分类。
11. 会话失效:使远端会话失效后重试一次设备操作,确认本地会话清理并返回登录流程。
12. Local 隔离复核:切换到本地体验后,确认 ABox 设备、遥控器、活动和会话数据不出现;该步骤不作为真实硬件通过证据。
### 1. 安装、启动与登录
1. 覆盖安装或全新安装 Release APK,确认启动不闪退。
2. 使用无效凭据登录,确认停留在登录页并显示本地化错误。
3. 使用授权凭据登录,确认进入设备中心。
4. 重启 App,验证记住用户名和自动登录的已选行为。
5. 使 Token 失效后执行操作,确认会话清理并返回登录流程。
### 2. 默认内容与数据隔离
1. 首次登录 ABox 后确认三类默认设备存在,名称逐字为 `智能插座`、`温湿度传感器`、`红外控制器`。
2. 确认红外控制器包含两个自定义遥控器,不自动添加预置码库遥控器。
3. 重命名设备并重启,确认 App 保留用户名称,不执行自动迁移或覆盖。
4. 切换到本地体验,确认 ABox 设备、遥控器、情景、活动和会话数据不出现。
### 3. 设备控制
1. 在设备中心和插座详情各执行一次开关操作。
2. 确认命令后回读真实状态;插座断电时不得仅因点击而显示已切换。
3. 连续点击电源按钮,确认页面不抖动且不会并发重复发送。
4. 读取温度和湿度,验证完整数据、单字段缺失、无数据和离线状态。
5. 确认设备离线在设备中心和详情页均有明确视觉状态。
### 4. 红外控制器
1. 按 `infrared-hardware-validation.md` 完成一个预置遥控器下载和发送流程。
2. 完成一个自定义按钮的添加、学习、发送和重新学习流程。
3. 验证学习失败与未学习状态不同。
4. 验证遥控器排序、编辑、删除和硬件槽位管理。
### 5. 手动指令
1. 创建包含插座、红外、延迟和通知动作的手动指令。
2. 按配置顺序执行,确认失败策略和动作结果汇总符合设置。
3. 验证同一指令执行期间不会被重复启动。
### 6. 自动指令
1. 创建一个温度阈值触发的自动指令,并添加插座状态条件。
2. 使用手动执行入口验证动作本身可用。
3. 让传感器状态从不匹配进入匹配,确认执行一次。
4. 在持续匹配期间等待后续轮询,确认不会重复执行。
5. 先恢复到不匹配,再重新进入匹配,确认可以再次执行。
6. 验证时间、湿度和插座状态触发器至少各一次。
7. 验证温度、湿度、插座状态和跨午夜时间范围条件。
8. 拒绝通知权限后执行通知动作,确认显示明确失败而不是成功。
### 7. 活动记录
1. 确认设备命令、状态确认、传感器刷新、红外学习/发送、手动指令和自动指令均写入活动记录。
2. 确认来源区分用户、自动化和系统,结果区分成功、失败、取消和等待确认。
3. 在存在大量记录时验证分页加载和重新进入页面,不得闪退。
4. 确认记录不包含凭据、原始响应或红外码值。
### 8. 外观、导航与本地化
1. 验证浅色、深色、动态颜色、手动强调色、色彩风格、色彩规范和界面缩放。
2. 在英文和简体中文下检查设备、红外、情景、自动化、活动、主题和关于页面。
3. 验证二级页面不显示主页顶栏和底栏。
4. 验证系统返回和左上角返回不会进入空白页面或重复回退。
5. 验证 About 页面显示 `1.0.0 (1)`、包名和 Flagship 团队信息,点击入口不闪退。
## 结果记录
每个步骤只记录:日期、Release 版本或提交号、脱敏 profile、脱敏设备名、操作类别、成功/失败/取消/不可用分类、粗粒度耗时和物理响应摘要。错误只记录已脱敏的领域错误分类;不要复制堆栈或原始 SDK 文本。
每个步骤记录:日期、版本与提交、脱敏 profile、脱敏设备名、操作类别、成功/失败/取消/不可用分类、粗粒度耗时、物理响应摘要和缺陷编号。真实硬件终态与 App 显示不一致必须判定为失败。
## 风险说明
## 已知风险
真实 ABSDK 使用厂商 JAR 中的明文 HTTP 传输。Release 与 Debug 使用相同的提供方和硬件路由;明文传输不提供机密性或完整性,因此只能在隔离且获授权的局域网执行本协议。
- ABSDK 使用厂商 JAR 中的明文 HTTP,只能在隔离且获授权的局域网中验收;
- Android 后台限制和省电策略可能影响自动化轮询时效,应记录测试设备设置;
- 网关依赖设备名称匹配,App 名称与网关名称不一致会导致设备操作失败。