ArkUI-X代码工程及构建介绍

背景

ArkUI作为OpenHarmony的默认开发框架,在本项目(ArkUI-X)中需要做到一套代码同时支持多平台构建,所以会采取共仓开发的方式,部分仓直接指向OpenHarmony相关开源仓。

代码结构及仓库结构

代码工程的目录结构如下:

├── arkcompiler                 // 方舟编译器
├── base                        // 基础能力
├── build                       // 项目构建和配置脚本
├── build_plugins               // 跨平台构建插件
├── commonlibrary               // 公共基础库
├── community                   // 社区相关
├── developtools                // 开发者工具
├── docs                        // 配套文档
├── foundation
│   ├── appframework            // 应用框架兼容适配层
│   ├── arkui                   // ArkUI引擎
│   ├── communication           // 通信能力
│   ├── distributeddatamgr      // 分布式数据管理
│   ├── filemanagement          // 文件管理
│   ├── graphic                 // 图形引擎
│   └── multimedia              // 多媒体
├── interface                   // 接口声明
├── plugins                     // 插件管理与实现
├── prebuilts                   // 预编译目录
├── productdefine               // 产品形态配置
├── samples                     // 示例代码
├── test                        // 测试框架与用例
└── third_party                 // 三方库

具体的代码结构及指向,见下表:

目录路径 描述 代码仓位置
build 项目构建和配置脚本 OpenHarmony/build
build_plugins 跨平台构建插件 ArkUI-X/build_plugins
samples 应用程序样例 ArkUI-X/samples
community 社区运作管理 ArkUI-X/community
docs 说明文档 ArkUI-X/docs
interface/sdk ArkUI-X SDK配置 ArkUI-X/interface_sdk
plugins API插件管理,OpenHarmony API插件实现 ArkUI-X/plugins
test/xts ArkUI-X跨平台应用测试套件 ArkUI-X/xts
test/testfwk/arkxtest ArkUI-X测试框架 ArkUI-X/arkxtest
developtools/ace_tools 跨平台命令行工具 ArkUI-X/cli
foundation/appframework 应用框架兼容适配层 ArkUI-X/app_framework
foundation/arkui/ace_engine/adapter/android Android平台适配代码 ArkUI-X/arkui_for_android
foundation/arkui/ace_engine/adapter/ios iOS平台适配代码 ArkUI-X/arkui_for_ios
foundation/arkui/ace_engine ArkUI 引擎核心代码 OpenHarmony/arkui_ace_engine
foundation/arkui/napi Native API扩展机制 OpenHarmony/arkui_napi
foundation/communication/netmanager_base 网络管理模块 OpenHarmony/communication_netmanager_base
foundation/communication/netstack 网络协议栈 OpenHarmony/communication_netstack
foundation/graphic/graphic_2d 2D图形基础库 OpenHarmony/graphic_graphic_2d
foundation/filemanagement/file_api 提供目录和文件的访问操作接口 OpenHarmony/filemanagement_file_api
foundation/multimedia/image_framework 图片编解码功能实现 OpenHarmony/multimedia_image_framework
developtools/ace_ets2bundle 基于ArkTS的声明式开发范式编译转换工具和跨平台应用构建工具 OpenHarmony/ace_ets2bundle
developtools/ace_js2bundle 兼容JS的类Web开发范式编译转换工具和跨平台应用构建工具 OpenHarmony/ace_js2bundle
arkcompiler/ets_frontend 方舟前端工具 OpenHarmony/arkcompiler_ets_frontend
arkcompiler/ets_runtime 方舟ArkTS运行时 OpenHarmony/arkcompiler_ets_runtime
arkcompiler/runtime_core 方舟编译器运行时 OpenHarmony/arkcompiler_runtime_core
arkcompiler/toolchain 调试调优工具 OpenHarmony/arkcompiler_toolchain
prebuilts 预编译目录,python,nodejs,clang和cmake等 通过脚本预下载
third_party 开源第三方组件(统一复用OpenHarmony代码仓) 引用开源三方库集合
commonlibrary/c_utils 通用的C++功能函数和类 OpenHarmony/commonlibrary_c_utils
commonlibrary/ets_utils 用于存放基础类库JSAPI,比如url、uri等 OpenHarmony/commonlibrary_ets_utils
base/hiviewdfx/hilog 系统日志功能 OpenHarmony/hiviewdfx_hilog
base/web/webview WebView组件的Native引擎 OpenHarmony/web_webview
base/global/resource_management 全球化资源管理 OpenHarmony/global_resource_management

分支同步策略

OpenHarmony相关代码仓,指向OpenHarmony master分支的固定tag点,定期同步,默认按照OpenHarmony的Weekly分支频率进行同步。

ArkUI引擎核心代码仓目录结构

ArkUI引擎核心代码仓 ace_engine 的目录结构以及每个目录的内容如下:

foundation/arkui/ace_engine
├── ace_config.gni      // 全局配置文件
├── adapter             // 平台适配层
│   ├── android         // Android平台适配,独立仓
│   │   ├── build
│   │   ├── capability
│   │   ├── entrance
│   │   ├── stage
│   │   └── osal
│   ├── ios             // iOS平台适配,独立仓
│   │   ├── build
│   │   ├── capability
│   │   ├── entrance
│   │   ├── stage
│   │   └── osal
│   ├── ohos            // OpenHarmony平台适配
│   └── preview         // 预览器平台适配
├── build               // 编译配置
│   ├── ace_gen_obj.gni
│   ├── ace_lib.gni
│   ├── BUILD.gn
│   ├── search.py
│   └── tools
├── BUILD.gn            // 全局编译配置
├── frameworks          // 引擎框架层
│   ├── base            // base库
│   ├── bridge          // 前端桥接
│   └── core            // 引擎核心实现
├── interfaces          // 通用对外接口
│   └── napi
│       └── kits
├── LICENSE
├── OAT.xml
├── README.md
├── README_zh.md
└── test                // 测试相关
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐