關(guān)于Android需要知道的一些事
插件化、熱修復 、熱更新的理解
插件化 – apk 分為宿主和插件部分,插件在需要的時候才加載進來
熱修復 – 更新的類或者插件粒度較小的時候,我們會稱之為熱修復,一般用于修復bug
熱更新 – 2016 Google 的 Android Studio 推出了Instant Run 功能 同時提出了3個名詞
“冷部署” – app需要重啟,比如繼承關(guān)系的改變或方法的簽名變化等。
“ 熱部署” – 方法內(nèi)的簡單修改,無需重啟app和Activity。
“暖部署” – app無需重啟,但是activity需要重啟,比如資源的修改。
站在app開發(fā)者角度的“熱”是指在不發(fā)版的情況來實現(xiàn)更新
而Google提出的“熱”是指值是否需要重新啟動。 - 同時在開發(fā)插件化的時候也有兩種情景
一種是插件與宿主apk沒有交互,只是在用戶使用到的時候進行一次吊起
還有一種是與宿主有很多的交互
你認為android熱更新框架哪個好:
1.阿里的熱更新框架已經(jīng)開源 了。但已經(jīng)很久沒有更新過新版本了。當前的版本只支持到了 Android 4.4。由于 5.0 起新的 ART 虛擬機、更嚴格的 SELinux 策略以及對 64 位的支持之類的事,使得 Xposed 都在開發(fā)上做了很多調(diào)整。我不知道 Dexposed 現(xiàn)在是否支持,但至少阿里沒有開源。
2.在本地動態(tài)執(zhí)行遠端下發(fā)的代碼是極度危險的行為。利用此方法執(zhí)行非法代碼等或用于繞過 Google Play 等市場的審查是違反相關(guān)協(xié)議的,也是對用戶極度不負責任的行為。
3.在一些訪問非常密集的地方使用熱更新可能會對效率產(chǎn)生相對比較大的影響,應(yīng)該避免使用。
4.我們可以對 Java 的 Engine 進行一些封裝成為一個 HotPatch 類使得它更適合做熱更新的工作。
5.首先,檢查熱更新補丁的管道一定要建立在 https 上,因為下發(fā)代碼是極其危險的,如果被劫持,后果是無法想象的。其次,請求時最好自動帶上 Android 版本、手機型號、地區(qū)、版本號等信息,以方便更精確地下發(fā),千萬不能下發(fā)錯。
6.Java在運行時加載對應(yīng)的類是通過ClassLoader來實現(xiàn)的,ClassLoader本身是一個抽象來,Android中使用PathClassLoader類作為Android的默認的類加載器
7.我們的如果想做hotpatch,一定要保證我們的hotpacth dex文件出現(xiàn)在dexElements列表的前面。
二。常用的熱更新技術(shù)框架:
基于QQ空間的HotFix →→ 要使用到android dex分包方案→拆分dex的項目的話,可以參考一下谷歌的multidex方案實現(xiàn)。
大眾點評的NuWa←項目補丁自動化做的很完整
alibaba/AndFix
阿里巴巴的DexPosed
dalvik_patch實現(xiàn)multidex
使用React-Native實現(xiàn)app熱部署的一次實踐
alibaba/AndFix
基礎(chǔ)
activity生命周期圖解
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
關(guān)于Android需要知道的一些事下載
相關(guān)電子資料下載
- 社區(qū)說|多才多藝: 探索 Android 應(yīng)用更多可能 13
- 浩辰軟件正式登陸上交所科創(chuàng)板 274
- 鴻蒙原生應(yīng)用,對開發(fā)者意味著什么? 77
- Android端自定義鈴聲 MobPush對安卓端自定義鈴聲的教程 531
- Android推送問題排查技巧 針對MobPush安卓端推送問題的解決辦法 54
- 如何使用Proxyman抓取Android的https請求? 43
- 基于OkHttp 3.10.0的源碼案例解析 26
- 基于MacroBenchmark的性能測試量化指標方案 77
- 圖像放大為什么還能保持清晰度 圖像縮放的原理是什么 45
- 智能門鎖產(chǎn)品中應(yīng)用的抗干擾低功耗觸摸感應(yīng)芯片 92