1、前言

这里主要介绍轻应用的命令行工具,即用于轻应用的辅助开发,以简单的命令行方式运行在Mac或Windows电脑上的工具。命令行工具主要是用来推送设备应用脚本到设备端,并拥有一套完整的命令,可以完成设备的应用热更新、运维服务、日志服务等。

2、工具包

获取

  • Mac版
  • Windows版

介绍

命令行工具文件目录如下:

├── amp                 # 命令行工具
├── app                 # 应用脚本
│   ├── app.json
│   └── app.js
└── bindings.node       # 本地更新库

打开app.js,这里就运行了我们的业务应用代码,默认打印系统信息。

3、准备工作

如果想了解工具中的本地热更新命令,需要通过MicroUSB数据线连接开发板与PC,具体请参考以下链接中的设备连接介绍。

  • HaaS100
  • HaaS600 Kit

4、命令行

4.1、命令名称

$ amp

IoT轻应用命令行工具可以对设备进行热更新操作,支持 本地热更新在线热更新 功能。

Mac版需要设置执行权限:chmod +x ./amp

Mac上执行amp命令时会遇到权限问题,详见第6部分。

4.2、命令总览

功能

命令

描述

示例

在线热更新

login

命令行登录

amp login <your-token>

device list

列出绑定的设备

amp device list

put

推送应用代码到设备端

在线热更新)

amp put <app-dir> [device-name]

本地热更新

seriallist

列出电脑的所有串口

amp seriallist

serialput

推送应用代码到设备端

本地热更新)

amp serialput <app-dir> <port> -t <type>

-

version

版本号

amp --version

-

help

帮助

amp --help

4.3、命令详解

login - 登录

参数

amp login <your-token>

说明

使用在线热更新前,需要获取<your-token>,该命令用于登录和绑定用户的唯一token,仅需执行一次。

使用本地热更新时,无需绑定用户token。

token及其SDK包请通过公测申请获取。

示例

$ amp login b8805cfefe8b****f069e638a0162d0e
login success

device list - 列出已绑定设备

参数

amp device list

说明

amp login <your-token>成功后,使用该命令可列出您账号下已绑定的设备名称,建议使用IMEI号作为设备名称<device-name>

示例

$ amp device list
Your bound devices:
8675*******3456
8675*******4321
3522*******7456

put - 在线热更新

参数

amp put <app-dir> <device-name>

  • <app-dir> 指当前目录下app目录,包含板级配置文件和JS脚本文件。
  • device_name 指绑定列表中的设备名称

说明

注意:使用前,请参考 在线热更新 确定模组固件版本、设备绑定及设备联网等是否已完成。

通过该命令可远程推送轻应用到指定的设备,其中 app-dir<device-name> 以实际为准。

该命令会消耗网络流量,推送应用到蜂窝模组时请按需使用。

示例

$ amp device list
Your bound devices:
8675*******3456$ ./amp put ./app 8675*******3456
device:8675*******3456 ONLINE.
generate app package
push app package SUCCESS

若出现OFFLINE,可能由于设备尚未联网成功

具体示例演示请参考在线热更新

seriallist - 列出电脑串口

参数

amp seriallist

说明

注意:使用前,请参考本地热更新 确定硬件连接

列出电脑上的所有串口,确定本地热更新 的串口号<serial-port>

示例

  • Mac
$ amp seriallist
/dev/tty.usbserial-AK08LNMO
/dev/tty.usbserial-AK08LNMM
  • Windows
$ amp seriallist
COM59
COM60

serialput - 本地热更新

参数

amp serialput <app-dir> <serial-port>

amp serialput <app-dir> <serial-port> -t <type>

type:

  • ymodem(默认)

说明

注意:使用前,请参考本地热更新 确定硬件连接、模组固件和是否进入下载模式

通过串口推送轻应用到设备(本地更新)。

示例

$ amp seriallist
COM59
// usb口以实际情况为准
$ amp serialput ./app COM59 -t ymodem
device type: ymodem
generate app package
put complete!

具体示例演示请参考本地热更新

version - 查看版本号

// 版本号以实际为准
$ ./amp --version
1.0.3

help - 帮助

$ ./amp --help
Usage: amp [options]
AliOS Things Mini Program PC CLI tool
Options:-V, --version                          output the version number-h, --help                             output usage information
Commands:login <token>                          logindevice list                                list bind devicesput <filepath> <deviceName>            upload file to deviceseriallist                             list serial portserialput [options] <filepath> <port>  put file to device via serial port

关于轻应用的文档请参考:https://help.aliyun.com/document_detail/174810.html

5、FAQ

Q1:Mac电脑上的权限问题

A:在运行amp命令时,Mac系统可能会出现应用信任问题,在运行命令时可能会报出如下错误。

点击取消,然后进入系统偏好设置,打开安全性隐私,选择仍然允许,如下图所示:

再次运行amp命令,出现如下提示,点击打开即可完成对amp的信任。

此时,系统又会弹出bindings.node无法验证的对话框,跟amp同样的问题,再次验证即可

点击取消,然后进入系统偏好设置,打开安全性隐私,选择仍然允许,如下图所示

此时命令行工具可能会报如下错误,不用理会。

Error: dlopen(/Users/ljh/Downloads/amp-macos/bindings.node, 1): no suitable image found.  Did find:/Users/ljh/Downloads/amp-macos/bindings.node: code signature in (/Users/ljh/Downloads/amp-macos/bindings.node) not valid for use in process using Library Validation: library load disallowed by system policyat Object.Module._extensions..node (internal/modules/cjs/loader.js:805:18)at Module.load (internal/modules/cjs/loader.js:651:32)at tryModuleLoad (internal/modules/cjs/loader.js:591:12)at Function.Module._load (internal/modules/cjs/loader.js:583:3)at Module.require (internal/modules/cjs/loader.js:690:17)at Module.require (pkg/prelude/bootstrap.js:1225:31)at require (internal/modules/cjs/helpers.js:25:18)at bindings (/snapshot/amp-cli/node_modules/bindings/bindings.js:112:48)at Object.<anonymous> (/snapshot/amp-cli/node_modules/@serialport/bindings/lib/darwin.js:2:36)at Module._compile (pkg/prelude/bootstrap.js:1320:22)

再次运行amp命令,出现如下提示,点击打开即可完成对bindings.node的信任。

6、开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

Javascript轻应用命令行工具相关推荐

  1. 懒人神器 !一个创意十足的 Python 命令行工具

    作者 | 写代码的明哥 来源 | Python编程时光 当听到某些人说 xx 库非常好用的时候,我们总是忍不住想要去亲自试试. 有一些库,之所以好用,是对一些库做了更高级的封闭,你装了这个库,就会附带 ...

  2. 第三方模块——nodemon是一个命令行工具,用以辅助项目开发、nrm ( npm registry manager ):npm下载地址切换工具

    什么是第三方模块 别人写好的.具有特定功能的.我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包. 第三方模块 nodemon nodemon是 ...

  3. 命令行工具开发:如何快速实现命令行提示?

    简介:对于稍微复杂一些的命令行工具,命令行的提示功能必不可少.那么对于不同语言的开发者,有没有一种简单快捷的实现方式呢?本文分享一种快速实现的方法,使用YAML文件定义命令行工具的使用规范,再通过工具 ...

  4. uibot在子程序执行js失败_使用 Node.js 将珍藏的 bash 脚本封装成命令行工具

    阐述如何将一个常用的 bash 脚本融入 npm 生态之中,此处以最近遇到的一个 CR 提交脚本为例. 背景 作为程序猿,大家或多或少地都用过 GitHub 上的 merge request 功能.当 ...

  5. node工程默认url_node命令行工具之实现项目工程自动初始化的标准流程

    一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提 ...

  6. jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国

    我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用.-- Ostechnix J ...

  7. 在 PHP 中使用命令行工具

    在 Web 应用程序中运行 shell 命令 学习如何更好地集成脚本和命令行工具.本文考察如何使用 shell_exec().exec().passthru() 和 system():安全地将信息传递 ...

  8. mac上的命令行工具

    转自爱米家的博客,原文:<Eight Terminal Utilities Every OS X Command Line User Should Know> OS X  的Termina ...

  9. GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。...

    GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...

最新文章

  1. 在不影响配置下,清除netscreen密码
  2. C语言之归并排序算法
  3. ckks方案优化最好的_果断收藏:SEO高级优化技能升级策略!
  4. mysql大数据更新缓存_redis缓存mysql
  5. 了解Java的发展史
  6. python xlrd模块_Python中xlrd模块解析
  7. 警告 初始化默认驱动器时出错“找不到运行 Active Directory Web 服务的默认服务器。”...
  8. 基于物联网平台开发手机混合 App
  9. 操作系统课程设计 模拟磁盘文件系统实现
  10. (CVPR-2018)仔细研究用于动作识别的时空卷积
  11. 区间缩放,标准化,归一化
  12. win10怎么改文件后缀_怎么显示win10系统隐藏文件夹
  13. CSS 中哪些属性可以继承?
  14. java实现lbs_Java总结篇系列:Java泛型
  15. Java多线程--深入浅出Java多线程
  16. Linux无法账号密码登录问题
  17. php动态链入,利用php的动态链接,增加搜索引擎的蜘蛛爬行速度,规则嵌入ElasticSearch泛目录...
  18. mysql drop fulltext_MySQL使用全文索引(fulltext index)
  19. 弹窗广告避无可避,背后黑手如此投放!
  20. 【Unity3D 教程系列第 16 篇】Scene视图很清楚,但是Game视图却很模糊的解决方案

热门文章

  1. 刘润:中台的本质是中间件
  2. 【CSS 定位之 display 属性】
  3. 关闭页面弹出弹窗js代码
  4. Linux启动一体机的复印功能,多功能一体机怎么复印 多功能一体机复印方法【详细介绍】...
  5. 在try-catch机制优化IO流关闭时,OutputStreamWriter 数据流被截断 新语法
  6. Vue3分割线(Divider)
  7. 论异步编程的正确姿势:十个接口的活现在只需要一个接口就能搞定!
  8. # cs231n (四)反向传播
  9. WordPress替换前端字体插件
  10. 前端基础入门之css像素与视口和媒体查询