#夏日挑战赛#啃论文俱乐部—开源鸿蒙引用的三方开源软件梳理[3] 原创 精华
@toc
往期分享:
OpenHarmony啃论文俱乐部—开源鸿蒙引用的三方开源软件梳理[1]
OpenHarmony啃论文俱乐部—开源鸿蒙引用的三方开源软件梳理[2]
OpenHarmony third_party三方库:
在linux下打开OpenHarmony3.2Beta1源码third_party目录下,能够看到如下115个目录:
$$ $$
在third_party目录下打开终端输入 tree -L 1
得到third_party下115个引入的三方库目录
.
├── abseil-cpp
├── benchmark
├── boost
├── boringssl
├── bounds_checking_function
├── bzip2
├── cares
├── cef
├── chromium
├── cJSON
├── cmsis
├── css-what
├── curl
├── e2fsprogs
├── EGL
├── ejdb
├── eudev
├── exfat-utils
├── expat
├── f2fs-tools
├── FatFs
├── ffmpeg
├── flatbuffers
├── flutter
├── FreeBSD
├── freetype
├── fsck_msdos
├── gettext
├── giflib
├── glib
├── gn
├── googletest
├── gptfdisk
├── grpc
├── gstreamer
├── harfbuzz
├── icu
├── iniparser
├── iowow
├── jerryscript
├── jinja2
├── jsframework
├── json
├── jsoncpp
├── libcoap
├── libdrm
├── libevdev
├── libexif
├── libffi
├── libinput
├── libjpeg
├── libnl
├── libphonenumber
├── libpng
├── libpsl
├── libsnd
├── libsoup
├── libunwind
├── libusb
├── libuv
├── libwebsockets
├── libxkbcommon
├── libxml2
├── littlefs
├── ltp
├── lwip
├── lz4
├── markupsafe
├── mbedtls
├── mindspore
├── mingw-w64
├── minimp3
├── minimp4
├── mksh
├── mtdev
├── musl
├── newfs_msdos
├── nghttp2
├── ninja
├── node
├── ntfs-3g
├── NuttX
├── openGLES
├── openh264
├── openmax
├── openSLES
├── openssl
├── optimized-routines
├── parse5
├── pcre2
├── pixman
├── popt
├── protobuf
├── pulseaudio
├── python
├── PyYAML
├── qrcodegen
├── quickjs
├── re2
├── selinux
├── skia
├── sqlite
├── toybox
├── typescript
├── typescript_eslint
├── tzdata
├── uboot
├── unity
├── wayland-ivi-extension
├── wayland-protocols_standard
├── wayland_standard
├── weex-loader
├── weston
├── wpa_supplicant
└── zlib
115 directories, 0 files
abseil-cpp
-
Abseil 是C++ 库代码的开源集合,旨在增强标准库 C++。Abseil库代码是从Google自己的C++代码库中收集的,经过了广泛的测试和生产使用,并且与日常编码生活中所依赖的代码相同。
-
在某些情况下,Abseil提供C++标准中缺少的部分。
OpenHarmony third_party_abseil-cpp 仓库:https://gitee.com/openharmony/third_party_abseil-cpp
abseil-cpp主页:https://abseil.io/
benchmark
benchmark是一个由Google开发的基于googletest框架的c++ benchmark工具,它易于安装和使用,并提供了全面的性能测试接口。
OpenHarmony third_party_benchmark仓库:https://gitee.com/openharmony/third_party_benchmark
benchmark主页:https://github.com/google/benchmark
bounds_checking_function
- 遵循C11 Annex K (Bounds-checking interfaces)的标准,选取并实现了常见的内存/字符串操作类的函数,如memcpy_s、strcpy_s等函数。
- 由openeuler的libboundscheck移植到openHarmony得来。
OpenHarmony third_party_bounds_checking_function仓库:https://gitee.com/openharmony/third_party_bounds_checking_function
bounds_checking_function主页:https://gitee.com/openeuler/libboundscheck
cares
- c-ares 是用于异步 DNS 请求(包括名称解析)的 C 库。
- 它适用于需要执行 DNS 查询而不阻塞或需要并行执行多个 DNS 查询的应用程序。此类应用程序的主要示例是与多个客户端通信的服务器和具有图形用户界面的程序。
OpenHarmony third_party_cares仓库:https://gitee.com/openharmony/third_party_cares
cares主页:https://c-ares.org/
cef
-
Chromium Embedded Framework (CEF) 是一个简单的框架,用于在其他应用程序中嵌入基于 Chromium 的浏览器。
-
CEF 支持多种编程语言和操作系统,并可轻松集成到新的和现有的应用程序中。它从头开始设计,同时考虑了性能和易用性。基本框架包括通过本机库公开的 C 和 C++ 编程接口,这些库将主机应用程序与 Chromium 和 Blink 实现细节隔离开来。它提供了浏览器和主机应用程序之间的紧密集成,包括对自定义插件,协议,JavaScript对象和JavaScript扩展的支持。主机应用程序可以选择控制资源加载、导航、上下文菜单、打印等,同时利用与 Google Chrome Web 浏览器中相同的性能和 HTML5 技术。
OpenHarmony third_party_cef仓库:https://gitee.com/openharmony/third_party_cef
cares主页:https://bitbucket.org/chromiumembedded/cef
chromium
- Chromium是由Google主导开发的网页浏览器,以BSD许可证等多重自由版权发行并开放源代码,是Google的Chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览器。
- OpenHarmony nwebview基于Chromium构建。
OpenHarmony third_party_chromium仓库:https://gitee.com/openharmony/third_party_chromium
cJSON
ANSI C 中的超轻量级 JSON 解析器。cJSON的目标是成为您可以完成工作的最简单的解析器。该项目只有一个头文件和一个源文件。
OpenHarmony third_party_cJSON仓库:https://gitee.com/openharmony/third_party_cJSON
css-what
css-what是一个CSS选择器解析器
OpenHarmony third_party_css-what仓库:https://gitee.com/openharmony/third_party_css-what
curl
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
OpenHarmony third_party_curl仓库:https://gitee.com/openharmony/third_party_curl
e2fsprogs
e2fsprogs是一个开源库,可以读写ext2/ext3/ext4磁盘。
Ext2/Ext3/Ext4 文件系统实用程序 (e2fsprogs) 包含用于创建、修复、配置和调试 ext2、ext3 和 ext4 文件系统的所有标准实用程序。
- EXT是Linux系统下的一种磁盘分区格式,等同于XP下的FAT/FAT16/FAT32
- 1、EXT是Linux系统下的一种磁盘分区格式,等同于XP下的FAT/FAT16/FAT32,大家知道安卓是基于Linux系统开发的手机系统,那么同样的就有这些分区格式,平时我们所说的开启a2sd功能,就是在SD卡中分出一个系统所支持的磁盘格式,下面来说一下这些格式的区别!
- 2、Ext2(第二扩展文件系统): 是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的 x86 电脑系统中,block最大为 4KB, 则单一文件大小上限为 2048GB, 而文件系统的容量上限为 16384GB。但由于目前核心 2.4 所能使用的单一分割区最大只有 2048GB,因此实际上能使用的文件系统容量最多也只有 2048GB。
- 3、Ext3(第三扩展文件系统): 顾名思义,它就是 ext2 的下一代,也就是在保有目前 ext2 的格式之下再加上日志功能。
- 4、EXT4(第四扩展文件系统):文件系统是Linux系统下的日志文件系统,是ext3文件系统的后继版本,但是Ext4是Linux文件系统的一次改进。在很多方面,Ext4相对于Ext3的进步要远超过Ext3相对于Ext2的进步。Ext3相对于 Ext2的改进主要在于日志方面,但是Ext4相对于Ext3的的改进是更深层次的,是文件系统数据结构方面的优化,是一个高效的、优秀的、可靠的和极具特点的文件系统,并且EXT3可以转为EXT4的。
OpenHarmony third_party_e2fsprogs仓库:https://gitee.com/openharmony/third_party_e2fsprogs
egl
1.EGL是什么?EGL是渲染API(如OpenGL, OpenGL ES, OpenVG)和本地窗口系统之间的接口。
- 它处理图形上下文管理,表面/缓冲区创建,绑定和渲染同步,
- 并使用其他Khronos API实现高性能,加速,混合模式2D和3D渲染OpenGL / OpenGL ES渲染客户端API OpenVG渲染客户端API原生平台窗口系统。
2.EGL的作用:
- 与设备的原生窗口系统通信。
- 查询绘图表面的可用类型和配置。
- 创建绘图表面。
- 在OpenGL ES 和其他图形渲染API之间同步渲染。
- 管理纹理贴图等渲染资源。
OpenHarmony third_party_egl仓库:https://gitee.com/openharmony/third_party_egl
ejdb
嵌入式 JSON 数据库引擎
- EJDB 是一个嵌入式的 JSON 数据库引擎,旨在提供快速的类 MongoDB 的嵌入式数据库,可用于 C/C++ 应用程序中。主要特性包括:集合级别写锁、集合级别的事务、字符串匹配查询以及 Node.js 绑定。
OpenHarmony third_party_ejdb仓库:https://gitee.com/openharmony/third_party_ejdb
项目主页:http://ejdb.org
exfat-utils
exFAT 文件系统用户空间实用程序,包含用于在 linux 系统中创建、修复和调试 exfat 文件系统的所有标准实用程序,支持fsck、mkfs等。
- EXFAT文件系统也叫扩展分配表文件系统,可以说它是FAT32文件系统的升级版。EXFAT和FAT32文件系统不同之处在于,
- FAT32的FAT表最多只能用28位,EXFAT的FAT表可以全部使用。
- FAT32的文件系统大小只能用4个字节表示,也就是最大为0xFFFFFFFF扇区也就是2T。而EXFAT文件系统的大小是用8个字节表示的。
- FAT32文件系统单个文件也是用4个字节表示的0xFFFFFFFF字节也就是4G。而EXFAT文件系统的单
个文件大小使用8个字节(也就是fat32单个文件存储不能超过4个G)
OpenHarmony third_party_exfat-utils仓库:https://gitee.com/openharmony/third_party_exfat-utils
expat
Expat 是一个用C语言开发的、用来解析XML文档的开发库,它最初是开源的、Mozilla 项目下的一个XML解析器。
OpenHarmony third_party_expat仓库:https://gitee.com/openharmony/third_party_expat
f2fs-tools
f2fs文件系统工具,用于创建、挂载、扩展、检查和修复f2fs文件系统,支持fsck、mkfs、resize等。
- 可以使用f2fs文件系统工具将磁盘格式化成为f2fs文件系统。要使用 f2fs 文件系统,应使用f2fs格式化存储分区。否则无法挂载 f2fs。
OpenHarmony third_party_f2fs-tools仓库:https://gitee.com/openharmony/third_party_f2fs-tools
musl
Musl是一个轻量级的C标准库,设计作为GNU C library (glibc)、 uClibc或Android Bionic的替代用于嵌入式操作系统和移动设备。特点是轻量级、快速、简单、免费、标准兼容和安全。
OpenHarmony third_party_musl仓库:https://gitee.com/openharmony/third_party_musl
musal主页:http://musl.libc.org/
newfs_msdos
Fat32文件系统格式化工具,实现在设备或文件上构建FAT12、FAT16或FAT32的文件系统。
OpenHarmony third_party_newfs_msdos仓库:https://gitee.com/openharmony/third_party_newfs_msdos
感谢楼主对众多开源项目的收集和整理,好奇楼主都是通过啥渠道了解的,平时的工作吗?
OpenHarmony三方库的建设有利于OpenHarmony的生态繁荣,同时鼓励大家移植三方库到OHOS中去