1、前言
這裏主要介紹輕應用的命令行工具,即用於輕應用的輔助開發,以簡單的命令行方式運行在Mac或Windows電腦上的工具。命令行工具主要是用來推送設備應用腳本到設備端,並擁有一套完整的命令,可以完成設備的應用熱更新、運維服務、日誌服務等。
2、工具包
獲取
介紹
命令行工具文件目錄如下:
├── amp # 命令行工具
├── app # 應用腳本
│ ├── app.json
│ └── app.js
└── bindings.node # 本地更新庫
打開app.js
,這裏就運行了我們的業務應用代碼,默認打印系統信息。
3、準備工作
如果想了解工具中的本地熱更新命令,需要通過MicroUSB數據線連接開發板與PC,具體請參考以下鏈接中的設備連接介紹。
4、命令行
4.1、命令名稱
$ amp
IoT輕應用命令行工具
可以對設備進行熱更新操作,支持 本地熱更新
和 在線熱更新
功能。
Mac版需要設置執行權限:
chmod +x ./amp
。
Mac上執行amp命令時會遇到權限問題,詳見第6部分。
4.2、命令總覽
功能 |
命令 |
描述 |
示例 |
login |
命令行登錄 |
|
|
device list |
列出綁定的設備 |
|
|
put |
推送應用代碼到設備端 (在線熱更新) |
|
|
seriallist |
列出電腦的所有串口 |
|
|
serialput |
推送應用代碼到設備端 (本地熱更新) |
|
|
- |
version |
版本號 |
|
- |
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> login
device list list bind devices
put <filepath> <deviceName> upload file to device
seriallist list serial port
serialput [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 policy
at 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/