Files
workphone-sdk/sdk/scripts/start_sdk.sh

69 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
#
# 工作手机 SDK 本地启动脚本
# 用法:在「工作手机」项目根目录执行
# cd sdk && ./scripts/start_sdk.sh
# 或从 sdk 目录:
# ./scripts/start_sdk.sh
#
set -e
SDK_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$SDK_ROOT"
echo "============================================"
echo " 工作手机 SDK 本地启动"
echo "============================================"
echo "SDK 目录: $SDK_ROOT"
echo ""
# 1. 检查 Python
if ! command -v python3 &> /dev/null; then
echo "❌ 未找到 python3"
exit 1
fi
# 2. 检查依赖
if ! python3 -c "import uvicorn" 2>/dev/null; then
echo "安装依赖: pip install -r requirements.txt"
pip install -r requirements.txt
fi
# 3. 启动 SDK 服务(工作目录须为 sdk/app
echo "[1/2] 启动 SDK 服务 (localhost:8899)..."
(cd "$SDK_ROOT/app" && python3 -m uvicorn main:app --host 0.0.0.0 --port 8899) &
SDK_PID=$!
sleep 3
# 4. 健康检查
if curl -s http://localhost:8899/health > /dev/null 2>&1; then
echo "✅ SDK 服务已启动"
curl -s http://localhost:8899/health | python3 -c "import json,sys; d=json.load(sys.stdin); print(f' devices_online={d.get(\"devices_online\",0)}, adb_devices={d.get(\"adb_devices\",0)}')" 2>/dev/null || true
else
echo "❌ SDK 启动失败"
kill $SDK_PID 2>/dev/null
exit 1
fi
echo ""
echo "[2/2] 启动 Agent需模拟器已运行..."
if adb devices 2>/dev/null | grep -q "emulator.*device"; then
(cd "$SDK_ROOT/agent" && python3 agent.py -d emulator-5554 -s ws://127.0.0.1:8899/ws/device --heartbeat 10) &
echo "✅ Agent 已启动(连接 emulator-5554"
else
echo "⚠️ 未检测到模拟器,跳过 Agent"
echo " 启动模拟器后手动执行:"
echo " cd $SDK_ROOT/agent && python3 agent.py -d emulator-5554 -s ws://127.0.0.1:8899/ws/device --heartbeat 10"
fi
echo ""
echo "============================================"
echo " 启动完成"
echo "============================================"
echo "SDK API: http://localhost:8899"
echo "API 文档: http://localhost:8899/docs"
echo "控制中心: http://localhost:8899/static/index.html"
echo ""
echo "验证: curl -s localhost:8899/health | jq ."
echo "============================================"