写点什么

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

作者:离北况归
  • 2022 年 6 月 17 日
  • 本文字数:2947 字

    阅读完需:约 10 分钟

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

OpenHarmony third_party 三方库:

  • 三方开源库是封装的软件功能,可以避免重复造轮子、提升软件开发效率。

  • OpenHarmony 使用的第三方开源软件放置 gitee 仓库中,并命名为 third_party+第三方开源软件名称,即开源鸿蒙使用的三方库。


OpenHarmony 仓库:https://gitee.com/organizations/openharmony/projects



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

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




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


third_party_openh264


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


  • H264 视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。

  • openh264 的开源,使用者无需再对 H264 的细节做过多的研究,降低了开发者使用 H264 的成本。

  • open264 强相关的论文:复杂应用的高级综合—— H.264 视频解码器


OpenHarmony third_party_openh264 仓库:https://gitee.com/openharmony/third_party_openh264openh264 主页:http://www.openh264.org/社区相关文章:OpenHarmony3.1 H264视频播放之路源代码仓库:https://github.com/cisco/openh264

third_party_ninja


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


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


OpenHarmony third_party_ninja 仓库:https://gitee.com/openharmony/third_party_ninjagithub 地址为: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/third_party_gn 社区相关文章:鸿蒙构建系统——gn官方FAQ翻译,以及gn官方文档分享

浅析鸿蒙中的 Gn 与 Ninja

third_party_markupsafe


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


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

third_party_toybox


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


  • 该可执行文件简单,小巧,快速,符合标准,并且足够强大,Android 系统中的很多命令,如 ps,其本质都是 toybox 里面的功能。


OpenHarmony third_party_toybox 仓库:https://gitee.com/openharmony/third_party_toybox 社区相关文章:https://ost.51cto.com/posts/9925 项目主页 http://landley.net/toybox/index.html

third_party_gstreamer


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

third_party_ffmpeg


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


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

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

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

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


OpenHarmony third_party_ffmpeg 仓库:https://gitee.com/openharmony/third_party_ffmpeg 项目主页:https://ffmpeg.org/强相关论文:通用视频编码(VVC)标准的完整的端到端开源工具链

third_party_mtdev


多点触控协议转换库


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

third_party_flutter

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



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

third_party_pulseaudio


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


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

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

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


OpenHarmony third_party_pulseaudio 仓库:https://gitee.com/openharmony/third_party_pulseaudio 项目主页: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/third_party_gptfdisk 项目主页:https://www.rodsbooks.com/gdisk/

third_party_ntfs-3g


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


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


OpenHarmony third_party_ntfs-3g 仓库:https://gitee.com/openharmony/third_party_ntfs-3g/tree/OpenHarmony-3.1-Release/

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

离北况归

关注

还未添加个人签名 2022.03.26 加入

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

评论

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