阿里最新熱修復(fù)框架sophix集成詳解(四):補(bǔ)丁灰度發(fā)布、全量發(fā)布、機(jī)型過(guò)濾

本文更新于2017年11月21日。


注意事項(xiàng):

  • 支持多渠道包僅選用某個(gè)渠道包的補(bǔ)丁,只需要保證變化相同即可,不過(guò)對(duì)于不同的apk包最好進(jìn)行全面的測(cè)試。
  • 發(fā)布前請(qǐng)嚴(yán)格按照:掃碼內(nèi)測(cè) => 灰度發(fā)布 => 全量發(fā)布的流程進(jìn)行,以保證補(bǔ)丁包能夠正常在所有Android版本的機(jī)型上生效。
應(yīng)用版本詳情頁(yè)
  • 補(bǔ)丁狀態(tài):
    • 等待中:補(bǔ)丁上傳成功,等待操作。
    • 已灰度:補(bǔ)丁正在進(jìn)行灰度發(fā)布。
    • 已發(fā)布:補(bǔ)丁已全量發(fā)布至所有設(shè)備。
    • 已停止:補(bǔ)丁發(fā)布行為已暫停。

灰度發(fā)布

在應(yīng)用版本詳情頁(yè),點(diǎn)擊補(bǔ)丁版本列表里的【查看詳情】,進(jìn)入 補(bǔ)丁詳情頁(yè)。


補(bǔ)丁詳情頁(yè)

在剛剛上傳完補(bǔ)丁后,補(bǔ)丁處于 等待中 的狀態(tài),勾選 灰度發(fā)布。

設(shè)置完設(shè)備數(shù),客戶端拉取補(bǔ)丁會(huì)消耗該設(shè)備數(shù),達(dá)到灰度設(shè)備數(shù)后,灰度補(bǔ)丁自動(dòng)置為停止?fàn)顟B(tài)。
設(shè)備數(shù):指設(shè)備請(qǐng)求更新該補(bǔ)丁的次數(shù),并不等于絕對(duì)設(shè)備數(shù)。

例如:1個(gè)設(shè)備請(qǐng)求了2次更新該補(bǔ)丁,則會(huì)消耗掉2的設(shè)備數(shù)。

  • 確認(rèn)發(fā)布
    點(diǎn)擊【確認(rèn)發(fā)布】,補(bǔ)丁狀態(tài)為 已灰度 ,進(jìn)入灰度發(fā)布狀態(tài)。


    灰度發(fā)布狀態(tài)

這時(shí),當(dāng)用戶打開客戶端,就會(huì)拉取線上的補(bǔ)丁,修復(fù)程序。
還記得代碼中的queryAndLoadNewPatch()方法嗎,它的作用去看系列第二篇末尾的sample。

  • 成功推送設(shè)備數(shù):每當(dāng)有設(shè)備發(fā)起一次更新請(qǐng)求,且補(bǔ)丁下載成功,則記為一次成功推送。
  • 累計(jì)加載設(shè)備數(shù):每當(dāng)有設(shè)備成功加載該補(bǔ)丁,則記為一次累計(jì)加載。

注:

· 只會(huì)下載補(bǔ)丁版本號(hào)比當(dāng)前應(yīng)用存在的補(bǔ)丁版本號(hào)高的補(bǔ)丁, 比如當(dāng)前應(yīng)用已經(jīng)下載了補(bǔ)丁版本號(hào)為5的補(bǔ)丁, 那么只有后臺(tái)發(fā)布的補(bǔ)丁版本號(hào)>5才會(huì)重新下載.

· 在上傳新的補(bǔ)丁之后,要調(diào)試時(shí),如果以往的補(bǔ)丁有處于 已灰度已發(fā)布狀態(tài),要停止發(fā)布。 如果不停止,最新的補(bǔ)丁處于等待中,也就是未發(fā)布。那么當(dāng)你打開客戶端,它會(huì)拉取以往發(fā)布的補(bǔ)丁修復(fù)程序,這樣會(huì)影響你觀測(cè)調(diào)試結(jié)果。

· 后臺(tái)數(shù)據(jù)可能有少許延遲。

  • 停止發(fā)布
    點(diǎn)擊【停止發(fā)布】后,用戶選擇停止發(fā)布后,系統(tǒng)將停止該補(bǔ)丁的繼續(xù)發(fā)布,但已加載該補(bǔ)丁的設(shè)備會(huì)依然保持安裝該補(bǔ)丁的狀態(tài)。
    界面變成:


    停止發(fā)布 后
  • 繼續(xù)發(fā)布
    用戶點(diǎn)擊【繼續(xù)發(fā)布】后,將可以重新設(shè)置發(fā)布規(guī)則。

如果當(dāng)前版本在停止前處于灰度中,繼續(xù)發(fā)布可以:

· 重設(shè)灰度發(fā)布規(guī)則,新的規(guī)則中設(shè)備數(shù)必須大于之前的值。
· 改為全量發(fā)布。

灰度狀態(tài)下繼續(xù)發(fā)布

所以,從灰度發(fā)布到全量發(fā)布的步驟是

· 先在補(bǔ)丁詳情頁(yè)勾選灰度發(fā)布,點(diǎn)擊確認(rèn)發(fā)布
· 推送完所有灰度設(shè)備后,點(diǎn)擊停止發(fā)布
· 再點(diǎn)擊繼續(xù)發(fā)布,彈出框,選擇全量發(fā)布

如果當(dāng)前版本在停止前處于全量發(fā)布,繼續(xù)發(fā)布可以:

繼續(xù)全量發(fā)布。

  • 選擇回滾
    用戶選擇回滾的目標(biāo)補(bǔ)丁后,所有該應(yīng)用版本下的設(shè)備都會(huì)回滾到目標(biāo)補(bǔ)丁的版本。

使用回滾功能必需要具備一下幾個(gè)條件:

· 當(dāng)前的版本已停止發(fā)布。
· 該版本之前存在至少一個(gè)全量發(fā)布的歷史版本。

全量發(fā)布

選擇全量發(fā)布后,將對(duì)所有安裝了當(dāng)前應(yīng)用版本(即之前創(chuàng)建應(yīng)用時(shí)所填寫的應(yīng)用版本號(hào))的設(shè)備推送該補(bǔ)丁。

與灰度發(fā)布類似,在全量發(fā)布會(huì)可以根據(jù)自身需要停止本次全量發(fā)布,停止發(fā)布后可以選擇:

· 繼續(xù)全量發(fā)布。
· 回滾版本(如果存在歷史版本)

添加過(guò)濾機(jī)型

全量發(fā)布后,我們可以添加過(guò)濾機(jī)型。
不全量發(fā)布是不可以添加機(jī)型過(guò)濾的

image.png

在App版本詳情頁(yè),點(diǎn)擊【添加過(guò)濾機(jī)型】
點(diǎn)擊添加過(guò)濾機(jī)型彈出框

這里對(duì)過(guò)濾機(jī)型的彈出框參數(shù)進(jìn)行說(shuō)明:

  • 系統(tǒng)版本
    系統(tǒng)版本是指手機(jī)所使用的OS的版本。

在控制臺(tái)中,有相應(yīng)的系統(tǒng)版本列表可供選擇。如果列表中沒(méi)有需要自定義,請(qǐng)按如下標(biāo)準(zhǔn)獲取系統(tǒng)版本。

android.os.Build.VERSION.RELEASE
例如系統(tǒng)版本結(jié)果是:7.1

  • 手機(jī)品牌
    手機(jī)品牌是指手機(jī)貼牌商標(biāo)代表的品牌,需要區(qū)別手機(jī)制造商,手機(jī)制造商可能會(huì)生產(chǎn)多個(gè)品牌,一個(gè)品牌也可能是多個(gè)制造商生產(chǎn)。

在控制臺(tái)中,我們有相應(yīng)的品牌列表供選擇使用。如果需要自定義,請(qǐng)按如下標(biāo)準(zhǔn)獲取手機(jī)品牌,注意實(shí)際過(guò)濾時(shí)不區(qū)分大小寫。

android.os.Build.BRAND
例如手機(jī)品牌是:Xiaomi

  • 手機(jī)機(jī)型
    手機(jī)機(jī)型是指某個(gè)手機(jī)品牌下手機(jī)具體的型號(hào)。

目前由于手機(jī)機(jī)型龐雜,沒(méi)有提供選擇列表供選擇,后續(xù)會(huì)支持。填寫手機(jī)機(jī)型時(shí)請(qǐng)按如下標(biāo)準(zhǔn),不區(qū)分大小寫。

android.os.Build.MODEL
例如手機(jī)型號(hào)是:OPPO R11

【注意】如果想設(shè)置全部機(jī)型,請(qǐng)?jiān)谧远x機(jī)型里面,輸入 :all

到這里,sophix集成的全部?jī)?nèi)容就結(jié)束了。阿里熱修復(fù)官方的文檔有點(diǎn)瑣碎,我把重點(diǎn)和注意點(diǎn)都挑出來(lái)了。讀完這四篇,相信你會(huì)迅速集成sophix到自己的應(yīng)用里。

這再給出官方接入文檔地址,給還想看官方文檔的朋友。官方接入文檔

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

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

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