項目上線以後,發現BUG須要修復(好比安卓兼容性等測試難以發現的問題),頻繁的更新影響用戶體驗android
靜默下載,耗費流量少,打完補丁後馬上生效,不用重啓apksql
3.1:使用andfix,打出差別包,使用補丁的方式安裝
3.2:缺陷:只能支持源碼級別函數的修改(全局變量、新增、刪除方法都是無效的)安全
基於andfix原理,每次版本更新後,以前版本打的熱修復補丁都會失效,這也符合咱們上圖的修復步驟。函數
由於每次熱修復的修改,都會被合併到下個版本中了測試
使用sqlLite記錄每次打包的結果,用於避免重複打包,字段以下:url
咱們目前使用VersionCode做爲版本號spa
通常而言,每次熱修復補丁的體積僅爲4KB左右,僅涵蓋兩個版本差別部分線程
目前試驗了oppo、小米、魅族、moto、nexus,涵蓋android 4.0~6.0;blog
僅在oppo上發現了打補丁包會出現閃退的狀況,可是再次進入,發現補丁包已經生效了md5
把打補丁這個過程放到子線程以後,oppo崩潰的狀況沒再出現
會。由於下載補丁須要涉及到讀取和寫入外置存儲設備權限,固然了,你也能夠把補丁包放置在內部存儲設備上避免這個問題
不會,只要打成功了,就永久可用了。只有apk版本升級以後,纔會使以前打上的補丁包失效
不能夠,andFix源碼裏面有對修復包攜帶的祕鑰信息進行判斷,安全性很高。