android 热修复框架目前了解的有qq空间分包方案的HotFix 和Nuwa,还有阿里开源的AndFix和Dexposed.

https://github.com/dodola/HotFix

https://github.com/jasonross/Nuwa

https://github.com/alibaba/AndFix

https://github.com/alibaba/dexposed

关于项目的原理可以看下两位大神的博客学习下:

http://blog.csdn.net/lmj623565791/article/details/49883661

http://blog.csdn.net/qxs965266509/article/details/50390325

由于AndFix只能更改类中的方法实现,而Dexposed目前还不支持Art(5.0在测试中),

所以研究了一下HotFix及Nuwa的实现(dalvik)。

HotFix及Nuwa的实现原理基本一致,都是在Application中将patch包写到第一个dex文件中然后加载修改后的类。由于Nuwa的patch包按照文档说明的流程本人未实现,所以着重研究了下HotFix的实现。

HotFix 文档中只是给出了一个解决混淆的方案,未注明流程,下面是经过测试成功的一个打混淆patch包的流程:

1、在第一次打包apk的时候需要在混淆文件中加入一行代码,输出混淆前后的映射:

mapping.txt

2、打包apk成功后,会在build\outputs\mapping下生成一个mapping文件,此文件需要保持,以后打包混淆patch需要此文件。

3、将修改的类使用eclipse打包jar(注:修改的类不能是在Application中初始化的类)

4、使用android-sdk-windows\tools\proguard\bin\proguardgui.bat 工具对jar包进行混淆

混淆配置文件就使用打包apk时的配置文件,工具的Obfuscation--Apply mapping选项选中,并将打包apk生成的mapping文件引入,执行jar的混淆操作。

5、混淆jar包执行  dx --dex --output=生成的dex包   混淆包  ,生成的dex包就是我们需要的path_dex.jar

原文地址: http://my.oschina.net/u/992018/blog/628736

Android 热修复 HotFix 混淆apk生成patch包方案相关推荐

  1. 【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )

    文章目录 一.下载官方示例源码 二.处理 TINKER_ID 问题 三.编译 debug 包 四.安装 APK 并运行 五.修改 Gradle 构建脚本中的文件名称 六.修改程序逻辑代码 七.生成 p ...

  2. Android热修复学习之旅——HotFix完全解析

    在上一篇博客 Android热修复学习之旅开篇--热修复概述中,简单介绍了各个热修复框架的原理,本篇博客我将详细分析QQ空间热修复方案. Android dex分包原理介绍 QQ空间热修复方案基于An ...

  3. 【错误记录】Tinker 热修复示例运行报错 ( patch receive fail: /storage/emulated/0/patch_signed_7zip.apk, code: -2)

    文章目录 一.报错信息 二.解决方案 参考 [Android 热修复]运行 Tinker 官方示例 博客 ; 一.报错信息 Tinker 热修复中 , 将生成的 patch 包 app-debug-p ...

  4. [读书笔记] 深入探索Android热修复技术原理 (手淘技术团队)

    热修复技术介绍 探索之路 最开始,手淘是基于Xposed进行了改进,产生了针对Android Dalvik虚拟机运行时的Java Method Hook技术--Dexposed. 但该方案对于底层Da ...

  5. 热修复系列之一----Android 热修复原理篇及几大方案比较

    热修复说白了就是"即时无感打补丁",比如你们公司上线一个app,用户反应有重大bug,需要紧急修复.2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也 ...

  6. Android 热修复原理篇及几大方案比较

    热修复说白了就是"即时无感打补丁",比如你们公司上线一个app,用户反应有重大bug,需要紧急修复.2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也 ...

  7. Android 热修复方案分析

    绝大部分的APP项目其实都需要一个动态化方案,来应对线上紧急bug修复发新版本的高成本.之前有利用加壳,分拆两个dex结合DexClassLoader实现了一套全量更新的热更方案.实现原理在Andro ...

  8. Android热修复技术选型参考

    背景 热修复就是通过下发补丁包,让已安装的客户端动态更新,用户不用重新安装APP,就能够修复软件缺陷. 热修复技术对比 1.公司角度 大致可以分为阿里系和腾讯系和其他,如下: 阿里系 Dexposed ...

  9. Android热修复技术选型——三大流派解析

    原文来源:阿里百川 2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案.阿里AndFix以 及微信Tinker,它们在原理各有 ...

最新文章

  1. 保持寄存器和输入寄存器的区别_串行移位寄存器74HC595
  2. STM32F10x 使用SysTick的延时函数
  3. python3(八)sys模块
  4. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)
  5. html5语义化标记元素_语义HTML5元素介绍
  6. MySQL线上优化_线上MySQL千万级大表,如何优化?
  7. tp框架使用心得(六)——分页查询
  8. Struts2 框架
  9. python打开excel执行vba代码_xlwings:操作Excel,通过宏调用Pyhton(VBA调Python)-Go语言中文社区...
  10. java nlpir_NLPIR分词工具的使用(java环境下)
  11. 解决vs2019属性管理器里面没有Microsoft.Cpp.x64.user
  12. dns备用服务器信息,dns服务器地址(dns首选和备用填多少)
  13. 他在北京反诈骗15年,守住2亿人密码安全
  14. 正则表达式:回车和换行的区别
  15. Android应用内换肤
  16. 【Python网络蜘蛛】:基础 - 爬虫的基本原理
  17. 什么是区块链的共识机制?
  18. 模式分解(2NF、3NF)
  19. SIGGRAPH中海洋的研究学习
  20. 关于数据存储的三道面试题,你会吗?

热门文章

  1. 怎样维护成功的开源项目
  2. 简单的外壳(shell)
  3. YOLO v3解析与实现
  4. 交替方向乘子算法(ADMM)
  5. linux下网络排错与查看
  6. 学习Matlab强大的符号计算(解方程)
  7. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170328
  8. 寻找免费的阿里云云盾隐秘购买入口,申请并下载ssl证书(https证书)的详细步骤
  9. rabbitmq 延迟队列_框架系列|中间件RabbitMQ必看17道面试题
  10. Redis批量操作详解及性能分析