运行时与进程:端口、后台运行、自动重启策略
适用范围
运行时配置主要影响服务端类型(Node.js、PHP、Python、Go、WordPress)和前端类型——它们都需要在 APK 内部启动本地 HTTP 服务。纯网页型和媒体型一般不需要调整这些配置。
端口分配与冲突策略
启动端口
每个需要本地 HTTP 服务的应用都会占用一个端口。默认端口:
- Node.js:3000
- PHP:8000
- Python:8000
- Go:8080
- WordPress:8080
如果端口冲突(另一个应用已经占用):
端口冲突策略
WebToApp 提供三种处理方式:
- 自动换端口:检测到端口冲突后,自动尝试下一个可用端口(3001、3002……),并在 app_config.json 里更新。WebView 会自动访问新端口
- 报错:构建时检测到端口冲突就中断,要求你手动修改
- 等待释放:尝试等待几秒看端口是否会被释放
后台运行
Android 默认会把长时间不活跃的后台进程杀掉。对于服务端运行时类型,后台运行策略很重要:
- 不保持:APK 切到后台后,HTTP 服务可能随时被杀
- 前台服务:用 Android 前台服务(会在状态栏显示常驻通知)保持进程活跃
- 后台限制:在系统设置里取消对 WebToApp 或导出 APK 的后台限制
推荐配置:对于需要持续运行的服务(比如 WordPress、API 服务),开启「前台服务」。
进程自动重启
如果 fork+exec 的进程崩溃(比如 Node.js 抛未捕获异常退出),可以配置:
- 不重启:崩溃后 HTTP 服务停止,需要用户手动重启 APK
- 自动重启:检测到进程退出后自动重新 fork+exec 原命令
自动重启会让 APK 体验更鲁棒,但如果进程是因为配置错误反复崩溃,自动重启只会让它不停崩溃重启。调试时建议关掉自动重启,先让它明确地崩一次看日志。
DNS 桥接
APK 内部的 localhost DNS 解析需要被正确桥接到 fork+exec 出来的服务进程。WebToApp 自动处理这件事,但如果服务跑在非默认端口上,需要在配置里手动指定。
清理与缓存
可以在配置里设置:
- 启动前清理:每次启动 APK 前清理应用存储目录里的临时文件和旧日志
- 运行时日志级别:详细 / 普通 / 静默
- 最大日志文件大小:防止日志无限增长占满存储空间