微信热修复Tinker使用
2017-05-27 15:49
351 查看
Tinker是微信前段时间开源的Android热补丁方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。
同时,还有许多其他公司使用的热补丁方案,如比如QZone,AndFix,Dexposed等等;网上有许多他们之间的比较文章,大家可以参考后选择适合自己的。本文就简单介绍下Tinker的使用。
添加依赖
这一步很简单,照着 github接入指南 上做就好了。
首先在项目的build.gradle中添加 tinker-patch-gradle-plugin 依赖
然后在app的gradle文件 app/build.gradle添加tinker的库依赖以及apply tinker的gradle插件.
在app/builde.gradle文件的dependencies外面添加一些配置 :
自定义Application类
1.写一个SimpleAppLike类继承自DefaultApplicationLike,并添加注解。使用注解生成application类demo.com.tinkerdemo.SimpleApp,并将其添加到manifest中
1111.png
2.重写SimpleAppLike里面的onBaseContextAttached(Context base)方法,并添加registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback)方法。
3.在SimpleAppLike中实现你Application 类需要实现的内容。
简单使用
1.先将你的app运行到手机上,并复制一份到第一步中的oldApk目录
2.修改app的代码,例如修改文字,Toast等,在实际中即修复bug。
2.在android-studio右边点开gradle窗口,选择tinkerPatchDebug,并运行生成补丁包
222.png
3.在app->build->outputs->tinkerPatch目录下选择patch_signed_7zip.apk;并拷到指定手机目录(指定的运行目录,见步骤5)
333.png
4.在app中执行更新,退出后再进入app,就能看到修改后的效果。
5.图中path为指定目录,在执行TinkerInstaller.onReceiverUpgradePatch()修复时需要传入的path即为存放生成的补丁包的位置。
123.png
以上介绍了Tinker的使用方法,作者是个菜鸟,难免有讲的不好的地方,请见谅。
示例Demo
这是Tinker的项目地址,也有很好的讲解,可以深入学习。
官方demo:tinker-sample-android
注:官方demo 需要作为project单独打开
同时,还有许多其他公司使用的热补丁方案,如比如QZone,AndFix,Dexposed等等;网上有许多他们之间的比较文章,大家可以参考后选择适合自己的。本文就简单介绍下Tinker的使用。
添加依赖
这一步很简单,照着 github接入指南 上做就好了。
首先在项目的build.gradle中添加 tinker-patch-gradle-plugin 依赖
buildscript { dependencies { classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.1') } }
然后在app的gradle文件 app/build.gradle添加tinker的库依赖以及apply tinker的gradle插件.
dependencies { //可选,用于生成application类 compile('com.tencent.tinker:tinker-android-anno:1.7.1') //tinker的核心库 compile('com.tencent.tinker:tinker-android-lib:1.7.1') } ... ... //apply tinker插件 apply plugin: 'com.tencent.tinker.patch'
在app/builde.gradle文件的dependencies外面添加一些配置 :
tinkerPatch { //有问题的apk的地址 oldApk = "F://app_bug.apk" ignoreWarning = false useSign = true buildConfig{ tinkerId = "1.0" } packageConfig{ configField("TINKER_ID", "1.0") } dex{ dexMode = "jar" pattern = ["classes*.dex", "assets/secondary-dex-?.jar"] loader = ["com.tencent.tinker.loader.*", "com.tinkertest.Application"] } lib{ pattern = ["lib/armeabi/*.so","lib/arm64-v8a/*.so","lib/armeabi-v7a/*.so","lib/mips/*.so","lib/mips64/*.so","lib/x86/*.so","lib/x86_64/*.so"] } res{ pattern = ["res/*", "assets/*", "resources.arsc", "AndroidManifest.xml"] largeModSize = 100 } sevenZip{ zipArtifact = "com.tencent.mm:SevenZip:1.1.10" }
自定义Application类
1.写一个SimpleAppLike类继承自DefaultApplicationLike,并添加注解。使用注解生成application类demo.com.tinkerdemo.SimpleApp,并将其添加到manifest中
1111.png
2.重写SimpleAppLike里面的onBaseContextAttached(Context base)方法,并添加registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback)方法。
@Override public void onBaseContextAttached(Context base) { super.onBaseContextAttached(base); MultiDex.install(base); TinkerInstaller.install(this); } @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) { getApplication().registerActivityLifecycleCallbacks(callback); }
3.在SimpleAppLike中实现你Application 类需要实现的内容。
简单使用
1.先将你的app运行到手机上,并复制一份到第一步中的oldApk目录
2.修改app的代码,例如修改文字,Toast等,在实际中即修复bug。
2.在android-studio右边点开gradle窗口,选择tinkerPatchDebug,并运行生成补丁包
222.png
3.在app->build->outputs->tinkerPatch目录下选择patch_signed_7zip.apk;并拷到指定手机目录(指定的运行目录,见步骤5)
333.png
4.在app中执行更新,退出后再进入app,就能看到修改后的效果。
5.图中path为指定目录,在执行TinkerInstaller.onReceiverUpgradePatch()修复时需要传入的path即为存放生成的补丁包的位置。
123.png
结语
以上介绍了Tinker的使用方法,作者是个菜鸟,难免有讲的不好的地方,请见谅。示例Demo
这是Tinker的项目地址,也有很好的讲解,可以深入学习。
官方demo:tinker-sample-android
注:官方demo 需要作为project单独打开
相关文章推荐
- Android热修复之微信Tinker使用初探
- Android热修复之微信Tinker使用初探
- android 微信热修复Tinker接入过程以及使用方法
- 微信热修复框架Tinker的使用
- 【Android】微信热修复 Tinker 的集成和使用
- 微信热修复框架的使用心得体会------Tinker
- Android 微信热修复 Tinker 接入过程及使用方法
- Android集成微信Tinker热修复及使用
- 微信热修复tinker及tinker server快速接入
- Tinker 热修复 demo 使用指南
- android使用微信与支付宝支付在小米miui系统上ui线程被异常kill的bug修复
- 关于微信Tinker热修复自己的集成方式以及问题
- 关于使用腾讯 Bugly 平台 Tinker开源热修复框架的 项目集成
- 微信热修复开源库 Tinker imitator 原理篇
- Android微信Tinker热更新详细使用
- 微信热修复tinker及tinker server快速接入
- Tinker 热修复框架模拟使用
- 热修复Tinker简单使用
- 源码分析微信热修复框架Tinker的类加载过程
- [置顶] Android热修复-微信Tinker