如何把Python/Go后端打包成安卓应用:Flask、FastAPI与Gin设备端运行全解析
【免费下载链接】web-to-appThe most full featured web-to-app toolkit on Android, a complete APK workshop that runs entirely on your phone项目地址: https://gitcode.com/gh_mirrors/web/web-to-app
WebToApp(web-to-app)是 Android 上功能最全的 Web 转应用工具箱:它不只是把网址套个壳,而是能直接在你的手机里 fork + exec 出真实的服务器运行时——把 Python 3.14 和 Go 1.26 工具链装进 App,让你的Flask、FastAPI、Django或Gin后端直接在设备端跑起来,最后导出成可安装的 APK。全程无需电脑、无需远程构建服务器。
为什么要在手机上跑后端?
| 传统方式 | WebToApp 设备端方式 |
|---|---|
| 需要服务器、域名、备案 | 一个 APK 即开即用 |
| 依赖网络环境 | 本地端口 + WebView,离线可运行 |
| 打包 APK 要电脑 + 构建服务器 | 手机上完成签名、打包、导出 |
核心思路很简单:App 在设备内启动真实的 Python / Go 进程监听本地端口,再由 WebView 指向这个端口(如localhost:5000),前端页面和 API 就都通了。
Python 后端:Flask、FastAPI、Django 三步打包
第 1 步:安装 Python 运行时
从⋮ → 运行时管理下载 Python 运行时(当前为 Python 3.14),支持自动选镜像、国内镜像加速、暂停/继续下载;运行时下载后会缓存,多个应用可复用。工具链与依赖构建则通过⋮ → Linux 环境管理,详见 运行时管理 与 Linux 环境。
第 2 步:导入项目,框架自动识别
在我的应用 → 创建选择「Python」类型后,App 会自动帮你做大部分决策(配置模型见PythonAppConfig,说明见 Python 应用类型文档):
- 服务器类型自动推导:FastAPI →
uvicorn、Django →gunicorn、其余(Flask 等)→builtin,导入项目时自动配置,无需手动选择; - 入口文件:默认
app.py;模块式入口(如main:app)通过「入口模块」填写; - 依赖解析:默认读取
requirements.txt,pip 依赖统一安装进.pypackages,还可为原生扩展添加自定义.so文件并指定加载顺序; - 端口与环境变量:端口由端口管理器统一分配,环境变量以键值对传给进程。
第 3 步:保存并导出 APK
填好名称和图标保存后,应用出现在「我的应用」列表;之后可随时用 ⋮ 菜单回到「编辑核心配置」调整入口、端口等参数,再执行 APK 导出即可得到独立安装包。
💡 内置了 Python/Flask、Python/FastAPI 等官方示例项目,强烈建议先跑一个示例验证你的技术栈。可直接浏览示例源码:python-flask/app.py、python-fastapi/main.py
Go 后端:Gin 设备端编译与运行
Go 的玩法和 Python 略有不同:它不是解释执行,而是在手机上直接编译(说明见 Go 应用类型文档):
- 工具链:官方 Go 1.26 Linux arm64 工具链,从
dl.google.com下载,国内自动可用 USTC 镜像加速; - 设备端构建:支持
go build/go mod/go run,配合vendor/目录可实现离线构建,断网也能编译; - 静态服务:通过原生
go_exec_loader包装器启动编译出的二进制,APK 导出时会自动嵌入libgo_exec_loader.so; - 网络细节:Go 工具链的 DNS 与 CA 信任走本地 JVM 桥,下载依赖时更稳定。
Gin 示例源码可直接参考 go-gin/main.go,Echo、Fiber 同样支持。
端口管理:多应用共存的关键
每个后端服务都需要本地端口。WebToApp 的⋮ → 端口管理会协调所有生成应用的端口占用,服务停止时自动释放,不会在应用间泄漏端口。端口冲突时支持三种策略(详见 端口管理文档):
REASSIGN:自动换一个端口;AUTO_KILL:停止冲突服务;ALERT:通知后由你决定。
核心模块速查
| 模块 | 路径 |
|---|---|
| Python 运行时管理 | app/src/main/java/com/webtoapp/core/python/PythonRuntime.kt |
| Go 运行时管理 | app/src/main/java/com/webtoapp/core/golang/GoRuntime.kt |
| 应用类型总览(12 种) | docs/zh/guide/app-types/index.md |
| Python 类型完整配置 | docs/zh/guide/app-types/python.md |
| Go 类型完整配置 | docs/zh/guide/app-types/go.md |
总结:如果你的项目是 Flask / FastAPI / Django,选 Python 类型,几乎零配置即可跑通;如果是 Gin / Echo / Fiber,选 Go 类型,在设备上编译后导出带go_exec_loader的 APK。无论哪条路线,你得到的都是一个真正在手机上运行后端的安卓应用,而不是一个套壳页面。🚀
【免费下载链接】web-to-appThe most full featured web-to-app toolkit on Android, a complete APK workshop that runs entirely on your phone项目地址: https://gitcode.com/gh_mirrors/web/web-to-app
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考