multidex+DexKnifePlugin實(shí)現(xiàn)分包

同花順第一個(gè)口頭任務(wù):apk分包


android官網(wǎng)上有使用multidex解決配置方法數(shù)超過64K的應(yīng)用。
參考該文章,實(shí)現(xiàn)了dex分包。

為了方便以后可能忘記的自己查詢,把文章中的關(guān)鍵部分拷貝在下面

但是demo中方法數(shù)超過64k是一件比較難的事情。為了測(cè)試是否分包成功,我們決定將指定類放置于第二個(gè)dex中。

首先,為了查看dex中包含的類,查看了AndroidStudioo的文章反編譯apk。不過我直接用winRAR解壓了apk(打開winRAR,在winRAR中可以查看apk內(nèi)容并解壓),然后再用dex2jar將dex轉(zhuǎn)換成jar,最后用jd-gui查看。

//其中,使用dex2jar的時(shí)候,和原文略有不同
d2j-dex2jar D:\Decompile\classes2.dex -o D:\Decompile\classes2.jar
//指定轉(zhuǎn)化后的jar的名稱和目錄,其他指令請(qǐng)直接輸入d2j-dex2jar回車查看

關(guān)鍵點(diǎn)在于如何將某類放置于第二個(gè)dex。最終搜索到一種方法:
使用dexKnife,這個(gè)插件可以將某個(gè)類放置于maindex(不超過65536方法數(shù)的前提下),將某類放置于第二個(gè)dex或者更靠后。

最終,調(diào)試完成。設(shè)置過的test.class位于classes2.dex,而MainActivity.class位于classes.dex。
以上方法可行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近項(xiàng)目apk方法數(shù)即將達(dá)到65536上限,雖然通過瘦身減少了一些方法數(shù),但是隨著更多sdk的接入,終究還是避免不...
    the_q閱讀 16,748評(píng)論 6 39
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,901評(píng)論 25 709
  • 引言 如果App引用的庫(kù)太多,方法數(shù)超過65536后無法編譯。這是因?yàn)閱蝹€(gè)dex里面不能有超過65536個(gè)方法。為...
    喜歡丶下雨天閱讀 10,751評(píng)論 2 20
  • 總在夜里想你,因?yàn)榱?xí)慣,也因?yàn)闊o人可以替代你。 我曾試圖恨你,卻因此更恨自己; 我曾嘗試忘記你,卻在酒醉后更想你;...
    的確良閱讀 595評(píng)論 0 0
  • 我想和你虛度時(shí)光,比如低頭看魚 比如把茶杯留在桌子上,離開 浪費(fèi)它們好看的陰影 我還想連落日一起浪費(fèi),比如散步 一...
    喵77就是麻朵閱讀 782評(píng)論 0 1

友情鏈接更多精彩內(nèi)容