易杲开发系统0.1---鸿蒙AOD编译器

133 阅读3分钟

最近有开发鸿蒙系统的想法,然后从今天开始写笔记了,首先我先了解下AOD编译器是什么? 网址:developer.huawei.com/consumer/cn…

开启AOT编译模式

更新时间: 2024-06-29 15:33

**

**

AOT(Ahead Of Time)即提前编译,能够在Host端(即运行DevEco Studio的电脑)将字节码提前编译成Target端(即运行应用的设备)可运行的机器码,这样字节码可以获得充分编译优化,放到Target端运行时可以获得加速。

对性能有高要求的开发者可通过在DevEco Studio完成相关的编译配置,开启AOT编译模式,提升应用运行性能。

说明

  • 当前仅支持API 9及以上版本Stage模型的ArkTS工程。
  • Node.js需要10.14以上版本。
  • 仅支持在64位ROM上运行。

AOT编译模式

在模块级build-profile.json5文件中,buildOption内的aotCompileMode字段可以设置为以下值,对应不同的AOT模式。

取值不同的AOT编译模式
type默认模式,仅编译类型信息到字节码文件,编译速度最快。
partial使用记录高频操作信息的ap文件(Arkcompiler Profile)进行部分编译,编译速度较快。

使用AOT编译

  1. 打开ArkTS工程,同步完成。

  2. 在模块级build-profile.json5文件中,配置buildOption内的字段。

    {  "apiType": 'stageMode',  "buildOption": {    "aotCompileMode": "type"  },  ...}
    
  3. 当aotCompileMode设置为partial时,需要设置apPath。如果设置为type时,则无需关注此步骤。partial类型配置的示例如下:

    "aotCompileMode": "partial" "apPath":"./modules.ap"
    

    其中,ap文件获取方式为:

    1. 打开生成ap文件的开关:

      hdc shell param set ark.profile true
      
    2. 先配置为type类型,打包出HAP后运行在真机上,在需要优化的场景进行操作,从而记录常用操作。

    3. 操作结束后,真机里记录的ap文件即可放入应用AOT编译使用的目录,通过命令行来获取ap文件:

      hdc file recv /data/local/ark-profile/100/{bundle_name}/modules.ap {apPath}
      
      1. {bundle_name}: 表示包名。
      2. {apPath}: 表示buildOption设置的apPath参数对应的路径。
    4. 若设备不再需要获取ap文件,可以通过下面两个方法关闭:

    • hdc shell param set ark.profile false
    • 设备重启

    说明

    应用代码变化或常用操作变化时,需要重复以上步骤更新ap文件。

  4. 编译release版本的HAP

使用type编译模式

  1. 打开ArkTS工程,同步完成。

  2. 在模块级build-profile.json5文件中,配置buildOption内的字段。

    {  "apiType": 'stageMode',  "buildOption": {    "aotCompileMode": "type"  },  ...}
    
  3. 编译release版本的HAP

使用partial编译模式

使用partial编译模式需要先使用type模式进行编译,获取到ap文件后,再进行partial模式编译。

  1. 参考使用type编译模式,配置为type模式,编译HAP。

  2. 获取ap文件:

    1. 打开生成ap文件的开关:

      hdc shell param set ark.profile true
      
    2. 将步骤一打包出的HAP后运行在真机上,在需要优化的场景进行操作,从而记录高频操作。

    3. 操作结束后,真机里记录的ap文件即可放入应用AOT编译使用的目录,通过命令行来获取ap文件:

      hdc file recv /data/local/ark-profile/100/{bundle_name}/modules.ap {apPath}
      
      1. {bundle_name}: 表示包名。
      2. {apPath}: 表示buildOption设置的apPath参数对应的路径。
    4. 若设备不再需要获取ap文件,可以通过下面两个方法关闭:

    • hdc shell param set ark.profile false
    • 设备重启

    说明

    应用代码变化或常用操作变化时,需要重复以上步骤更新ap文件。

  3. 在模块级build-profile.json5文件中,配置buildOption内的字段。

    {  "apiType": 'stageMode',  "buildOption": {     "aotCompileMode": "partial",     "apPath":"./modules.ap"  },  ...}
    
  4. 编译release版本的HAP

参考信息:编译release版本的HAP

  1. 在菜单栏点击Run,选择Edit Configurations

  2. 左上角点击 + ,选择Hvigor。

  3. 在Application parameters内配置以下参数:

    --mode module -p product=default assembleHap -p debuggable=false
    

    配置完成后,点击OK

  4. 在右上角点击启动编译。