熱更新實(shí)踐:Bugly熱更新打包及修復(fù)

上一篇【熱更新:使用Bugly集成的Tinker】主要是說(shuō)的配置英融,配置Tinker確實(shí)很麻煩盏檐,當(dāng)然好處也是很大的。不僅支持各種類驶悟,so胡野,資源的替換,體積也較小痕鳍,是一款很強(qiáng)大的熱修復(fù)工具硫豆。媽媽再也不用擔(dān)心我們被h5替代了!

都配置好了笼呆,肯定要實(shí)踐一下來(lái)能體會(huì)它到底有多強(qiáng)大熊响!

第一步:打基準(zhǔn)包

在tinker-support.gradle中配置基準(zhǔn)包的tinkerid

tinkerId最好是一個(gè)唯一標(biāo)識(shí),例如git版本號(hào)诗赌、versionName等等汗茄。 如果你要測(cè)試熱更新,你需要對(duì)基線版本進(jìn)行聯(lián)網(wǎng)上報(bào)铭若。
這里強(qiáng)調(diào)一下洪碳,基線版本配置一個(gè)唯一的tinkerId递览,而這個(gè)基線版本能夠應(yīng)用補(bǔ)丁的前提是集成過(guò)熱更新SDK,并啟動(dòng)上報(bào)過(guò)聯(lián)網(wǎng)瞳腌,這樣我們后臺(tái)會(huì)將這個(gè)tinkerId對(duì)應(yīng)到一個(gè)目標(biāo)版本绞铃,例如tinkerId = "bugly_1.0.0" 對(duì)應(yīng)了一個(gè)目標(biāo)版本是1.0.0,基于這個(gè)版本打的補(bǔ)丁包就能匹配到目標(biāo)版本嫂侍。

執(zhí)行assembleRelease編譯生成基準(zhǔn)包,官方文檔是這么說(shuō)的流椒,可我真不會(huì)打這個(gè)assembleRelease丰嘉,平時(shí)要么直接運(yùn)行,要么直接就打包!

這里遇到一個(gè)坑稿存,就是直接運(yùn)行是運(yùn)行不起的糠雨,報(bào)錯(cuò)辣恋!到處找尋答案潘酗,最后是一個(gè)大神說(shuō)是因?yàn)楹蚷nstant run不兼容,需要關(guān)閉揪阿!


取消Instant Run

最后在群里面問(wèn)道了執(zhí)行的方法疗我,原來(lái)在最右邊的Gradle里面


assembleRelease.png

用了快一年的AS,還不知道如何打基準(zhǔn)包,慚愧澳衔妗吴裤!
查了很多資料才知道沒(méi)有什么基準(zhǔn)包,只是這種打包的方式和手動(dòng)打包有所區(qū)別溺健。其實(shí)也就是打一個(gè)安裝包而已麦牺!

在這里我不得不說(shuō)我又遇到了一個(gè)問(wèn)題,就是打出來(lái)的包和官方的不一樣鞭缭。我不僅僅說(shuō)的是名字不一樣剖膳,而是我打出來(lái)的包根本沒(méi)有簽名!是下面這樣的:

我打的基準(zhǔn)包

于是我又開(kāi)始查我的包為什么不一樣岭辣,發(fā)現(xiàn)根本找不到答案吱晒。其實(shí)從名字就可以看出,其實(shí)是我打的包沒(méi)有簽名沦童!于是就去查如何用assembleRelease簽名打包仑濒!又查了一天才知道了原來(lái)有手動(dòng)打包和自動(dòng)打包的區(qū)別!

手動(dòng)打包:就是通過(guò)AndroidStudio工具欄的Build->Generate signed APK...來(lái)打包

手動(dòng)打包

自動(dòng)打包:通過(guò)在Gradle中配置signingConfigs來(lái)偷遗,然后點(diǎn)擊右邊當(dāng)前項(xiàng)目下的assembleRelease命令來(lái)打包

自動(dòng)打包

自動(dòng)簽名參考 :AndroidStudio配置gradle墩瞳,讓App自動(dòng)簽名
最開(kāi)始我還把沒(méi)有簽名的unsign.apk用360工具來(lái)簽名打包,累死個(gè)人氏豌,現(xiàn)在想想當(dāng)初自己是有多蠢按V颉!

注意:這個(gè)打好的基準(zhǔn)包需要安裝到手機(jī)上面箩溃,聯(lián)網(wǎng)的情況下打開(kāi)以下為后面的補(bǔ)丁包做準(zhǔn)備瞭吃,也就是官方說(shuō)的聯(lián)網(wǎng)上報(bào)。后臺(tái)logcat可以看日志輸出涣旨,官方圖如下:

聯(lián)網(wǎng)上報(bào)

第二步:打補(bǔ)丁包

打補(bǔ)丁包之前要修改你項(xiàng)目的東西歪架,這樣才能有所區(qū)分,這個(gè)我就不說(shuō)了霹陡!關(guān)鍵是要修改tinker-support.gradle里面的配置和蚪,appName的名字一定要是你打的基準(zhǔn)包的目錄的名字,不然會(huì)報(bào)找不到oldapk的錯(cuò)誤烹棉,同時(shí)還要修改tinkerId字段攒霹!

tinker-support.gradle文件修改

項(xiàng)目和這個(gè)文件修改只有,點(diǎn)擊buildTinkerPatchRelease就可以了浆洗,之前我沒(méi)有配置自動(dòng)簽名催束,打這個(gè)補(bǔ)丁包都打不了!

打補(bǔ)丁包

生成的補(bǔ)丁包在build/outputs/patch/release目錄下(官方在build/outputs/patch下伏社,不知道我自己為什么多個(gè)了release):

補(bǔ)丁包位置

第三步:上傳下發(fā)補(bǔ)丁

就是進(jìn)入Bugly官方抠刺,進(jìn)入你當(dāng)前項(xiàng)目,在應(yīng)用升級(jí)里面可以找到熱更新摘昌,上傳patch_signed_7zip.apk這個(gè)文件速妖,然后立即下發(fā)!


QQ截圖20170224154323.png

第四步:測(cè)試

測(cè)試的時(shí)候聪黎,一定要把這個(gè)應(yīng)用徹底關(guān)閉后再啟動(dòng)罕容,修改才會(huì)生效!

總結(jié):
寫(xiě)這個(gè)整整用了我一周的時(shí)間稿饰,因?yàn)樵谄渲杏龅搅颂鄤e人和官方?jīng)]有問(wèn)題(官方不會(huì)教你自動(dòng)簽名的配置锦秒,因?yàn)槟遣皇撬氖拢惨驗(yàn)楹芏嗯渲枚伎床幻靼紫孀荩粫?huì)依葫蘆畫(huà)瓢脂崔,所以進(jìn)度很慢,同時(shí)也學(xué)到了很多梧喷。特別是經(jīng)歷重重困難后終于測(cè)試成功砌左,代碼展現(xiàn)后的喜悅只能用以淚洗面,哭著笑了來(lái)形容铺敌!在此記錄下來(lái)汇歹,獻(xiàn)給奮斗在代碼前線的同僚們,堅(jiān)強(qiáng)不息偿凭,代碼不止产弹!


兩年之后再探Tinker,發(fā)現(xiàn)他們現(xiàn)在出了TinkerPatch平臺(tái),感覺(jué)比在Bugly中使用熱更新更簡(jiǎn)單了:
Tinker再探之TinkerPatch 平臺(tái)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痰哨,一起剝皮案震驚了整個(gè)濱河市胶果,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斤斧,老刑警劉巖早抠,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異撬讽,居然都是意外死亡蕊连,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)游昼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)甘苍,“玉大人,你說(shuō)我怎么就攤上這事烘豌≡赝ィ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵扇谣,是天一觀的道長(zhǎng)昧捷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)罐寨,這世上最難降的妖魔是什么靡挥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮鸯绿,結(jié)果婚禮上跋破,老公的妹妹穿的比我還像新娘。我一直安慰自己瓶蝴,他們只是感情好毒返,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著舷手,像睡著了一般拧簸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上男窟,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天盆赤,我揣著相機(jī)與錄音,去河邊找鬼歉眷。 笑死牺六,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汗捡。 我是一名探鬼主播淑际,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了春缕?” 一聲冷哼從身側(cè)響起盗胀,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淡溯,沒(méi)想到半個(gè)月后读整,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咱娶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了强品。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膘侮。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖的榛,靈堂內(nèi)的尸體忽然破棺而出琼了,到底是詐尸還是另有隱情,我是刑警寧澤夫晌,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布雕薪,位于F島的核電站,受9級(jí)特大地震影響晓淀,放射性物質(zhì)發(fā)生泄漏所袁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一凶掰、第九天 我趴在偏房一處隱蔽的房頂上張望燥爷。 院中可真熱鬧,春花似錦懦窘、人聲如沸前翎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)港华。三九已至,卻和暖如春午衰,著一層夾襖步出監(jiān)牢的瞬間立宜,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工苇经, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赘理,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓扇单,卻偏偏與公主長(zhǎng)得像商模,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容