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

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

轉(zhuǎn)載請請注明出處:http://www.itdecent.cn/p/8ea4d653a53e

前言

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

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

集成

1 注冊帳號&申請內(nèi)測資格

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

圖片.png

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

圖片.png

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

圖片.png

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

圖片.png

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

前期準備工作準備的差不多,就可以環(huán)境集成了

2 環(huán)境集成

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


圖片.png
3 代碼配置

首先,在Manifest中配置參數(shù):


圖片.png

然后,重構(gòu)application初始化Sophix:

圖片.png

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

測試##

1 補丁生成

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

圖片.png
圖片.png

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

圖片.png

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

圖片.png

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

圖片.png

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

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

上傳發(fā)布

先添加版本號,成功后在版本號后的“查看詳情中”上傳補?。?/p>

圖片.png

圖片.png

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

圖片.png

成功搞定!#

總結(jié)

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

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

相關(guān)鏈接

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容