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

438 阅读6分钟

OpenHarmony third_party三方库:

  • 三方开源库是封装的软件功能,可以避免重复造轮子、提升软件开发效率。
  • OpenHarmony使用的第三方开源软件放置gitee仓库中,并命名为third_party+第三方开源软件名称,即开源鸿蒙使用的三方库。

OpenHarmony仓库:gitee.com/organizatio…

image.png

学术研究和参与开源的结合

  • 笔者开始啃论文的时候,欧sir教了一种快速入门的方法: 即在OpenHarmony官方仓库里搜索third_part,然后用搜索到的关键词放在学术引擎上搜索相关论文,啃论文吸收精华后改进这个三方库(提交代码)

image.png 笔者刚刚开始接触三方库时有一些问题: 1.不清楚移植具体某个开源技术到OpenHarmony中的作用。 2.有一些third_party使用的开源软件涉及到了笔者知识盲区,甚至没有听过。 带着这些疑问笔者将学习和了解OpenHarmony 三方库third_party心得分享如下: image.png

third_party_openh264

image.png OpenH264是一个支持 H.264 编码与解码的编解码器库。

third_party_ninja

image.png Ninja 是 Google 的一名程序员推出的注重速度的构建工具,是比Make更快速的小型构建系统。

  • Ninja相对于Makefile这套工具更注重于编译速度。一般在 Unix/Linux 上的程序通过 make/makefile 来构建编译,而 Ninja 通过将编译任务并行组织,大大提高了构建速度。

  • OpenHarmony third_party_ninja 仓库:gitee.com/openharmony…

  • github地址为:ninja-build.org/

  • 社区相关文章:浅析鸿蒙中的 Gn 与 Ninja

third_party_gn

GN是一种元构建系统,生成Ninja构建文件(Ninja build files),具有如下优点:

third_party_markupsafe

image.png MarkupSafe 实现了一个对字符进行转义的文本对象,因此在 HTML 和 XML 中可以安全地使用它。具有特殊含义的字符将被替换,以便它们显示为实际字符。

third_party_toybox

image.png

Toybox将最常见的Linux命令行实用程序组合成一个BSD许可的可执行文件

third_party_gstreamer

image.png

GStreamer是一个非常强大和通用的框架,用于创建流媒体应用程序。GStreamer框架的许多优点都来自它的模块化:GStreamer可以无缝地整合新的插件模块。

  • GStreamer最显著的用途是在构建一个播放器上。 1.GStreamer已经支持很多格式的文件了, 包括: MP3、Ogg/Vorbis、MPEG-1/2、AVI、Quicktime、 mod等等。 2.从这个角度看,GStreamer更象是一个播放器。

  • 它主要的优点却是在于: 它的可插入组件能够很方便的接入到任意的管道当中。这个优点使得利用GStreamer编写一个万能的可编辑音视频应用程序成为可能。

  • OpenHarmony third_party_gstreamer 仓库:gitee.com/openharmony…

  • 项目主页:gstreamer.freedesktop.org/

  • 强相关论文:在 GStreamer 中对多媒体应用程序进行编程

third_party_ffmpeg

image.png

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源技术。采用LGPL或GPL许可证。

  • 有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等.

  • 它支持最晦涩的古老格式,直到最尖端的格式。

  • 它提供了录制、转换以及流化音视频的完整解决方案。

  • 它包含了 libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale 和 libswresample,可以被应用程序使用。还有 ffmpeg、ffplay 和 ffprobe,可以被终端用户用于转码和播放。

  • OpenHarmony third_party_ffmpeg 仓库:gitee.com/openharmony…

  • 项目主页:ffmpeg.org/

  • 强相关论文:通用视频编码(VVC)标准的完整的端到端开源工具链

third_party_mtdev

image.png 多点触控协议转换库

third_party_flutter

Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。 image.png

third_party_pulseaudio

image.png PulseAudio(以前叫Polypaudio)是一个跨平台的、可通过网络工作的声音服务。

  • 它是所有相关现代Linux发行版的一个组成部分,并被多个供应商用于各种移动设备。

  • 当声音数据在应用程序和硬件之间传递时,它对声音数据执行高级操作。

  • 使用PulseAudio可以轻松实现将音频传输到其他机器,更改采样格式或通道数或将多个声音混合为一个输入/输出之类的操作。

  • OpenHarmony third_party_pulseaudio 仓库:gitee.com/openharmony…

  • 项目主页:pulseaudio.org/

third_party_gptfdisk

GPT fdisk 是编辑 GPT(Globally Unique Identifier Partition Table)硬盘的文本模式工具集。

  • GPT fdisk(由 gdisk、cgdisk、sgdisk 和 fixparts 程序组成)是一组用于 Linux、FreeBSD、macOS 和 Windows 的文本模式分区工具。

  • gdisk、cgdisk 和 sgdisk 程序在全局唯一标识符 (GUID) 分区表 (GPT) 磁盘上工作,而不是在较旧的(也是更常见的)主引导记录 (MBR) 分区表上工作。

  • fixparts 程序可修复对 MBR 磁盘的某些类型的损坏,并允许将分区类型从主磁盘更改为逻辑分区类型,反之亦然。

  • OpenHarmony third_party_gptfdisk 仓库:gitee.com/openharmony…

  • 项目主页:www.rodsbooks.com/gdisk/

third_party_ntfs-3g

image.png NTFS-3G驱动程序是一个开源的,免费提供的读/写NTFS驱动程序。

  • 该项目的目的是为硬件平台和操作系统开发,质量保证和支持可信赖,功能强大且高性能的解决方案,这些平台和操作系统的用户需要与NTFS可靠地互操作。

  • OpenHarmony third_party_ntfs-3g 仓库: gitee.com/openharmony…