HarmonyOS—开启AOT编译模式

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编译

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

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

{
  "apiType": 'stageMode',
  "buildOption": {
    "aotCompileMode": "type"
  },
  ...
}

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

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

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

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

hdc shell param set ark.profile true

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

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

hdc file recv /data/local/ark-profile/100/{bundle_name}/modules.ap {apPath}

i.{bundle_name}: 表示包名。

ii.{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文件:

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

hdc shell param set ark.profile true

b.将步骤一打包出的HAP后运行在真机上,在需要优化的场景进行操作,从而记录高频操作。

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

hdc file recv /data/local/ark-profile/100/{bundle_name}/modules.ap {apPath}

i.{bundle_name}: 表示包名。

ii.{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.在右上角点击启动编译。


作为一名合格一线开发程序员,大家心里肯定会有很多疑问!鸿蒙系统这么强大~~

为了能够让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我自己近期学习心得以及参考网上资料整理出的一份最新版的鸿蒙学习提升资料 ,有需要的小伙伴自行领取,限时开源,先到先得~~~~

领取以下高清学习路线原图请点击→《鸿蒙基础入门学习指南》纯血鸿蒙HarmonyOS基础技能学习路线图

领取以上完整高清学习路线图,请点击→《鸿蒙 (Harmony OS)开发学习手册》小编自己整理的部分学习资料(包含有高清视频、开发文档、电子书籍等)

以上分享的学习路线都适合哪些人跟着学习?

-应届生/计算机专业

通过学习鸿蒙新兴技术,入行互联网,未来高起点就业。
-0基础转行

提前布局新方向,抓住风口,自我提升,获得更多就业机会。
-技术提升/进阶跳槽

发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术,享受蓝海红利。

总结

如果你觉得这篇内容对你有帮助,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。

关注我,同时可以期待后续文章ing,不定期分享原创知识。

想要获取更多完整鸿蒙最新VIP学习资料,请点击→《鸿蒙全套学习指南

相关推荐
dawn6 小时前
鸿蒙ArkTS中的获取网络数据
华为·harmonyos
桃花键神6 小时前
鸿蒙5.0时代:原生鸿蒙应用市场引领开发者服务新篇章
华为·harmonyos
鸿蒙自习室6 小时前
鸿蒙多线程开发——并发模型对比(Actor与内存共享)
华为·harmonyos
JavaPub-rodert7 小时前
鸿蒙生态崛起:开发者的机遇与挑战
华为·harmonyos
帅比九日9 小时前
【HarmonyOS Next】封装一个网络请求模块
前端·harmonyos
yilylong10 小时前
鸿蒙(Harmony)实现滑块验证码
华为·harmonyos·鸿蒙
baby_hua10 小时前
HarmonyOS第一课——DevEco Studio的使用
华为·harmonyos
HarmonyOS_SDK11 小时前
融合虚拟与现实,AR Engine为用户提供沉浸式交互体验
harmonyos
- 羊羊不超越 -12 小时前
App渠道来源追踪方案全面分析(iOS/Android/鸿蒙)
android·ios·harmonyos
长弓三石14 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙