ComboNative Samples
ComboNative「原生小程序」运行时框架的官方示例集 —— 一个宿主 App + 三个小程序,演示完整接入与四大组件跨进程用法。
本仓库是 ComboNative 框架的示例工程。框架本体不在此仓库,而是以 Maven Central 远程依赖引入(io.github.lnzz123:combonative-*),打包插件以 Gradle Plugin Portal 依赖引入(io.github.lnzz123.combonative-packer)。因此本仓库可独立克隆、独立构建,无需框架源码。
combonative-samples/
├── demo-contract/ # 示例宿主对外发布的 API 契约(能力集由宿主定义,框架不内置)
├── host-demo/ # 宿主示例 App:集成 combonative-engine,演示占坑进程池与小程序调度
├── miniapp-imagelab/ # 小程序:纯 Compose + NDK 图像滤镜 + 前台 Service + 崩溃隔离
├── miniapp-ledgerbook/ # 小程序:纯 XML/View + 四大组件闭环,ContentProvider 对外供数
└── miniapp-minihub/ # 小程序:Compose + 小程序管理小程序 + 跨小程序数据聚合
| 用途 | 坐标 |
|---|---|
| 宿主集成引擎(自动带上 runtime + abi) | io.github.lnzz123:combonative-engine |
| 小程序开发 SDK(自动带上 abi) | io.github.lnzz123:combonative-mini-sdk |
| 契约层 ABI | io.github.lnzz123:combonative-abi |
| 小程序打包 Gradle 插件 | io.github.lnzz123.combonative-packer(Gradle Plugin Portal) |
版本统一由 gradle/libs.versions.toml 的 combonative 与 gradle.properties 的 combonative.abiVersion 控制,二者须与所引入的框架版本匹配。
需本机具备 Android SDK(通过
ANDROID_HOME或local.properties的sdk.dir指定)。首次构建会自动下载 NDK(imagelab 含 C++ 滤镜)。
# 构建宿主示例(自动构建三个小程序的 .cbp 并注入宿主 assets/miniapps/)
./gradlew :host-demo:assembleDebug
# 单独打包所有已声明的小程序
./gradlew buildAllDebugMiniApps # 或 buildAllReleaseMiniApps
# 验证宿主 APK 内已内含 .cbp
unzip -l host-demo/build/outputs/apk/debug/host-demo-debug.apk | grep -i cbp小程序包产物位置:build/outputs/mini-app-packages/<buildType>/<模块名>-<buildType>.cbp。
示例宿主与小程序共用一份构建期自动生成的 demo keystore(build/combonative-demo-keystore/demo.jks,不入库、纯演示)。只有同签名的小程序(如「小程序管家」)才能调用 HOST_SIGNATURE 级管理 API。生产环境请换成你自己的正式 keystore,并通过环境变量/私密文件注入,切勿提交密钥材料。
本仓库遵循 Apache-2.0 开源许可协议。