目錄:
本文目的:梳理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/