Android APK 打包——PakePlus 原生框架而非 Tauri
PakePlus 移动端的技术路线
和桌面端(Tauri2 + 系统 WebView)不同,PakePlus 在移动端不走 Tauri 路线:
| 平台 | 技术栈 | 原因 |
|---|---|---|
| 桌面 | Rust + Tauri2 + 系统 WebView | 成熟、稳定、生态好 |
| Android | 原生 Android 框架 + WebView | 比 Tauri2 在 Android 上的体积更小、更轻 |
| iOS | 原生 iOS 框架 + WKWebView | 同上 |
PakePlus 文档里说:
使用原生框架打包 Android 和 iOS APP,比 Tauri2 体积更小更快。
切换到移动端打包页面
软件配置页面的右上角有一个手机图标按钮——点击后从桌面端配置页面切换到移动端配置页面。
切换后会看到一套独立的移动端配置项(APP 图标、包名、版本等),和桌面端配置页面互不影响。
Android 打包配置
包名(Package Name)
Android APP 的唯一标识符——通常格式是反向域名:com.example.myapp。
规则和桌面端 APP ID 类似:
- 小写字母、数字、下划线
- 每段不能以数字开头
- 段之间用点分隔
- 在所有 Android APP 中全局唯一(如果要上应用商店)
目标 SDK 版本
PakePlus 内部处理,用户不需要手动设置。默认目标较新的 Android 版本(API 30+)。
APP 图标
移动端图标需要提供至少两个尺寸:
- mipmap-mdpi: 48×48
- mipmap-xhdpi: 96×96
- mipmap-xxhdpi: 144×144
- mipmap-xxxhdpi: 192×192
最简单做法:上传一张 1024×1024 的 PNG,PakePlus 会自动为各密度生成多尺寸。
构建路径
云端打包(推荐)
GitHub Actions 的 Android Runner 上:
- 安装 Android SDK + NDK(PakePlus 模板 workflow 自动处理)
- 用 Gradle 编译 APK
- 上传到 GitHub Release
耗时:约 3-8 分钟(比桌面端慢一点,因为 Android 编译链更重)。
本地打包
PakePlus 本地打包目前只支持当前系统出包。如果当前是 Windows 或 macOS:
- ❌ 不能在 Windows 上本地编 Android APK
- ✅ 可以在 macOS 上本地编 Android(需要 Android SDK)
实际 Android 打包推荐走云端。
APK 体积
PakePlus 打的 Android APK 体积:
| 内容 | 典型大小 |
|---|---|
| PakePlus 壳 + 原生框架 | ≈ 2-5 MB |
| 你的 dist 静态文件 | 可变(Vue/React 项目 5-20MB,Unity WebGL 50-200MB) |
| 总计 | 5-200MB |
对比原生 Android 开发(Android Studio 空项目 + WebView ≈ 10-15MB),PakePlus 更小。
APK 安装与分发
安装
- 直接传 APK 给用户 → 手机上点击安装 → 允许"未知来源应用安装"
- 用 adb 命令:
adb install app-release.apk
分发渠道
| 渠道 | 说明 |
|---|---|
| 网盘 / IM | 最简单,把 APK 直接发 |
| GitHub Release | 云端打包自动上传,分发链接直接给 |
| 自建下载站 | 放到自己网站 |
| 应用商店 | 需要签名 + 合规审核(PakePlus 不负责签名) |
签名问题
PakePlus 文档明确说"打包仅限个人使用、不支持软件签名"。这意味着:
| 签名方式 | PakePlus 支持吗 | 说明 |
|---|---|---|
| Debug 签名 | ✅ 自动 | Android 默认的 debug keystore |
| Release 签名(个人) | ❌ 不支持 | 需要你自己生成 keystore,PakePlus 未暴露配置入口 |
| Google Play 签名 | ❌ 不支持 | 需要先 release 签名再上传 Play Console |
结论:PakePlus 打出来的 APK 适合个人使用、内网分发、测试分发。要上 Google Play / 华为应用市场 / 小米应用商店等正规渠道,需要你自己走完整的签名流程——PakePlus 不覆盖这部分能力。
WebView 版本与兼容性
PakePlus Android APP 用系统的 Android System WebView:
| Android 版本 | WebView | 兼容性 |
|---|---|---|
| Android 7.0+ | Chrome 内核的 WebView | 好 |
| Android 5.0-6.0 | 旧版 Chrome | 中等,部分新 JS 特性不可用 |
| Android 4.x | 不支持 WebView 独立更新 | 差,基本跑不动现代网页 |
建议目标最低 Android 7.0+,覆盖绝大多数现代设备。
Android 特有问题
回退按钮
Android 上的系统返回键:PakePlus 的 WebView 会自动维护历史栈——按返回键 = 网页后退。如果不想让用户用返回键跳出 APP(比如打包的是单页应用),可以在 JS 注入脚本里拦截。
横竖屏切换
PakePlus 移动端默认允许横竖屏切换。要锁定方向(只竖屏或只横屏)需要在 Tauri 高级配置(AndroidManifest.xml)里改——PakePlus 没有 GUI 入口。
状态栏沉浸
Android 10+ 的手势导航、状态栏沉浸等特性,PakePlus 作为 WebView 壳不会自动适配。如果你对 UI 有高要求,可能需要原生开发。
和 Tauri2 Android 打包的对比
| 维度 | PakePlus Android | Tauri2 Android CLI |
|---|---|---|
| 技术栈 | 原生框架 | Tauri2 原生编译 |
| GUI | ✅ PakePlus 客户端 GUI | ❌ 命令行 |
| 体积 | 更小 | 稍大 |
| 配置复杂度 | 低 | 中 |
| 自定义能力 | 中 | 高 |
| 多平台同时出包 | ✅ 云端一键 | 需要分别编 |