11.15 脚本APP 手机将H5,打包成APP
HTML_FILE="/storage/emulated/0/Download/OnePlus Share/11.14 脚本测试/index.html"WWW_SRC_DIR="/storage/emulated/0/Download/OnePlus Share/11.14 脚本测试" # ← 整目录。echo "APK 已保存到:${OUT_DIR}/${APK_NAME}"echo "APK
一. 博主第二天上班,少睡一个小时,终于把自动化脚本打包好了
二 功能 ,三个脚本,对应 把html5打包成游戏
三 代码 不做说明,自行AI ,这里先睡


1. 下午删除了半夜写的,现在变成自动化脚本。
2. 保存文件,然后执行命令。
bash "/storage/emulated/0/Download/OnePlus Share/03 - 个人测试/2025_常用工具 11.15a/C_10月部分脚本.bash/脚本命令/2. 安卓相关/4.工具.bash"


#!/bin/bash
# 一体化 Cordova 构建工具(凉安V 定制版)
set -euo pipefail
OUT_DIR="/storage/emulated/0/Download"
PROJ_DIR="$HOME/2026"
check_deps() {
command -v node >/dev/null || { echo "❌ 请先 pkg install nodejs"; exit 1; }
pkg list-installed aapt2 &>/dev/null || pkg install aapt2 -y
command -v cordova >/dev/null || npm i -g cordova
}
# ① 应用名称固定前缀凉安V
ask_app_name() {
local ver
read -p "请输入今天版本号(如 11.2a): " ver
echo "凉安V${ver}"
}
# ② 复制APK时 凉安V + 4位随机数
rand_apk_name() {
local num=$(awk 'BEGIN{srand(); printf "%04d", int(rand()*10000)}')
echo "凉安V${num}.apk"
}
build_apk() {
echo "=== 打包模式 ==="
echo "1) 打包单个 HTML 文件"
echo "2) 打包整个目录(含 index.html)"
read -p "请选择 (1/2): " mode
read -p "请输入路径(文件或目录): " src_path
app_title=$(ask_app_name) # ← 这里固定凉安V
[[ ! -e "$src_path" ]] && echo "❌ 路径不存在" && exit 1
check_deps
rm -rf "$PROJ_DIR"
cordova create "$PROJ_DIR" "com.example.auto.v$(date +%s)" "$app_title"
cd "$PROJ_DIR"
rm -rf www/*
if [[ "$mode" == "1" ]]; then
cp "$src_path" www/index.html
else
cp -r "$src_path"/* www/
fi
cordova plugin add cordova-plugin-inappbrowser
cordova platform add android@12.0.1 --no-fetch
GRADLE_PROPS="platforms/android/gradle.properties"
AAPT2_TERMUX="/data/data/com.termux/files/usr/bin/aapt2"
cat >> "$GRADLE_PROPS" <<EOF
android.aapt2FromMavenOverride=$AAPT2_TERMUX
android.enableAapt2Daemon=false
EOF
rm -rf ~/.gradle/caches/transforms-3/*aapt2* \
platforms/android/build \
platforms/android/app/build \
platforms/android/app/src/main/assets/www \
~/.npm/_cacache \
~/.cordova/npm_cache
mkdir -p platforms/android/app/src/main/assets/www
cp -r www/* platforms/android/app/src/main/assets/www/
pkill -f gradle &>/dev/null || true
cordova build android
mkdir -p "$OUT_DIR"
cp platforms/android/app/build/outputs/apk/debug/app-debug.apk "$OUT_DIR/MyBookmarks.apk"
echo "✅ 构建完成 → $OUT_DIR/MyBookmarks.apk"
}
rebuild_apk() {
echo "=== 修复重建模式 ==="
check_deps
cd "$PROJ_DIR" 2>/dev/null || { echo "❌ 项目目录不存在,请先运行打包"; exit 1; }
GRADLE_PROPS="platforms/android/gradle.properties"
AAPT2_TERMUX="/data/data/com.termux/files/usr/bin/aapt2"
cat > "$GRADLE_PROPS" <<EOF
android.aapt2FromMavenOverride=$AAPT2_TERMUX
android.enableAapt2Daemon=false
EOF
rm -rf ~/.gradle/caches/transforms-3/*aapt2* \
platforms/android/build \
platforms/android/app/build \
platforms/android/app/src/main/assets/www \
~/.npm/_cacache \
~/.cordova/npm_cache
mkdir -p platforms/android/app/src/main/assets/www
cp -r www/* platforms/android/app/src/main/assets/www/
pkill -f gradle &>/dev/null || true
cordova build android
mkdir -p "$OUT_DIR"
cp platforms/android/app/build/outputs/apk/debug/app-debug.apk "$OUT_DIR/MyBookmarks.apk"
echo "✅ 修复重建完成 → $OUT_DIR/MyBookmarks.apk"
}
copy_latest_apk() {
echo "=== 复制最新 APK ==="
cd "$PROJ_DIR" 2>/dev/null || { echo "❌ 项目目录不存在"; exit 1; }
mapfile -t APK_LIST < <(find . -name "*.apk" -type f)
[[ ${#APK_LIST[@]} -eq 0 ]] && echo "❌ 未找到 APK" && exit 1
APK_SRC=$(stat -c '%Y %n' "${APK_LIST[@]}" | sort -nr | head -n1 | cut -d' ' -f2-)
NEW_NAME=$(rand_apk_name) # ← 凉安V + 4位随机
mkdir -p "$OUT_DIR"
cp -f "$APK_SRC" "$OUT_DIR/$NEW_NAME"
echo "✅ 已复制 → $OUT_DIR/$NEW_NAME"
}
# 主菜单
echo "=== Cordova 构建工具(凉安V 版)==="
echo "1) 打包网页为 APK(应用名=凉安V+版本号)"
echo "2) 修复并重新构建"
echo "3) 复制最新 APK(文件名=凉安V+4位随机)"
read -p "请输入选择 (1/2/3): " choice
case "$choice" in
1) build_apk ;;
2) rebuild_apk ;;
3) copy_latest_apk ;;
*) echo "❌ 无效选择" ;;
esac
为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐


所有评论(0)