測試阿里移動熱修復框架3.0.2的修復能力以及穩定性。
要點總結
1.如手機上已安裝一個客戶端并使用熱修復補丁進行修復,再選擇相同版本號的apk覆蓋安裝,那么熱修復補丁不會被覆蓋,會引起異常。這種情況通常出現在測試階段,為測試結果不被干擾,務必先卸載已安裝的客戶端再安裝apk。升級到版本號高的客戶端不會有異常。
2.熱啟動修復測試,支持修改無參數方法和有參方法(參數中有String、int、boolean基本類型測試通過),支持修改帶返回值的方法。
3.冷修復測試通過:新增Field、修改Field值、修改Field類型、刪除Field。
新增類測試通過。
4.資源修復測試時,不能修改strings.xml(因打包工具異常影響,此問題待確認)。
5.測試修復資源時遇到打補丁工具錯誤提示,工具版本3.0.0日志顯示版本2.0.0,無法生成補丁,相同apk包在mac下可成功打補丁。
6.Activity、Fragment中修改方法、調用API、修改View隱藏等測試通過。
7.Broadcast Reciver動態注冊,修復傳參、onRecive成功,靜態注冊修復成功,冷啟動。
實測用例
熱修復打包工具存在不穩定的問題,可能影響修復時打補丁包的進度,此問題已與官方反饋。當遇到問題時,可嘗試使用其它的平臺打包工具。
此熱修復框架具有較高的修復能力,對四大組件,方法和類的增改都有修復的能力。滿足一般改bug時的需要。
性能影響
阿里移動熱修復基于方法修復的原理,在尋找方法指針時會增加一定性能開銷。
針對同一個復雜頁面,在集成阿里移動熱修復前后的性能開銷差異見下圖。


從截圖可以看出,在集成熱修復之前開啟頁面就已達到較高的CPU占用率,但高占用率的時間持續較短,因此只是偶有卡斷的現象。集成熱修復后,CPU高負載時間變長,卡頓增多。解決此問題唯有對復雜頁面進行重構,性能調優。
官方傳送
移動熱修復產品文檔:
https://help.aliyun.com/product/51340.html
demo、sdk、打包工具、測試工具下載:
https://help.aliyun.com/document_detail/53239.html?spm=5176.product51340.6.550.7ssVy1
管理控制臺:
https://hotfix.console.aliyun.com/