跳到主要内容

应用程序项目结构

项目结构概述

dejaOS 应用程序项目结构简洁明了,包含几个固定的目录和文件,其中一些是必需的。下面是典型的项目结构图:

项目结构图

目录和文件说明:

  1. .temp/ 目录

    • 插件自动生成的临时目录,可以忽略。
    • 包含构建时生成的 .dpk 安装包等缓存文件。
    • 删除后会重新生成,不会同步到设备
  2. dxmodules/ 目录

    • 存储通过 Install 按钮下载的依赖模块(modules)。
    • 包含多个 .js 脚本文件和 .so 动态链接库文件。
    • 所有模块都以 dx 开头,如 dxLogger.js
    • 插件支持 Ctrl+点击 快速跳转到此目录中的模块源代码并查看注释。
  3. src/ 目录

    • 必须存在,用于存储所有源代码文件。
    • 可包含 JS 文件、图片、字体等资源文件。
    • 此目录中的内容会完全同步到设备。
  4. main.js 文件

    • 应用程序的主入口文件,必须存在且放在 src/ 目录中。
    • 负责初始化程序并启动应用程序逻辑。
  5. app.dxproj 文件

    • 项目配置文件,必须存在

    • 本质上是一个 JSON 格式文件,但通过插件的可视化编辑界面进行管理。

    • 图示如下:

      项目配置文件编辑界面

app.dxproj 配置项说明:

  • 项目名称:可任意填写,便于识别。
  • 设备类型必须正确选择,不同设备可能有不同的 .so 库和模块依赖。
  • 忽略目录:默认忽略 .temp/,可自定义多个条目,用英文逗号分隔。被忽略的目录不会同步到设备。
  • 忽略文件:类似上述,自定义不需要同步的文件名列表。
  • 依赖模块列表:通过界面点击 Add Module 按钮选择模块及其版本。
  • 版本 用于标识项目配置版本,便于兼容性和升级管理。

基本必需组件说明

大多数项目都会依赖以下基础模块,这些通常是不可或缺的:

模块名称功能描述
dxLogger日志模块,支持输出调试信息
dxCommon系统通用操作模块,dxLogger 依赖此模块
dxDriver驱动层支持模块,无 API 但必需
dxStd标准 IO 模块,提供基础输入/输出支持
dxMap共享内存模块,常作为底层依赖组件使用

设备端目录结构映射

设备端运行时的文件结构如下:

  • /app/code/

    • 应用程序代码同步目录。开发项目目录如 src/dxmodules/ 等的内容会复制到这里。
    • 此目录通常在应用程序升级时会被清空并写入最新文件。
  • /app/data/

    • 应用程序运行时生成的用户数据、缓存等默认存储在此目录。
    • 虽然不是强制要求,但建议开发者将所有动态生成的数据写入此目录,便于系统在重置时统一清理。
  • 其他目录

    • 除上述目录外,其他系统目录应用程序无法访问或修改,以避免造成系统稳定性问题。

总结

dejaOS 项目结构设计旨在保持简洁、清晰和易于维护。通过标准化的目录布局、模块管理机制和配置方法,开发者可以更高效地组织和部署嵌入式应用程序。未来,我们将继续优化模块化和部署流程,为开发者提供更全面的工具支持。