1
头图

OpenHarmony third_party三方库:

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

    OpenHarmony仓库:https://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 编码与解码的编解码器库。

  • H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。
  • openh264的开源,使用者无需再对H264的细节做过多的研究,降低了开发者使用H264的成本。
  • open264强相关的论文:复杂应用的高级综合—— H.264 视频解码器
OpenHarmony third_party_openh264 仓库:https://gitee.com/openharmony...
openh264主页:http://www.openh264.org/
社区相关文章:OpenHarmony3.1 H264视频播放之路
源代码仓库:https://github.com/cisco/open...

third_party_ninja

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

  • Ninja相对于Makefile这套工具更注重于编译速度。一般在 Unix/Linux 上的程序通过 make/makefile 来构建编译,而 Ninja 通过将编译任务并行组织,大大提高了构建速度。
OpenHarmony third_party_ninja 仓库:https://gitee.com/openharmony...
github地址为:https://ninja-build.org/
社区相关文章:浅析鸿蒙中的 Gn 与 Ninja

third_party_gn

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

  • 可读性更好,更容易编写和维护。
  • 速度更快。
  • 修改GN文件后,执行ninja构建时会自动更新Ninja构建文件。
  • 更简单的模块依赖,提供了public_deps, data_deps等。
  • 提供了更好的工具查询模块依赖图谱。
  • 更好的调试支持。在GN中,只需要一条print语句就可以解决。
OpenHarmony third_party_gn 仓库:https://gitee.com/openharmony...
社区相关文章:
鸿蒙构建系统——gn官方FAQ翻译,以及gn官方文档分享
浅析鸿蒙中的 Gn 与 Ninja

third_party_markupsafe

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

OpenHarmony third_party_markupsafe 仓库:https://gitee.com/openharmony...
项目主页:https://pypi.org/project/Mark...

third_party_toybox

image.png

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

  • 该可执行文件简单,小巧,快速,符合标准,并且足够强大,Android系统中的很多命令,如ps,其本质都是toybox里面的功能。
OpenHarmony third_party_toybox 仓库:https://gitee.com/openharmony...
社区相关文章:https://ost.51cto.com/posts/9925
项目主页 http://landley.net/toybox/ind...

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 仓库:https://gitee.com/openharmony...
项目主页:https://gstreamer.freedesktop...
强相关论文:在 GStreamer 中对多媒体应用程序进行编程

third_party_ffmpeg

image.png

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

  • 有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等.
  • 它支持最晦涩的古老格式,直到最尖端的格式。
  • 它提供了录制、转换以及流化音视频的完整解决方案。
  • 它包含了 libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale 和 libswresample,可以被应用程序使用。还有 ffmpeg、ffplay 和 ffprobe,可以被终端用户用于转码和播放。
OpenHarmony third_party_ffmpeg 仓库:https://gitee.com/openharmony...
项目主页:https://ffmpeg.org/
强相关论文:通用视频编码(VVC)标准的完整的端到端开源工具链

third_party_mtdev

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

OpenHarmony third_party_mtdev 仓库:https://gitee.com/openharmony...
项目主页:http://bitmath.org/code/mtdev/

third_party_flutter

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

OpenHarmony third_party_flutter 仓库:https://gitee.com/openharmony...
社区相关文章:原生适配,让Flutter在鸿蒙系统上跑起来

third_party_pulseaudio

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

  • 它是所有相关现代Linux发行版的一个组成部分,并被多个供应商用于各种移动设备。
  • 当声音数据在应用程序和硬件之间传递时,它对声音数据执行高级操作。
  • 使用PulseAudio可以轻松实现将音频传输到其他机器,更改采样格式或通道数或将多个声音混合为一个输入/输出之类的操作。
OpenHarmony third_party_pulseaudio 仓库:https://gitee.com/openharmony...
项目主页:http://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 仓库:https://gitee.com/openharmony...
项目主页:https://www.rodsbooks.com/gdisk/

third_party_ntfs-3g

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

  • 该项目的目的是为硬件平台和操作系统开发,质量保证和支持可信赖,功能强大且高性能的解决方案,这些平台和操作系统的用户需要与NTFS可靠地互操作。
OpenHarmony third_party_ntfs-3g 仓库:
https://gitee.com/openharmony...

离北况归
7 声望4 粉丝

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