OpenHarmony啃论文俱乐部—盘点开源鸿蒙引用的三方开源软件[1]

article/2025/10/6 23:36:51

目录这里写自定义目录标题

    • OpenHarmony third_party三方库:
    • 学术研究和参与开源的结合
    • third_party_openh264
    • third_party_ninja
    • third_party_gn
    • third_party_markupsafe
    • third_party_toybox
    • third_party_gstreamer
    • third_party_ffmpeg
    • third_party_mtdev
    • third_party_flutter
    • third_party_pulseaudio
    • third_party_gptfdisk
    • third_party_ntfs-3g

OpenHarmony third_party三方库:

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

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

image.png

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

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

image.png

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


third_party_openh264

image.png
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/
社区相关文章:OpenHarmony3.1 H264视频播放之路
源代码仓库:https://github.com/cisco/openh264

third_party_ninja

image.png
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/
社区相关文章:浅析鸿蒙中的 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

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

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

third_party_toybox

image.png

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

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

third_party_mtdev

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

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

third_party_flutter

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

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

third_party_pulseaudio

image.png
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

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

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

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


http://chatgpt.dhexx.cn/article/owfc40SI.shtml

相关文章

Android缺少awk工具的几种解决方法

在日常测试中,我们会用到各种各样的Android平台,用于测试存储设备的性能。其中,我们依赖到Android平台自身的工具,通过编写shell脚本来实现测试存储设备的性能。   而awk工具(shell命令)在shell脚本中会经常用到,一般…

toybox 和 busybox 的作用

来自知乎:程序员秘书 ##前言## 我们在做android开发时,经常会有在板子系统里要修改文件内容对比验证问题,或者要操作特殊的shell命令操作看些信息,等等一些需求。但是往往会因为刷到板子的系统里默认没有/不支持相关的命令&…

欢乐听:一个简洁的瀑布流模式的音乐分享站

欢乐听 一个简洁的瀑布流模式的音乐分享站。

分享5个高质无损音乐网站,歌曲很丰富,爱听歌的小伙伴有耳福了

生活中很多人都离不开音乐,散步的时候听音乐,等待的时候听着音乐,心情不好的时候听音乐,不管走到哪,有音乐的陪伴一点也不寂寞,不同音乐的旋律给我们带来不同的心情,今天小编就给爱听音乐的小伙…

【音乐】收藏的300多首抖音神曲,MP3音乐分享,近一年的抖音歌曲

今天给大家分享N多(300)首抖音神曲。抖音大家都知道,各种火,各种原因,其中的BGM(背景音乐)更是起到了至关重要(画龙点睛)的作用,不知道是哪个大神搞的,去年我搞视频的时候…

搭建一个点歌QQ机器人,另外还能看美女

目录 前言具体实现1、爆照2、生日书3、获取歌词和分享音乐 完整项目下载地址(配置了python环境)完整项目下载地址(电脑没有python环境) 前言 完整项目,包括框架、代码和详细使用说明可以去社区下载(下载完…

基于java的音乐网站的设计与实现

欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 基于java的音乐网站的设计与实现 摘 要 随着互联网和宽带上网的普及,网络传输以其特有的快速、高效、便捷的传输方式越来越被人们接受。在当今社会的影响下&…

android wifi传输音乐,让你通过WiFi分享手机上的歌曲,音乐共享软件MyStream十一发布Android版...

MyStream原来是 iOS上的音乐共享应用,十一期间,它将跨出iOS平台,首次推出Android版音乐共享服务。 MyStream和主流的Pandora、Spotify、Turntable.fm、Songza这些音乐分享服务并不一样。它将手机上的本地音乐通过WiFi或蓝牙和周围的设备进行音…

竞品分析:网易云音乐和QQ音乐,音乐类app的战场

文章从产品的角度分别分析两款产品的行业市场、功能、业务模式以及运营策略,进一步了解两款产品的差异与不同。 一、产品概况 1. 产品概述及版本 网易云音乐是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用…

网易云音乐竞品分析

概述 1.原因 个人平时使用网易云较多,正好想学学竞品分析怎么写。因此,想通过梳理市场最新报告和数据表现,了解在线音乐行业的现状和市场情况;分析网易云音乐目前的市场地位、功能设计、UI设计等方面,与相关竞品进行对…

音乐平台程序源码分享

简介: 这是一个音乐分享平台源码,用户可以自行上传音乐分享,源码自适应手机,使用很方便。 安装说明: 演示环境:宝塔PHP5.5 mysql5.6 Apache 2.4.46,把程序上传到根目录,然后修改数…

分享两个音乐播放地址

下歌吧音乐下载平台 http://music.y444.cn/ 搜索时候如果没有想要的,可以切换线路搜索一下 MYFREEMP3 MYFREEMP3 一个音乐下载以及播放网站 下载后的音乐名称需要直接更改一下,可以下载歌曲的歌词等 http://tools.liumingye.cn/music/?pagesearch…

基于web的音乐分享网站的设计与实现

欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 音乐分享网站的设计与实现 摘 要 随着社会的发展时代的前进,IT行业的发展也是日新月异,对人类的生产和生活方式产生了很大影响。网络传播以其特有的快…

把自己录制的mp3音乐分享到朋友圈

参考:https://www.zhihu.com/question/345647212 录了首歌,想上传至微信朋友圈,发现还没那么简单。 mp3音乐文件上传到网易云音乐后,无法使用分享功能,所以无法分享到朋友圈。 可通过以下步骤解决。 一、将mp3文件发…

#pragma comment

原因:突然看到#pragma comment,不知其意思.感觉自己是个渣渣.所以写了一篇博客. #pragma comment 简单来说就是链接了一个文件&#xff0c;它可以是compiler&#xff0c;exestr&#xff0c;lib&#xff0c;linker文件. 例如&#xff1a; #include<WinSock2.h> #pragma…

预处理 #pragma 命令详解

关注、星标公众号&#xff0c;不错过精彩内容 素材来源&#xff1a;网络 编辑整理&#xff1a;strongerHuang 预处理指令 #pragma 相信程序员都知道&#xff0c;但在所有的预处理指令中&#xff0c;#pragma 指令可能是最复杂的了&#xff0c;它的作用是设定编译器的状态或者是指…

#pragma DATA_SECTION与#pragma CODE_SECTION的使用

&#xff08;一&#xff09;#pragma DATA_SECTION 利用CCS进行DSP编程时&#xff0c;如果不指定变量的存储位置&#xff0c;那么编译器会自动给变量分配存储位置&#xff0c;但是&#xff0c;有些时候&#xff0c;需要将某个变量存放到某个特定的位置&#xff0c;这个时候就可…

#pragma用法大全

一、#pragma 1.1 #pragma message message能够在编译信息输出窗口中输出相应的信息&#xff0c;这对于源代码信息的控制是非常重要的。 #pragma message("test message!")1.2 #pragma code_seg 格式如&#xff1a; #pragma code_seg( [ [ { push | pop}, ] [ iden…

C语言#pragma使用

1.#pragma简介 &#xff08;1&#xff09;#pragma用于指示编译器完成一些特定的动作 &#xff08;2&#xff09;#pragma所定义的很多指示字是编译器特有的 &#xff08;3&#xff09;#pragma在不同的编译器间是不可移植的 &#xff08;4&#xff09;预处理器将忽略它不认识的#…

C语言#pragma使用方法

C语言#pragma使用方法 一、总结 1、#pragma用于指示编译器完成一些特定的动作 2、#pragma所定义的很多指示字是编译器特有的(每种编译可能都不一样) &#xff08;1&#xff09; #pragma message 用于自定义编译信息 &#xff08;2&#xff09;#pragma once 用于保证头文件只被…