HarmonyOS—开启AOT编译模式

news2024/12/25 2:05:11

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.coloradmin.cn/o/1490945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI视野·今日Sound 声学论文速览 第五十期】Fri, 1 Mar 2024

AI视野今日CS.Sound 声学论文速览 Fri, 1 Mar 2024 Totally 9 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Probing the Information Encoded in Neural-based Acoustic Models of Automatic Speech Recognition Systems Authors Quentin Raymondau…

SpringCloud--Sentinel使用

一、快速开始 Sentinel 的使用可以分为两个部分: 核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。控制台&…

【Spring高级】第1讲:BeanFactory 与 ApplicationContext

目录 两者关系BeanFactory功能ApplicationContext功能 两者关系 BeanFactory和ApplicationContext都是Spring框架中非常重要的接口,它们都与Spring的IoC容器有关。 下面通过SpringApplication的引导类来说明上面两个接口。 看下面代码: SpringBootAp…

【场景题】如何设计一个购物车功能?

本文参考文章:https://www.hollischuang.com/archives/6998 https://www.woshipm.com/pd/4115447.html https://zq99299.github.io/note-book/back-end-storage/01/03.html 首先我们要明白:购物车系统在电商系统中的角色是作为用户选购商品和最终下单的桥…

Flutter中的三棵树

Widget Tree: 页面配置信息。 Element Tree: Widget tree的实例化对象,创建出renderObject,并关联到element.renderobject属性上,最后完成RenderObject Tree的创建。 RenderObject Tree:完成布局和图层绘制…

Unity2013.1.19_DOTS_Burst compiler

Unity2013.1.19_DOTS_Burst compiler DOTS是一种新产品,现在尚在起步阶段。由于它处于持续发展中,随着我们努力使其达到最佳状态,您将看到API会不断演变和日趋成熟。 DOTS包含以下元素: 实体组件系统(ECS) - 提供使用面向数据的…

有个朋友被骗了,大家要擦亮眼睛

1.引言 大家好,我是Leo哥🫣🫣🫣,昨天凌晨有个粉丝朋友找到Leo哥,咨询一些问题,现在的朋友们真卷呐,大半夜还在挑灯夜战。可无奈Leo哥12点之前已经睡了,身体为重&#xf…

云服务器2核4G能支持多少人同时访问?2核4G5M并发量评测

腾讯云轻量应用服务器2核4G5M配置一年优惠价165元、252元15个月、三年756元,100%CPU性能,5M带宽下载速度640KB/秒,60GB SSD系统盘,月流量500GB,折合每天16.6GB流量,超出月流量包的流量按照0.8元每GB的价格支…

安装ProxySQL,教程及安装链接(网盘自提)

一、网盘下载,本地直传 我网盘分享的是proxysql-2.5.5-1-centos8.x86_64.rpm,yum或者dnf直接安装就行 提取码:rhelhttps://pan.baidu.com/s/1nmx8-h8JEhrxQE3jsB7YQw 官方安装地址 官网下载地址https://repo.proxysql.com/ProxySQL/ 二、…

[项目设计] 从零实现的高并发内存池(三)

🌈 博客个人主页:Chris在Coding 🎥 本文所属专栏:[高并发内存池] ❤️ 前置学习专栏:[Linux学习] ⏰ 我们仍在旅途 ​ 目录 4.CentralCache实现 4.1 CentralCache整体架构 4.2 围绕Span的相关设计…

从0到1入门C++编程——09 STL、string容器、vector容器、deque容器

文章目录 一、标准模板库STL二、容器算法迭代器应用1、遍历容器中整型数据2、遍历容器中自定义数据类型3、容器中嵌套容器 三、string容器1、构造函数2、赋值操作3、字符串拼接4、查找和替换5、字符串比较6、字符访问与存取7、插入和删除8、子串 四、vector容器1、构造函数2、赋…

灯丝灯双通道低过温高压线性恒流芯片SM2082ED的应用及特性解析

双通道低过温高压线性恒流芯片是一种电子芯片,它具有双通道设计,可以在高电压条件下工作,并具有低过温特性。这种芯片通常用于需要高电流和高电压的应用,如LED照明、激光器、电机驱动等。 双通道设计意味着该芯片可以同时处理两个…

高级软件开发知识点

流程 算法题简历上项目用到技术、流程、遇到问题HR 准备 常考的题型和回答思路刷100算法题,理解其思想,不要死记最近一家公司所负责的业务和项目: 项目背景、演进之路,有哪个阶段,每个阶段主要做什么项目中技术选型…

【Sql Server】C#通过拼接代码的方式组合添加sql语句,会出现那些情况,参数化的作用

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

想要高薪还想要低要求?想转行做Python自动化测试,我该怎么做?

前言 最近小编连续收到好几个粉丝的私信询问:我年纪上来了,原来的行业做不下去了,想转行还能行吗?我是女生,计算机专业快毕业了,但是不喜欢做开发怎么办?我对编程行业感兴趣,想学编…

社交媒体的未来图景:探索Facebook的数字化之旅

社交媒体已经成为现代社会不可或缺的一部分,其影响力已经深入到人们生活的方方面面。而在众多社交媒体平台中,Facebook无疑是其中的巨头,其数字化之旅更是引领着整个社交媒体行业的发展方向。本文将深入探讨社交媒体的未来图景,以…

Linux中服务端开发

1 创建socket,返回一个文件描述符lfd---socket(); 2 将lfd和IP,PROT进行绑定---bind(); 3 将lfd由主动变成被动监听---listen(); 4 接收一个新的连接,得到一个的文件描述符cfd--accept() --该文件描述符用于与客户端通信 5 while(1) { 接受数据&a…

证明高维度神经网络模型是低纬度神经网络模型的加和

神经网络中矩阵乘法的分解与应用 启发标题:神经网络中矩阵乘法的分解与应用摘要:引言:方法:实验:结论:参考文献:附录1附录2实验数据 启发 理论上 更具矩阵乘法 A[p,mn]B[mn,q]C[p,q] Acat(A[:,…

ChatGPT 4.0 升级指南

1.ChatGPT 是什么? ChatGPT 是由 OpenAI 开发的一种基于人工智能的聊天机器人,它基于强大的语言处理模型 GPT(Generative Pre-trained Transformer)构建。它能够理解人类语言,可以为我们解决实际的问题。 1.模型规模…

K8S实现零宕机实践

越来越多的大厂都在上云、上容器、上K8S编排,K8S和容器云确实帮助我们解决了很多问题。但是,带来方便的同时,也让我们的架构变得更复杂了,更难于依靠“老经验”来解决问题了。虽然我们不用再费力考虑一层的问题,怎么实…