当前位置: 首页 > news >正文

最新 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 源代码》一书,给我的启示。

相关文章:

最新 OpenHarmony 系统一二级目录整理

我们在学习 OpenHarmony 的时候,如果对系统的目录结构了解,那么无疑会提升自己对 OpenHarmony 更深层次的认识。 于是就有了今天的整理。 首先在此之前,我们要获取源码 获取源码的方式 OpenHarmony 主干代码获取 方式一(推荐&am…...

多模态大语言模型arxiv论文略读(七)

MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文标题:MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文作者:Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…...

STM32单片机入门学习——第27节: [9-3] USART串口发送串口发送+接收

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.08 STM32开发板学习——第27节: [9-3] USART串口发送&串口发送接收 前言开发板说…...

【元表 vs 元方法】

元表 vs 元方法 —— 就像“魔法书”和“咒语”的关系 1. 元表(Metatable):魔法书 是什么? 元表是一本**“规则说明书”**,它本身是一个普通的 Lua 表,但可以绑定到其他表上,用来定义这个表应该…...

小型园区网实验

划分VLAN SW3 [sw3]vlan batch 2 3 20 30 [sw3]interface GigabitEthernet 0/0/1 [sw3-GigabitEthernet0/0/1]port link-type access [sw3-GigabitEthernet0/0/1]port default vlan 2 [sw3-GigabitEthernet0/0/1]int g0/0/2 [sw3-GigabitEthernet0/0/2]port link-type acces…...

python 数组append数组

在Python中,可以通过多种方式将一个数组(列表)添加到另一个数组(列表)中。以下是几种常见的方法: 1. 使用 append() 方法 append() 方法将一个数组作为整体添加到另一个数组的末尾。 list1 [1, 2, 3] l…...

从0到1:STM32 RTC定时器配置全流程

1. 什么是RTC? RTC(Real-Time Clock) 是嵌入式系统中用于提供独立计时功能的硬件模块,具有以下特点: 独立于主系统时钟(即使MCU进入低功耗模式仍可运行)提供日历功能(年/月/日/时/…...

(学习总结33)Linux Ext2 文件系统与软硬链接

Linux Ext2 文件系统与软硬链接 理解硬件磁盘、服务器、机柜、机房磁盘物理结构磁盘的逻辑结构实际过程 CHS 与 LBA 地址转换 引入文件系统引入 " 块 " 概念引入 " 分区 " 概念引入 " inode " 概念 ext2 文件系统宏观认识Block Group 块组与其内…...

LeetCode算法题(Go语言实现)_36

题目 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点…...

牛客华为机试--HJ48 从单向链表中删除指定值的节点C++

题目描述 示例1 示例2 该题的核心是每来一组数据&#xff0c;都要从头开始找&#xff0c;找到数据后再插入。而不是直接在尾部插入数据。 上代码 #include <iostream> using namespace std;struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(nu…...

Jmeter 插件【性能测试监控搭建】

1. 安装Plugins Manager 1.1 下载路径&#xff1a; Install :: JMeter-Plugins.org 1.2 放在lib/ext目录下 1.3 重启Jmeter&#xff0c;会在菜单-选项下多一个 Plugins Manager菜单&#xff0c;打开即可对插件进行安装、升级。 2. 客户端(Jmeter端) 2.1 安装plugins manager…...

从攻防演练到AI防护:网络安全服务厂商F5的全方位安全策略

随着AI和云原生技术的蓬勃兴起&#xff0c;多云架构的广泛采用&#xff0c;企业内部IT系统正经历着翻天覆地的变化。在这个转型期&#xff0c;传统的攻击手段和防守策略正面临着巨大的挑战。基于此&#xff0c;用户需要跳出传统的思维模式&#xff0c;采取新的视角&#xff0c;…...

【Introduction to Reinforcement Learning】翻译解读5

4 核心算法 我们将算法分为三类&#xff1a;基于价值的方法、基于策略的方法和混合算法。 4.1 基于价值的方法Value-based 一个重要的突破是Q-learning的引入&#xff0c;它是一种无模型算法&#xff0c;被视为off-policy时间差分&#xff08;TD&#xff09;学习。TD学习无疑…...

Jmeter中的bzm-concurrency thread group 与普通线程组的区别

在 JMeter 中,bzm - Concurrency Thread Group(由 BlazeMeter 提供)和标准的 Thread Group 是两种不同的线程组实现,主要区别在于 并发控制模型 和 负载调节方式。以下是详细对比: 1. 核心区别 特性bzm - Concurrency Thread Group标准 Thread Group负载模型基于并发数(C…...

VBA将Word文档内容逐行写入Excel

如果你需要将Word文档的内容导入Excel工作表来进行数据加工&#xff0c;使用下面的代码可以实现&#xff1a; Sub ImportWordToExcel()Dim wordApp As Word.ApplicationDim wordDoc As Word.DocumentDim excelSheet As WorksheetDim filePath As VariantDim i As LongDim para…...

ubuntu22部署 3d-tiles-tools

安装fnm curl -fsSL https://fnm.vercel.app/install | bash安装nodejs 20.17.0LTS版本 https://nodejs.org/zh-cn/download/package-manager安装依赖包 # Download and install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash# in…...

WebStrom关闭模板字符串自动转换

WebStrom关闭模板字符串自动转换 Editor > General > smart Keys > JavaScript > Automatically replace string literal with template string on typing "${"...

【零基础入门unity游戏开发——动画篇】新动画Animator的使用 —— AnimatorController和Animator的使用

考虑到每个人基础可能不一样&#xff0c;且并不是所有人都有同时做2D、3D开发的需求&#xff0c;所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】&#xff1a;主要讲解C#的基础语法&#xff0c;包括变量、数据类型、运算符、…...

npx vite 可以成功运行,但 npm run dev 仍然报错 Missing script: “dev“

npx vite 可以成功运行,但 npm run dev 仍然报错 Missing script: "dev",说明问题可能出在 npm 的脚本解析 或 项目配置 上。以下是具体解决方案: 1. 检查 package.json 的物理位置 可能原因: 你当前运行的目录下可能有一个 无效的 package.json,而真正的 packa…...

Java 泛型的逆变与协变:深入理解类型安全与灵活性

泛型是 Java 中强大的特性之一&#xff0c;它提供了类型安全的集合操作。然而&#xff0c;泛型的类型关系&#xff08;如逆变与协变&#xff09;常常让人感到困惑。 本文将深入探讨 Java 泛型中的逆变与协变&#xff0c;帮助你更好地理解其原理和应用场景。 一、什么是协变与…...

C语言核心知识点整理:结构体对齐、预处理、文件操作与Makefile

目录 结构体的字节对齐预处理指令详解文件操作基础Makefile自动化构建总结 1. 结构体的字节对齐 字节对齐原理 内存对齐&#xff1a;CPU访问内存时&#xff0c;对齐的地址能提高效率。操作系统要求变量按类型大小对齐。对齐规则&#xff1a; 每个成员的起始地址必须是min(成…...

深度学习|注意力机制

一、注意力提示 随意&#xff1a;跟随主观意识&#xff0c;也就是指有意识。 注意力机制&#xff1a;考虑“随意线索”&#xff0c;有一个注意力池化层&#xff0c;将会最终选择考虑到“随意线索”的那个值 二、注意力汇聚 这一部分也就是讲第一大点中“注意力汇聚”那个池化…...

特权FPGA之乘法器

完整代码如下&#xff1a; timescale 1ns / 1ps// Company: // Engineer: // // Create Date: 23:08:36 04/21/08 // Design Name: // Module Name: mux_16bit // Project Name: // Target Device: // Tool versions: // Description: // // Dependencies: …...

安全的企业局域网聊天工具哪个好用?

在当今数字化时代&#xff0c;企业对于局域网聊天工具的需求日益增长&#xff0c;尤其是在对数据安全和定制化服务有较高要求的大中型政企单位中。安全的企业局域网聊天工具哪个好用&#xff1f;虽然市面上有很多即时通讯软件&#xff0c;今天来介绍一下已经拥有十年行业经验的…...

如何应对客户频繁变更需求

如何应对客户频繁变更需求&#xff1f;要点包括&#xff1a; 快速响应、深入沟通、灵活规划、过程记录、风险管控。这些策略既能降低项目失控风险&#xff0c;也能帮助团队在变动环境中保持高效率。其中深入沟通尤为关键&#xff0c;它不仅能够让团队第一时间了解客户意图&…...

R语言进行聚类分析

目录 简述6种系统聚类法 实验实例和数据资料&#xff1a; 上机实验步骤&#xff1a; 进行最短距离聚类&#xff1a; 进行最长距离聚类&#xff1a; 进行中间距离聚类&#xff1a; 进行类平均法聚类&#xff1a; 进行重心法聚类&#xff1a; 进行ward.D聚类&#xff1a;…...

1.6-抓包技术(Burp Suite\Yakit抓包\Web、APP、小程序)

1.6-抓包技术&#xff08;Burp Suite\Yakit抓包\Web、APP、小程序&#xff09; 如果要使用抓包软件&#xff0c;基本上第一步都是要安装证书的。原因如下&#xff1a; 客户端&#xff08;浏览器或应用&#xff09;会检测到证书不受信任&#xff0c;并弹出 证书错误&#xff0…...

DAPP实战篇:使用web3.js连接合约

说明 本系列内容目录:专栏:区块链入门到放弃查看目录 如果你还没有创建好项目请先查看:《DApp实战篇:先用前端起个项目》,如果你还不知道web3.js是什么请先查看:《DApp实战篇:前端技术栈一览》。 安装 点此查看web3.js官方文档 打开项目根目录,并唤起终端: 键入w…...

用 Python 构建一个简单的本地视频流媒体服务器

你是否曾经想过在本地网络上轻松地将电脑上的视频分享给手机或平板电脑观看&#xff1f;也许你下载了一部电影&#xff0c;想在客厅的智能电视上播放&#xff0c;却不想费力地拷贝文件。今天&#xff0c;我们将深入分析一个 Python 脚本&#xff0c;它使用 wxPython 创建图形用…...

汇丰xxx

1. Spring Boot 的了解&#xff0c;解决什么问题&#xff1f; 我的理解&#xff1a; Spring Boot 是一个基于 Spring 框架的快速开发脚手架&#xff0c;它简化了 Spring 应用的初始搭建和开发过程。解决的问题&#xff1a; 简化配置&#xff1a; 传统的 Spring 应用需要大量的…...

ruby基础语法

以下是 Ruby 基础语法的简明总结&#xff0c;适合快速入门&#xff1a; 一、变量与常量 局部变量 小写字母或下划线开头&#xff0c;作用域为当前代码块。 name "Alice" _age 20实例变量 以 开头&#xff0c;属于对象实例。 name "Bob"类变量 以 开头…...

智体OS-V3.1版:新增了rt-datalink底层数据链通讯,实现【无网络】本机使用

##智体OS-V3.1版本发布 更新简介 dtns.os智体OS-V3.1版&#xff1a;新增了rt-datalink底层数据链通讯&#xff08;使用本地局域网的websocket端口通讯&#xff09;&#xff0c;解决了本机【无网络】正常使用的问题。 更新内容 dtns.connector支持使用新的rt-datalink与智体…...

Windows系统安装Git以及Git常用命令介绍

本文主要介绍Windows系统安装Git的方法&#xff0c;以及Git常用命令介绍。 一、下载Git 官网&#xff1a; Git - Downloads (git-scm.com) 根据自己的系统选择 我的是64位的Windows系统&#xff0c;选择对应的安装包&#xff0c;点击后开始下载 等待下载完成 二、安装Git 双…...

HTML 开发者的智能助手:通义灵码在 VSCode 中的应用

引言 在 HTML 开发领域&#xff0c;提高编码效率和质量是每位开发者追求的目标。通义灵码&#xff0c;作为一款由阿里云技术团队开发的智能编码助手&#xff0c;能够通过其强大的 AI 能力&#xff0c;为 HTML 开发者提供包括代码自动补全、智能注释、代码优化等多方面的支持。…...

MySQL随机获取记录之方法(The Method of Randomly Obtaining Records in MySQL)

MySQL中如何随机获取一条记录 随机获取一条记录是在数据库查询中常见的需求&#xff0c;特别在需要展示随机内容或者随机推荐的场景下。在 MySQL 中&#xff0c;有多种方法可以实现随机获取一条记录&#xff0c;每种方法都有其适用的情况和性能特点。在本文中&#xff0c;我们将…...

ngx_core_module 的 create_conf

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_core_module-CSDN博客 定义在 src\core\nginx.c ngx_module_t ngx_core_module {NGX_MODULE_V1,&ngx_core_module_ctx, /* module context */ngx_core_commands, /* module directives */…...

41--华为IPSec主备链路实验:当加密隧道遇上“双保险“

&#x1f6a6; 华为IPSec主备链路实验&#xff1a;当加密隧道遇上"双保险" “如果你的IPSec隧道只有一条路&#xff0c;那就像走钢丝不系安全带——刺激但危险&#xff01;” —— 本文将用华为设备打造主备双加密通道&#xff0c;结合IP-link智能检测&#xff0c;让…...

Reactive编程框架与工具

文章目录 6.2 后端 Reactive 框架6.2.1 Spring WebFlux核心架构核心组件实际应用高级特性性能优化适用场景与限制 6.2.2 Akka&#xff08;Actor模型&#xff09;Actor模型基础基本用法高级特性响应式特性实现性能优化实际应用场景优势与挑战 6.2.3 Vert.x&#xff08;事件驱动&…...

vi/vim常用快捷键

那么今天我们继续昨天没有介绍完的vi编辑器,来看看常用的一些快捷键,方便我们对文件的编辑. 1.拷贝当前行yy,拷贝当前行向下的5行5yy,并粘贴(输入p) 2.删除当前行dd,删除当前行向下的5行5d 3.在文件中查找某个单词[命令模式/关键字,回车查找,输入n就是查找下一个] ⭐️&…...

初始JavaEE篇 —— SpringBoot 统一功能处理

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 前言 拦截器 基本使用 拦截器的路径配置 统一数据返回格式 统一异常处理 前言 在实际开发中&#xff0c;某些功能需要强…...

Spring AI Alibaba 文档检索使用

一、文档检索 (Document Retriever)简介 1、核心概念 文档检索&#xff08;DocumentRetriever&#xff09;是一种信息检索技术&#xff0c;旨在从大量未结构化或半结构化文档中快速找到与特定查询相关的文档或信息。文档检索通常以在线(online)方式运行。 DocumentRetriever通…...

遍历算法及其应用详解

李升伟 整理 什么是遍历&#xff1f; 遍历是指按照某种规则或顺序&#xff0c;系统地访问数据结构&#xff08;如树、图等&#xff09;中的每个节点一次且仅一次的过程。遍历是算法设计中的基本操作&#xff0c;用于访问、检查或修改数据结构中的所有元素。 主要遍历算法 1…...

.NET-EFCore基础知识

.NET EF Core&#xff08;Entity Framework Core&#xff09;是微软开发的一款开源的对象关系映射&#xff08;ORM&#xff09;框架&#xff0c;用于在.NET 应用程序中与数据库进行交互。以下是一些.NET EF Core 的基础知识&#xff1a; 1. 什么是 EF Core EF Core 是.NET 平…...

R语言基础包可视化(一:axis函数)

R语言基础包可视化(一:axis函数) 背景axis函数(坐标轴函数)各参数的图片示例hadj和padjline和poslty,lwd,lwd.ticksgap.axis总结背景 之前在介绍正态Q-Q图的过程中,画过标准正态分布的随机数、分数数、分布函数、密度函数的图像,相关的文章连接参考此处:R语言正态Q-Q图…...

Axure疑难杂症:垂直菜单折叠与展开(玩转垂直菜单)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:垂直菜单折叠与展开 主要内容:折叠与展开效果 应用场景:PC后台菜单、动态下拉菜单、商品分类选择等折叠与展开场景 案例展示: 案例视频: 垂直菜单折叠与展开效果 正文内容: 关于垂直菜单的折叠与…...

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;…...

MySQL 在 CentOS 7 环境安装完整步骤

1. 卸载已有环境&#xff08;MariaDB/旧版MySQL&#xff09; 1.停止 MariaDB 服务 systemctl stop mariadb.service 2.检查并卸载 MariaDB/MySQL 安装包 rpm -qa | grep mariadb # 检查 MariaDB 相关包 rpm -qa | grep mysql # 检查 MySQL 相关包 sudo yum remo…...

下一代智能爬虫框架:ScrapeGraphAI 详解

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、ScrapeGraphAI 概述1.1 ScrapeGraphAI介绍1.2 核心特点1.3 工作流程1.4 关键模块1.5 对比传统爬虫框架1.6 安装二、基础操作2.1 自定义解析规则2.2 数据后处理2.3 分布式爬取三、高级功能3.1 多步骤交互采集3.2 动态…...

C++-ffmpeg-2-3-工厂模式封装SDL-9-7

1.接口设计 2.窗口渲染器和材质初始化 3.渲染Draw并测试渲染YUV 4.渲染画面随窗口大小自动缩放并抗锯齿 5.清理接口和接收窗口退出事件 1.接口设计&#xff1a;原则 主要的实现步骤&#xff1a; main的流程&#xff1a; 1打开文件 yuv_file.open("400_300_25.yuv&quo…...

下载极客漫画——Beautiful Soup实用案例

文章目录 一、背景介绍 二、实现思路 三、效果图 四、构思 五、实现细节 1. 第一步下载网页 2. 寻找和下载漫画图像 3. 保存图像&#xff0c;找到前⼀张漫画 六、完整代码 七、程序输出 八、附录 九、总结 一、背景介绍 XKCD网站是一个关于浪漫、隐喻、数字、以及…...