首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

QFix探索之路——手Q热补丁轻量级方案

QFix 是手Q团队近期推出的一种新的 Android 热补丁方案,在不影响 app 运行时性能(无需插桩去 preverify)的前提下有效地规避了 dalvik 下”unexpected DEX”的异常...性能无法提升,需要改变 插桩的解决方案会影响到运行时性能的原因在于:app 内的所有类都预埋引用一个独立 dex 的空类,导致安装 dexopt 阶段的 preverify 失败,运行时将再次 verify...可以看出,Qzone 的插桩方案是突破了条件2的限制(统一去掉了所有引用类的 preverify 标志),而微信 Tinker 的 dex 增量合成方案是突破了条件3的限制(将补丁和 app dex 合成后替换...preverify 的,这种情况条件2本来就是不满足的,就没有必要预先引用了,所以可以推断出只需要针对补丁类在原先 app 所对应的 dex 进行预先引用即可。...可以看出,新的方案是很轻量级的实现,只需一个很简单的 jni 方法调用就能解决问题,既不用构建时预先插桩去 preverify,也不用下载补丁后进行 dex 的全量合成。

1.5K40
您找到你想要的搜索结果了吗?
是的
没有找到

Android插件化基础3----Android的编译打包流程详解

(三)、ProGuard工作原理 ProGuard 由shrink、optimize、obfuscate和preverify四个步骤组成,每个步骤都是可选的,需要那些步骤都可以在脚本中配置。...Input jars、Library jars——>shrink ——>Shrunk code——>optimize ——>Optim.code——>obfuscate——>Obfusc.code ——>preverify...proguard.jar:Progurad的四项核心功能shrink.optimize,obfuscate和preverify的执行都是由progurad.jar来完成,不过proguard.jar只能通过领命行方式来使用...dontskipnonpubliclibraryclasses # 指定不去忽略非公共的库的类的成员 -dontskipnonpubliclibraryclassmembers # 不做预校验,preverify...是proguard的4个步骤之一 # Android不需要preverify,去掉这一步可加快混淆速度 -dontpreverify # 有了verbose这句话,混淆后就会生成映射文件 # 包含有类名

1.9K22

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券