鸿蒙应用开发101:开源Har和闭源Har

鸿蒙应用开发101:开源Har和闭源Har
最新回答
云终韵

2021-04-20 05:25:38

鸿蒙应用开发101:开源Har和闭源Har

在鸿蒙应用开发雀吵中,Har包作为一种类库,类似于npm包,主要用于代码复用和分发。Har包根据其开源属性,分为开源Har和闭源Har。以下是对这两种Har包的详细解析:

一、开源Har与闭源Har的定义

  • 开源Har:开源Har包打包的是源码(如.ets、.ts、.js等),这些源码在打包过程中不进行编译处理,保持其原始状态。
  • 闭源Har:闭源Har包则不同,它需要先经过编译生成ts/js文件,然后打包的是编译后的ts/js文件和资源。这意味着闭源Har包中的代码已经过一定程度的处理,不易直接查看和理解。

二、开源Har与闭源Har的配置

在Har包的配置中,开源与闭源的设置通常与obfuscation(混淆)绑定在一起。在build-profile.json5文件中,可以通过设置不同的构建选项(如release和debug模式)来决定是否进行混淆处理,从而决定Har包的开源或闭源属性。

  • release模式:默认是混淆的,因此release模式默认打的是闭源Har。
  • debug模式:默认不打混淆,因此debug模式默认打的是开源Har。

三、开源Har与闭源Har的构建过程

  1. 开源Har的构建过程

    开源Har在构建过程中不经过编译任务(如CompileArkTS),直接打包源码。

    从构建任务中可以看出,开源Har的构建过程相对简单,没有额外的编译步骤。

  2. 闭源Har的构建过程

    闭源Har在构建过程中需要先经过编译生成ts/js文件。

    编译后的ts/js文件和资源被打包成闭源Har。

    从编译任务中可以看出,闭源Har的构建过程包含了编译步骤,确保了代码在打包前已经过处理。

四、开源Har与闭源Har的产物对比

  • 开源Har的产物:主要是源码文件(.ets、.ts、.js等),这些文件可以直接被查看和理解。
  • 闭源Har的产物:是编译后的ts/js文件和资源,这些文件已经过处理,不易直接查看和理弯岁肆解。

以下是通过图片展示开源Har与闭源Har的产物对比:

五、开源Har与闭源Har的安全性

  • 开源Har:由于直接打包源码,因此其安全性相对较低。源码容易被查看、理解和修改。
  • 闭源埋轿Har:通过编译和混淆处理,闭源Har的安全性相对较高。虽然混淆后的代码仍然可以被破解,但相对于直接查看源码来说,破解难度大大增加。

为了进一步提高Har包的安全性,可以考虑将Har包编译成字节码Har。字节码Har里面只有abc和生命文件,这些文件很难被破解和修改。同时,字节码Har在使用的地方也不需要重新编译,提高了应用的运行效率。

综上所述,开源Har和闭源Har在鸿蒙应用开发中各有其特点和应用场景。开发者可以根据实际需求选择合适的Har包类型进行开发和分发。同时,为了保障代码的安全性,建议在使用闭源Har的基础上,进一步考虑将Har包编译成字节码Har。