OpenHarmony其他工具类—lua

简介

Lua是一种功能强大、高效、轻量级、可嵌入的脚本语言。 支持过程编程、面向对象编程、函数编程、数据驱动编程和数据描述。

下载安装

直接在OpenHarmony-SIG仓中搜索lua并下载。

使用说明

以OpenHarmony 3.1 Beta的rk3568版本为例

  1. 将下载的lua库代码存在以下路径:./third_party/lua

  2. 将libogg库一起放入third_party目录

  3. 修改添加依赖的编译脚本,路径:/developtools/bytrace_standard/ohos.build


{"subsystem": "developtools","parts": {"bytrace_standard": {"module_list": ["//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core","//developtools/bytrace_standard/bin:bytrace_target","//developtools/bytrace_standard/bin:bytrace.cfg","//developtools/bytrace_standard/interfaces/kits/js/napi:bytrace","//third_party/lua:lua","//third_party/lua:lua_exe","//third_party/lua:luac_exe"],"inner_kits": [{"type": "so","name": "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core","header": {"header_files": ["bytrace.h"],"header_base": "//developtools/bytrace_standard/interfaces/innerkits/native/include"}}],"test_list": ["//developtools/bytrace_standard/bin/test:unittest"]}}
}
  1. 编译:./build.sh --product-name rk3568 --ccache

  2. 生成库文件和一些可执行测试文件,路径:out/rk3568/developtools/profiler

接口说明

元表和元方法: __add:添加(+)操作。

__sub:减法(-)运算。

__div:除法(/)操作。

__mod:模(%)运算。

__pow:指数运算(^)。

__unm:否定(一元)运算。

__idiv:楼层划分(//)操作。

__band:按位AND(&)操作。

__bor:按位OR(|)操作。

__bxor:按位异或(二进制~)操作。

__bnot:按位NOT(一元~)操作。

__shl:按位左移(<<)操作。

__shr:按位右移(>>)操作。

__concat:串联(…)活动行为类似于加法运算。

__len:长度(#)操作。

__eq:相等(=)操作。

__lt:小于(<)操作。

__le:较小相等(<=)操作。

__index:索引访问操作表[键]。

__newindex:索引分配表[键]=值。

__call:调用操作func(args)。

详细接口说明参考Lua 5.4 参考手册

约束与限制

在下述版本验证通过:

OpenHarmony SDK版本:API version 8版本

目录结构

|---- lua
|     |---- doc                 #参考手册及说明文件
|     |---- src
|           |---- lapi.c        #Lua api
|           |---- lauxlib.c     #构建Lua库的辅助功能
|           |---- lbaselib.c    #基础库
|           |---- lcode.c       #Lua代码生成器
|           |---- lcorolib.c    #协同程序库
|           |---- lctype.c      #Lua的“ctype”函数
|           |---- ldebug.c      #调试接口
|           |---- ldo.c         #Lua的堆栈和调用结构
|           |---- ldump.c       #保存预编译的Lua块
|           |---- lfunc.c       #操纵原型和闭包的辅助函数
|           |---- linit.c       #lua库的初始化
|           |---- liolib.c      #标准输入/输出(和系统)库
|           |---- lmathlib.c    #标准数学库
|           |---- lmem.c        #内存管理器接口
|           |---- loadlib.c     #Lua的动态库加载器
|           |---- lobject.c     #Lua对象上的一些泛型函数
|           |---- lopcodes.c    #Lua虚拟机的操作码
|           |---- loslib.c      #标准操作系统库
|           |---- lparser.c     #Lua解析器
|           |---- lstate.c      #全局状态
|           |---- lstring.c     #字符串表(保留Lua处理的所有字符串)
|           |---- lstrlib.c     #字符串操作和模式匹配的标准库
|           |---- ltable.c      #Lua表(哈希)
|           |---- ltablib.c     #用于表操作的库
|           |---- ltm.c         #标记方法
|           |---- lua.c         #Lua独立解释器
|           |---- luac.c        #Lua编译器
|           |---- lundump.c     #加载预编译的Lua块
|           |---- lutf8lib.c    #UTF-8操作的标准库
|           |---- lvm.c         #Lua虚拟机
|           |---- lzio.c        #缓冲流
|     |---- README.md           #安装使用方法

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

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

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

相关文章

Java Web3-2 - tomcat

https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Tomcat_架构解析.md https://zhuanlan.zhihu.com/p/40249834 早期&#xff0c;web技术主要用于浏览静态页面 时间发展&#xff0c;用户已经不满足于仅浏览静态页面。用户需要一些交互操作&#xff0c;获取…

服务器有哪些特性?

服务器是计算机的一种&#xff0c;但是和普通的计算机是不同的&#xff0c;服务器比普通计算机的运行速度更快、负载能力更高&#xff0c;可以在网络中为其它客户机或是大型设备提供计算或者是应用服务&#xff0c;服务器有着高速的CPU运算能力、能够进行长时间的运行有着更好的…

STM32G431RBT6之时钟树配置与生成工程

默认大家都下载了蓝桥杯嵌入式资源包了哈. 首先,打开cubumx,修改RCC与SYS. 打开并观察原理图,发现晶振是24Mhz. 第一步,打开Clock Configuration. 第二步,修改晶振为原理图相对应的24Mhz. 第三步,切换到HSE. 第四步,切换到PLLCLK. 第五步,设置HCLK为80Mhz(15届真题要求为8…

洛谷P1057 [NOIP2008 普及组] 传球游戏

#include<iostream> using namespace std; int n;// n个人传球游戏 默认开始球在编号为1的位置 int m;// 传递m次球 int main(){cin>>n>>m;// 动态转方程&#xff1a;// 球传递到编号为k人的手中// 种类总数 传递到k-1编号种类总数 传递到k1编号种类总数//…

wsl2 Ubuntu子系统内存只有一半的解决办法

物理机的内存是64G&#xff0c;在wsl2安装完Ubuntu20.04后&#xff0c;输入命令&#xff1a; free -g 发现只有32G&#xff0c;原因是默认只能获得物理机一半的内存&#xff1a; WSL 中的高级设置配置 | Microsoft Learn 因此可手动修改为与物理机同等大小&#xff1a; 1&a…

后端开发面经系列 -- 哔哩哔哩C++后端一面

B站C后端开发一面 公众号&#xff1a;阿Q技术站 来源&#xff1a;https://www.nowcoder.com/discuss/550638808786661376 1、MySQL默认16KB的页大小会不会有什么问题&#xff1f;为什么使用16KB作为页面的默认大小&#xff1f; MySQL默认的页大小&#xff08;或称为数据页、表…

【数据库】数据库为什么比电子表格快

为了更深入地了解SQL数据库用于加速查询的特定算法和机制&#xff0c;让我们关注索引和查询优化。与在CSV等平面文件中进行线性搜索相比&#xff0c;这些基本方面使数据库中的查询速度更快。 1。索引 数据库中的索引有点类似于书籍中的索引&#xff0c;它允许你快速定位特定的…

再拓信创版图-Smartbi Insight V11与东方国信CirroData数据库完成兼容适配认证

近日&#xff0c;思迈特商业智能与数据分析软件 [简称&#xff1a;Smartbi Insight] V11与北京东方国信科技股份有限公司 &#xff08;以下简称东方国信&#xff09;CirroData-OLAP分布式数据库V2.14.1完成兼容性测试。经双方严格测试&#xff0c;两款产品能够达到通用兼容性要…

i18next serverSideTranslations 的使用

i18next 是一个流行的国际化&#xff08;i18n&#xff09;库&#xff0c;它可以帮助应用程序中实现多语言支持。next-i18next 是 Next.js 中与 i18next 集成的官方插件&#xff0c;它提供了一种简单的方式来在 Next.js 应用程序中实现国际化。 serverSideTranslations 是 next…

PyTorch中的常见乘法运算(*、@、Mul、Matmul)

哈达玛积&#xff1a;torch.mul()、torch.dot()、* 两个相同尺寸的张量相乘&#xff0c;然后对应元素的相乘就是哈达玛积&#xff0c;这种乘法要求参与运算的矩阵唯独相同&#xff0c;运算结果还是一个相同维度的矩阵。在这个运算中&#xff0c;torch.mul()和*以及torch.dot()…

Cronjob提权

参考&#xff1a; https://redpomelo.xyz/archives/1699953656909 前言 提权为该靶机的精髓&#xff0c;Cronjob通常以root特权运行。如果我们可以成功篡改cronjob中 定义的任何脚本或二进制文件&#xff0c;那么我们可以以root特权执行任意 代码。 什么是Cronjob&#xf…

JS - 分支结构、循环结构

关于JavaScript中的分支结构和循环结构&#xff0c;其实和其他编程语言区别也不是很大&#xff0c;只是js对这两种结构进行了相应的扩充&#xff0c;当然本质上并没有变化&#xff0c;本篇就是一篇记录博主在学习前端路上的总结和敲过的demo&#xff0c;实际上水份很大&#xf…

Jmeter 性能-死锁问题定位+分析

1、环境搭建 ①准备脚本&#xff0c;执行压测 ②用Jstack 打印日志 jstack 112759 >dead.log ③下载日志到本地 sz dead.log 2、问题定位 ①打开dead.log&#xff0c;搜索deadlock ②查看死锁的线程 ③查看死锁位置 3、问题分析 ①下载死锁的类文件 Sz CaseControlle…

使用iMazing对iPhone有影响吗 为什么iPhone都会装iMazing来管理 苹果手机imazing安装

随着科技的迅速发展&#xff0c;智能手机已成为我们日常生活中不可或缺的一部分&#xff0c;iPhone手机占据了智能手机市场的大部分&#xff0c;也有着庞大的用户基础。随着时代的发展&#xff0c;用户对于更高级的设备管理工具的需求也随之增加。iMazing作为一款强大的设备管理…

美业连锁门店收银系统源码-如何查看收款门店对应的加盟商?

美业管理系统源码 博弈美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 促销活动 PC管理后台、手机APP、iPad APP、微信小程序 第一步&#xff1a; 登录pc管理后端 第二步&#xff1a; 进入企业组织管理-门店管理&a…

pandas/python 一个实战小案例

上次写坦克游戏的时候&#xff0c;接触了一点pandas&#xff0c;当时只是简单了解了一下如何遍历行和列并获取值来替换图片&#xff0c;想更多了解pandas。正好有一些数据需要筛选&#xff0c;试试能不能用通过代码实现。虽然总的来说不复杂&#xff0c;但由于原始数据在命名、…

ai写作强大,ai写作哪个软件最好用?

在当今数字化时代&#xff0c;ai技术的发展正以惊人的速度改变着我们的生活和工作方式。其中&#xff0c;ai写作作为一项令人瞩目的创新&#xff0c;展示了强大的文本生成能力。然而&#xff0c;随着各种ai写作软件的涌现&#xff0c;人们不禁困惑&#xff1a;哪个软件才是最好…

js删除对象中值为null的属性

需求&#xff1a;在做编辑操作的时候&#xff0c;后端不需要值为null的数据&#xff0c;所以默认把编辑中值为null的数据传给他会编辑失败&#xff0c;所以前端做个筛选就行了 let obj {id: 1,name: "翠花",sex: 18,hobby: null,age: null,};// 使用Object.entries(…

SQLite数据库中JSON 函数和运算符(二十七)

返回&#xff1a;SQLite—系列文章目录 上一篇:维护SQLite的私有分支&#xff08;二十六&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​1. 概述 默认情况下&#xff0c;SQLite 支持 29 个函数和 2 个运算符 处理 JSON 值。还有两个表值函数可用于分解 JSON 字…

大模型应用开发基础

AGI 时代&#xff0c;AI 无处不在&#xff0c;形成新的社会分层&#xff1a; AI 使用者&#xff0c;使用别人开发的 AI 产品AI 产品开发者&#xff0c;设计和开发 AI 产品基础模型相关&#xff0c;训练基础大模型&#xff0c;或为大模型提供基础设施 越向下层&#xff0c;重要…