您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機(jī)編程>

關(guān)于Android需要知道的一些事

大?。?/span>0.6 MB 人氣: 2017-09-25 需要積分:2

插件化、熱修復(fù) 、熱更新的理解

插件化 – apk 分為宿主和插件部分,插件在需要的時(shí)候才加載進(jìn)來(lái)

熱修復(fù) – 更新的類或者插件粒度較小的時(shí)候,我們會(huì)稱之為熱修復(fù),一般用于修復(fù)bug

熱更新 – 2016 Google 的 Android Studio 推出了Instant Run 功能 同時(shí)提出了3個(gè)名詞

“冷部署” – app需要重啟,比如繼承關(guān)系的改變或方法的簽名變化等。

“ 熱部署” – 方法內(nèi)的簡(jiǎn)單修改,無(wú)需重啟app和Activity。

“暖部署” – app無(wú)需重啟,但是activity需要重啟,比如資源的修改。

站在app開發(fā)者角度的“熱”是指在不發(fā)版的情況來(lái)實(shí)現(xiàn)更新

而Google提出的“熱”是指值是否需要重新啟動(dòng)。 - 同時(shí)在開發(fā)插件化的時(shí)候也有兩種情景

一種是插件與宿主apk沒有交互,只是在用戶使用到的時(shí)候進(jìn)行一次吊起

還有一種是與宿主有很多的交互

你認(rèn)為android熱更新框架哪個(gè)好:

1.阿里的熱更新框架已經(jīng)開源 了。但已經(jīng)很久沒有更新過(guò)新版本了。當(dāng)前的版本只支持到了 Android 4.4。由于 5.0 起新的 ART 虛擬機(jī)、更嚴(yán)格的 SELinux 策略以及對(duì) 64 位的支持之類的事,使得 Xposed 都在開發(fā)上做了很多調(diào)整。我不知道 Dexposed 現(xiàn)在是否支持,但至少阿里沒有開源。

2.在本地動(dòng)態(tài)執(zhí)行遠(yuǎn)端下發(fā)的代碼是極度危險(xiǎn)的行為。利用此方法執(zhí)行非法代碼等或用于繞過(guò) Google Play 等市場(chǎng)的審查是違反相關(guān)協(xié)議的,也是對(duì)用戶極度不負(fù)責(zé)任的行為。

3.在一些訪問(wèn)非常密集的地方使用熱更新可能會(huì)對(duì)效率產(chǎn)生相對(duì)比較大的影響,應(yīng)該避免使用。

4.我們可以對(duì) Java 的 Engine 進(jìn)行一些封裝成為一個(gè) HotPatch 類使得它更適合做熱更新的工作。

5.首先,檢查熱更新補(bǔ)丁的管道一定要建立在 https 上,因?yàn)橄掳l(fā)代碼是極其危險(xiǎn)的,如果被劫持,后果是無(wú)法想象的。其次,請(qǐng)求時(shí)最好自動(dòng)帶上 Android 版本、手機(jī)型號(hào)、地區(qū)、版本號(hào)等信息,以方便更精確地下發(fā),千萬(wàn)不能下發(fā)錯(cuò)。

6.Java在運(yùn)行時(shí)加載對(duì)應(yīng)的類是通過(guò)ClassLoader來(lái)實(shí)現(xiàn)的,ClassLoader本身是一個(gè)抽象來(lái),Android中使用PathClassLoader類作為Android的默認(rèn)的類加載器

7.我們的如果想做hotpatch,一定要保證我們的hotpacth dex文件出現(xiàn)在dexElements列表的前面。

二。常用的熱更新技術(shù)框架:

基于QQ空間的HotFix →→ 要使用到android dex分包方案→拆分dex的項(xiàng)目的話,可以參考一下谷歌的multidex方案實(shí)現(xiàn)。

大眾點(diǎn)評(píng)的NuWa←項(xiàng)目補(bǔ)丁自動(dòng)化做的很完整

alibaba/AndFix

阿里巴巴的DexPosed

dalvik_patch實(shí)現(xiàn)multidex

使用React-Native實(shí)現(xiàn)app熱部署的一次實(shí)踐

alibaba/AndFix

基礎(chǔ)

activity生命周期圖解

關(guān)于Android需要知道的一些事

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?