338 lines
7.9 KiB
Markdown
338 lines
7.9 KiB
Markdown
# 📋 文件清单 - SkyLink Android App Navigation & Settings 功能
|
||
|
||
## 📁 完整文件列表
|
||
|
||
### 🔵 新增 Kotlin 源代码 (3 文件)
|
||
|
||
```
|
||
app/src/main/java/com/skylink/app/
|
||
├── ui/
|
||
│ ├── HomeFragment.kt # 首页 Fragment - 视频、GPS、统计
|
||
│ └── SettingsFragment.kt # 设置 Fragment - 配置和 Ping 诊断
|
||
└── utils/
|
||
└── PingUtil.kt # Ping 工具类 - 网络诊断
|
||
```
|
||
|
||
**详情**:
|
||
- **HomeFragment.kt** (175 行)
|
||
- 继承自 Fragment,实现 UdpReceiverListener
|
||
- 管理 UDP 接收、视频显示、GPS 信息
|
||
- Ping 管理和生命周期处理
|
||
|
||
- **SettingsFragment.kt** (220 行)
|
||
- 完整的设置 UI 和交互
|
||
- Ping 单个和多个主机
|
||
- 参数配置和结果显示
|
||
|
||
- **PingUtil.kt** (130 行)
|
||
- 单个 Ping 函数
|
||
- 批量并行 Ping
|
||
- 完整错误处理
|
||
- 跨平台支持 (Windows/Linux)
|
||
|
||
---
|
||
|
||
### 🔵 新增 XML 布局文件 (2 文件)
|
||
|
||
```
|
||
app/src/main/res/layout/
|
||
├── fragment_home.xml # 首页布局 - 80 行
|
||
└── fragment_settings.xml # 设置页面布局 - 200 行
|
||
```
|
||
|
||
**详情**:
|
||
- **fragment_home.xml**
|
||
- 状态文本
|
||
- 视频 ImageView
|
||
- GPS 信息展示
|
||
- 统计数据展示
|
||
- 操作按钮组
|
||
|
||
- **fragment_settings.xml**
|
||
- UDP 端口配置区
|
||
- Ping 诊断区
|
||
- 目标主机输入
|
||
- Ping 参数选择
|
||
- 执行按钮
|
||
- 进度指示
|
||
- 结果显示区域
|
||
|
||
---
|
||
|
||
### 🔵 Navigation & Menu (3 文件)
|
||
|
||
```
|
||
app/src/main/res/
|
||
├── navigation/
|
||
│ └── nav_graph.xml # Navigation 图表 - 定义路由
|
||
├── menu/
|
||
│ ├── bottom_nav_menu.xml # 底部导航菜单
|
||
│ └── activity_main_menu.xml # 顶部菜单
|
||
```
|
||
|
||
**详情**:
|
||
- **nav_graph.xml** (16 行)
|
||
- 定义首页和设置两个 Fragment 目的地
|
||
- 设置首页为默认起点
|
||
|
||
- **bottom_nav_menu.xml** (14 行)
|
||
- 首页导航项 (ID: homeFragment)
|
||
- 设置导航项 (ID: settingsFragment)
|
||
|
||
- **activity_main_menu.xml** (8 行)
|
||
- 设置快捷菜单项
|
||
- 显示在 ActionBar
|
||
|
||
---
|
||
|
||
### 🔵 样式和资源 (2 文件)
|
||
|
||
```
|
||
app/src/main/res/
|
||
├── drawable/
|
||
│ └── settings_result_bg.xml # 结果区域背景样式
|
||
└── color/
|
||
└── bottom_nav_color.xml # 导航栏颜色状态
|
||
```
|
||
|
||
**详情**:
|
||
- **settings_result_bg.xml**
|
||
- 圆角矩形背景
|
||
- 浅灰色填充
|
||
- 边框轮廓
|
||
|
||
- **bottom_nav_color.xml**
|
||
- 选中态:蓝色
|
||
- 未选中态:灰色
|
||
|
||
---
|
||
|
||
### 🔵 文档文件 (4 文件)
|
||
|
||
```
|
||
skylink_android_app/
|
||
├── QUICK_START.md # 快速开始指南 (5 分钟上手)
|
||
├── BUILD_AND_RUN.md # 构建和运行详细指南
|
||
├── NAVIGATION_SETTINGS_GUIDE.md # 功能详细说明和 API 文档
|
||
└── IMPLEMENTATION_SUMMARY.md # 实现总结和变更记录
|
||
```
|
||
|
||
**详情**:
|
||
- **QUICK_START.md** (180 行)
|
||
- 5 步快速启动
|
||
- 功能演示
|
||
- 常见问题解答
|
||
|
||
- **BUILD_AND_RUN.md** (180 行)
|
||
- 详细构建步骤
|
||
- 运行指南
|
||
- 调试技巧
|
||
- 发布流程
|
||
|
||
- **NAVIGATION_SETTINGS_GUIDE.md** (250 行)
|
||
- 完整功能说明
|
||
- API 参考
|
||
- 使用示例
|
||
- 性能建议
|
||
|
||
- **IMPLEMENTATION_SUMMARY.md** (280 行)
|
||
- 实现总结
|
||
- 文件清单
|
||
- 测试检表
|
||
- 版本历史
|
||
|
||
---
|
||
|
||
### 🟠 修改的现有文件 (2 文件)
|
||
|
||
```
|
||
app/build.gradle.kts # 新增 Navigation 和 Fragment 依赖
|
||
app/src/main/java/com/skylink/app/
|
||
└── MainActivity.kt # 重构为 Navigation 容器
|
||
|
||
app/src/main/res/layout/
|
||
└── activity_main.xml # 更新为 NavHostFragment + 底部导航
|
||
```
|
||
|
||
**变更说明**:
|
||
- **build.gradle.kts**: 添加 3 个新依赖库
|
||
- **MainActivity.kt**: 完全重写,从直接 UI 改为导航容器
|
||
- **activity_main.xml**: 改为 Navigation 布局结构
|
||
|
||
---
|
||
|
||
## 📊 文件统计
|
||
|
||
| 类别 | 数量 | 总行数 | 备注 |
|
||
|------|------|--------|------|
|
||
| Kotlin 源代码 | 3 | 525 | HomeFragment, SettingsFragment, PingUtil |
|
||
| XML 布局 | 2 | 280 | fragment_home, fragment_settings |
|
||
| Navigation | 1 | 16 | nav_graph.xml |
|
||
| 菜单文件 | 2 | 22 | bottom_nav_menu, activity_main_menu |
|
||
| 样式资源 | 2 | 12 | drawable, color |
|
||
| 文档文件 | 4 | 890 | 各类指南和说明 |
|
||
| **总计** | **14** | **1,745** | |
|
||
|
||
---
|
||
|
||
## 🔄 依赖关系图
|
||
|
||
```
|
||
MainActivity (容器)
|
||
↓
|
||
NavHostFragment (Fragment 容器)
|
||
├─ HomeFragment (首页)
|
||
│ ├─ UdpReceiver (UDP 接收)
|
||
│ └─ BitmapUtils (图像处理)
|
||
└─ SettingsFragment (设置)
|
||
└─ PingUtil (网络诊断)
|
||
|
||
UI 组件树
|
||
├─ BottomNavigationView (底部导航)
|
||
├─ ActionBar/Toolbar (顶部菜单)
|
||
└─ Fragment 布局
|
||
├─ ImageView (视频)
|
||
├─ TextView (GPS/统计)
|
||
├─ EditText (输入框)
|
||
├─ Spinner (下拉列表)
|
||
└─ Button (操作按钮)
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 文件用途速查表
|
||
|
||
| 功能需求 | 对应文件 | 说明 |
|
||
|---------|---------|------|
|
||
| 首页显示 | fragment_home.xml, HomeFragment.kt | 视频/GPS/统计 |
|
||
| 设置页面 | fragment_settings.xml, SettingsFragment.kt | 配置/Ping诊断 |
|
||
| 页面切换 | nav_graph.xml, bottom_nav_menu.xml | Navigation |
|
||
| Ping 功能 | PingUtil.kt, SettingsFragment.kt | 网络诊断 |
|
||
| 导航栏 | activity_main.xml, MainActivity.kt | UI 容器 |
|
||
| 样式主题 | settings_result_bg.xml, bottom_nav_color.xml | 外观 |
|
||
|
||
---
|
||
|
||
## 📦 依赖清单
|
||
|
||
### 新增 Gradle 依赖
|
||
|
||
```gradle
|
||
// Navigation 组件
|
||
androidx.navigation:navigation-fragment-ktx:2.7.5
|
||
androidx.navigation:navigation-ui-ktx:2.7.5
|
||
|
||
// Fragment 支持
|
||
androidx.fragment:fragment-ktx:1.6.2
|
||
```
|
||
|
||
### 已有依赖(无需修改)
|
||
- androidx.core:core-ktx:1.12.0
|
||
- androidx.appcompat:appcompat:1.6.1
|
||
- com.google.android.material:material:1.11.0
|
||
- org.jetbrains.kotlinx:kotlinx-coroutines-*:1.7.3
|
||
|
||
---
|
||
|
||
## 🔧 编辑建议
|
||
|
||
### 快速定位文件
|
||
|
||
**需要修改 UI**
|
||
- 首页:`fragment_home.xml`
|
||
- 设置:`fragment_settings.xml`
|
||
|
||
**需要修改业务逻辑**
|
||
- 首页:`HomeFragment.kt`
|
||
- 设置:`SettingsFragment.kt`
|
||
- Ping:`PingUtil.kt`
|
||
|
||
**需要修改导航**
|
||
- 路由:`nav_graph.xml`
|
||
- 菜单:`bottom_nav_menu.xml` / `activity_main_menu.xml`
|
||
|
||
**需要修改样式**
|
||
- 颜色:`bottom_nav_color.xml`
|
||
- 背景:`settings_result_bg.xml`
|
||
|
||
---
|
||
|
||
## ✅ 验证清单
|
||
|
||
### 编译验证
|
||
- [ ] Gradle 同步成功
|
||
- [ ] 无编译错误
|
||
- [ ] 所有资源文件正确引用
|
||
- [ ] 导入的类都已识别
|
||
|
||
### 运行验证
|
||
- [ ] 应用成功启动
|
||
- [ ] 首页正常显示
|
||
- [ ] 设置页面正常显示
|
||
- [ ] 导航栏正常工作
|
||
|
||
### 功能验证
|
||
- [ ] UDP 接收正常
|
||
- [ ] 单个 Ping 功能
|
||
- [ ] 多个 Ping 功能
|
||
- [ ] 结果显示正确
|
||
|
||
---
|
||
|
||
## 🚀 快速参考
|
||
|
||
### 查看首页代码
|
||
```bash
|
||
code app/src/main/java/com/skylink/app/ui/HomeFragment.kt
|
||
```
|
||
|
||
### 查看设置页面
|
||
```bash
|
||
code app/src/main/java/com/skylink/app/ui/SettingsFragment.kt
|
||
```
|
||
|
||
### 查看 Ping 工具
|
||
```bash
|
||
code app/src/main/java/com/skylink/app/utils/PingUtil.kt
|
||
```
|
||
|
||
### 查看布局
|
||
```bash
|
||
code app/src/main/res/layout/fragment_home.xml
|
||
code app/src/main/res/layout/fragment_settings.xml
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 相关文档
|
||
|
||
- 📖 [QUICK_START.md](./QUICK_START.md) - 5 分钟快速上手
|
||
- 📖 [BUILD_AND_RUN.md](./BUILD_AND_RUN.md) - 构建运行指南
|
||
- 📖 [NAVIGATION_SETTINGS_GUIDE.md](./NAVIGATION_SETTINGS_GUIDE.md) - 功能详解
|
||
- 📖 [IMPLEMENTATION_SUMMARY.md](./IMPLEMENTATION_SUMMARY.md) - 实现总结
|
||
|
||
---
|
||
|
||
## 📞 问题排查
|
||
|
||
**找不到某个文件?**
|
||
- 检查路径是否正确
|
||
- 确认文件是否已创建
|
||
- 查看 Android Studio 文件树
|
||
|
||
**编译错误?**
|
||
- 运行 `./gradlew.bat clean`
|
||
- 点击 `Sync Now`
|
||
- 检查 build.gradle.kts 依赖
|
||
|
||
**运行错误?**
|
||
- 查看 logcat 日志
|
||
- 确认设备已连接
|
||
- 检查权限设置
|
||
|
||
---
|
||
|
||
**最后更新**: 2026-01-19
|
||
**文档版本**: 1.0
|
||
**状态**: ✅ 完成
|