
回复
之前讲过鸿蒙原生的Zip模块和三方库解压模块,但是都达不到非常好用的要求,都有一定的缺陷。(前两种的好出就是简单,轻量,易用)
接下来我们要重点讲的是 libarchive三方库,基于Native开发方式。
libarchive支持常见的 7z
, tar
, zip
, gz
, xz,rar
格式解压缩。
三方库链接:OpenHarmony-SIG/tpc_c_cplusplus - Gitee.com
下载本仓库:
git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git
三方库目录结构:
tpc_c_cplusplus/thirdparty/libarchive #三方库的目录结构如下
├── docs #三方库相关文档的文件夹
├── HPKBUILD #构建脚本
├── SHA512SUM #三方库校验文件
├── README.OpenSource #说明三方库源码的下载地址,版本,license等信息
├── README_zh.md
在lycium目录下编译三方库 编译环境的搭建参考准备三方库构建环境
cd lycium
./build.sh libarchive
三方库头文件及生成的库 在lycium目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库
libarchive/arm64-v8a
libarchive/armeabi-v7a
#将三方库加入工程中
target_link_libraries(entry PRIVATE {OHOS_ARCH}/libarchive.so)
#将三方库的头文件加入工程中
target_include_directories(entry PRIVATE {OHOS_ARCH}/include)
三方库的测试使用原库自带的测试用例来做测试
进入到构建目录获取,执行ctest,运行测试用例(libarchive-arm64-v8a-build为构建64位的目录,libarchive-armeabi-v7a-build为构建32位的目录)
通过上述方法就可以把libarchive集成到鸿蒙NDK项目中来。接下来就可以基于libarchive的一些方法进行解压缩功能的开发了。