Web2BlueBuilder
面向嵌入式项目演示的 HTML/CSS/JavaScript 一键打包 Android APK 工具,支持 WebView 原生桥接、蓝牙通信、语音识别、TTS 和便携构建环境。
一个面向嵌入式项目演示的 HTML / CSS / JavaScript 一键打包 Android APK 工具。
Web2BlueBuilder 可以把普通网页项目打包成 Android WebView 应用,并通过 JavaScript Bridge 接入 Android 原生能力,例如蓝牙通信、语音识别、TTS 播报、本地配置保存和硬件调试控制台。
English: A Windows-friendly CLI that packages web projects into Android WebView APKs with native bridge capabilities for embedded-system demos.
复制命令直接用
如果你电脑已经安装 Node.js 18+、Android SDK、JDK 17,可以直接看“已有环境”。
如果你不想手动安装 Android Studio / Android SDK,可以先看“便携环境一键安装”。
便携环境一键安装
这条命令会在项目目录下自动准备:
node/:便携 Node.jsjdk17/:便携 JDK 17android-sdk/:便携 Android SDK 命令行环境
git clone https://github.com/zwisgod/Web2BlueBuilder.git
cd Web2BlueBuilder
powershell -ExecutionPolicy Bypass -File .\setup-portable.ps1
.\web2blue.bat init demo-web
.\web2blue.bat build --src .\demo-web --name "Web2Blue演示"
构建成功后,APK 会出现在 output/ 文件夹中。
说明:
- 第一次运行需要联网下载 Node.js、JDK 17、Android SDK 组件和 Gradle 依赖。
- 下载内容比较大,耗时取决于网络。
- 这个方案不需要安装完整 Android Studio。
已有环境
如果你已经有 Node.js、JDK 17 和 Android SDK,并且有一个网页项目,例如 C:\my-web-app,直接复制下面三行:
git clone https://github.com/zwisgod/Web2BlueBuilder.git
cd Web2BlueBuilder
.\web2blue.bat build --src C:\my-web-app --name "我的控制器"
第一次运行时,web2blue.bat 会自动安装 CLI 依赖,不需要手动进入 packages\cli。
如果你只是想先体验一下,不知道 --src 应该填什么,可以直接跑示例:
git clone https://github.com/zwisgod/Web2BlueBuilder.git
cd Web2BlueBuilder
.\web2blue.bat init demo-web
.\web2blue.bat build --src .\demo-web --name "Web2Blue演示"
构建成功后,APK 会出现在项目根目录的 output/ 文件夹中。
一句话说明
把网页变成 APK:
.\web2blue.bat build --src 你的网页目录 --name "应用名称"
项目定位
很多嵌入式项目会先做一个网页端控制面板,例如单片机状态监控、机器人地图显示、设备参数配置等。但比赛或现场演示时,评委和用户更希望看到一个可以直接安装的手机 APK。
Web2BlueBuilder 的目标就是把这一步自动化:
网页项目 HTML / CSS / JS
↓ 自动注入
Android assets/web
↓ WebView 加载
Android APK
↓ JavaScript Bridge
蓝牙 / 语音 / TTS / 本地配置 / 调试控制台
这样前端页面不用重写成原生 Android,也能快速变成一个具备原生能力的 APK。
核心特性
- 一键将静态网页项目打包成 Android APK。
- 自动注入网页资源到 Android
assets/web目录。 - 支持通过命令行设置应用名称、包名和输出目录。
- Android WebView 加载本地网页,适合离线现场演示。
- 提供 JavaScript Bridge,方便网页调用 Android 原生能力。
- 支持经典蓝牙 SPP 和 BLE 方向的通信桥接架构。
- 内置硬件调试控制台,方便查看 TX/RX 报文和连接状态。
- 支持语音识别、TTS、云端配置等扩展桥接能力。
- 网页端和 APK 端可以复用同一套界面、协议和业务逻辑。
适用场景
- 嵌入式比赛项目展示。
- STM32 / ESP32 / Arduino 等下位机控制面板。
- 蓝牙设备调试工具。
- 机器人地图显示与任务控制 APK。
- 将已有网页控制台快速转换为 Android 应用。
- 需要 WebView + 原生能力桥接的轻量 Hybrid App。
项目结构
Web2BlueBuilder/
├── packages/
│ ├── cli/ # Node.js 命令行构建工具
│ └── android-shell/ # Android WebView 壳工程
├── customer-demo/ # 示例网页项目
├── web2blue.bat # Windows 启动脚本
├── Web2Blue_PRD.md # 原始产品设计说明
├── README.md
└── LICENSE
环境要求
- Windows 10 / Windows 11
- Node.js 18 或更高版本
- Android SDK,建议包含 API 34、Build Tools、Platform Tools
- JDK 17
说明:本地开发时可以放置自己的 JDK,但公开仓库不会包含 jdk17/ 这类本地运行时文件。请自行安装 JDK 17,或配置 JAVA_HOME。
Android SDK 怎么获得
有两种方式。
方式 A:使用本项目便携脚本
powershell -ExecutionPolicy Bypass -File .\setup-portable.ps1
脚本会自动下载并安装 Android SDK 命令行环境到项目根目录的 android-sdk/。
方式 B:安装 Android Studio
也可以安装 Android Studio:
- 打开官方页面:https://developer.android.com/studio
- 下载并安装 Windows 版 Android Studio。
- 打开 Android Studio,进入
More Actions -> SDK Manager。 - 在
SDK Platforms勾选Android 14.0 / API 34。 - 在
SDK Tools勾选:- Android SDK Build-Tools
- Android SDK Platform-Tools
- Android SDK Command-line Tools
- 点击
Apply等待安装完成。
Windows 默认 SDK 路径通常是:
C:\Users\你的用户名\AppData\Local\Android\Sdk
Web2BlueBuilder 会自动尝试识别这个默认路径。
自己打离线包
如果你不想让每个用户都联网下载,可以先在自己电脑运行:
powershell -ExecutionPolicy Bypass -File .\setup-portable.ps1
然后把整个目录打包发给别人:
Web2BlueBuilder/
├── node/ # 便携 Node.js
├── android-sdk/ # 你提前下载好的 Android SDK
├── jdk17/ # 便携 JDK 17
├── packages/
└── web2blue.bat
Web2BlueBuilder 会自动按以下顺序寻找 SDK:
ANDROID_SDK_ROOTANDROID_HOME- 项目根目录下的
android-sdk/ - Android Studio 默认路径
%LOCALAPPDATA%\Android\Sdk
注意:node/、android-sdk/ 和 jdk17/ 体积很大,不建议提交到 GitHub。更适合你自己打一个离线压缩包发给队友或现场演示电脑。
常用命令
准备一个网页项目目录,里面至少包含 index.html,然后运行:
.\web2blue.bat build --src C:\path\to\your-web-project --name "我的控制器"
指定 Android 包名:
.\web2blue.bat build --src C:\path\to\your-web-project --name "我的控制器" --package com.example.mycontroller
指定 APK 输出目录:
.\web2blue.bat build --src C:\path\to\your-web-project --name "我的控制器" --output C:\path\to\apk-output
构建完成后,APK 会复制到输出目录。
如果想显式安装或检查依赖,也可以运行:
.\setup.bat
创建示例网页项目
.\web2blue.bat init my-blue-app
然后构建:
.\web2blue.bat build --src .\my-blue-app --name "My Blue App"
Web 与 Android 原生桥接
Web2BlueBuilder 的核心思想不是简单“套壳”,而是让网页保留开发效率,同时通过 Android 原生层补足浏览器做不到或不稳定的能力。
典型链路:
网页按钮 / JS 逻辑
↓
BlueApp / Native Bridge
↓
Android Java 原生代码
↓
蓝牙连接、串口透传、语音识别、TTS、配置保存、调试日志
在嵌入式项目中,这种方式可以让网页端和 APK 端复用同一套协议逻辑。例如机器人项目中,网页负责地图显示和任务交互,APK 则额外获得麦克风、TTS、离线语音等原生能力。
和普通 WebView 套壳的区别
普通 WebView 套壳通常只是把网页放进 App 里显示,而 Web2BlueBuilder 更强调嵌入式项目需要的工程能力:
- 构建过程自动化,不需要每次手动改 Android 工程。
- 支持应用名、包名、网页资源注入和 APK 输出。
- Android 原生层提供硬件相关能力。
- 调试控制台可以帮助定位单片机通信问题。
- 适合比赛现场快速打包、迭代和演示。
开源仓库未包含的内容
为了避免仓库过大和泄露本地配置,本仓库不会提交以下内容:
output/生成的 APK。_staging/临时项目快照。downloads/下载包。node/本地 Node.js。jdk17/本地 JDK。android-sdk/本地 Android SDK。node_modules/。- Android
build/目录。 local.properties。- 签名文件、密钥和密码。
- 构建时注入的具体项目网页资源。
- 大体积离线语音模型资源。
如果需要离线语音模型,请根据项目实际需要自行下载并放入对应 assets 目录。
安全说明
- 不要在网页文件中硬编码 API Key。
- 不要提交 Android 签名文件、签名密码或
local.properties。 - Debug APK 只适合开发和演示,不适合正式发布。
- Release APK 请在本地自行配置签名。
License
MIT