创建一个新应用

1. 介绍

应用目录结构与资源管理是思澈设备开发的基础,直接影响应用集成效率与多设备适配效果。平台将应用分为内置应用(固件集成,核心功能)与外置应用(动态部署,扩展功能),并提供标准化目录规范、资源规则及分辨率转换工具。以下给出创建流程与适配方案。

2. 新增一个应用目录

思澈平台将应用分为内置应用与外置应用两类,二者在目录结构、注册方式及资源管理上存在明确差异,需分别遵循对应规范。

2.1 内置应用

步骤 1:创建应用目录

在路径 solution/example/xxx/application/ 下新建应用目录(如 sport),目录内需包含:

  • 源代码文件(如 app_sport.c、app_sport.h);

  • SConscript语法参考RT-Thread官网

步骤 2:代码编写

外置应用代码编写参考动态app编写

步骤 3:资源添加

在路径solution/example/xxx/resource/images/ 下新建与应用目录同名的资源目录(如 sport),添加资源。图片存放规则

步骤 4: 应用图标

内置应用默认支持多风格图标(如圆形、方形),命名需严格遵循以下规则:

  • 默认风格(Style 1):图标名称需与 APPLICATION_REGISTER 接口中指定的资源名一致(如接口中填 img_sport,则图标文件名为 img_sport.png);

  • 第二风格(Style 2):在默认风格名称后加 2(如 img_sport2.png);

  • 后续风格:以此类推(如 Style 3 对应 img_sport3.png)。

特殊说明:

若应用包含设置子页面,其主菜单显示的图标需放置在全局主菜单资源目录:

  • 默认风格:solution/example/xxx/resource/images/mainmenu/

  • 第二风格:solution/example/xxx/resource/images/mainmenu2/

2.2 外置应用

外置应用为动态部署模块,通过独立包管理,可在系统运行时安装 / 卸载,适用于扩展功能(如第三方工具、可选插件等)。

步骤 1:创建应用目录

在路径 solution/example/_dynamic_app/c/app/ 下新建应用目录(如 weather),目录需包含以下子目录与文件:

  • src/:存放应用源代码(如 app_weather.c);

  • resource/:存放应用所有资源(图标、字体、多语言表等);

  • readme.ini:编译依赖配置文件;

  • SConscript:编译连接脚本。

步骤 2:代码编写

外置应用代码编写参考动态app编写

步骤 3:资源添加

在路径 resource下面添加资源,图片存放规则

  • 多语言翻译表:resource/lang

  • bitmap字体:resource/font_bitmap

  • 其余图片:resource/images

具体可以参考外置应用目录结构

步骤 4: 应用图标

外置应用默认支持两种风格的缩略图(和内置保持一致),

  • 默认风格缩略图:resource/thumbnails/tn.png

  • 第二种风格缩略图:resource/images/tn2.png

  • 第三种风格缩略图:resource/images/tn3.png,以此类推。

3. 新增应用分辨率支持

为适配不同尺寸的显示屏,Solution提供工具将应用资源转换为目标分辨率,确保 UI 显示正常。

3.1 工具与前置条件

  • 转换工具:Butterfli 工具(需使用 “转换” 功能);

  • 依赖工具:需提前安装 ImageMagic 图像处理工具(否则转换失败)。

3.2 分辨率转换步骤

3.2.1 步骤 1:打开转换功能

启动 Butterfli 工具,点击右上角 “转换” 按钮进入资源转换界面。

3.2.2 步骤 2:配置转换参数

在转换界面填入以下关键参数:

  • 搜索路径:应用资源所在的根目录(如 solution/example/xxx/resource/images/sport);

  • 源分辨率:当前资源的原始分辨率(如 480x480);

  • 目标分辨率:需转换的目标分辨率(如 320x320)。

  • 点击 “转换” 按钮执行操作。

3.2.3 步骤 3: 查看转换结果

转换成功后,会在源分辨率目录下自动生成以目标分辨率命名的子目录,转换后的资源存放于该目录中。

3.3 转换注意事项

  • 排除目录: common 目录下的资源不会参与转换(该目录资源为全分辨率共用);

  • 外置应用适配: 转换完成后需修改 readme.ini 文件,添加目标分辨率配置,否则应用无法识别新分辨率资源;

  • 不支持格式: APNG 动态图片暂不支持自动转换,需手动处理。

4. 应用全分辨支持

  1. common目录是所有分辨率共用的图片资源, 将应用的资源都放到对应的common目录中即可支持全分辨率。
    参考"快速入门-图片资源"章节说明图片资源

  2. 对于外置应用,在readme.ini配置中将RES_NUM置为0,参考动态应用编译依赖