JAPK 资源包格式
JAPK 是 JadeView 专属的应用打包格式,它可以把您的 HTML、CSS、JavaScript、图片等所有前端资源打包成一个单独的 .japk 文件,就像一个压缩包一样。使用 JAPK 的好处:
- 分发简单:只需发送一个文件,不用传一堆零散文件
- 加载快速:JadeView 可以直接从包内读取资源,无需解压到临时目录
- 保护源码:配合 JadePack 可以对内容进行混淆和签名保护
JadePack 构建工具
JadePack 是 JadeView 官方发行的图形化构建工具,专门用于 JAPK 资源包的构建和保护:
- 一键构建:图形界面操作,轻松将前端项目打包为 JAPK
- 内容混淆:即使不签名,也会使用 XOR 混淆保护文件内容,不是明文包
- 签名保护:支持对 JAPK 进行签名,验证来源和完整性,防止篡改
- 解包支持:支持将部分文件设置为「解包」存储,方便原生模块加载
提示
生产环境推荐使用 JadePack 构建签名 JAPK 包,提供完整的安全保护。
JadeView 完全兼容 Electron ASAR 格式,这意味着:
- 使用 Electron ASAR 创建的包可以直接被 JadeView 加载和运行
- 无需额外的转换或处理步骤
- 与 Electron 生态完全互通
信息
注意:
- Electron ASAR 创建的是明文包:文件内容未经过任何加密或混淆处理
- JadePack 创建的非签名包也是混淆包:即使不签名,JadePack 也会使用 XOR 混淆保护文件内容,不是明文包
如需构建签名加密的 JAPK 包,请使用 JadePack 的图形界面构建中心。
加载 JAPK 包
使用 set_protocol_service_path API 加载 JAPK 包,详见 核心 API - 本地协议服务。
使用示例
#include "jadeview.h"
// 使用 JAPK 文件
void load_japk_example() {
char url_buffer[256];
const char* japk_path = "C:\\path\\to\\your\\app.japk";
int32_t result = set_protocol_service_path(
japk_path,
url_buffer,
sizeof(url_buffer)
);
if (result == 1) {
printf("协议 URL: %s\n", url_buffer);
// 使用 url_buffer 导航
}
}
命令构建教程
前置要求
- Node.js 14.0 或更高版本
- npm 或 yarn 包管理器
- 要打包的应用文件目录
安装 Electron ASAR
全局安装 @electron/asar 工具:
npm install -g @electron/asar
或者使用 yarn:
yarn global add @electron/asar
构建步骤
步骤 1:准备应用文件
确保您的应用文件结构如下:
my-app/
├── index.html
├── src/
│ ├── renderer.js
│ └── styles.css
└── assets/
└── icon.png
步骤 2:创建 JAPK 包
使用以下命令直接创建 JAPK 包:
asar pack my-app app.japk
这将创建一个名为 app.japk 的文件。
高级选项
排除特定文件
使用 --unpack 选项排除特定文件:
asar pack my-app app.japk --unpack "*.node"
这将排除所有 .node 文件,保持它们为未打包状态。
指定输出路径
指定 JAPK 文件的输出路径:
asar pack my-app ./output/app.japk
重要说明
Electron ASAR 创建的是明文包,JadePack 创建的非签名包也是混淆包。
Electron ASAR 构建的 JAPK:
- 文件内容完全明文,未经过任何加密或混淆
- 任何人都可以直接查看包内容
- 无法验证文件来源和完整性
- 不适合生产环境或需要安全保护的场景
JadePack 构建的非签名 JAPK:
- 使用 XOR 混淆保护文件内容(非明文)
- 提供基础的内容保护
- 但不包含签名信息,无法验证来源
- 适合需要基础保护但不需要签名的场景
推荐做法: 使用 JadePack 的图形界面构建中心创建签名 JAPK 包,可以提供完整的安全保护、身份验证和完整性校验。