Sophix-阿里第三代非侵入式熱修復

本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家發布

轉載請請注明出處:http://www.lxweimin.com/p/8ea4d653a53e

前言

上個月,阿里發布了旗下第三代的熱修復:Sophix,在你閱讀這篇文章之前,可以先看看這篇文章,相信你看完了會更加的有興趣,阿里推出業界首個非侵入式熱修復方案Sophix,顛覆移動端傳統更新流程!

我也是在集成使用tinker的時候發現了Sophix,tinker的傻瓜式應用雖說簡單,但各種參數也麻煩,所以公司項目的客服端熱更新,我想試一下Sophix。
好了,閑話不多說,我們來折騰折騰!

集成

1 注冊帳號&申請內測資格

阿里云注冊開發則帳號,注冊成功后進入控制臺,添加移動熱修復服務,如圖:

圖片.png

點擊熱修復服務后,會跳轉到內測資格申請,一般來說,也就個把小時就能通過申請,如圖:

圖片.png

具體的申請我就不做詳細的教程了,申請成功后“移動熱修復”就會如圖添加到控制臺里的導航欄里:

圖片.png

點擊進入就可以創建app進行開發了,此處提醒一句,創建app后你要回到“移動熱修復”的根界面,系統會自動根據你app同時創建andrioid和IOS兩個app,進入app后面的管理才能看到RSASECRET,如圖:

圖片.png

圖片.png
之所以多說一句是因為我找這個RSASECRET找了半天都沒找到在哪兒,還提交了個工單問是不是沒有這個參數值了!創建應用還有什么不懂的,看阿里官方文檔

前期準備工作準備的差不多,就可以環境集成了

2 環境集成

如圖,在項目app下的bulid.gradle中添加maven倉庫地址和坐標版本依賴:


圖片.png
3 代碼配置

首先,在Manifest中配置參數:


圖片.png

然后,重構application初始化Sophix:

圖片.png

到此為止,所有的集成配置都完成了,可以開始測試了。

測試##

1 補丁生成

我們在主界面中寫個Textview,讓他顯示“我是首次運行的”,簽名打出第一包,命名first,安裝運行顯示:

圖片.png
圖片.png

然后我們對代碼進行改動,彈出一個Toast。

圖片.png

簽名打出第二個包,命名second,現在我們就需要用到阿里的補丁工具SophixPatchTool,
下載運行SophixPatchTool.exe,添加包:

圖片.png

點擊設置進行簽名配置,補丁輸出路徑:

圖片.png

高級設置是對比范圍,設置是否強制冷啟動,可忽略。
圖片.png

點擊Go開始打補丁,日志會詳細打印出補丁情況,也可導出日志。
補丁打完后,在輸出目錄里會有一個sophix-patch.jar,這個就是我們需要的補丁包。

上傳發布

先添加版本號,成功后在版本號后的“查看詳情中”上傳補丁:


圖片.png

圖片.png

上傳成功后,依然在“查看詳情”中發布。阿里建議我們在正式發布之前,使用測試工具hotfixdebug調試成功后再發布。
發布完成后,重新啟動App,運行如圖,
圖片.png

圖片.png

成功搞定!#

總結

Sophix和Tinker,專業對比我還不好評價,只說兩次不同集成給我的直觀感受,總結如下:
優點:
? 1· Sophix集成簡單,不需要配置繁瑣的各種參數。
? 2· Sophix支持即時生效(事實上我第一次運行first版本后,直接就彈出了toast,而此時后臺數據顯示設備加載成功數為1,設備推送成功數為0)。
? 3· Sophix支持run instant,而tinker不支持。編譯中不支持run instant,速度大大降低!
? 4· Sophix的補丁是基于阿里自身的SophixPatchTool打包生成,不是在AS中生成的,有種解耦的感覺,而且不需要備份太多的版本。

缺點:
? 處于內測階段,以后是否會免費未置可否(應該不會)
? PS:今天(2017-8-16),阿里自動電話服務,告知明天起,Sophix商業收費

相關鏈接

本文源碼地址:github源碼
阿里云平臺:阿里云
Sophix官方文檔:文檔
補丁工具:SophixPatchTool
測試工具:hotfixdebug
阿里熱修復技術全解析文檔:深入理解Android熱修復技術原理
Sophix技術交流群:584275290

碎碎念:
1 雖然說專業的事兒給專業的人去做,但是copy代碼的時候還是要仔細,我copy AppID到manifest中,結果前面多了個空格,導致值無效,調試了小半會兒才發現問題,諸兄亦是如此,如果諸兄喜歡,給個喜歡!

2 至于Sophix這個名字,阿里的解釋是來源于Sophic(明智的)+ FIX,一個更明智的熱修復方案。但是阿里很多工具或者鏈接都是用fix起名而不是用hix,所以,我更喜歡喊他Sopfix!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容