完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
名词解释
AliOS Things: 阿里云智能IoT团队自研的物联网操作系统 HaaS:全称是Hardware as a Service,阿里云智能IoT团队基于AliOS Things系统推出的硬件即服务 HaaS UI:全称是Hardware as a Service User Interface,是源自AliOS Things操作系统上的一套应用&图形解决方案,支持C/C++和 JS两种开发语言 目前在HaaS轻应用平台有两种方式进行JSAPI的扩展:通过系统框架扩展和用QuickJS原生方式扩展,这两种方式都达到我们目的,但在使用方式和实现上都有所不同,下面我们具体说下区别: 1. 调用方式不同 系统框架上扩展: { $falcon.jsapi.Download.download({url:"http://aiot.aliyun.com/mini_app/list.json"}, (result) => { console.log(">>>result: ", result) }); console.log("run here"); } 通过QuickJS原生方式扩展: import * as timer from 'timer' { timer.setInternal(2); timer.setListener((count, internal) => { console.log("listener", count, internal); }); timer.start(); console.log("run here"); } 系统框架方式扩展的JSAPI都是在$falcon.jsapi下的子模块,所以调用的时候的前面需要加$falcon.jsapi; QuickJS原生方式扩展是在引擎下直接增加一个模块; 2. 参数传递和返回结果格式不同 系统方式扩展JSAPI的参数传递和返回结果都是JSon格式,类似:{url:"http://aiot.aliyun.com/mini_app/list.json"}; QuickJS扩展的JSAPI是根据每个方法的情况自定义,没有统一规定,相对灵活些; 3. 执行顺序不同 系统方式扩展JSAPI调用的地方只是添加了任务,在下次消息循环中执行, Downloader的例子结果如下: 会先打印"run here",之后才会运行真正download的Native代码; 而QuickJS方式添加的JSAPI是同步执行,timer的例子执行结果如下: 会先打印Native的setInternal, setListener,最后执行到"run here" 4. Native代码实现难易不同 系统方式扩展JSAPI的Native实现不用关心内存泄漏,线程模型等问题; 但是用QuickJS方式添加的模块需要关心线程模型和JSValue对象的管理,细节如上篇文章所讲;在之前项目中,查出的内存泄漏点很多是因为没有释放JSValue导致,所以系统框架将JSAPI进行封装,也是为了用户避免出现这些问题; 小结 系统框架扩展JSAPI和用QuickJS原生方式扩展JSAPI适用不同的场景,如果是新开发的JSAPI,推荐使用系统框架方式扩展,如果是之前已经开发QuickJS模块或者对QuickJS扩展方式已经很熟悉,那么使用QuickJS原生方式扩展也没有什么问题; 文章转载自:平头哥芯片开放社区 作者:sucool |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15391 浏览 1 评论
13435 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19423 浏览 2 评论
58481 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
85701 浏览 120 评论
RVB2601 Gravity扩展板上线啦!!!全IO引脚扩展支持,专为RVB2601定制
1679浏览 0评论
【平头哥Sipeed LicheeRV 86开发板试用体验】QT初体验
2230浏览 0评论
2500浏览 0评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
531浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
393浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-17 05:51 , Processed in 0.647485 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号