feat(android): establish Roubao build baseline
This commit is contained in:
@@ -3,26 +3,56 @@
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
ANDROID_DIR="$ROOT_DIR/android-buyer"
|
||||
SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME:-$HOME/Android/Sdk}}"
|
||||
GRADLE="$ANDROID_DIR/gradlew"
|
||||
ADB="$SDK_ROOT/platform-tools/adb"
|
||||
APK="$ANDROID_DIR/app/build/outputs/apk/debug/app-debug.apk"
|
||||
|
||||
# T-001 接入真实工程后替换。
|
||||
INSTALL_CMD=(__REPLACE_AFTER_T001__)
|
||||
VERIFY_CMD=(__REPLACE_AFTER_T001__)
|
||||
START_CMD=(__REPLACE_AFTER_T001__)
|
||||
if [[ ! -x "$GRADLE" ]]; then
|
||||
echo "ERROR: Android Gradle Wrapper is missing or not executable: $GRADLE" >&2
|
||||
exit 2
|
||||
fi
|
||||
if [[ ! -d "$SDK_ROOT/platforms/android-34" ]]; then
|
||||
echo "ERROR: Android SDK 34 is missing; set ANDROID_SDK_ROOT or ANDROID_HOME." >&2
|
||||
exit 2
|
||||
fi
|
||||
if [[ ! -d "$SDK_ROOT/build-tools/34.0.0" ]]; then
|
||||
echo "ERROR: Android SDK Build Tools 34.0.0 is missing." >&2
|
||||
exit 2
|
||||
fi
|
||||
if ! command -v java >/dev/null 2>&1; then
|
||||
echo "ERROR: JDK 17 is missing from PATH." >&2
|
||||
exit 2
|
||||
fi
|
||||
JAVA_VERSION="$(java -version 2>&1 | head -n 1)"
|
||||
if [[ "$JAVA_VERSION" != *'version "17.'* ]]; then
|
||||
echo "ERROR: JDK 17 is required; found: $JAVA_VERSION" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
for value in "${INSTALL_CMD[0]}" "${VERIFY_CMD[0]}" "${START_CMD[0]}"; do
|
||||
if [[ "$value" == __REPLACE_* ]]; then
|
||||
echo "ERROR: 项目尚未完成 T-001,请配置 init.sh 并同步技术栈和当前状态文档。"
|
||||
exit 2
|
||||
fi
|
||||
done
|
||||
export ANDROID_HOME="$SDK_ROOT"
|
||||
export ANDROID_SDK_ROOT="$SDK_ROOT"
|
||||
|
||||
"${INSTALL_CMD[@]}"
|
||||
"${VERIFY_CMD[@]}"
|
||||
printf '启动命令:'
|
||||
printf ' %q' "${START_CMD[@]}"
|
||||
printf '\n'
|
||||
echo "==> Verifying Android project"
|
||||
(
|
||||
cd "$ANDROID_DIR"
|
||||
"$GRADLE" test assembleDebug --no-daemon
|
||||
)
|
||||
|
||||
echo "==> Debug APK: $APK"
|
||||
|
||||
if [[ "${RUN_START_COMMAND:-0}" == "1" ]]; then
|
||||
exec "${START_CMD[@]}"
|
||||
if [[ ! -x "$ADB" ]]; then
|
||||
echo "ERROR: Android Platform Tools are missing: $ADB" >&2
|
||||
exit 2
|
||||
fi
|
||||
if ! "$ADB" devices | grep -qE $'\tdevice$'; then
|
||||
echo "ERROR: No authorized Android device is connected." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "==> Installing and starting Debug APK"
|
||||
"$ADB" install -r -t "$APK"
|
||||
"$ADB" shell am start -W -n "com.roubao.autopilot/.MainActivity"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user