關(guān)于Tinker熱修復(fù)

Android 應(yīng)用的Dex有64K引用限制,超過限制后就不得不優(yōu)化工程代碼將方法數(shù)限制在64K以內(nèi)或者使用分包方案,比如在build.grdle中使用mutiDexEnabled 開啟分包,

android {

    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 28
        multiDexEnabled true
    }
    ...
}

在開啟分包方案骆撇,并依賴分包庫后,可以通過multiDexKeepFile來聲明主Dex文件中需要的類

android {
    buildTypes {
        release {
            multiDexKeepFile file 'multidex-config.txt'
            ...
        }
    }
}

Tinker在應(yīng)用開啟分包后,需要將自己的類也放到主Dex中才能完成補(bǔ)丁包的生成以及后續(xù)的熱修復(fù)過程拱燃,所以Tinker生成了自己的keep文件,然后通過腳本修改multiDexKeepFile的值力惯,達(dá)到維持所需類在主Dex中的目的碗誉。
Android 5.0之前(API 21 之前)使用Dalvik執(zhí)行應(yīng)用代碼,默認(rèn)情況下Dalvik限制每個(gè)APK只能使用單個(gè)dex文件夯膀,這個(gè)通過分包方案可以繞過這個(gè)限制诗充,即通過分包支持庫管理其它Dex文件和其所包含代碼的訪問,但是在Android 5.0 以后 (API 21以后)系統(tǒng)使用ART诱建,其原生支持從APK中加載多個(gè)Dex文件蝴蜓,ART在應(yīng)用安裝時(shí)只需預(yù)編譯,將多個(gè)dex文件編譯成單個(gè)的.oat文件俺猿,供系統(tǒng)執(zhí)行茎匠,因此當(dāng)minSdkVersion大于等于21后不再需要分包庫的支持,只需開啟mutiDexEnabled即可押袍,但同時(shí)multiDexKeepFile屬性將會(huì)失效诵冒,這個(gè)就導(dǎo)致Tinker的Keep文件失效,從導(dǎo)致了之后補(bǔ)丁包生成失敗谊惭,那么只能通過另一種方式去指定分包方案了,如下:

dexOptions{
 ...
 additionalParameters = ['--main-dex-list=' + projectDir + '/maindexlist.txt']
}

這種方式在minSdkVersion大于21后依然生效汽馋,但是maindexlist.txt的文件配置依然是個(gè)問題,如果不嫌麻煩的話可以將需要放到主Dex中的類按照聲明規(guī)則逐一的人工添加進(jìn)去圈盔,最好的方式使用插件或腳本生成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末豹芯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子驱敲,更是在濱河造成了極大的恐慌铁蹈,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件众眨,死亡現(xiàn)場離奇詭異握牧,居然都是意外死亡容诬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門沿腰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來览徒,“玉大人,你說我怎么就攤上這事矫俺≈ㄑ常” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵厘托,是天一觀的道長友雳。 經(jīng)常有香客問我,道長铅匹,這世上最難降的妖魔是什么押赊? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮包斑,結(jié)果婚禮上流礁,老公的妹妹穿的比我還像新娘。我一直安慰自己罗丰,他們只是感情好神帅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萌抵,像睡著了一般找御。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绍填,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天霎桅,我揣著相機(jī)與錄音,去河邊找鬼讨永。 笑死滔驶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卿闹。 我是一名探鬼主播揭糕,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锻霎!你這毒婦竟也來了插佛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤量窘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后氢拥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚌铜,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锨侯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冬殃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片囚痴。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖审葬,靈堂內(nèi)的尸體忽然破棺而出深滚,到底是詐尸還是另有隱情,我是刑警寧澤涣觉,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布痴荐,位于F島的核電站,受9級特大地震影響官册,放射性物質(zhì)發(fā)生泄漏生兆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凯砍,春花似錦燕差、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拴事,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間映皆,已是汗流浹背挤聘。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捅彻,地道東北人组去。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像步淹,于是被迫代替她去往敵國和親从隆。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345