|
|
|
|
# 修改记录
|
|
|
|
|
|
|
|
|
|
## 2024-01-XX - Core模块层级结构重构
|
|
|
|
|
|
|
|
|
|
### 重构概述
|
|
|
|
|
对 `app/core` 目录进行了全面的层级结构重构,将原本的单文件结构重新组织为功能明确的子模块,提高了代码的可维护性和扩展性。
|
|
|
|
|
|
|
|
|
|
### 重构后的目录结构
|
|
|
|
|
```
|
|
|
|
|
app/core/
|
|
|
|
|
├── __init__.py # 模块初始化
|
|
|
|
|
├── config/ # 配置管理
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
│ ├── settings.py # 应用配置
|
|
|
|
|
│ └── cors.py # CORS配置
|
|
|
|
|
├── exceptions/ # 异常管理
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
│ ├── base.py # 基础异常类
|
|
|
|
|
│ ├── adb.py # ADB异常
|
|
|
|
|
│ └── business.py # 业务异常
|
|
|
|
|
├── middleware/ # 中间件
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
│ └── request.py # 请求中间件
|
|
|
|
|
├── app/ # 应用管理
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
│ ├── factory.py # 应用工厂
|
|
|
|
|
│ └── router.py # 路由管理
|
|
|
|
|
├── adb/ # ADB核心功能
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
│ ├── connection.py # ADB连接
|
|
|
|
|
│ └── client.py # ADB客户端
|
|
|
|
|
├── device/ # 设备管理
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
│ ├── manager.py # 设备管理器
|
|
|
|
|
│ └── dispatcher.py # 设备分发器
|
|
|
|
|
├── handlers/ # 异常处理器
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
│ └── exception_handlers.py # 全局异常处理器
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 新增文件
|
|
|
|
|
|
|
|
|
|
#### 1. 配置管理模块 (`app/core/config/`)
|
|
|
|
|
- `__init__.py` - 配置模块初始化
|
|
|
|
|
- `settings.py` - 应用配置管理
|
|
|
|
|
- `cors.py` - CORS配置管理
|
|
|
|
|
|
|
|
|
|
#### 2. 异常管理模块 (`app/core/exceptions/`)
|
|
|
|
|
- `__init__.py` - 异常模块初始化
|
|
|
|
|
- `base.py` - 基础异常类
|
|
|
|
|
- `adb.py` - ADB相关异常
|
|
|
|
|
- `business.py` - 业务逻辑异常
|
|
|
|
|
|
|
|
|
|
#### 3. 中间件模块 (`app/core/middleware/`)
|
|
|
|
|
- `__init__.py` - 中间件模块初始化
|
|
|
|
|
- `request.py` - 请求中间件
|
|
|
|
|
|
|
|
|
|
#### 4. 应用管理模块 (`app/core/app/`)
|
|
|
|
|
- `__init__.py` - 应用模块初始化
|
|
|
|
|
- `factory.py` - 应用工厂
|
|
|
|
|
- `router.py` - 路由管理器
|
|
|
|
|
|
|
|
|
|
#### 5. ADB核心功能模块 (`app/core/adb/`)
|
|
|
|
|
- `__init__.py` - ADB模块初始化
|
|
|
|
|
- `connection.py` - ADB连接管理
|
|
|
|
|
- `client.py` - ADB客户端
|
|
|
|
|
|
|
|
|
|
#### 6. 设备管理模块 (`app/core/device/`)
|
|
|
|
|
- `__init__.py` - 设备模块初始化
|
|
|
|
|
- `manager.py` - 设备管理器
|
|
|
|
|
- `dispatcher.py` - 设备分发器
|
|
|
|
|
|
|
|
|
|
#### 7. 异常处理器模块 (`app/core/handlers/`)
|
|
|
|
|
- `__init__.py` - 处理器模块初始化
|
|
|
|
|
- `exception_handlers.py` - 全局异常处理器
|
|
|
|
|
|
|
|
|
|
### 删除文件
|
|
|
|
|
- `app/core/exception_handlers.py` → 移动到 `app/core/handlers/exception_handlers.py`
|
|
|
|
|
- `app/core/adb_exceptions.py` → 移动到 `app/core/exceptions/adb.py`
|
|
|
|
|
- `app/core/app_factory.py` → 移动到 `app/core/app/factory.py`
|
|
|
|
|
- `app/core/middleware.py` → 移动到 `app/core/middleware/request.py`
|
|
|
|
|
- `app/core/router_manager.py` → 移动到 `app/core/app/router.py`
|
|
|
|
|
- `app/core/config.py` → 移动到 `app/core/config/settings.py`
|
|
|
|
|
- `app/core/cors_config.py` → 移动到 `app/core/config/cors.py`
|
|
|
|
|
- `app/core/adb_client.py` → 移动到 `app/core/adb/client.py`
|
|
|
|
|
- `app/core/adb_connection.py` → 移动到 `app/core/adb/connection.py`
|
|
|
|
|
- `app/core/device_manager.py` → 移动到 `app/core/device/manager.py`
|
|
|
|
|
- `app/core/dispatcher.py` → 移动到 `app/core/device/dispatcher.py`
|
|
|
|
|
|
|
|
|
|
### 修改文件
|
|
|
|
|
|
|
|
|
|
#### 1. 主模块 (`app/main.py`)
|
|
|
|
|
- 更新导入路径:`app.core.app_factory` → `app.core.app`
|
|
|
|
|
|
|
|
|
|
#### 2. 启动脚本 (`run.py`)
|
|
|
|
|
- 更新导入路径:`app.core.app_factory` → `app.core.app`
|
|
|
|
|
|
|
|
|
|
#### 3. Core模块初始化 (`app/core/__init__.py`)
|
|
|
|
|
- 重新组织导入结构
|
|
|
|
|
- 添加设备管理模块的导入
|
|
|
|
|
- 统一导出接口
|
|
|
|
|
|
|
|
|
|
### 重构优势
|
|
|
|
|
|
|
|
|
|
#### 1. 层次分明
|
|
|
|
|
- **config/**: 配置管理,职责单一
|
|
|
|
|
- **exceptions/**: 异常管理,分类清晰
|
|
|
|
|
- **middleware/**: 中间件,功能独立
|
|
|
|
|
- **app/**: 应用管理,核心逻辑
|
|
|
|
|
- **adb/**: ADB功能,业务相关
|
|
|
|
|
- **device/**: 设备管理,设备相关
|
|
|
|
|
- **handlers/**: 异常处理,统一管理
|
|
|
|
|
|
|
|
|
|
#### 2. 职责清晰
|
|
|
|
|
- 每个目录都有明确的职责
|
|
|
|
|
- 文件命名更加规范
|
|
|
|
|
- 导入路径更加清晰
|
|
|
|
|
|
|
|
|
|
#### 3. 易于维护
|
|
|
|
|
- 新增功能时知道放在哪里
|
|
|
|
|
- 修改功能时容易定位
|
|
|
|
|
- 删除功能时影响范围小
|
|
|
|
|
|
|
|
|
|
#### 4. 扩展性好
|
|
|
|
|
- 新增配置类型:放在 `config/`
|
|
|
|
|
- 新增异常类型:放在 `exceptions/`
|
|
|
|
|
- 新增中间件:放在 `middleware/`
|
|
|
|
|
- 新增业务功能:放在对应目录
|
|
|
|
|
|
|
|
|
|
### 导入路径更新
|
|
|
|
|
所有导入路径都已经更新:
|
|
|
|
|
- `app.core.app_factory` → `app.core.app`
|
|
|
|
|
- `app.core.config` → `app.core.config`
|
|
|
|
|
- `app.core.exceptions` → `app.core.exceptions`
|
|
|
|
|
- `app.core.middleware` → `app.core.middleware`
|
|
|
|
|
- `app.core.device` → `app.core.device`
|
|
|
|
|
|
|
|
|
|
## 2024-01-XX - ADB架构优化和日志系统增强
|
|
|
|
|
|
|
|
|
|
### 新增文件
|
|
|
|
|
|
|
|
|
|
#### 1. 数据模型层 (`app/models/adb_models.py`)
|
|
|
|
|
- 创建了完整的ADB数据模型定义
|
|
|
|
|
- 包含设备状态枚举、设备信息、设备事件、端口转发等模型
|
|
|
|
|
- 使用Pydantic进行数据验证和序列化
|
|
|
|
|
|
|
|
|
|
#### 2. 核心连接层 (`app/core/adb_connection.py`)
|
|
|
|
|
- 重构了ADB连接核心模块
|
|
|
|
|
- 实现了底层协议通信处理
|
|
|
|
|
- 支持异步上下文管理器
|
|
|
|
|
- 添加了详细的错误处理和日志记录
|
|
|
|
|
|
|
|
|
|
#### 3. 核心客户端层 (`app/core/adb_client.py`)
|
|
|
|
|
- 创建了ADB客户端核心类
|
|
|
|
|
- 提供高级API接口
|
|
|
|
|
- 实现了设备管理、Shell命令执行、端口转发等功能
|
|
|
|
|
- 支持设备状态跟踪和变化监控
|
|
|
|
|
|
|
|
|
|
#### 4. 增强服务层 (`app/services/enhanced_adb_service.py`)
|
|
|
|
|
- 创建了增强的ADB服务类
|
|
|
|
|
- 提供业务逻辑层
|
|
|
|
|
- 支持设备监控、Shell命令执行等高级功能
|
|
|
|
|
- 实现了异步任务管理
|
|
|
|
|
|
|
|
|
|
#### 5. API端点层 (`app/api/v1/endpoints/enhanced_adb.py`)
|
|
|
|
|
- 创建了增强的ADB API端点
|
|
|
|
|
- 提供RESTful API接口
|
|
|
|
|
- 支持设备管理、Shell命令执行、端口转发等操作
|
|
|
|
|
- 实现了完整的错误处理和响应
|
|
|
|
|
|
|
|
|
|
#### 6. 结构化日志系统 (`app/utils/structured_log.py`)
|
|
|
|
|
- 创建了类似Serilog的结构化日志系统
|
|
|
|
|
- 支持JSON格式的日志输出
|
|
|
|
|
- 包含请求上下文、异常堆栈跟踪等功能
|
|
|
|
|
- 实现了日志级别管理和格式化
|
|
|
|
|
|
|
|
|
|
#### 7. ADB工具模块 (`app/utils/adb_utils.py`)
|
|
|
|
|
- 创建了ADB工具类
|
|
|
|
|
- 提供常用的ADB操作函数
|
|
|
|
|
- 支持设备属性获取、屏幕操作等功能
|
|
|
|
|
|
|
|
|
|
### 修改文件
|
|
|
|
|
|
|
|
|
|
#### 1. 配置管理 (`app/core/config.py`)
|
|
|
|
|
- 重构了配置管理模块
|
|
|
|
|
- 分离了ADB配置和应用配置
|
|
|
|
|
- 支持环境变量和配置文件
|
|
|
|
|
|
|
|
|
|
#### 2. 日志系统 (`app/utils/log.py`)
|
|
|
|
|
- 增强了日志系统
|
|
|
|
|
- 支持结构化日志和传统日志
|
|
|
|
|
- 添加了日志目录自动创建
|
|
|
|
|
- 实现了向后兼容
|
|
|
|
|
|
|
|
|
|
#### 3. API路由配置 (`app/api/v1/endpoints/__init__.py`)
|
|
|
|
|
- 更新了API端点初始化
|
|
|
|
|
- 包含新的增强ADB端点
|
|
|
|
|
|
|
|
|
|
### 架构优化特点
|
|
|
|
|
|
|
|
|
|
#### 1. 层次分明
|
|
|
|
|
- **Models层**: 数据模型和DTO定义
|
|
|
|
|
- **Core层**: 核心连接和协议处理
|
|
|
|
|
- **Services层**: 业务逻辑服务
|
|
|
|
|
- **API层**: FastAPI路由和端点
|
|
|
|
|
- **Utils层**: 工具函数和配置
|
|
|
|
|
|
|
|
|
|
#### 2. 命名规范
|
|
|
|
|
- 使用清晰的模块命名:`adb_connection.py`, `adb_client.py`, `enhanced_adb_service.py`
|
|
|
|
|
- 方法命名遵循Python规范:`get_server_version()`, `list_devices()`, `execute_shell_command()`
|
|
|
|
|
- 变量命名使用下划线分隔:`device_serial`, `status_filter`
|
|
|
|
|
|
|
|
|
|
#### 3. 日志系统增强
|
|
|
|
|
- 实现了结构化日志,类似Serilog
|
|
|
|
|
- 支持JSON格式输出,便于日志分析
|
|
|
|
|
- 包含请求上下文、异常堆栈等详细信息
|
|
|
|
|
- 支持多种日志级别:TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL
|
|
|
|
|
|
|
|
|
|
#### 4. 错误处理完善
|
|
|
|
|
- 自定义异常类:`AdbProtocolError`, `AdbConnectionError`
|
|
|
|
|
- 详细的错误信息和上下文
|
|
|
|
|
- 统一的错误处理机制
|
|
|
|
|
|
|
|
|
|
#### 5. 异步支持
|
|
|
|
|
- 全异步架构设计
|
|
|
|
|
- 支持设备状态实时监控
|
|
|
|
|
- 异步任务管理
|
|
|
|
|
|
|
|
|
|
### 使用示例
|
|
|
|
|
|
|
|
|
|
#### 1. 获取设备列表
|
|
|
|
|
```python
|
|
|
|
|
from app.services.enhanced_adb_service import EnhancedAdbService
|
|
|
|
|
|
|
|
|
|
service = EnhancedAdbService()
|
|
|
|
|
devices = await service.list_devices()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 2. 执行Shell命令
|
|
|
|
|
```python
|
|
|
|
|
result = await service.execute_shell_command("device_serial", "ls /sdcard")
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 3. 设备监控
|
|
|
|
|
```python
|
|
|
|
|
await service.start_device_monitoring()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 4. 结构化日志
|
|
|
|
|
```python
|
|
|
|
|
from app.utils.log import get_enhanced_logger
|
|
|
|
|
|
|
|
|
|
logger = get_enhanced_logger("my_module")
|
|
|
|
|
logger.info("操作完成", device_count=5, duration_ms=1200)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 日志输出示例
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"timestamp": "2024-01-XXT10:30:45.123456",
|
|
|
|
|
"level": "INFO",
|
|
|
|
|
"message": "获取设备列表成功",
|
|
|
|
|
"logger_name": "app.services.enhanced_adb_service",
|
|
|
|
|
"context": {
|
|
|
|
|
"request_id": "req-123",
|
|
|
|
|
"user_id": "user-456",
|
|
|
|
|
"module": "enhanced_adb_service",
|
|
|
|
|
"function": "list_devices",
|
|
|
|
|
"line_number": 45,
|
|
|
|
|
"extra": {
|
|
|
|
|
"device_count": 3,
|
|
|
|
|
"status_filter": null
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 下一步计划
|
|
|
|
|
|
|
|
|
|
1. 添加单元测试和集成测试
|
|
|
|
|
2. 实现WebSocket支持实时设备状态推送
|
|
|
|
|
3. 添加设备截图和文件传输功能
|
|
|
|
|
4. 实现设备应用管理功能
|
|
|
|
|
5. 添加性能监控和指标收集
|
|
|
|
|
|
|
|
|
|
### 最新修改 (2024-12-19)
|
|
|
|
|
|
|
|
|
|
#### 文件转换
|
|
|
|
|
- 将 `txt` 文件转换为 `original_adb_client_reference.md` 文件,保持内容完全不变
|
|
|
|
|
- 原文件内容包含ADB客户端实现代码,作为参考文档保存
|
|
|
|
|
- 添加了说明注释,标明这是重构前的原始代码
|
|
|
|
|
|
|
|
|
|
#### 服务重构
|
|
|
|
|
- 保留 `enhanced_adb_service.py` 作为唯一的ADB服务
|
|
|
|
|
- 删除 `device_monitor_manager.py` 文件,避免功能冗余
|
|
|
|
|
- `enhanced_adb_service.py` 包含完整的ADB功能:
|
|
|
|
|
- 设备监控(程序启动时自动开始,异常时自动重启)
|
|
|
|
|
- 设备管理(list_devices, get_device_info, ping_device)
|
|
|
|
|
- Shell命令执行(execute_shell_command)
|
|
|
|
|
- 应用管理(install_apk, uninstall_app, get_installed_apps)
|
|
|
|
|
- 端口转发(list_forward_ports, create_forward_port, remove_forward_port)
|
|
|
|
|
- 移除手动启动/停止监控的API端点,简化使用流程
|
|
|
|
|
|
|
|
|
|
#### 异常处理优化 (2024-12-19)
|
|
|
|
|
- 创建 `app/core/adb_exceptions.py` 统一管理ADB异常类
|
|
|
|
|
- 改进异常处理策略:
|
|
|
|
|
- **Core层**: 使用具体的异常类型(OSError, IOError等)而不是捕获所有Exception
|
|
|
|
|
- **Service层**: 区分ADB业务异常和未知异常
|
|
|
|
|
- **API层**: 根据异常类型返回合适的HTTP状态码
|
|
|
|
|
- 新增异常类型:
|
|
|
|
|
- `AdbDeviceNotFoundError`: 设备未找到
|
|
|
|
|
- `AdbCommandTimeoutError`: 命令超时
|
|
|
|
|
- `AdbServerError`: 服务器错误
|
|
|
|
|
- `AdbAuthenticationError`: 认证失败
|
|
|
|
|
- HTTP状态码映射:
|
|
|
|
|
- 400: ADB协议错误
|
|
|
|
|
- 401: 认证失败
|
|
|
|
|
- 404: 设备未找到
|
|
|
|
|
- 408: 命令超时
|
|
|
|
|
- 502: ADB服务器错误
|
|
|
|
|
- 503: 连接错误
|
|
|
|
|
- 500: 内部服务器错误
|
|
|
|
|
|
|
|
|
|
#### 应用架构重构 (2024-12-19)
|
|
|
|
|
- **路由管理优化**:
|
|
|
|
|
- 创建 `app/core/router_manager.py` 统一管理所有API路由注册
|
|
|
|
|
- 使用 `RouterManager` 类集中管理路由配置
|
|
|
|
|
- 支持动态路由注册和标签管理
|
|
|
|
|
- **CORS配置分离**:
|
|
|
|
|
- 创建 `app/core/cors_config.py` 专门管理CORS配置
|
|
|
|
|
- 支持开发环境和生产环境的不同CORS策略
|
|
|
|
|
- 提供灵活的CORS配置选项
|
|
|
|
|
- **应用工厂模式**:
|
|
|
|
|
- 创建 `app/core/app_factory.py` 实现应用工厂模式
|
|
|
|
|
- 统一管理FastAPI应用的创建和配置
|
|
|
|
|
- 支持不同环境的应用配置
|
|
|
|
|
- **主模块简化**:
|
|
|
|
|
- 重构 `app/main.py`,移除路由注册和CORS配置代码
|
|
|
|
|
- 使用应用工厂模式创建应用实例
|
|
|
|
|
- 支持环境变量配置
|
|
|
|
|
- **启动脚本**:
|
|
|
|
|
- 创建 `run.py` 提供灵活的启动选项
|
|
|
|
|
- 支持命令行参数配置
|
|
|
|
|
- 支持多工作进程启动
|
|
|
|
|
- **配置增强**:
|
|
|
|
|
- 在 `app/core/config.py` 中添加CORS配置选项
|
|
|
|
|
- 支持环境变量配置CORS策略
|
|
|
|
|
- **架构优势**:
|
|
|
|
|
- **可维护性**:路由和CORS配置分离,便于维护
|
|
|
|
|
- **可扩展性**:新增路由只需在路由管理器中注册
|
|
|
|
|
- **环境隔离**:不同环境使用不同的配置策略
|
|
|
|
|
- **启动灵活**:支持多种启动方式和参数配置
|
|
|
|
|
|
|
|
|
|
### 最新修改 (2024-12-19) - Git工作流程文档
|
|
|
|
|
|
|
|
|
|
#### 新增文件
|
|
|
|
|
- 创建 `git_workflow.md` 文件,包含完整的Git提交代码流程指南
|
|
|
|
|
- 文档内容包括:
|
|
|
|
|
- 基本工作流程(检查状态、拉取代码、添加文件、提交、推送)
|
|
|
|
|
- 常用命令(查看信息、撤销操作、分支操作)
|
|
|
|
|
- 分支管理(功能开发流程、热修复流程)
|
|
|
|
|
- 冲突解决(合并冲突处理、变基操作)
|
|
|
|
|
- 最佳实践(提交信息规范、工作流程建议、常用别名配置)
|
|
|
|
|
- 完整工作流程示例
|
|
|
|
|
- 故障排除(常见问题解决)
|
|
|
|
|
|
|
|
|
|
#### 文档特点
|
|
|
|
|
- **全面性**:涵盖Git日常使用的所有主要操作
|
|
|
|
|
- **实用性**:提供具体的命令示例和操作步骤
|
|
|
|
|
- **规范性**:包含提交信息规范和最佳实践建议
|
|
|
|
|
- **问题导向**:提供常见问题的解决方案
|
|
|
|
|
- **中文友好**:使用中文说明,便于团队理解和使用
|
|
|
|
|
|
|
|
|
|
#### 使用价值
|
|
|
|
|
- 为团队成员提供统一的Git操作指南
|
|
|
|
|
- 规范代码提交流程,提高代码质量
|
|
|
|
|
- 减少Git操作错误,提高开发效率
|
|
|
|
|
- 便于新成员快速上手Git工作流程
|