|
|
|
@ -13,8 +13,15 @@ logger = get_enhanced_logger(__name__, LogLevel.DEBUG) |
|
|
|
|
|
|
|
router = APIRouter(prefix="/adb", tags=["ADB管理"]) |
|
|
|
|
|
|
|
# 全局ADB服务实例 |
|
|
|
adb_service = EnhancedAdbService() |
|
|
|
# 全局ADB服务实例 - 延迟初始化 |
|
|
|
adb_service = None |
|
|
|
|
|
|
|
def get_adb_service(): |
|
|
|
"""获取ADB服务实例(延迟初始化)""" |
|
|
|
global adb_service |
|
|
|
if adb_service is None: |
|
|
|
adb_service = EnhancedAdbService() |
|
|
|
return adb_service |
|
|
|
|
|
|
|
|
|
|
|
@router.get("/server/info", response_model=ServerInfo, summary="获取ADB服务器信息") |
|
|
|
@ -22,6 +29,7 @@ async def get_server_info(): |
|
|
|
"""获取ADB服务器信息""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 获取ADB服务器信息") |
|
|
|
adb_service = get_adb_service() |
|
|
|
result = await adb_service.get_server_info() |
|
|
|
logger.info("API响应: 获取ADB服务器信息成功", version=result.version) |
|
|
|
return result |
|
|
|
@ -36,6 +44,7 @@ async def list_devices(status: Optional[str] = None): |
|
|
|
try: |
|
|
|
logger.debug("API请求: 获取设备列表", status=status) |
|
|
|
status_filter = [status] if status else None |
|
|
|
adb_service = get_adb_service() |
|
|
|
result = await adb_service.list_devices(status_filter) |
|
|
|
logger.info("API响应: 获取设备列表成功", device_count=len(result), status=status) |
|
|
|
return result |
|
|
|
@ -49,6 +58,7 @@ async def execute_shell_command(device_serial: str, command: ShellCommand): |
|
|
|
"""在指定设备上执行Shell命令""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 执行Shell命令", device_serial=device_serial, command=command.command) |
|
|
|
adb_service = get_adb_service() |
|
|
|
result = await adb_service.execute_shell_command( |
|
|
|
device_serial, |
|
|
|
command.command, |
|
|
|
@ -72,6 +82,7 @@ async def get_device_info(device_serial: str): |
|
|
|
"""获取设备详细信息""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 获取设备详细信息", device_serial=device_serial) |
|
|
|
adb_service = get_adb_service() |
|
|
|
result = await adb_service.get_device_info(device_serial) |
|
|
|
if result: |
|
|
|
logger.info("API响应: 获取设备详细信息成功", device_serial=device_serial) |
|
|
|
@ -91,6 +102,7 @@ async def ping_device(device_serial: str): |
|
|
|
"""ping设备检查连接状态""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: ping设备", device_serial=device_serial) |
|
|
|
adb_service = get_adb_service() |
|
|
|
success = await adb_service.ping_device(device_serial) |
|
|
|
logger.info("API响应: ping设备完成", device_serial=device_serial, success=success) |
|
|
|
return {"success": success, "message": "设备连接正常" if success else "设备连接失败"} |
|
|
|
@ -104,6 +116,7 @@ async def install_apk(device_serial: str, apk_path: str): |
|
|
|
"""安装APK文件""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 安装APK", device_serial=device_serial, apk_path=apk_path) |
|
|
|
adb_service = get_adb_service() |
|
|
|
result = await adb_service.install_apk(device_serial, apk_path) |
|
|
|
logger.info("API响应: 安装APK完成", device_serial=device_serial, success=result.success) |
|
|
|
return result |
|
|
|
@ -117,6 +130,7 @@ async def uninstall_app(device_serial: str, package_name: str): |
|
|
|
"""卸载应用""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 卸载应用", device_serial=device_serial, package_name=package_name) |
|
|
|
adb_service = get_adb_service() |
|
|
|
result = await adb_service.uninstall_app(device_serial, package_name) |
|
|
|
logger.info("API响应: 卸载应用完成", device_serial=device_serial, success=result.success) |
|
|
|
return result |
|
|
|
@ -130,6 +144,7 @@ async def get_installed_apps(device_serial: str): |
|
|
|
"""获取已安装应用列表""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 获取已安装应用列表", device_serial=device_serial) |
|
|
|
adb_service = get_adb_service() |
|
|
|
apps = await adb_service.get_installed_apps(device_serial) |
|
|
|
logger.info("API响应: 获取已安装应用列表成功", device_serial=device_serial, app_count=len(apps)) |
|
|
|
return {"apps": apps, "count": len(apps)} |
|
|
|
@ -143,6 +158,7 @@ async def list_forward_ports(): |
|
|
|
"""获取端口转发列表""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 获取端口转发列表") |
|
|
|
adb_service = get_adb_service() |
|
|
|
result = await adb_service.list_forward_ports() |
|
|
|
logger.info("API响应: 获取端口转发列表成功", forward_count=len(result)) |
|
|
|
return result |
|
|
|
@ -159,6 +175,7 @@ async def create_forward_port(request: ForwardRequest): |
|
|
|
serial=request.serial, |
|
|
|
local=request.local, |
|
|
|
remote=request.remote) |
|
|
|
adb_service = get_adb_service() |
|
|
|
await adb_service.create_forward_port(request) |
|
|
|
logger.info("API响应: 创建端口转发成功", |
|
|
|
serial=request.serial, |
|
|
|
@ -179,6 +196,7 @@ async def remove_forward_port(local: Optional[str] = None): |
|
|
|
"""移除端口转发""" |
|
|
|
try: |
|
|
|
logger.debug("API请求: 移除端口转发", local=local) |
|
|
|
adb_service = get_adb_service() |
|
|
|
await adb_service.remove_forward_port(local) |
|
|
|
logger.info("API响应: 移除端口转发成功", local=local or "all") |
|
|
|
return {"message": f"端口转发移除成功: {local or 'all'}"} |
|
|
|
|