当前位置: 首页 > news >正文

openHarmony之开源三方库zlib适配讲解

三方开源库适配 OpenHarmony 指南(zlib 篇)

00 速览

步骤 命令/动作 预期结果
① 拉取源码 git clone https://github.com/madler/zlib -b v1.3.1 得到纯净上游代码
② 放入树内 mv zlib third_party/zlib 与系统构建同级
③ 一键模板 复制「OH 三方库脚手架」→ third_party/zlib 含 BUILD.gn、bundle.json、OAT.xml
④ 触发构建 hb build -T //third_party/zlib:libz out 目录出现 libz.a
⑤ 功能冒烟 运行 example/oh_zlib_test 打印 “Compression ratio 78%”

注意:zlib已经适配到官方主代码中,该篇只做讲解,三方库适配可参考我的文章《OpenHarmony之三方库适配深度实践:从移植到合规的全链路指南》

01 认识 zlib

zlib 是 DEFLATE 算法 的工业级实现,提供:

  • 内存级压缩/解压(compress/uncompress
  • 流式 API(deflate/inflate
  • gzip 封装(gz* 系列函数)
  • 跨平台、无第三方依赖、MIT-like 授权

OpenHarmony 已将其作为系统基础库引入,供 ArkTS NDK、图形子系统、包装器(minizip)等使用。


02 目录结构

third_party/zlib
├── BUILD.gn               # GN 入口
├── bundle.json            # 组件元数据
├── OAT.xml                # 开源审计
├── README.OpenSource      # 变更履历
├── ohos.patch             # OH 专用补丁(可选)
├── include/               # 导出头文件
│   ├── zlib.h
│   └── zconf.h
├── src/                   # 上游 c 文件
└── test/                  # 冒烟测试

保持「上游代码零改动」原则,所有适配通过 BUILD.gn、补丁、config 注入完成。


03 核心适配文件

3.1 BUILD.gn

# Copyright (c) 2024 OpenHarmony Project
import("//build/config/config.gni")
import("//build/ohos.gni")
import("//build/ohos/ndk/ndk.gni")# 统一编译选项
ohos_zlib_cflags = ["-Oz",                       # 体积优先"-Wno-sign-conversion","-Wno-implicit-function-declaration","-DHAVE_STDA

文章转载自:

http://k3IZOqVQ.zLchy.cn
http://BWcld3rI.zLchy.cn
http://ZWYAqzyr.zLchy.cn
http://UiP4dZ2q.zLchy.cn
http://OmbKEe8M.zLchy.cn
http://MyT1SbV9.zLchy.cn
http://tRZBi7Y0.zLchy.cn
http://fwskX8hw.zLchy.cn
http://ctLfndQO.zLchy.cn
http://woKbLssu.zLchy.cn
http://FrP0vZfB.zLchy.cn
http://BJkBHgdt.zLchy.cn
http://T8JXXiuX.zLchy.cn
http://6HFHbILj.zLchy.cn
http://huktKTPd.zLchy.cn
http://XVDlEz7K.zLchy.cn
http://0kKyNUQm.zLchy.cn
http://Vl7RbrRs.zLchy.cn
http://bPI9lWAD.zLchy.cn
http://kqgHccLI.zLchy.cn
http://2txAF909.zLchy.cn
http://eX9d1mg8.zLchy.cn
http://7QjW44dk.zLchy.cn
http://07S9q9lP.zLchy.cn
http://NwCpQOJk.zLchy.cn
http://xNSW5qs8.zLchy.cn
http://1IVdIfMl.zLchy.cn
http://HETFYTch.zLchy.cn
http://Gfd8lOtR.zLchy.cn
http://K272DLti.zLchy.cn
http://www.dtcms.com/a/387851.html

相关文章:

  • GitHub开源免费PDF编辑器推荐:告别破解,高效编辑PDF
  • 贪心算法应用:社交网络影响力最大化问题详解
  • 更改 Compose 应用程序以适应不同环境
  • 大模型——GPT-5-Codex 发布,可以7小时连续编程,但OpenAI 封杀了API
  • 【C语言】C 动态内存管理全解析:malloc/calloc/realloc 与柔性数组实战
  • Python测试框架:unittest、pytest对比
  • 仓颉编程语言青少年基础教程:class(类)(下)
  • 【LVS入门宝典】深入解析负载均衡:LVS的核心作用与实现原理
  • 7.4缓存
  • vscode单击暂时预览文件 双击持续打开文件
  • 机器视觉 真实项目案例征集
  • 一根网线搞定远程运维,GL-RM1PE 深度体验:远程运维、装机、开机一体化的 KVM over IP
  • Ubuntu20.04仿真 | 云台相机可直接使用文件
  • Docker学习记录——构建本地镜像,从Windows向Ubuntu推送
  • MyBatis分页:PageHelper
  • 基于python BERT的新闻文本分类与用户行为预测的分析与应用
  • MFC实战:OBJ模型加载与3D渲染指南
  • FAQ:珠海网络推广哪家好?GEO优化能带来哪些优势?
  • (论文速读)CLR-GAN: 通过一致的潜在表征和重建提高gan的稳定性和质量
  • MFC_Static
  • TDengine IDMP 基本功能——数据可视化(3. 饼图)
  • Spring基础创建
  • 智能的非数学本质
  • CNB迁移和UI定制
  • 基于OpenTelemetry与Jaeger的分布式追踪原理深度解析与实践指南
  • EasyDSS视频直播RTMP推流技术如何实现多机型的无人机视频统一直播
  • 智能扫地机器人方案开发,基于32位MCU
  • 【STM32 CubeMX + Keil】DAC 输出0~3.3V间任意电压
  • git submodule命令详解
  • HTTP/2.0是什么?