• HarmonyOS源码目录结构的理解


    目录:

    applications

    base

    Foundtion

    utils

    kernel

    drivers

    原文PDF文件

    本文目的:梳理HarmonyOS源码目录结构,介绍重要目录包含的内容与作用,便于学习开发过程有全局观,有针对性的研读开发。

    HarmonyOS源码文件之多,想要短时间内研读完成是比较困难的。对于我们刚刚学习此操作系统的开发来说,如果一个个目录去研读代码,需要花费大量的时间。本文从框架上简单解析HarmonyOS的目录结构,让开发者有针对性的研究它。

    下图将HarmonyOS源码的一级目录通过软件层进行了简单区分,可以结合HarmonyOS架构图一起从整体要认识HarmonyOS目录结构。

    HarmonyOS架构图中表述的应用框架层和系统服务层,都可以理解为Farmwork层,是Harmony最重要,也是最核心的部分。

    接着谈谈我们对每个目录的简单认识:

    applications
    从字面上解读,主要存放用户的应用程序,或是是HarmonyOS 预置的系统应用程序。

    applications
    |
    |——sample //提供Hi3516/Hi3518/Hi3861基础应用,这些应用应用预置设备中
    |
    |——camera // 主要说明Hi35xx AI Camera的基础应用
    | |
    | |——app // 此目录为用户自己开发的目录,可以通过该目录下的BUILD.gn文件适配是否要预置到系统中
    | |——communication // 通话模块(hostapd wpa_cli wpa_supplicant)
    | |——example // 示例模块
    | |——hap // 预置的app,HarmonyOS 中的hap对应Android中的app
    | |——media // 视频模块实例
    |——wifi-iot
    |
    ——app // 此目录为用户自己开发的目录,可以通过该目录下的BUILD.gn文件适配是否
    要预置到系统中(建议IoT开发预置led_example,便于开箱检查产品)

    对应的代码仓包含有:

    applications/sample/camera: https://gitee.com/openharmony/applications_sample_camera

    applications/sample/wifi-iot:https://gitee.com/openharmony/applications_sample_wifi_iot/

    base
    HarmonyOS Framework基础能力集合,定位于大多数设备开发都需要能力模块,目前提供了全球化、DFX、安全、系统启动等模块

    base
    |
    |——global // 全球化模块,作为设备的基础能力模块,当然也可裁剪掉
    | |
    | |——frameworks // 全球化资源调度模块
    | |——interfaces // 全球化资源调度系统间开放APIs
    |——hiviewdfx // DFX模块
    | |
    | |——frameworks
    | | |
    | | |——ddrdump_lite // 轻量级设备 Dump信息存储模块,目前暂时没有内容
    | | |——hievent_lite // 轻量级设备DFX-MCU/CPU事件记录模块
    | | |——hilog_lite // 轻量级设备DFX-MCU/CPU日志模块
    | |——interfaces
    | | |
    | | |——innerkits // DFX模块(日志、事件)内部接口
    | | |——kits // DFX模块(日志、事件)APIs
    | |——services // DFX-MUC框架/日志服务功能模块Services
    | |——utils // DFX-MCU基础组件
    |——iot_hardware // IoT外设能力模块(GPIO/I2C/SPI/AD/DA等)
    | |
    | |——frameworks
    | | |
    | | ——wifiiot_lite // IoT外设模块实现(包含.c文件)
    | |——hals
    | | |
    | | ——wifiiot_lite // HAL adapter 接口(为frameworks与驱动层提供适配)
    | |——interfaces
    | |
    | ——kits // IoT外设控制模块接口,与frameworks/wifiiot_lite配合
    |——security
    | |
    | |——frameworks
    | | |
    | | |——app_verify // hap包签名校验模块
    | | |——crypto_lite // 加解密模块
    | | |——hichainsdk_lite // 设备认证模块
    | | |——huks_lite // 秘钥与证书管理模块
    | | |——secure_os // libteec库函数实现,提供TEE Client APIs
    | |——interfaces
    | | |
    | | |——innerkits // 内部接口目录,与frameworks对应
    | | |——kits // 模块APIs(应用权限管理)
    | |——services
    | |
    | |——iam_lite // 应用权限管理及IPC通信鉴权服务
    | |——secure_os // secure_os TEE代理服务
    |——startup
    |
    |——frameworks
    | |
    | ——syspara_lite // 系统属性模块源文件(param_impl_hal-Cortex-M,param_impl_posix-Cortex-A)
    |——hals
    | |
    | ——syspara_lite // 系统属性模块文文件
    |——interfaces
    | |
    | ——kits // 系统属性模块对外APIs
    |——services
    |
    |——appspawn_lite // 应用孵化模块
    |——bootstrap_lite // 启动服务模块
    |——init_lite // 启动引导模块
    interfaces提供内外部APIs

    frameworks提供接口实现的源代码;

    hals:HAL adapter 接口(为frameworks与驱动层提供适配)

    services:通过服务管理模块

    查看更多章节>>>

    作者:软通赵海鹏

    想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com/

  • 相关阅读:
    【Python进阶】用 Python 统计字数
    【Python进阶】无论API怎么变,SDK都可以根据URL实现完全动态的调用
    【机器学习_吴恩达_笔记】(一)机器学习的动机和应用
    【Python入门总结】
    【Python入门学习】列表生成和函数生成器的方式实现杨辉三角
    【Python入门学习】闭包&装饰器&开放封闭原则
    【Pthon入门学习】利用slice实现str的strip函数,类似C#中的string.trim
    【Pthon入门学习】99乘法表
    【Pthon入门学习】多级菜单小例子
    要素图层范围查询属性arcgis api for js(featuretable根据上篇的优化)原创
  • 原文地址:https://www.cnblogs.com/HarmonyOS/p/14201129.html
Copyright © 2020-2023  润新知