# app — 萤石 Android SDK Demo 应用

> 当前结构、接口和调用链由 codegraph 现查；本文只保留边界、语义路由、不变量与必要判据。
> 人工补充：`Human.md`。

## 身份与边界

- **身份**：EZOpenSDK 的 Demo 演示应用（HAP 入口），展示 SDK 所有功能的使用方式
- **负责**：SDK 功能演示 UI（预览/回放/对讲/PTZ/配网/设备管理/告警/登录/设置等页面）、测试工具页面
- **不负责**：SDK 核心逻辑（ezviz-sdk/play/configwifi/base）——Demo 仅调用 EZOpenSDK 对外 API
- 证据：source `EzvizApplication.java` / `ui/` 目录结构

## 用户表述（需求/症状）→归一主题→首落点

| 用户表述 | 归一主题 | 首落点 | 本组件角色 | 知识卡 |
|---|---|---|---|---|
| 预览页面/实时画面 | 预览 UI | `ui/realplay/EZRealPlayActivity` | Demo UI | — |
| 回放页面/录像列表 | 回放 UI | `ui/playback/EZPlayBackListActivity` | Demo UI | — |
| 设备列表/首页 | 设备列表 | `ui/devicelist/` | Demo UI | — |
| 添加设备/扫码 | 添加设备 | `ui/adddevice/` | Demo UI | — |
| 登录页/初始化 | 登录 | `ui/login/MainActivity` | Demo UI | — |
| 告警消息/消息列表 | 消息 | `ui/message/` | Demo UI | — |
| 设备设置 | 设置 | `ui/setting/` | Demo UI | — |
| 视频通话 | 视频通话 | `ui/videotalk/` | Demo UI | — |
| 局域网设备 | LAN 设备 | `ui/LanDevice/` | Demo UI | — |
| DDNS | DDNS | `ui/ddns/` | Demo UI | — |
| 测试工具 | 调试 | `ui/others/` | Demo UI | — |

## 为什么 / 护栏

1. **Demo 仅调用 EZOpenSDK 公开 API**：通过 `EZOPENSDK` 宏（等价于 `[EZOpenSDK class]` 的 Android 等价——`EZOpenSDK.getInstance()`）调用，不直接引用 play 模块内部类（EZStreamCtrl 等）。source `EZRealPlayActivity.java`
2. **DemoConfig 是测试账号配置**：存放 appKey、服务器地址等调试参数，与 SDK 核心逻辑无关。source `global/DemoConfig.java`
3. **Helper 拆分模式**：大型 Activity（如 EZRealPlayActivity、EZPlayBackListActivity）已拆分出多个 Helper 类到 `helper/` 子包，委托模式调用。human-confirmed（active-memory 2026-08-17）
4. **EZStreamConfigLoader / EZStreamConfigSettingActivity**：取流参数配置页面，用于调试/测试取流策略参数。source `ui/common/EZStreamConfigLoader.java`

## 包/目录清册

| 包 | 分诊 | 说明 |
|---|------|------|
| `api/` | 活跃 | Demo 专用 API 请求类 |
| `global/` | 活跃 | 全局配置（DemoConfig/ValueKeys） |
| `ui/adddevice/` | 活跃 | 添加设备流程（扫码/输入/AP 配网 Presenter） |
| `ui/common/` | 活跃 | 公共 UI 组件（StreamConfigLoader） |
| `ui/ddns/` | 活跃 | DDNS 功能 |
| `ui/devicelist/` | 活跃 | 设备列表页 |
| `ui/LanDevice/` | 活跃 | 局域网设备播放 |
| `ui/login/` | 活跃 | 登录/SDK 初始化 |
| `ui/message/` | 活跃 | 告警消息列表/详情/回放 |
| `ui/others/` | 活跃 | 测试工具页面集合 |
| `ui/playback/` | 活跃（高频改动） | 录像回放页面（含 helper 拆分、下载） |
| `ui/realplay/` | 活跃（高频改动） | 实时预览页面（含 helper 拆分） |
| `ui/setting/` | 活跃 | 设备设置页面 |
| `ui/videotalk/` | 活跃 | 视频通话 Demo |
| `util/` | 活跃 | Demo 工具类 |
| `widget/` | 活跃 | Demo 自定义控件 |

## 语义影响关系

| 本组件 | 对端 | 关系 |
|--------|------|------|
| app | ezviz-sdk/EZOpenSDK | 通过公开 API 调用 SDK 功能 |
| app | play/EZPlayer | 创建 EZPlayer 实例进行播放 |
| app | configwifi | 通过 APWifiConfig 启动配网 |
| app | app-common | 共享部分 Activity（配网/带宽检测） |

<!-- 最后更新: 2026-08-19 -->
