写点什么

【PIMF】OpenHarmony 啃论文俱乐部—盘点开源鸿蒙三方库【3】

作者:离北况归
  • 2022 年 7 月 31 日
  • 本文字数:4515 字

    阅读完需:约 15 分钟

往期分享

【PIMF】OpenHarmony啃论文俱乐部—盘点开源鸿蒙三方库【1】_OpenHarmony_离北况归_InfoQ写作社区

【PIMF】盘点开源鸿蒙第三方组件(第三方库)【2】_OpenHarmony_离北况归_InfoQ写作社区

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└── zlib115 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-cppabseil-cpp 主页:https://abseil.io/

benchmark

benchmark 是一个由 Google 开发的基于 googletest 框架的 c++ benchmark 工具,它易于安装和使用,并提供了全面的性能测试接口。


OpenHarmony third_party_benchmark 仓库:https://gitee.com/openharmony/third_party_benchmarkbenchmark 主页: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_functionbounds_checking_function 主页:https://gitee.com/openeuler/libboundscheck

cares


  • c-ares 是用于异步 DNS 请求(包括名称解析)的 C 库。

  • 它适用于需要执行 DNS 查询而不阻塞或需要并行执行多个 DNS 查询的应用程序。此类应用程序的主要示例是与多个客户端通信的服务器和具有图形用户界面的程序。


OpenHarmony third_party_cares 仓库:https://gitee.com/openharmony/third_party_carescares 主页: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_cefcares 主页: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_muslmusal 主页:http://musl.libc.org/

newfs_msdos

Fat32 文件系统格式化工具,实现在设备或文件上构建 FAT12、FAT16 或 FAT32 的文件系统。


OpenHarmony third_party_newfs_msdos 仓库:https://gitee.com/openharmony/third_party_newfs_msdos

发布于: 刚刚阅读数: 3
用户头像

离北况归

关注

还未添加个人签名 2022.03.26 加入

OpenHarmony啃论文俱乐部PIMF团队。 位于南京一学生,可私信。

评论

发布
暂无评论
【PIMF】OpenHarmony 啃论文俱乐部—盘点开源鸿蒙三方库【3】_OpenHarmony_离北况归_InfoQ写作社区