82 lines
2.3 KiB
Bash
82 lines
2.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo " ChunYu Android Tools Container"
|
|
echo "=========================================="
|
|
|
|
# Configuration
|
|
ANDROID_HOST="${ANDROID_HOST:-android}"
|
|
ANDROID_PORT="${ANDROID_PORT:-5555}"
|
|
APK_PATH="${APK_PATH:-/app/apks/app-debug.apk}"
|
|
LAUNCH_ACTIVITY="${LAUNCH_ACTIVITY:-com.chunyu.app/.MainActivity}"
|
|
WAIT_TIMEOUT="${WAIT_TIMEOUT:-120}"
|
|
|
|
echo "[1/4] Waiting for Android emulator (${ANDROID_HOST}:${ANDROID_PORT})..."
|
|
|
|
# Wait for the emulator to be reachable via ADB
|
|
counter=0
|
|
while [ $counter -lt $WAIT_TIMEOUT ]; do
|
|
if adb connect "${ANDROID_HOST}:${ANDROID_PORT}" 2>/dev/null | grep -q "connected"; then
|
|
echo " ✓ Connected to Android emulator!"
|
|
break
|
|
fi
|
|
sleep 2
|
|
counter=$((counter + 2))
|
|
echo " ...waiting for emulator (${counter}s/${WAIT_TIMEOUT}s)"
|
|
done
|
|
|
|
if [ $counter -ge $WAIT_TIMEOUT ]; then
|
|
echo " ✗ Timeout waiting for emulator"
|
|
exit 1
|
|
fi
|
|
|
|
# Wait for ADB device to be ready
|
|
adb wait-for-device
|
|
echo " ✓ ADB device ready!"
|
|
|
|
# Wait for boot to complete
|
|
echo "[2/4] Waiting for Android boot..."
|
|
counter=0
|
|
while [ $counter -lt $WAIT_TIMEOUT ]; do
|
|
boot_status=$(adb shell getprop sys.boot_completed 2>/dev/null || echo "")
|
|
if [ "$boot_status" = "1" ]; then
|
|
echo " ✓ Android boot completed!"
|
|
break
|
|
fi
|
|
sleep 2
|
|
counter=$((counter + 2))
|
|
echo " ...waiting for boot (${counter}s/${WAIT_TIMEOUT}s)"
|
|
done
|
|
|
|
if [ $counter -ge $WAIT_TIMEOUT ]; then
|
|
echo " ✗ Timeout waiting for boot"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[3/4] Installing APK..."
|
|
if [ -f "$APK_PATH" ]; then
|
|
echo " Installing: $APK_PATH"
|
|
adb install -r -t "$APK_PATH" 2>&1 || echo " ⚠ APK install failed"
|
|
echo " ✓ APK installation attempted!"
|
|
else
|
|
echo " ⚠ APK not found at $APK_PATH"
|
|
echo " Mount the APK to /app/apks/app-debug.apk"
|
|
fi
|
|
|
|
echo "[4/4] Launching application..."
|
|
adb shell am start -n "$LAUNCH_ACTIVITY" 2>&1 || echo " ⚠ Launch failed"
|
|
echo " ✓ Launch attempted!"
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " Android Tools Complete!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo " To connect from host:"
|
|
echo " adb connect localhost:5555"
|
|
echo ""
|
|
echo " To view logcat:"
|
|
echo " adb logcat"
|
|
echo "=========================================="
|