- Kotlin + Jetpack Compose (Material 3) - Конвертация в APRS, Maidenhead, DMS форматы - Полноэкранный режим - Иконка приложения - Min SDK: 21, Target SDK: 34 Версия: 1.0.0 Дата: 2026-03-02 Автор: UA1ZBE Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
80 lines
1.9 KiB
Bash
Executable File
80 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
if [ -z "$DISPLAY" ]; then
|
|
echo "No X DISPLAY set. Cannot start GUI emulator here."
|
|
echo "If you are on a remote session, run this on a desktop with X or use SSH -X."
|
|
exit 1
|
|
fi
|
|
|
|
SDK="$HOME/Android/Sdk"
|
|
ADB="$SDK/platform-tools/adb"
|
|
EMULATOR_BIN="$SDK/emulator/emulator"
|
|
AVD_NAME=aprs_avd
|
|
LOG=/tmp/emulator_aprs_gui.log
|
|
|
|
echo "Killing existing emulator instances..."
|
|
pkill -f 'emulator' || true
|
|
sleep 1
|
|
|
|
if [ ! -x "$ADB" ]; then
|
|
echo "adb not found at $ADB"; exit 1
|
|
fi
|
|
|
|
echo "Restarting adb..."
|
|
$ADB kill-server || true
|
|
sleep 1
|
|
$ADB start-server || true
|
|
|
|
if [ ! -x "$EMULATOR_BIN" ]; then
|
|
echo "Emulator binary not found: $EMULATOR_BIN"; exit 1
|
|
fi
|
|
|
|
echo "Starting emulator '$AVD_NAME' (GUI). Log -> $LOG"
|
|
"$EMULATOR_BIN" -avd "$AVD_NAME" -partition-size 5120 -gpu host -wipe-data -no-boot-anim &>"$LOG" &
|
|
EMUPID=$!
|
|
echo "Emulator PID: $EMUPID"
|
|
|
|
echo "Waiting for adb to see emulator..."
|
|
for i in $(seq 1 60); do
|
|
LIST=$($ADB devices | sed -n '2,200p' | tr -d '\r' || true)
|
|
if echo "$LIST" | grep -q 'emulator'; then
|
|
echo "Emulator connected to adb"
|
|
break
|
|
fi
|
|
echo "Waiting for adb... ($i)"
|
|
sleep 2
|
|
done
|
|
|
|
echo "Waiting for emulator to finish boot (up to 240s)..."
|
|
for i in $(seq 1 120); do
|
|
BOOT=$($ADB shell getprop sys.boot_completed 2>/dev/null | tr -d '\r' || true)
|
|
if [ "$BOOT" = "1" ]; then
|
|
echo "Emulator booted after $((i*2))s"
|
|
break
|
|
fi
|
|
echo "Boot waiting... ($i)"
|
|
sleep 2
|
|
done
|
|
|
|
echo "--- emulator log tail ---"
|
|
tail -n 200 "$LOG" || true
|
|
|
|
echo "Building app..."
|
|
cd "$HOME/my_aprs_project/vs2"
|
|
chmod +x ./gradlew || true
|
|
./gradlew assembleDebug --no-daemon
|
|
|
|
APK="app/build/outputs/apk/debug/app-debug.apk"
|
|
if [ -f "$APK" ]; then
|
|
echo "Installing APK"
|
|
$ADB install -r "$APK" || true
|
|
$ADB shell am start -n com.example.aprs/.MainActivity || true
|
|
echo "App launched on emulator (check window)."
|
|
else
|
|
echo "APK not found: $APK"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Done. ADB devices:"; $ADB devices -l
|