天天看點

AliOS Things 3.0 開發:OTA之差分更新快速上手

關聯文章:

AliOS Things 3.0 開發:OTA之整包更新使用手冊

檢視詳情 AliOS Things 3.0 開發:OTA之壓縮更新快速上手

概要

前面已經介紹了AliOS Things 3.0 OTA的

整包更新

壓縮更新

,本文将介紹AliOS Things 3.0版本的OTA差分更新;首先介紹一下差分更新的概念,差分更新是将新老固件差異部分剝離出來, 生成差分包,再通過雲端将差分包推送到裝置端,裝置端接收完成後,通過差分恢複算法,将差分包和老固件進行融合,恢複差分前的新固件,進而完成更新;

優點:更新固件更小,下載下傳速度快,更節省存儲空間;

缺點:差分固件恢複成新固件的時間相對長,需要的記憶體相對大;

下圖為AliOS Things 差分更新示意圖:

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖1 AliOS Things 差分更新示意圖

環境準備

擷取代碼:

https://github.com/alibaba/AliOS-Things

 分支:rel_3.0.0

標明APP:選擇AliOS-Things/app/example/中linkkitapp;

標明board: 選擇AliOS-Things/board/中mk3080;

標明雲端平台:

物聯網平台

使用流程

AliOS Things 支援Windows、Linux、MacOS編譯環境,本文以Linux編譯環境為例;

  • 選擇app和board

輸入指令:

#  清除之前配置
$ aos make distclean
# 配置app為linkkitapp,board為mk3080
$ aos make linkkitapp@mk3080 -c config
# 編譯
$ aos make            

編譯完成後,生成的固件在

out/linkkitapp@mk3080/binary

目錄下,如下圖:

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖2 編譯生成固件圖

linkkitapp@mk3080_ota.bin燒錄到闆子上,同時也是差分的基礎固件,接下來還需要編譯生成一個高版本的固件;mk3080燒錄的方法,如下圖:

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖3 mk3080燒錄方法圖

  • 固件版本号更改

更改

build/build_rules/aos_target_config.mk

檔案中的app-1.0.0-為app-2.0.0-編譯,如下圖:

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖4 固件版本号擷取圖

  • 制作差分更新包

将低版本的linkkitapp@mk3080_ota.bin改名為old.bin, 高版本的linkkitapp@mk3080_ota.bin改名為new.bin, 在終端中輸入指令:aos ota diff old.bin new.bin 執行完畢後,會在目前檔案夾中得到差分更新包diff.bin

  • 雲端添加強件

複制如上圖示記的版本号,登入

平台,按如下圖順序操作

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖5 添加強件操作步驟圖

點選新增固件,如下圖,填入相關資訊并上傳差分更新包:

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖6 固件添加圖

點選“确定”後,選擇“驗證固件”即可開始固件更新;更新結果可以點選“檢視”擷取詳細結果;

  • 裝置端資訊

裝置端更新過程中部分log如下圖:

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖7 裝置端壓縮更新資訊

  • 更新結果雲端檢視

通過點選“驗證固件”下的“檢視”可以檢視OTA的更新結果,如下圖:

AliOS Things 3.0 開發:OTA之差分更新快速上手

圖8 雲端更新結果圖

以上就是AliOS Things 3.0版本的OTA差分更新整個流程。

注:在做OTA之前確定裝置端已連接配接雲端

AliOS Things 3.0 開發:OTA之差分更新快速上手
給AliOS Things一顆STAR (前往GitHub關注我們)

繼續閱讀