最新 OpenHarmony 系統一二級目錄整理

在這里插入圖片描述

我們在學習 OpenHarmony 的時候,如果對系統的目錄結構了解,那么無疑會提升自己對 OpenHarmony 更深層次的認識。

于是就有了今天的整理。
首先在此之前,我們要獲取源碼

獲取源碼的方式
OpenHarmony 主干代碼獲取
方式一(推薦):通過 repo + ssh 下載(需注冊公鑰,請參考碼云幫助中心)。
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c ‘git lfs pull’
方式二:通過 repo + https 下載。
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c ‘git lfs pull’
現在代碼已經獲取到了,我們就可以展開來對一二級目錄進行更深的認識。
在此之氣,我們來看一下 tree 的簡單使用
控制深度(假設為 2)
tree -L 2
只顯示目錄
tree -d

對需要顯示的文件進行過濾

只顯示包含 "L2"字符串的文件,并將過濾后的空目錄也同時過濾掉

[root@ Test]# tree -P ‘L2’ --prune

只顯示不包含 "L2"字符串的文件,并將過濾后的空目錄也同時過濾掉

[root@ Test]# tree -I ‘L2’ --prune
好的,學完這兩個命令,我們就可以先運行 tree -L 2 打印目錄,總覽一下。

打印如下
.
├── applications
│ ├── sample
│ └── standard
├── arkcompiler
│ ├── ets_frontend
│ ├── ets_runtime
│ ├── runtime_core
│ └── toolchain
├── base
│ ├── account
│ ├── customization
│ ├── global
│ ├── hiviewdfx
│ ├── inputmethod
│ ├── iothardware
│ ├── location
│ ├── msdp
│ ├── notification
│ ├── powermgr
│ ├── print
│ ├── request
│ ├── security
│ ├── sensors
│ ├── startup
│ ├── telephony
│ ├── theme
│ ├── time
│ ├── update
│ ├── usb
│ ├── useriam
│ └── web
├── build
│ ├── build_scripts
│ ├── common
│ ├── config
│ ├── core
│ ├── docs
│ ├── gn_helpers.py
│ ├── LICENSE
│ ├── lite
│ ├── loader
│ ├── misc
│ ├── OAT.xml
│ ├── ohos
│ ├── ohos.gni
│ ├── ohos_system.prop
│ ├── ohos_var.gni
│ ├── prebuilts_download_config.json
│ ├── prebuilts_download.py
│ ├── prebuilts_download.sh
│ ├── print_python_deps.py
│ ├── pycache
│ ├── README_zh.md
│ ├── rust
│ ├── scripts
│ ├── subsystem_config_example.json
│ ├── subsystem_config.json
│ ├── templates
│ ├── test.gni
│ ├── toolchain
│ ├── tools
│ ├── version.gni
│ └── zip.py
├── build.py -> build/lite/build.py
├── build.sh -> build/build_scripts/build.sh
├── commonlibrary
│ ├── c_utils
│ ├── ets_utils
│ ├── memory_utils
│ └── utils_lite
├── developtools
│ ├── ace_ets2bundle
│ ├── ace_js2bundle
│ ├── bytrace
│ ├── global_resource_tool
│ ├── hapsigner
│ ├── hdc
│ ├── hiperf
│ ├── integration_verification
│ ├── packing_tool
│ ├── profiler
│ └── syscap_codec
├── device
│ ├── board
│ ├── qemu
│ └── soc
├── docs
│ ├── CODEOWNERS
│ ├── DCO.txt
│ ├── docker
│ ├── en
│ ├── LICENSE
│ ├── OAT.xml
│ ├── README.md
│ ├── README_zh.md
│ └── zh-cn
├── drivers
│ ├── hdf_core
│ ├── interface
│ ├── liteos
│ └── peripheral
├── foundation
│ ├── ability
│ ├── ai
│ ├── arkui
│ ├── barrierfree
│ ├── bundlemanager
│ ├── communication
│ ├── deviceprofile
│ ├── distributeddatamgr
│ ├── distributedhardware
│ ├── filemanagement
│ ├── graphic
│ ├── multimedia
│ ├── multimodalinput
│ ├── resourceschedule
│ ├── systemabilitymgr
│ └── window
├── interface
│ └── sdk-js
├── kernel
│ ├── common_modules
│ ├── linux
│ ├── liteos_a
│ ├── liteos_m
│ └── uniproton
├── napi_generator
│ ├── docs
│ ├── examples
│ ├── FAQ.md
│ ├── figures
│ ├── hdc
│ ├── LICENSE
│ ├── napi_IntelliJ_plugin
│ ├── napi_vs_plugin
│ ├── OAT.xml
│ ├── package.json
│ ├── README_zh.md
│ ├── release-notes
│ ├── src
│ └── test
├── ohos_config.json
├── out
│ ├── hispark_pegasus
│ └── preloader
├── prebuilts
│ ├── ark_tools
│ ├── build-tools
│ ├── clang
│ ├── cmake
│ ├── develop_tools
│ ├── gcc
│ ├── mingw-w64
│ ├── previewer
│ ├── python
│ └── rustc
├── productdefine
│ └── common
├── qemu-run -> vendor/ohemu/common/qemu-run
├── test
│ ├── ostest
│ ├── testfwk
│ └── xts
├── third_party
│ ├── abseil-cpp
│ ├── alsa-lib
│ ├── alsa-utils
│ ├── benchmark
│ ├── bounds_checking_function
│ ├── bzip2
│ ├── cef
│ ├── chromium
│ ├── cJSON
│ ├── cmsis
│ ├── css-what
│ ├── curl
│ ├── e2fsprogs
│ ├── EGL
│ ├── ejdb
│ ├── elfio
│ ├── eudev
│ ├── exfatprogs
│ ├── expat
│ ├── f2fs-tools
│ ├── FatFs
│ ├── ffmpeg
│ ├── flatbuffers
│ ├── flutter
│ ├── FreeBSD
│ ├── freetype
│ ├── fsck_msdos
│ ├── gettext
│ ├── giflib
│ ├── glib
│ ├── glslang
│ ├── gn
│ ├── googletest
│ ├── gptfdisk
│ ├── grpc
│ ├── gstreamer
│ ├── harfbuzz
│ ├── icu
│ ├── iniparser
│ ├── iowow
│ ├── iptables
│ ├── jerryscript
│ ├── jinja2
│ ├── jsframework
│ ├── json
│ ├── jsoncpp
│ ├── libbpf
│ ├── libcoap
│ ├── libdrm
│ ├── libevdev
│ ├── libexif
│ ├── libffi
│ ├── libinput
│ ├── libjpeg-turbo
│ ├── libnl
│ ├── libphonenumber
│ ├── libpng
│ ├── libpsl
│ ├── libsnd
│ ├── libsoup
│ ├── libunwind
│ ├── libusb
│ ├── libuv
│ ├── libwebsockets
│ ├── libxml2
│ ├── littlefs
│ ├── ltp
│ ├── lwip
│ ├── lz4
│ ├── markupsafe
│ ├── mbedtls
│ ├── mesa3d
│ ├── mindspore
│ ├── mksh
│ ├── mtdev
│ ├── musl
│ ├── newfs_msdos
│ ├── nghttp2
│ ├── ninja
│ ├── node
│ ├── ntfs-3g
│ ├── NuttX
│ ├── opencl-headers
│ ├── openGLES
│ ├── openh264
│ ├── openmax
│ ├── openSLES
│ ├── openssl
│ ├── optimized-routines
│ ├── parse5
│ ├── pcre2
│ ├── pixman
│ ├── popt
│ ├── protobuf
│ ├── pulseaudio
│ ├── python
│ ├── PyYAML
│ ├── qrcodegen
│ ├── re2
│ ├── selinux
│ ├── skia
│ ├── spirv-headers
│ ├── spirv-tools
│ ├── sqlite
│ ├── toybox
│ ├── typescript
│ ├── typescript_eslint
│ ├── tzdata
│ ├── u-boot
│ ├── unity
│ ├── vk-gl-cts
│ ├── vulkan-headers
│ ├── wayland-ivi-extension
│ ├── wayland-protocols_standard
│ ├── wayland_standard
│ ├── weex-loader
│ ├── weston
│ ├── wpa_supplicant
│ └── zlib
└── vendor
├── alientek
├── asrmicro
├── bearpi
├── beken
├── bestechnic
├── chipsea
├── goodix
├── hihope
├── hisilicon
├── hpmicro
├── isoftstone
├── kaihong
├── lockzhiner
├── ohemu
├── openvalley
├── osware
├── talkweb
├── telink
└── unionman
applications/
內置的示例應用程序

standard/
標準系統的示例應用程序,包括 launcher,settings,systemui 等
.
├── admin_provisioning
├── app_samples
├── call
├── camera
├── contacts
├── contacts_data
├── filepicker
├── hap
├── launcher
├── mms
├── notes
├── permission_manager
├── photos
├── screenlock
├── screenshot
├── security_privacy_center
├── settings
├── settings_data
├── systemui
└── theme

sample/camera
小型系統的示例應用程序,包括 launcher,settings,camera 等

sample/wifi-iot
輕量系統的示例應用程序,WIFI_IOT_APP 組件,提供了 iothardware、demolink、samgr 等示例代碼。

arkcompiler
ets_frontend
ets_frontend 組件是方舟運行時子系統的前端工具,結合 ace-ets2bundle 組件,支持將 ets 文件轉換為方舟字節碼文件。

ets_runtime
方舟 eTS 運行時是 OpenHarmony 上默認的 ArkTS 語言運行時。支持 Ecmascript 規范定義的標準庫和高效 container 容器庫,提供完備的 C++ 交互 ArkTS NAPI 和各種高性能的垃圾回收器,驅動著萬物互聯時代的 OpenHarmony 應用程序。

runtime_core
方舟編譯器運行時公共組件(ArkCompiler Runtime Core)是 OpenHarmony 中語言運行時的公共組件。主要由與語言無關的基礎運行庫組成,包含承載字節碼以及執行字節碼所需要相關信息的 ArkCompiler File 文件組件、支持運行時調試的 Debugger Tooling 工具組件、提供不同系統平臺公共接口的 ArkCompiler Base 基礎庫組件、以及與語言無關的公共指令集體系結構 ISA 等。

toolchain
方舟工具鏈(ArkCompiler Toolchain)為開發者提供了一套 OpenHarmony 應用程序調試調優工具,其功能包括單步調試、斷點調試、Watch 變量及表達式、CPU Profiler 和 Heap Profiler 等,并支持多實例和 Worker 調試。

base
基礎軟件服務子系統集和硬件服務子系統集,可根據需要進行裁剪。

account/os_account
在標準系統上,帳號子系統主要提供系統帳號生命周期管理,分布式帳號登錄狀態管理和應用帳號添加刪除等基礎管理能力。

customization
customization/config_policy
配置策略組件為各業務模塊提供獲取各配置層級的配置目錄或配置文件路徑的接口。

customization/enterprise_device_management

企業設備管理組件 EDM(Enterprise Device Management)給企業 MDM(Mobile Device Management)應用開發者提供管理應用開發框架,設定管理模式以及提供企業設備管理功能能力集。為企業環境下的應用提供系統級別的管理功能 API。

global
全球化子系統,提供多語言支持,多文化的資源管理,以及國際化能力
.
├── i18n
├── i18n_lite
├── resource_management
├── resource_management_lite
├── system_resources
└── timezone

hiviewdfx
DFX 框架子系統,提供日志和系統事件的打印,輸出功能
.
├── blackbox
├── faultloggerd
├── hiappevent
├── hichecker
├── hicollie
├── hidumper
├── hidumper_lite
├── hievent_lite
├── hilog
├── hilog_lite
├── hisysevent
├── hitrace
├── hiview
└── hiview_lite

inputmethod
inputmethod/imf
輸入法框架,主要作用是拉通應用和輸入法,保證應用可以通過輸入法進行文本輸入

iothardware
iothardware/peripheral

IOT(The Internet of Things)硬件設備操作的接口。本模塊提供設備操作接口有:FLASH,GPIO,I2C,PWM,UART,WATCHDOG 等

location
位置服務組件

msdp
msdp/device_status

MSDP 設備狀態感知框架能夠識別出目前設備的狀態并傳遞給訂閱者,整個框架是基于 MSDP 算法庫和系統 SensorHDI 組件組成的

notification
notification/common_event_service

OpenHarmony 通過 CES(Common Event Service,公共事件服務)為應用程序提供訂閱、發布、退訂公共事件的能力。
notification/distributed_notification_service

OpenHarmony 通過 ANS(Advanced Notification Service,通知系統服務)對通知類型的消息進行管理,支持多種通知類型,包括文本,長文本,多文本,圖片,社交,媒體等。所有系統服務以及應用都可以通過通知接口發送通知消息,用戶可以通過 SystemUI 查看所有通知消息。
notification/eventhandler

EventHandler 提供了 OpenHarmony 線程間通信的基本能力,可以通過 EventRunner 創建新線程,將耗時的操作拋到新線程上執行,從而實現在不阻塞原來的線程的基礎上合理地處理耗時任務

power
電源管理服務子系統,提供系統各模塊的電源狀態管理等接口

print
print/print_fwk
打印框架服務(Distributed Print Service,DPS) 支持三方應用創建打印任務,拉起后臺打印任務管理,管理打印擴展和打印任務。

提供打印擴展框架,實現三方打印擴展的接入,管理打印任務與打印機之間的關系,啟動、暫停/恢復、取消打印任務,查詢打印進度等。

打印框架服務覆蓋范圍包含:打印管理、打印管理服務和打印擴展管理

request
request/request

Request 服務向三方應用提供文件下載/上傳能力,以支撐應用開發者方便、高效地使用下載/上傳業務的功能。

security
安全子系統,提供系統安全,數據安全,應用安全等能力
.
├── access_token
├── appverify
├── certificate_manager
├── crypto_framework
├── dataclassification
├── device_auth
├── device_security_level
├── huks
├── permission_lite
└── selinux

sensors
傳感器服務子系統,提供輕量級傳感器服務基礎框架
.
├── medical_sensor
├── miscdevice
├── miscdevice_lite
├── sensor
├── sensor_lite
└── start

startup
啟動恢復子系統,負責在內核啟動之后,到應用啟動之前的系統關鍵進程和服務的啟動過程,并提供系統屬性查詢,修改及設備恢復出廠設置的功能。

telephony
電話服務子系統,提供了一系列的 API 用于獲取無線蜂窩網絡和 SIM 卡相關的一些信息。應用可以通過調用 API 來獲取當前注冊網絡名稱、網絡服務狀態、信號強度以及 SIM 卡的相關信息。
.
├── call_manager
├── cellular_call
├── cellular_data
├── core_service
├── ril_adapter
├── sms_mms
├── state_registry
└── telephony_data

theme
theme\screenlock_mgr
鎖屏管理服務是 OpenHarmony 中系統服務,為鎖屏應用提供注冊亮屏、滅屏、開啟屏幕、結束休眠、退出動畫、請求解鎖結果監聽,并提供回調結果給鎖屏應用。鎖屏管理服務向三方應用提供請求解鎖、查詢鎖屏狀態、查詢是否設置鎖屏 mima 的能力。

theme\wallpaper_mgr
該倉主要為系統提供壁紙管理服務能力,支持系統顯示、設置、切換壁紙等功能。

time
time\time_service
在整個 OpenHarmony 架構中提供管理系統時間時區和定時的能力,支持設置獲取時間、日期、時區和系統定時器功能。

update
OpenHarmony 升級子系統用來支持 OpenHarmony 設備的 OTA(Over The Air)升級。
.
├── packaging_tools
├── sys_installer
├── sys_installer_lite
├── update_app
├── updater
└── updateservice

usb
usb/usb_manager
Usb 設備作為 host 設備連接 device 設備進行數據傳輸。

useriam
/useriam/face_auth
人臉認證(faceauth)支持用戶人臉的錄入,刪除和認證功能。

useriam/pin_auth
口令認證(pinauth)模塊支持用戶口令的設置,刪除和認證功能。與用戶 IAM 子系統基礎框架配合,也可以支持用戶口令修改的功能。

useriam/user_auth_framework
統一用戶認證框架

web
web/webview
nweb 是 OpenHarmony webview 組件的 Native 引擎,基于 Chromium 和 CEF 構建。

build
編譯構建子系統提供了一個基于 Gn 和 ninja 的編譯構建框架。

foundation
系統基礎能力子系統集,這部分可以根據需要進行裁剪。

ability
├── ability_base
├── ability_lite
├── ability_runtime
├── dmsfwk
├── dmsfwk_lite
├── form_fwk
└── idl_tool

ability_base:部件作為元能力的基礎定義部件,提供組件啟動參數(Want),系統環境參數(Configuration),URI 參數(Uniform Resource Identifier)的定義,用于啟動應用,獲取環境參數等功能。

ability_lite:元能力組件,是 OpenHarmony 為開發者提供的一套開發 OpenHarmony 應用的開發框架

ability_runtime:元能力子系統實現對 Ability 的運行及生命周期進行統一的調度和管理,應用進程能夠支撐多個 Ability,Ability 具有跨應用進程間和同一進程內調用的能力。Ability 管理服務統一調度和管理應用中各 Ability,并對 Ability 的生命周期變更進行管理。

dmsfwk:分布式組件管理部件模塊負責跨設備組件管理,提供訪問和控制遠程組件的能力,支持分布式場景下的應用協同

dmsfwk_lite:輕量級分布式組件管理模塊負責跨設備啟動 FA 的能力,支持分布式場景下的應用協同

form_fwk:卡片是一種界面展示形式,可以將應用的重要信息或操作前置到卡片,以達到服務直達的目的。
idl_tool:在 OpenHarmony 中,當應用/系統服務的客戶端和服務端進行 IPC(Inter-Process Communication)跨線程通信時,需要定義雙方都認可的接口,以保障雙方可以成功通信,OpenHarmony IDL(Interface Definition Language)則是一種定義此類接口的工具。OpenHarmony IDL 先把需要傳遞的對象分解成操作系統能夠理解的基本類型,并根據開發者的需要封裝跨邊界的對象。

commonlibrary
.
├── c_utils
├── ets_utils
├── memory_utils
└── utils_lite

c_utils:C++ 公共基礎類庫為標準系統提供了一些常用的 C++ 開發工具類
ets_utils:ets_utils 組件共提供四個子模塊,分別是:js_api_module、js_util_module、js_sys_module 和 js_worker_module

memory_utils:內存基礎庫部件位于公共基礎庫子系統中,為上層業務提供對應的操作內存的系統庫,保證上層業務的穩定性。

utils_lite:輕量級公共基礎庫存放 OpenHarmony 通用的基礎組件。這些基礎組件可被 OpenHarmony 各業務子系統及上層應用所使用
常用開發工具集合
developtools\ace_ets2bundle 提供聲明式范式的語法編譯轉換,語法驗證,豐富友好的語法報錯提示能力。

device
docs
此倉庫存放 OpenHarmony 網站提供的設備開發、應用開發對應的開發者文檔。

drivers
OpenHarmony 驅動子系統采用 C 面向對象編程模型構建,通過平臺解耦、內核解耦,兼容不同內核,提供了歸一化的驅動平臺底座,旨在為開發者提供更精準、更高效的開發環境,力求做到一次開發,多系統部署。
.
├── hdf_core
├── interface
├── liteos
└── peripheral
hdf_core 該倉主要存放 OpenHarmony 驅動子系統核心源碼信息(包括驅動框架、配置管理、配置解析、驅動通用框架模型、硬件通用平臺能力接口等),旨在為開發者提供更精準、更高效的開發環境,力求做到一次開發,多系統部署。

interface 該倉庫用于管理各模塊 HDI(Hardware Device Interface)接口定義,接口定義使用 IDL 語言描述并以·idl文件形式保存。

liteos 內核驅動是軟件與硬件交互的橋梁,通過文件系統接口訪問 OpenHarmony 內核的硬件資源,是用戶與內核之間、進程與進程之間通信的一種方式。每類驅動代表一種能力,用戶可以根據需求選擇對應驅動,完成數據的傳輸

peripheral 此倉主要包含各外設器件驅動相關的 HDI(Hardware Driver Interface)接口、HAL 實現、驅動模型及測試用例等,根據模塊劃分不同目錄。

interface
interface/sdk-js

JS/TS API 公共倉,用來提交 API d.ts 聲明文件以及 API 相關工具。

kernel
OpenHarmony 針對不同量級的系統,分別使用了不同形態的內核,分別為 LiteOS 和 Linux。在輕量系統、小型系統可以選用 LiteOS;在小型系統和標準系統上可以選用 Linux。
.
├── common_modules
├── linux
├── liteos_a
├── liteos_m
└── uniproton

common_modules

New IP 在現有 IP 能力的基礎上,以靈活輕量級報頭和可變長多語義地址為基礎,通過二三層協議融合,對協議去冗和壓縮,減少冗余字節,實現高能效比,高凈吞吐,提升通信效率。打造終端之間高效的橫向通信,支撐超級終端的體驗,實現異構網絡的端到端互聯。
linux
不同版本的 Linux 內核,以及不同芯片平臺適配 Linux 內核的相關配置,編譯腳本等等

liteos_a

OpenHarmony LiteOS-A 內核是基于 Huawei LiteOS 內核演進發展的新一代內核,Huawei LiteOS 是面向 IoT 領域構建的輕量級物聯網操作系統。在 IoT 產業高速發展的潮流中,OpenHarmony LiteOS-A 內核能夠帶給用戶小體積、低功耗、高性能的體驗以及統一開放的生態系統能力,新增了豐富的內核機制、更加全面的 POSIX 標準接口以及統一驅動框架HDF(OpenHarmony Driver Foundation)等,為設備廠商提供了更統一的接入方式,為 OpenHarmony 的應用開發者提供了更友好的開發體驗
liteos_m

OpenHarmony LiteOS-M 內核是面向 IoT 領域構建的輕量級物聯網操作系統內核,具有小體積、低功耗、高性能的特點,其代碼結構簡單,主要包括內核最小功能集、內核抽象層、可選組件以及工程目錄等,分為硬件相關層以及硬件無關層,硬件相關層提供統一的 HAL(Hardware Abstraction Layer)接口,提升硬件易適配性,不同編譯工具鏈和芯片架構的組合分類,滿足 AIoT 類型豐富的硬件和編譯工具鏈的拓展
uniproton
UniProton 主要目的在于為上層業務軟件提供一個統一的操作系統平臺,屏蔽底層硬件差異,并提供強大的調試功能。使得業務軟件可在不同的硬件平臺之間快速移植,方便產品芯片選型,降低硬件采購成本和軟件維護成本。

napi_generator
本文主要介紹 NAPI 框架代碼生成工具,它可以根據用戶指定路徑下的 ts(typescript)接口文件一鍵生成 NAPI 框架代碼、業務代碼框架、GN 文件等。在開發 JS 應用與 NAPI 間接口時,底層框架開發者無需關注 Nodejs 語法、C++ 與 JS 之間的數據類型轉換等上層應用轉換邏輯,只關注底層業務邏輯即可,專業的人做專業的事,從而可以大大提高開發效率。目前工具支持可執行文件、VS Code 插件、IntelliJ 插件三種入口。

prebuilts
.
├── ark_tools
├── build-tools
├── clang
├── cmake
├── develop_tools
├── gcc
├── mingw-w64
├── previewer
├── python
└── rustc

productdefine
/productdefine/common
一個完整的產品包括芯片組件部分和系統組件部分。芯片組件部分在 vendor/{company}/{product}/目錄下定義。本倉主要定義與芯片無關的通用系統組件形態配置。

test
\ostest\wukong
OpenHarmony 穩定性測試自動化工具,通過模擬用戶行為,對 OpenHarmony 系統及應用進行穩定性壓力測試。
testfwk
/arkXtest

OpenHarmony 自動化測試框架代碼部件倉 arkXtest,包含單元測試框架(JsUnit)和 Ui 測試框架(UiTest)。
/developer_test

OpenHarmony 為開發者提供了一套全面的開發自測試框架 OHA-developertest,開發者可根據測試需求開發相關測試用例,開發階段提前發現缺陷,大幅提高代碼質量。
/developer_test
/xdevice
xdevice 是 OpenHarmony 中為測試框架的核心組件,提供用例執行所依賴的相關服務

xts
生態認證測試套件集合

third_party
三方庫
.
├── abseil-cpp
├── alsa-lib
├── alsa-utils
├── benchmark
├── bounds_checking_function
├── bzip2
├── cef
├── chromium
├── cJSON
├── cmsis
├── css-what
├── curl
├── e2fsprogs
├── EGL
├── ejdb
├── elfio
├── eudev
├── exfatprogs
├── expat
├── f2fs-tools
├── FatFs
├── ffmpeg
├── flatbuffers
├── flutter
├── FreeBSD
├── freetype
├── fsck_msdos
├── gettext
├── giflib
├── glib
├── glslang
├── gn
├── googletest
├── gptfdisk
├── grpc
├── gstreamer
├── harfbuzz
├── icu
├── iniparser
├── iowow
├── iptables
├── jerryscript
├── jinja2
├── jsframework
├── json
├── jsoncpp
├── libbpf
├── libcoap
├── libdrm
├── libevdev
├── libexif
├── libffi
├── libinput
├── libjpeg-turbo
├── libnl
├── libphonenumber
├── libpng
├── libpsl
├── libsnd
├── libsoup
├── libunwind
├── libusb
├── libuv
├── libwebsockets
├── libxml2
├── littlefs
├── ltp
├── lwip
├── lz4
├── markupsafe
├── mbedtls
├── mesa3d
├── mindspore
├── mksh
├── mtdev
├── musl
├── newfs_msdos
├── nghttp2
├── ninja
├── node
├── ntfs-3g
├── NuttX
├── opencl-headers
├── openGLES
├── openh264
├── openmax
├── openSLES
├── openssl
├── optimized-routines
├── parse5
├── pcre2
├── pixman
├── popt
├── protobuf
├── pulseaudio
├── python
├── PyYAML
├── qrcodegen
├── re2
├── selinux
├── skia
├── spirv-headers
├── spirv-tools
├── sqlite
├── toybox
├── typescript
├── typescript_eslint
├── tzdata
├── u-boot
├── unity
├── vk-gl-cts
├── vulkan-headers
├── wayland-ivi-extension
├── wayland-protocols_standard
├── wayland_standard
├── weex-loader
├── weston
├── wpa_supplicant
└── zlib

vendor
.
├── alientek
├── asrmicro
├── bearpi
├── beken
├── bestechnic
├── chipsea
├── goodix
├── hihope
├── hisilicon
├── hpmicro
├── isoftstone
├── kaihong
├── lockzhiner
├── ohemu
├── openvalley
├── osware
├── talkweb
├── telink
└── unionman

build.py
輕量系統編譯腳本的軟鏈接

build.sh
標準系統編譯腳本的軟鏈接

總結:
由于 Master 分支代碼更新迭代速度很快,部分目錄結構可能在后面會發生變化。特別是高層次的部分代碼。所以后面需要大家自己去修改,最后還是要感謝梁老師的《沉浸式刨析 OpenHarmony 源代碼》一書,給我的啟示。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76127.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76127.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76127.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STL常用容器整理

STL常用容器操作整理 STL常用容器操作整理(string/vector/set/map)一、string(字符串)構造函數元素訪問修改操作容量操作子串與查找 二、vector(動態數組)構造函數元素訪問修改操作容量操作 三、set&#x…

Unity 實現傷害跳字

核心組件: Dotween TextMeshPro 過程軌跡如下圖: 代碼如下: using System.Collections; using System.Collections.Generic; using DG.Tweening; using TMPro; using UnityEngine; using UnityEngine.Pool;public class …

Ubuntu 22.04 AI大模型環境配置及常用工具安裝

一、基礎環境準備 1.1 系統準備 建議使用 Ubuntu22.04 以下配置皆以 Ubuntu22.04 系統版本為例 1.2 安裝git apt-get update && apt-get install git -y1.3 安裝 Python 3.9 【建議安裝 3.10】(安裝miniconda或者conda來管理虛擬環境) wget …

STM32單片機入門學習——第27節: [9-3] USART串口發送串口發送+接收

寫這個文章是用來學習的,記錄一下我的學習過程。希望我能一直堅持下去,我只是一個小白,只是想好好學習,我知道這會很難,但我還是想去做! 本文寫于:2025.04.08 STM32開發板學習——第27節: [9-3] USART串口發送&串口發送接收 前言開發板說…

前端實現docx格式word文件預覽,可以兼容原生、vue2、以及uni-app 項目,詳細步驟。

上一篇記錄了PDF文件預覽功能。這一篇記錄下docx文件預覽。 核心文件 doc.html <script src"./build/polyfill.min.js"></script> <script src"./build/jszip.min.js"></script> <script src"./build/docx-preview.js&…

Java中的ArrayList方法

1. 創建 ArrayList 實例 你可以通過多種方式創建 ArrayList 實例&#xff1a; <JAVA> ArrayList<String> list new ArrayList<>(); // 創建一個空的 ArrayList ArrayList<String> list new ArrayList<>(10); // 創建容量為 10 的 ArrayList …

【anaconda下py】

38 https://repo.anaconda.com/archive/Anaconda3-2020.11-Windows-x86.exe 39 https://repo.anaconda.com/archive/Anaconda3-2022.10-Windows-x86_64.exe 310https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Windows-x86_64.exe 歷史列表Index of /archive 遠程&…

linux--------------進程控制(下)

一、進程等待 1.1 進程等待必要性 子進程退出后&#xff0c;若父進程不管不顧&#xff0c;可能會產生 “僵尸進程”&#xff0c;進而造成內存泄漏。進程一旦變為僵尸狀態&#xff0c;即使使用 kill -9 也無法將其殺死&#xff0c;因為無法殺死一個已死的進程。父進程需要了解…

docker 中跑faster-whisper 教程(1050顯卡)

之前我本地機器運行faster-whisper 會報錯類似 Could not load library libcudnn_ops_infer.so.8github 上也有類似的情況 &#xff1a;https://github.com/SYSTRAN/faster-whisper/issues/516#issuecomment-2785038635 缺少.so.8 文件&#xff0c;我通過以下方式&#xff0c;…

人大金倉數據庫dum文件進行備份數據和恢復數據

邏輯備份命令: sys_dump -U SYSTEM -d problem_dev -Fc -f /db_backup/kingbase/dump/problem_dev/problem_dev20240329.dmp用戶:SYSTEM 數據庫名:problem_dev 格式:自定義格式(-Fc) 輸出文件:/db_backup/kingbase/dump/problem_dev/problem_dev20240329.dmp sys_dump…

Java的Selenium元素定位-xpath

xpath其實就是一個path(路徑)&#xff0c;一個描述頁面元素位置信息的路徑&#xff0c;相當于元素的坐標xpath基于XML文檔樹狀結構&#xff0c;是XML路徑語言&#xff0c;用來查詢xml文檔中的節點。 絕對定位 從根開始找--/(根目錄)/html/body/div[2]/div/form/div[5]/button缺…

python-Leetcode 65.搜索旋轉排序數組

題目&#xff1a; 整數數組nums按升序排列&#xff0c;數組中的值互不相同 在傳遞給函數之前&#xff0c;nums在預先未知的某個小標K上進行了旋轉&#xff0c;使數組變為[nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]&#xff0c;小標從0開始計數。…

學透Spring Boot — 010. 單元測試和Spring Test

系列文章目錄 這是CSDN postnull 博客《學透Spring Boot》系列的一篇&#xff0c;更多文章請移步&#xff1a;Postnull - 學透Spring Boot系列文章 文章目錄 系列文章目錄前言1. 基本概念UT 單元測試TDD 測試驅動開發UT測試框架Mock框架 3. Spring Test為什么要用Spring Test引…

Chrome 135 版本新特性

Chrome 135 版本新特性 一、Chrome 135 版本瀏覽器更新 ** 1. 第三方托管賬戶注冊遷移到 OIDC 授權碼流程** Chrome 135 將賬戶注冊的登錄頁面從營銷網站遷移到動態網站&#xff0c;同時也將 OpenID Connect (OIDC) 的隱式流程遷移到授權碼流程。這樣做的目的是進一步提升第…

Docker Swarm集群搭建與管理全攻略

文章目錄 一、節點準備二、初始化 manager 節點三、管理 swarm 集群中的 worker 節點1、添加 worker 節點2、查看 worker 節點3、刪除 worker 節點 四、管理 swarm 集群服務1、創建服務2、查看服務3、刪除服務 五、管理 swarm 節點服務1、節點標簽管理2、創建服務3、查看服務4、…

離線語音識別 ( 小語種國家都支持)可定制詞組

1產品介紹 離線語音模組采用神經網絡算法&#xff0c;支持語音識別、自學習等功能。運用此模組將 AI 技 術賦能產品&#xff0c;升級改造出語音操控的智能硬件 ( 例如風扇、臺燈、空調、馬桶、按摩椅、運 動相機、行車記錄儀等 ) 。支持全球多種語言識別&#xff0c;如中文…

Docker與VNC的使用

https://hub.docker.com/r/dorowu/ubuntu-desktop-lxde-vnc 下載nvc 客戶端 https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.12.0-Windows.exe 服務端 docker pull dorowu/ubuntu-desktop-lxde-vnc#下載成功 docker pull dorowu/ubuntu-desktop-l…

Linux系統學習Day0——了解和熟悉Linux系統的遠程終端登錄和數據傳輸

一、Windows系統與Linux系統虛擬機通過橋接進行網絡連接 &#xff08;一&#xff09;橋接模式 橋接模式是虛擬機網絡連接的一種常見方式&#xff0c;其核心原理是通過虛擬網卡將Linux虛擬機與宿主機的物理網卡建立橋接關系&#xff0c;使虛擬機能夠直接接入物理網絡。在該模式…

【開題報告+論文+源碼】基于springboot的農貿菜市場租位管理系統的設計與實現

項目背景與意義 隨著信息技術的快速發展和普及&#xff0c;信息化管理已成為各行業提升運營效率和服務質量的重要手段。農貿菜市場作為城市生活的重要組成部分&#xff0c;其管理效率和服務水平直接關系到市民的日常生活體驗。傳統的農貿菜市場租位管理方式往往存在信息不對稱、…

Codecademy—— 交互式編程學習的樂園

一、網站概述 Codecademy 是一家美國在線學習編程知識的網站&#xff0c;它為編程學習者提供了一種全新的學習方式。在如今眾多的編程學習平臺中&#xff0c;Codecademy 憑借其獨特的優勢脫穎而出&#xff0c;吸引了全球數百萬用戶。其目標是幫助更多人輕松學習編程&#xff0…