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_openh264
openh264主页:http://www.openh264.org/
源代码仓库: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_ninja
github地址为:https://ninja-build.org/
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 与 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
项目主页 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
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/