把 Toonflow(Bun + Vue3 的 AI 短剧 / 漫画创作平台)移植到 Android 14–16(arm64-v8a),产出可直接安装的 APK。
本仓库 = 上游源码 + Android 移植层。上游业务代码保持零改动或最小补丁,方便跟随上游更新。
从 Releases 页面下载最新 APK 安装即可。
- 要求:Android 14 及以上,arm64-v8a 设备
- 首次启动按引导授予「所有文件访问」权限(用于选择项目文件夹)
在完整保留 Toonflow 全部功能的基础上,为手机触屏做了这些适配:
| 特性 | 说明 |
|---|---|
| 🖥️ 原生运行 | Toonflow 后端(Bun + Express)交叉编译为 Android 原生可执行文件,App 内启动本地服务,WebView 加载界面——功能与桌面版一致 |
| 📱 全面屏适配 | 挖孔 / 刘海区内容铺展、手势条避让、系统栏图标随主题切换 |
| 🌓 按方向显示模式 | 竖屏全屏(隐藏状态栏);横屏沉浸式全屏(边缘滑动呼出系统栏) |
| 📂 系统文件夹选择器 | 「导入 / 添加项目」弹出 Android 系统文件管理器;未授权时一键跳转「所有文件访问」设置页 |
| 👆 画布触屏手势 | 双指捏合缩放、双指滑动平移、单指持续框选(替代鼠标操作) |
| 🎛️ 触屏交互重排 | 顶部控件一行排布(退出/设置 · 画布|文档胶囊 · 助手圆钮);助手对话默认最小化、点击圆钮侧边展开 |
| 📝 文档编辑页手机适配 | 编辑区自动避让顶部控件、全宽适配;文件树并入胶囊控件弹层;编辑工具条横向滚动 |
| 🖼️ 节点文件选择 | 图片/视频/音频节点上传、替换文件弹出系统文件管理器(WebView 文件选择桥) |
| 📜 日志与诊断 | 宿主日志三通道落盘(应用目录 / 媒体目录 / 下载目录),启动失败可直接取日志排查 |
| 版本 | versionCode | 内容 |
|---|---|---|
| v10 | 10 (1.9) | 助手圆钮伪元素逃逸修复;文档编辑页手机适配(下移/单列/工具条横滚/文件树并入胶囊) |
| v9 | 9 (1.8) | 顶部控件重排(一行三控件 + 画布选择器并入胶囊);3D 导演台与设置页全屏;媒体节点文件选择修复 |
| v8 | 8 (1.7) | 画布触屏手势(捏合缩放/滑动平移/框选);助手悬浮窗模式移除;顶部控件不再遮挡 |
| v7 | 7 (1.6) | 挖孔屏内容铺展;竖屏全屏 / 横屏沉浸式显示模式 |
| v6 | 6 (1.5) | 创建项目权限报错修复(硬链接回退);系统文件夹选择器 + 权限引导 |
| v5 | 5 (1.4) | |
| v4 | 4 (1.3) | 全面屏(刘海/挖孔/手势条)适配,消除裁切与黑边 |
| v3 | 3 (1.2) | 启动崩溃修复(Bun 1.3.14 → 1.4.2,Android PIE 缺陷) |
| v2 | 2 (1.1) | 宿主日志落盘 + 启动诊断(预检探针) |
| v1 | 1 (1.0) | 首个可运行 APK(壳工程 + 宿主 + WebView) |
┌────────────────────────── Android APK ──────────────────────────┐
│ MainActivity (WebView) ──http://127.0.0.1:3000/?desktop=1 │
│ │
│ Foreground Service(前台服务,保活) │
│ └─ ProcessBuilder(nativeLibraryDir + "/libtoonflow.so") │
│ ├─ = Bun Runtime + Toonflow 后端(交叉编译为单文件) │
│ ├─ 托管 build/web 前端静态资源 │
│ └─ 读写 filesDir/data(设置、工作区、ffmpeg) │
│ │
│ jniLibs/arm64-v8a/ libtoonflow.so / libffmpeg.so / │
│ libffprobe.so / libffmpeg.zip.so │
└──────────────────────────────────────────────────────────────────┘
关键设计(详见 android/docs/技术方案.md):
- 宿主 shim(
apps/server/android/host.ts,唯一新增后端文件):平台伪造、目录解析、ffmpeg 软链、桌面运行时桩、壳↔宿主对话框桥、MCP 包装脚本 - 壳工程(
android/shell/):WebView + 前台服务 + Insets/安全区注入 + SAF 选择器 + 文件选择桥 - 补丁(
android/patches/):对上游源码的全部修改,以.patch形式保存,可重放到新版上游
- 对上游源码的修改只有 2 个补丁(硬链接回退 + v10 前端改动),其余全部是独立新增文件
- 上游发布新版本后,应用补丁 → 重新构建宿主与 web 资源 → 重打 APK 即可
- 上游 Toonflow 代码:MIT License,版权归 HBAI-Ltd(北京爱阿科技有限公司)
- 本仓库的移植部分(壳工程、宿主 shim、补丁)同样以 MIT License 发布
- Toonflow — 上游项目
- Bun — 提供 Android 交叉编译目标(
bun-linux-aarch64-android) - youtubedl-android — Android 版 ffmpeg