实用指南:11.15 脚本APP 手机将H5,打包成APP

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

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

posted @ 2025-12-16 19:12  yangykaifa  阅读(131)  评论(0)    收藏  举报