一. 博主第二天上班,少睡一个小时,终于把自动化脚本打包好了

  二  功能  ,三个脚本,对应 把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

 

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐