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
posted @ 2025-09-19 14:46  yxysuanfa  阅读(23)  评论(0)    收藏  举报