美文网首页
android分包

android分包

作者: Hilary_Lu | 来源:发表于2018-05-15 13:47 被阅读17次

    前言

    只有android5.0之前需要解决分包问题,5.0之后dex在apk安装的时候汇总,启动时不存在分包问题。

    google官方分包

    地址:https://developer.android.com/studio/build/multidex?hl=zh-CN

    插件分包

    github地址:https://github.com/ceabie/DexKnifePlugin#dexknife%E4%B8%AD%E6%96%87
    插件分包的优势在于:将指定使用通配符包名分包到第二个dex中。

    无论在google分包还是插件分包,自定义Application都会默认加入到首包,但是LauncherAcitivity并不一定会加入首包,执行MultiDex.install(this)会将分dex加入到DexClassLoader。如果在执行MultiDex.install(this)前就进入首页LauncherAcitivity,而LauncherAcitivity并未加入首包,则会出现ClassNotFoundException

    自定义Application初始化中的所有类必须加入首包中,即使是在MultiDex.install(this)之后调用也不行

    例如bean.getId在Application的onCreate调用,那么这个bean会被加入首包,如果强行将bean移除首包,那么首包中也会有这个bean和getId这一个方法,但是调用会报ClassNotFoundException

    相关文章

      网友评论

          本文标题:android分包

          本文链接:https://www.haomeiwen.com/subject/qbojdftx.html