feat: PLANNING体系首版(00路线图/02任务总表/03执行协议/I-03/I-04/registry42口径)+M1止血交付
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo " ChunYu Android Emulator Container"
|
||||
echo "=========================================="
|
||||
|
||||
# Configuration
|
||||
BACKEND_HOST="${BACKEND_HOST:-backend}"
|
||||
BACKEND_PORT="${BACKEND_PORT:-8000}"
|
||||
APK_PATH="${APK_PATH:-/app/apks/app-debug.apk}"
|
||||
LAUNCH_ACTIVITY="${LAUNCH_ACTIVITY:-com.chunyu.app/.MainActivity}"
|
||||
|
||||
echo "[1/5] Starting Redroid Android container..."
|
||||
# Start redroid in background
|
||||
redroid --host=0.0.0.0 --port=5555 &
|
||||
REDROID_PID=$!
|
||||
|
||||
echo "[2/5] Waiting for Android emulator to be ready..."
|
||||
# Wait for boot completion
|
||||
timeout=120
|
||||
counter=0
|
||||
while [ $counter -lt $timeout ]; do
|
||||
if adb devices | grep -q "emulator.*device"; then
|
||||
echo " ✓ Android emulator is ready!"
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
counter=$((counter + 2))
|
||||
echo " ...waiting for emulator (${counter}s/${timeout}s)"
|
||||
done
|
||||
|
||||
if [ $counter -ge $timeout ]; then
|
||||
echo " ✗ Timeout waiting for emulator to boot"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Wait for boot completion
|
||||
adb wait-for-device
|
||||
echo " Waiting for boot to complete..."
|
||||
adb shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; echo "Boot completed"'
|
||||
echo " ✓ Android boot completed!"
|
||||
|
||||
echo "[3/5] Configuring network..."
|
||||
# Get the IP that the Android emulator can use to reach the backend
|
||||
# In Docker bridge network, we can use the service name
|
||||
echo " Backend host: ${BACKEND_HOST}:${BACKEND_PORT}"
|
||||
|
||||
# Push configuration to Android
|
||||
# Create a config file that the app can read
|
||||
adb shell "mkdir -p /data/local/tmp/chunyu"
|
||||
adb shell "echo '${BACKEND_HOST}' > /data/local/tmp/chunyu/backend_host"
|
||||
adb shell "echo '${BACKEND_PORT}' > /data/local/tmp/chunyu/backend_port"
|
||||
|
||||
echo "[4/5] Installing APK..."
|
||||
if [ -f "$APK_PATH" ]; then
|
||||
echo " Installing: $APK_PATH"
|
||||
adb install -r -t "$APK_PATH"
|
||||
echo " ✓ APK installed successfully!"
|
||||
else
|
||||
echo " ⚠ APK not found at $APK_PATH"
|
||||
echo " Please mount the APK to /app/apks/app-debug.apk"
|
||||
fi
|
||||
|
||||
echo "[5/5] Launching application..."
|
||||
adb shell am start -n "$LAUNCH_ACTIVITY"
|
||||
echo " ✓ Application launched!"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " Android Emulator Ready!"
|
||||
echo "=========================================="
|
||||
echo " ADB Port: 5555"
|
||||
echo " Backend: ${BACKEND_HOST}:${BACKEND_PORT}"
|
||||
echo ""
|
||||
echo " To connect from host:"
|
||||
echo " adb connect localhost:5555"
|
||||
echo "=========================================="
|
||||
|
||||
# Keep container running
|
||||
wait $REDROID_PID
|
||||
Reference in New Issue
Block a user