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学习资料,请点击→《鸿蒙全套学习指南》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512873.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Geeker Admin添加若以分离版本的后台作为后台

添加验证码 下载若依赖前后端分离版本,配置好自己数据库,redis连接地址 登录添加验证码 配置自己的若依后端连接地址 添加验证码请求方法 登录页面登录输入框添加验证码,uuid,调用的验证码刷新方法 注意:这里要用响应式定义验证…

CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)

CTP-API开发系列之各版本更新说明(持续更新)(值得收藏) CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)v6.7.2v6.7.1v6.7.0(推荐,主用)v6.…

Crossover24版现已上线!附免费升级攻略 Crossover软件下载使用方法

好久不见啦,最近一直在忙着研究Mac玩游戏,什么幻兽帕鲁、女神异闻录之类的,有些沉迷了,实在对不住大家… 不过今天还是给大家带来了好消息!那就是让Mac玩游戏不再是笑话的神器,CodeWeavers公司正式发布了C…

禅道:提bug、管理case 7.0

一、禅道的介绍 (1)定义禅道是一个项目管理工具,也是一个bug管理工具,还是一个用例管理工具。 (2)作用:为了解决众多企业在管理中出现混乱,无序的现象,开发出来 &…

QPainter::translate: Painter not active

画笔关联画布 就是这里少写了this指针

Android开发教程入门,揭秘ARouter路由机制

为什么说 Flutter 将是未来的主流跨平台开发框架? Google 的 Flutter 开发应用的体验和流畅度基本和原生体验一致,感觉不到不流畅和卡顿。 我们知道在移动平台上,原生应用的体验最好、流畅度最高、性能也最好。而目前的跨平台技术和框架的流…

8个优秀的CSS实践,web开发语言

突破困境: 1. 提升学历 前端找工作,学历重要吗? 重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧,本科够用,硕士占优,大专以下找到工作靠运气和真实力。 学历是硬伤,已经毕业的你…

Java知识点总结(二)

ID生成策略 主键自增id 主键自动增长,不用手工设值、数字型,占用空间小、检索非常有利、有顺序,不会重复,但在迁移旧数据是会出现id冲突 UUID 基于时间,计数器和地址生成32位的id redis生成id 原子性自增,并…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:组件标识)

id为组件的唯一标识,在整个应用内唯一。本模块提供组件标识相关接口,可以获取指定id组件的属性,也提供向指定id组件发送事件的功能。 说明: 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容…

android开发教程百度网盘,高并发系统基础篇

展望未来 操作系统 移动操作系统的演变过程,从按键交互的塞班功能机到触摸屏交互的Android/IOS智能机,从小屏幕手机到全面屏、刘海屏、水滴屏。任何系统无非干两件事:输入和输出,接收到外部输入信号后经过操作系统处理后输出信息…

嵌入式工程师函数变量,常用的命名规则(参考学习)

很多工程师不注重平时编码习惯,比如命名规则,一会大写、一会小写,一会中文拼音,一会下划线等,导致自己写的代码自己都看不懂了。 今天就来分享一点关于软件代码常见的几种命名规则。 匈牙利命名法 匈牙利命名法广泛应…

关于我使用numpy.random.choice()遇到坑这件事

做仿真时经常使用到随机数,下面是一个场景:使用np.random.choice([0,1],p[0.5,0.5],size1)去进行随机的二选一,假设需要随机选择1000次,为了保证结果的稳健性,对前述过程重复50次,为了保证可复现性&#xf…