初衷
被線上BUG折磨的死去活來,自己做事有不細心,緊急修復的問題不是漏了這個就是多了那個??吹轿⑿砰_源了TInker(源自DOTA2 地精修補匠),并且項目也在使用Bugly,所以就試著用一下,挺順利且達到了想要的效果。寫文檔記錄學習經歷,以及整理使用方法。
對比
暫時只了解了阿里百川的HotFix和微信的Tinker。
HotFix更適用于線上的緊急BUG,因為它不需要重啟應用就能夠生效,缺點是不能新加類或資源。
Tinker則功能更為強大,功能強大的背后就意味著性能上的占用。Tinker基本可以完成小功能的發(fā)布,但是對手機配置就要求高一些,測試的手機只有50M左右就無法修復了,APK本身12M。
現在發(fā)現應用寶上必須使用加固工具,然而一旦使用了加固工具,tinker就無法工作了。
Tinker
與Bugly搭配后不再需要APP開發(fā)者自己實現后臺,并且還可以選擇下發(fā)規(guī)則,比如開發(fā)設備、系統(tǒng)版本,還支持補丁回滾。
正文
沒怎么寫過文章,所以廢話還挺多,請見諒。
基準包:正常版本的APK包。
補丁包:修復基準包的BUG。
打基準包的步驟:
1 修改tinker-support.gradle文件中的tinkerId字段

2 在android studio中找到Gradle窗口,一般在右側

3 等編譯完成后,在app\build\bakApk\中找到對應時間的APK包,這個就是基準包了

打補丁包的步驟:
1 修改BUG
2 修改
3 修改舊APK文件夾名稱

4 修改這幾處文件與左側一致,tinkerId 修改后綴為patch與基準包區(qū)別開

5 ?在gradle中選取紅色的雙擊編譯

6 登錄bugly 選擇發(fā)布新版補丁

7 選擇紅框中的補丁文件

8 如果基準包未進行聯(lián)網上報,就會出現右側的紅色提示。
上傳完后根據情況選擇開發(fā)設備、全景設備、自定義

9 回滾補丁后會回滾之前已發(fā)布的補丁,并把安裝過的程序還原到舊的狀態(tài)。
疑問驗證
1 是否支持打了補丁后繼續(xù)打補?。?/p>
支持、新的補丁也要用基準包的tinkerid。
2 看到阿里百川好像說可以兼容加固(使用加固前的基準包打補丁)tinker是否可以?
不行,
3 是否可以修改版本號?
不能
待考證的問題
是否必須保存原來的APK包才能對其進行補丁,(應該不用,但是還是要確認下)。
是否支持無線補丁循環(huán)?(以及無線循環(huán)的補丁,回滾問題)。