鴻蒙原始碼目錄整理

xiegwei發表於2020-10-26

程式碼庫地址

gitee

程式碼目錄

下載下來的原始碼有下面的目錄:
在這裡插入圖片描述

base

startup

啟動恢復負責在核心啟動之後到應用啟動之前的系統關鍵程式和服務的啟動過程。涉及以下模組:

  • init啟動引導

    支援使用LiteOS-A核心的平臺,當前包括:Hi3516DV300平臺和Hi3518EV300平臺。

    負責處理從核心載入第一個使用者態程式開始,到第一個應用程式啟動之間的系統服務程式啟動過程。啟動恢復子系統除負責載入各系統關鍵程式之外,還需在啟動的同時設定其對應許可權,並在子程式啟動後對指定程式實行保活(若程式意外退出要重新啟動),對於特殊程式意外退出時,啟動恢復子系統還要執行系統復位操作。

  • appspawn應用孵化

    支援使用LiteOS-A核心的平臺,當前包括:Hi3516DV300平臺和Hi3518EV300平臺。

    負責接受應用程式框架的命令孵化應用程式,設定其對應許可權,並呼叫應用程式框架的入口。

  • bootstrap啟動服務模組

    支援使用LiteOS-M核心的平臺,當前包括:Hi3861平臺。

    提供了各服務和功能的啟動入口標識。在SAMGR啟動時,會呼叫boostrap標識的入口函式,並啟動系統服務。

  • 系統屬性

    支援使用LiteOS-M核心和LiteOS-A核心的平臺,包括:Hi3861平臺,Hi3516DV300平臺,Hi3518EV300平臺。

    負責提供獲取與設定作業系統相關的系統屬性。

    系統屬性包括:預設系統屬性、OEM廠商系統屬性和自定義系統屬性。OEM廠商部分僅提供預設值,具體值需OEM產品方按需進行調整,詳見“使用”部分。

security

包括安全啟動、應用許可權管理、IPC通訊鑑權、HUKS、HiChain、應用簽名驗籤。

security
├── framework
│     ├── appverify    應用簽名驗籤
│     ├── crypto_lite    加解密
│     ├── hichainsdk_lite    裝置認證能力
│     ├── huks_lite    祕鑰管理和證書管理
│     ├── secure_os    安全OS
├── interface    介面目錄
│     ├── innerkits    內部kit目錄
│     │     ├── appverify    應用簽名驗籤
│     │     ├── crypto_lite    加解密
│     │     ├── hichainsdk_lite    裝置認證
│     │     ├── huks_lite    祕鑰管理和證書管理
│     │     ├── iam_lite    應用許可權管理
│     │     ├── secure_os    安全OS
│     ├── kits    外部kit目錄
│     │     ├── iam_lite    應用許可權管理
├── services    具體實現
│     ├── iam_lite    應用許可權管理
│     ├── secure_os    安全OS

hiviewdfx

用於存放DFX框架的程式碼。主要包含DFR(Design for Reliability,可靠性)和DFT(Design for Testability,可測試性)特性。主要是日誌。

iot_hardware

IoT外設控制

global

全球化資源管理模組主要提供語言資源回溯和多偏好語言支援的能力。

docs

此工程存放OpenHarmony提供的快速入門、開發指南、API參考等開發者文件

kernel

OpenHarmony核心是華為推出面向IoT領域的實時作業系統核心,它同時具備RTOS輕快和Linux易用的特點。

OpenHarmony核心主要包括程式和執行緒排程、記憶體管理、IPC機制、timer管理等核心基本功能。

OpenHarmony核心的原始碼分為 kernel_liteos_a 和 kernel_liteos_m 這2個程式碼倉庫,其中kernel_liteos_a主要針對Cortex-A系列處理器,而kernel_liteos_m則主要針對Cortex-M系列處理器,兩者目錄結構非常相似。

third_party

cJSON

用c實現的超輕量級JSON庫。

lwip

TCP/IP協議實現庫

musl

Musl是一個輕量級的C標準庫。設計作為GNU C library (glibc)、 uClibc或Android Bionic的替代用於嵌入式作業系統和移動裝置。

NuttX

Nuttx 是一個實時嵌入式作業系統(RTOS)

Mbed TLS

SSL/TLS功能庫

foundation

ace

JS應用開發框架,提供了一套跨平臺的類web應用開發框架,通過Toolkit將開發者編寫的HML、CSS和JS 檔案編譯打包成JS Bundle,解析執行JS Bundle,生成native UI View元件樹並進行渲染顯示。通過支援三方開發者使用宣告式的API進行應用開發,以資料驅動檢視變化,避免大量的檢視操作,大大降低應用開發難度,提升開發者開發體驗。

communication

分散式通訊子系統。

distributedschedule

分散式任務排程模組負責跨裝置元件管理,提供訪問和控制遠端元件的能力,支援分散式場景下的應用協同。

graphic

圖形子系統。
圖形子系統主要包括UI元件、佈局、動畫、字型、輸入事件、視窗管理、渲染繪製等模組,構建基於輕量OS的應用框架,滿足硬體資源較小的物聯網裝置的OpenHarmony系統應用開發。

appexecfwk

包資訊查詢、安裝、解除安裝等功能

aafwk

Ability開發框架介面、Ability管理服務

multimedia

媒體子系統。

多媒體包括camera,recorder和player,camera提供YUV、RGB、JPEG以及H264,H265資料到共享記憶體surface中,recorder模組將surface中h264/h265資料和音訊aac資料打包成mp4檔案,player模組把mp4檔案解複用成音訊和視訊資料,分別送入對應編碼器解碼,然後進行播放。

drivers

驅動

vendor

廠商晶片驅動軟體,包含LICENSE、編譯指令碼、配置檔案、驅動實現、工具等

utils

公共基礎庫存放OpenHarmony通用的基礎元件。這些基礎元件可被OpenHarmony各業務子系統及上層應用所使用。

公共基礎庫在不同平臺上提供的能力:

LiteOS-M核心(Hi3861平臺):KV儲存、檔案操作、定時器、IoT外設控制
LiteOS-A核心(Hi3516、Hi3518平臺):KV儲存、定時器、ACE JS API

build

編譯構建子系統。
編譯構建提供了一個在GN和ninja基礎上的編譯構建框架。支援以下功能:

  • 構建不同晶片平臺的產品。如:Hi3518EV300平臺的ipcamera產品,Hi3516DV300平臺的ipcamera產品,Hi3861平臺的WLAN模組產品。
  • 構建HPM包管理配置生成的自定義產品。
build/lite                      # 編譯構建主目錄
├── config                      # 編譯相關的配置項
│   ├── boards                  # 開發板相關的變數定義。包括:開發板名、目標架構、目標CPU等
│   ├── component               # OpenHarmony元件相關的模板定義。包括:靜態庫、動態庫、擴充套件元件、模擬器庫等
│   ├── kernel                  # OpenHarmony核心的編譯變數定義與配置引數
│   └── subsystem               # OpenHarmony子系統列表
├── ndk                         # NDK相關編譯指令碼與配置引數
├── platform                    # 平臺相關的配置檔案
│   ├── hi3516dv300_liteos_a    # hi3516dv300, liteos_a平臺。包括:平臺全量配置表,啟動檔案。
│   ├── hi3518ev300_liteos_a    # hi3518ev300, liteos_a平臺。包括:平臺全量配置表,啟動檔案。
│   └── hi3861v100_liteos_riscv # hi3861v100, liteos_riscv平臺。包括:平臺全量配置表,啟動檔案。
├── product                     # 產品全量配置表。包括:配置單元、子系統列表、編譯器等。
├── toolchain                   # 編譯工具鏈相關。包括:編譯器路徑、編譯選項、連結選項等。
└── tools                       # 編譯構建依賴的工具。包括:mkfs等。

applications

內建應用

test

xts

XTS是OpenHarmony生態認證測試套件的集合,當前包括acts(application compatibility test suite)應用相容性測試套,後續會擴充dcts(device compatibility test suite)裝置相容性測試套等。

developertest

開發過程採用測試驅動開發模式,開發者基於系統新增特性可以通過開發者自己開發用例保證,對於系統已有特性的修改,也可通過修改專案中原有的測試用例保證,開發者測試旨在幫助開發者在開發階段就能開發出高質量程式碼

prebuilts

系統標頭檔案和標準庫

相關文章