跳到主要内容

构建脚本包

ElenixOS 使用构建脚本工具将应用或表盘的源代码、资源和配置文件构建成一个统一的安装包(.eapk 或 .ewpk 文件)。本文档将详细介绍构建脚本包的格式、资源组织和输出规范。

构建脚本包概念

构建脚本包是将应用的所有组件(脚本、资源、配置)组合成一个可安装的包文件的过程。在 ElenixOS 中,构建产物是 .eapk 或 .ewpk 文件,类似于其他平台的安装包格式。

备注

构建脚本包是为了便于应用的分发和安装,确保应用的所有组件在目标平台上能够正常运行。构建过程不会压缩应用的资源文件,而是直接将它们复制到构建产物中。

构建脚本包的作用

  1. 统一分发:将应用的所有组件构建成一个文件,便于分发和安装
  2. 资源管理:管理应用的资源文件,确保资源的正确加载
  3. 版本控制:包含应用的版本信息,便于版本管理
  4. 权限管理:包含应用的权限信息,确保应用只能访问授权的资源

输入目录结构

构建脚本工具使用特定的目录结构作为输入,确保构建过程的一致性和可靠性。

标准目录结构

app/
├── manifest.json # 应用配置文件
├── main.js # 应用主脚本
├── icon.bin # 应用图标
├── assets/ # 资源目录
│ ├── images/ # 图片资源
│ ├── fonts/ # 字体资源
│ └── sounds/ # 音频资源
└── lib/ # 依赖库

目录说明

  • manifest.json:应用的配置文件,包含应用 ID、名称、版本、类型等信息
  • main.js:应用的主脚本文件,包含应用的界面和逻辑
  • icon.bin:应用的图标文件,用于在应用列表中显示
  • assets/:应用的资源目录,包含图片、字体、音频等资源
  • lib/:应用的依赖库目录,包含第三方库和模块

构建产物格式

ElenixOS 的构建产物是 .eapk 或 .ewpk 文件,它们是压缩文件,包含了应用的所有组件。

.eapk 和 .ewpk 文件结构

app.eapk/ 或 app.ewpk/
├── manifest.json # 应用配置文件
├── main.js # 应用主脚本
├── icon.bin # 应用图标
├── assets/ # 资源目录
└── lib/ # 依赖库

构建脚本工具

ElenixOS 使用 Python 脚本 scripts/eos_pkg_builder.py 进行构建:

# 构建为应用(.eapk)
python3 scripts/eos_pkg_builder.py --input app/ --type app --output app.eapk
# 构建为表盘(.ewpk)
python3 scripts/eos_pkg_builder.py --input watchface/ --type watchface --output watchface.ewpk

资源合并规则

在构建过程中,所有资源文件(图片、字体、音频等)都会直接复制到构建产物中。

配置文件处理

  1. manifest.json:会被验证和处理,确保格式正确
  2. 其他配置文件:会被复制到构建产物中

发布与部署方式

发布流程

  1. 开发应用:开发应用或表盘的源代码和资源
  2. 构建应用:使用构建脚本工具生成 .eapk 或 .ewpk 文件
  3. 测试应用:在测试设备上测试应用
  4. 发布应用:将应用或表盘发布到应用商店或其他分发渠道

部署方式

  1. 本地安装:通过文件系统将 .eapk 或 .ewpk 文件复制到设备上,然后使用应用管理 API 安装
  2. 远程安装(TODO):通过网络将 .eapk 或 .ewpk 文件下载到设备上,然后使用应用管理 API 安装
  3. OTA 更新(TODO):通过 OTA(Over-The-Air)方式更新应用

部署命令

# 本地安装应用
eas_app_install("/path/to/app.eapk");
# 本地安装表盘
eas_app_install("/path/to/watchface.ewpk");

构建脚本工具使用

构建脚本工具参数

参数描述示例
--input输入目录路径--input app/
--output输出文件路径--output app.eapk
--type应用类型--type app--type watchface

构建脚本工具运行示例

# 构建为应用(.eapk)
python3 scripts/eos_pkg_builder.py --input app/ --type app --output app.eapk
# 构建为表盘(.ewpk)
python3 scripts/eos_pkg_builder.py --input watchface/ --type watchface --output watchface.ewpk

应用配置文件

manifest.json 格式

{
"id": "com.example.app",
"name": "示例应用",
"version": "1.0.0",
"author": "Example Developer",
"description": "这是一个示例应用",
}