logo
0
0
WeChat Login

HTML 转 APK 构建器

一个基于 Flask 和 Apache Cordova 的多线程 Web 应用,可以将 HTML 文件或 ZIP 压缩包自动构建为 Android APK。

功能特性

  • ✅ 多线程支持,可同时处理多个构建任务
  • ✅ 支持 HTML 文件和 ZIP 压缩包上传
  • ✅ 自动使用 Apache Cordova 构建 Android APK
  • ✅ 自定义应用名称、包名、版本号
  • ✅ 支持全屏、横屏、竖屏、后台运行等选项
  • ✅ 支持浅色/深色主题
  • ✅ 自适应手机分辨率
  • 所有程序和依赖都在项目目录下,方便移植和部署

系统要求

  • Linux 系统
  • Python 3.7+
  • 至少 2GB 可用磁盘空间
  • 网络连接(用于下载依赖)

快速开始

1. 运行安装脚本

cd /workspace chmod +x setup.sh ./setup.sh

安装脚本会自动:

  • 更新系统包管理器
  • 创建 Python 虚拟环境
  • 安装 Python 依赖
  • 在项目目录下安装 Node.js 和 npm
  • 在项目目录下安装 Apache Cordova
  • 下载并安装 JDK 17 到项目目录
  • 下载并安装 Android SDK Command-line Tools 到项目目录

2. 启动服务

chmod +x start.sh ./start.sh

或者手动启动:

cd /workspace source venv/bin/activate export JAVA_HOME=/workspace/java export ANDROID_HOME=/workspace/android-sdk export ANDROID_SDK_ROOT=/workspace/android-sdk export PATH=/workspace/java/bin:/workspace/android-sdk/cmdline-tools/latest/bin:/workspace/android-sdk/platform-tools:/workspace/android-sdk/build-tools/34.0.0:/workspace/node/bin:/workspace/cordova/node_modules/.bin:$PATH python app.py

3. 访问应用

打开浏览器访问:http://localhost:8082

使用说明

  1. 上传文件:选择 HTML 文件或 ZIP 压缩包
  2. 设置应用信息
    • 应用名称:显示在手机桌面上的名称
    • 包名:唯一标识符,如 com.example.myapp
    • 版本号:应用版本,如 1.0.0
  3. 配置显示选项
    • 全屏显示:隐藏状态栏
    • 横屏:强制横屏显示
    • 竖屏:强制竖屏显示
    • 后台运行:应用在后台继续运行
    • 自动旋转:根据设备方向自动旋转
  4. 选择主题:默认、浅色或深色
  5. 开始构建:点击按钮开始构建 APK
  6. 下载 APK:构建完成后下载生成的 APK 文件

项目结构

/workspace/ ├── app.py # Flask 应用主程序 ├── requirements.txt # Python 依赖 ├── setup.sh # 环境安装脚本 ├── start.sh # 启动脚本 ├── venv/ # Python 虚拟环境 ├── java/ # JDK 17(本地安装) ├── android-sdk/ # Android SDK(本地安装) ├── node/ # Node.js 18(本地安装) ├── cordova/ # Apache Cordova(本地 npm 包) ├── uploads/ # 上传的文件 └── outputs/ # 生成的 APK 文件

软件安装位置

所有软件都安装在项目目录 /workspace 下:

  • Node.js 18: /workspace/node
  • JDK 17: /workspace/java
  • Android SDK: /workspace/android-sdk
  • Apache Cordova: /workspace/cordova/node_modules/
  • Python 虚拟环境: /workspace/venv

API 接口

POST /build

上传文件并开始构建

参数:

  • file: HTML 或 ZIP 文件
  • appName: 应用名称
  • packageName: 包名
  • appVersion: 版本号
  • fullscreen: 是否全屏
  • landscape: 是否横屏
  • portrait: 是否竖屏
  • keepRunning: 是否后台运行
  • orientation: 是否自动旋转
  • theme: 主题

返回:

{ "success": true, "taskId": "uuid", "message": "构建任务已开始" }

GET /status/<task_id>

查询构建状态

返回:

{ "status": "success", "progress": 100, "message": "构建完成!" }

GET /download/<task_id>

下载生成的 APK

环境变量

应用会自动设置以下环境变量:

  • JAVA_HOME: /workspace/java
  • ANDROID_HOME: /workspace/android-sdk
  • ANDROID_SDK_ROOT: /workspace/android-sdk
  • PATH: 包含 Node.js、Java、Android SDK 和 Cordova 的 bin 目录

故障排除

构建失败

  1. 检查环境变量是否正确设置
  2. 确认 Android SDK 组件已正确安装
  3. 查看日志输出了解具体错误

APK 下载失败

  1. 检查 outputs 目录下是否存在对应的 APK 文件
  2. 确认构建任务状态为 success

权限问题

chmod +x setup.sh chmod +x start.sh

技术栈

  • 后端:Flask (多线程)
  • 构建工具:Apache Cordova 12.0.0
  • Java:OpenJDK 17
  • Android SDK:Command-line Tools 11.0
  • Python:3.x

部署到其他机器

由于所有软件都安装在项目目录下,你可以直接将整个 /workspace 目录复制到其他 Linux 机器上使用:

# 在目标机器上 tar -czf workspace.tar.gz /workspace # 复制到其他机器 tar -xzf workspace.tar.gz cd /workspace ./start.sh

注意:目标机器需要是相同架构的 Linux 系统。

许可证

MIT License

注意事项

  • 首次安装需要下载约 1GB 的依赖包
  • 构建 APK 需要较长时间(通常 3-5 分钟)
  • 确保有足够的磁盘空间(至少 2GB)
  • 建议使用高速网络进行首次安装

About

No description, topics, or website provided.
Language
C55.4%
HTML33.3%
Python8.2%
C++1%
Others2.1%