OpenHarmony Jtar组件介绍 原创

润和软件HiHope
发布于 2022-4-24 00:59
浏览
0收藏

简介
Jtar库基于开源操作系统OpenHarmony,使用ETS和C++混合开发,是一个用于对tar打包和解包的鸿蒙组件库。
使用场景
1.针对鸿蒙手机上的***.txt等文件,进行压缩生成***.tar压缩文件;
2.针对鸿蒙手机上的***.tar压缩文件,进行解压生成***详细文件;
演示效果展示
OpenHarmony Jtar组件介绍-鸿蒙开发者社区
开发环境
安装IDE:DevEco Studio 3.0 Beta3 (Build Version 3.0.0.900)
安装SDK:OpenHarmony API version 8 及以上版本
使用设备:OpenHarmony 3.1 Release版本
使用方法

  1. npm install @ohos/jtar --save

  2. 在page页面引入包

    import jtar from ‘libjtar.so’;
    import {JTar} from “…/jtar.ets”

  3. 创建tartest对象

    let fileName: string = “tartest”;
    let path: string = “tartestdir”;
    let tartest: JTar = new JTar(fileName, path);

  4. 初始化Tar或者Sys Tar测试环境,创建生成tartestdir目录,并且包含一些txt文件

    JtarTestInit.TestTarInit();

  5. Tar或者Sys Tar功能测试,运行后会将环境中的tartestdir目录打包为tartest.tar文件

    tartest.tar();或者tartest.systar();

  6. 初始化Untar或者Sys Untar测试环境

    JtarTestInit.TestUnTarInit();

  7. Untar或者Sys Untar功能测试,运行后会将环境中的tartest.tar文件解包

    tartest.untar();或者tartest.sysuntar();
    以上功能测试均可通过在设备应用目录中查看

1. 进入到应用files目录中

   # cd /data/app/el2/100/base/com.zh.jtar/haps/entry/files

2. 点击Tar Init,会生成tartestdir,tartestdir中包含三个txt文件

   # ls
   tartestdir
   # ls tartestdir/
   one.txt  three.txt  two.txt

3. 点击Tar或者Sys Tar,会打包生成对应的tartest.tar文件

   # ls
   tartest.tar  tartestdir

4. 点击UnTar Init,生成对应的tartest.tar文件

   # ls
   tartest.tar

5. 点击UnTar或者Sys UnTar,生成对应的tartest.tar文件的原始文件

   # ls
   tartest.tar  tartestdir
   # ls tartestdir
   one.txt  three.txt  two.txt

开发调试
1.1Demo源码以及文件结构
下载demo源码,源码文件结构如下:

|---- jtar  
|     |---- entry  # 示例代码文件夹
|     |---- jtar  # jtar库文件夹
|                 |---- cpp  # c++详细接口
|                 |---- ets
|                       |---- jtar.ets  # 接口封装
|           |---- index.ets  # 对外接口
|     |---- README.md  # 安装使用方法    	

1.1类结构
OpenHarmony Jtar组件介绍-鸿蒙开发者社区
1.2Tar文件结构体
OpenHarmony Jtar组件介绍-鸿蒙开发者社区
1.3相关接口
该库包含一些用于基本功能的核心函数、一些扩展功能的实用函数以及一些不应从函数外部调用的内部函数。
OpenHarmony Jtar组件介绍-鸿蒙开发者社区

1.4关键代码
打包和解包的详细逻辑封装在cpp中,通过cmake编译生成libjtar.soets代码引入libjtar.so,调用底层C代码,对外提供接口,供开发者使用,下面为大家展示两段关键代码。
1.4.1打包
// tar打包
public tar(): number {
if (this.tarPaths.length != 0) {
// 将所有需要tar的文件或目录传递下去
for (let index in this.tarPaths) {
jtar.addTarPath(this.tarPaths[index]);
}
// 调用底层C代码进行tar (传入最后tar生成的文件的绝对路径名)
let ret: number = jtar.sitar(this.rootPath + “/” + this.tarFileName);

return ret;

}
}
1.4.2解包
// untar解包
public untar(path?: string): number {
if (path == null || path == undefined || path == “”) {
return jtar.siuntar(this.rootPath + “/” + this.tarFileName);
}
return jtar.siuntar(this.rootPath + “/” + this.tarFileName, this.rootPath + this.untarPath);
}
结语
通过本片文章介绍,您对 OpenHarmony Jtar组件应该有了初步的了解。我们所有的源码和指导文档都已经开源,如果您对本篇文章以内容及所实现的 demo 感兴趣,可以根据本片文章介绍自行下载OpenHarmony Jtar源码进行研究和使用。同时也欢迎更多开发者与我们共享开发成果,分享技术解读与经验心得。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
    相关推荐