当前位置: 首页 > 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:libzout 目录出现 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://www.rkmt.cn/news/7987.html

相关文章:

  • phoenix 导出sql执行结果到文件中
  • LK32V12A 过压/过流保护开关芯片 OVP过压45V 过流2.2A电流 SOT-23L
  • 深入解析:HTML元素周期表
  • APP 内测分发的核心逻辑与流程,虾分发让效率翻倍
  • 深入解析:【vue+exceljs+file-saver】纯前端:下载excel和上传解析excel
  • 解码C语言关键字
  • Windows环境中安装Zookeeper
  • ​​电流探头选型技术指南:精准捕获电流信号的艺术​​
  • slurm启动验证命令
  • 实用指南:LeetCode //C - 836. Rectangle Overlap
  • 深入解析:[Android] 安卓手机翻页时钟Flip Clock - World Clock v1.5.0.0
  • 深入解析:多模态大模型3:TAViS
  • 基于STM32F103C8T6与DS18B20的温度测量系统
  • Oxygen Forensic Detective 18.0 发布,新增功能简介
  • Windows如何美化cmd窗口
  • MX Round 7 解题报告
  • 实用指南:售价3499美元,英伟达Jetson Thor实现机器人与物理世界的实时智能交互
  • 逻辑回归 vs 支持向量机 vs 随机森林:哪个更适合小数据集? - 指南
  • 券多多系统-开发记录
  • US$189 Yanhua Mini ACDP Module3 Read amp; Write BMW DME ISN Code by OBD
  • React 状态丢失:组件 key 用错引发的渲染异常 - 指南
  • 快速实现 Excel 表格转 SVG:Java 教程 - E
  • PolarFire SoC QSPI 代码编写 测试
  • C++中类的内存存储
  • 做题
  • SchemaStore
  • Visual Studio 2026 Insiders 重磅发布:AI 深度集成、性能飞跃、全新设计
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-29- 操作单选和多选按钮 - 下篇(详细教程) - 北京
  • 自定义注解实现服务分处理-策略模式
  • 远程控制应用的中的全球节点功能如何开启?插件类型、并发数量怎么选?