Android基于AndFix的热修复实现
2017-01-22 15:45
447 查看
热修复出现也有一定时间了,一直没有去好好了解,这段时间刚好有需要,去了解了一下,顺便做个小demo和教程
本文基于Android studio环境,请大家参考各自的环境,解决相应问题,
demo中只是通过热修复修改了点击后的toast文案,是热修复的一个简单应用吧
热修复不能修改界面UI的改变,只能改变逻辑方法。
1、首先添加AndFix的依赖包
2、 创建一个自己的MyApplication extends Application,在MyApplication中创建一个PatchManager对象,
在onCreate()方法中,对PathManager进行初始化、设置版本号、加载已经加载过的apatch文件,代码如下
3、在启动时(第一个activity或者需要时),从服务器下载对应的apatch文件,然后用PatchManager加载apatch文件的本地路径,代码如下,“”中应放置.apatch文件的本地路径
4、添加混淆
5、如何生成apatch文件呢?这时候需要用工具来进行生成,首先要将老版本的代码打成release包的apk文件,然后将新版本的代码也打包成release包的apk文件,必须要签名文件进行签名,
注意:打包之前先进行一下build-->clean操作,否则apkpatch可能会执行错误,然后用apkapatch工具,进行比对,我上传了apkpatch的工具包链接如下,其中包含了使用方法,大家可以了解一下。
http://download.csdn.net/detail/ak341221/9743172
顺便说下apakpatch的使用方法吧
.bat文件是提供给windows使用的
.sh文件是提供给mac环境使用的,这里以mac环境为例讲解
1、打开终端
2、将.sh文件拖入终端 不要敲回车,在终端显示的文字后面继续输入命令
-f 新版本路径 -t 老版本路径 -o 输出目录路径 -k 打包所用的keystore文件路径 -p keystore文件的密码 -a keystore文件别名 -e keystore文件别名密码
敲完上面的命令,然后敲回车,如果有错误提示,检查一下自己的路径是否不对,如果提示smail文件不存在,则可以在file文件夹内创建一个smail文件夹再进行命令行之行。
3、执行成功后,会在file文件夹内生成一个******.apatch文件,这个文件就是我们需要的
6、 demo说明
因为没有自己搭建服务器,所以我用了个笨方法来测试热修复功能是否成功,
在demo中,第二个activity在onCreate时,会下载一个图片,存放在相册文件夹下的子文件夹,图片下载成功后会提示下载成功,
我用文件管理工具把上面第5步生成.apatch文件放在了这个子文件夹下面(pc操作),
然后手机上点击这个界面的按钮“加载修复文件”,把.apatch文件加载进来,这个时候老版本的弹出“老版本”的toast,
退出应用再进入,到第二个activity 再点击“加载修复文件”,提示“热修复成功”的toast,
说明热修复已经实现。
demo地址(仅供参考):http://download.csdn.net/detail/ak341221/9743205
希望能对大家有所帮助。
本文基于Android studio环境,请大家参考各自的环境,解决相应问题,
demo中只是通过热修复修改了点击后的toast文案,是热修复的一个简单应用吧
热修复不能修改界面UI的改变,只能改变逻辑方法。
1、首先添加AndFix的依赖包
2、 创建一个自己的MyApplication extends Application,在MyApplication中创建一个PatchManager对象,
在onCreate()方法中,对PathManager进行初始化、设置版本号、加载已经加载过的apatch文件,代码如下
3、在启动时(第一个activity或者需要时),从服务器下载对应的apatch文件,然后用PatchManager加载apatch文件的本地路径,代码如下,“”中应放置.apatch文件的本地路径
4、添加混淆
5、如何生成apatch文件呢?这时候需要用工具来进行生成,首先要将老版本的代码打成release包的apk文件,然后将新版本的代码也打包成release包的apk文件,必须要签名文件进行签名,
注意:打包之前先进行一下build-->clean操作,否则apkpatch可能会执行错误,然后用apkapatch工具,进行比对,我上传了apkpatch的工具包链接如下,其中包含了使用方法,大家可以了解一下。
http://download.csdn.net/detail/ak341221/9743172
顺便说下apakpatch的使用方法吧
.bat文件是提供给windows使用的
.sh文件是提供给mac环境使用的,这里以mac环境为例讲解
1、打开终端
2、将.sh文件拖入终端 不要敲回车,在终端显示的文字后面继续输入命令
-f 新版本路径 -t 老版本路径 -o 输出目录路径 -k 打包所用的keystore文件路径 -p keystore文件的密码 -a keystore文件别名 -e keystore文件别名密码
敲完上面的命令,然后敲回车,如果有错误提示,检查一下自己的路径是否不对,如果提示smail文件不存在,则可以在file文件夹内创建一个smail文件夹再进行命令行之行。
3、执行成功后,会在file文件夹内生成一个******.apatch文件,这个文件就是我们需要的
6、 demo说明
因为没有自己搭建服务器,所以我用了个笨方法来测试热修复功能是否成功,
在demo中,第二个activity在onCreate时,会下载一个图片,存放在相册文件夹下的子文件夹,图片下载成功后会提示下载成功,
我用文件管理工具把上面第5步生成.apatch文件放在了这个子文件夹下面(pc操作),
然后手机上点击这个界面的按钮“加载修复文件”,把.apatch文件加载进来,这个时候老版本的弹出“老版本”的toast,
退出应用再进入,到第二个activity 再点击“加载修复文件”,提示“热修复成功”的toast,
说明热修复已经实现。
demo地址(仅供参考):http://download.csdn.net/detail/ak341221/9743205
希望能对大家有所帮助。
相关文章推荐
- JAndFix: 基于Java实现的Android实时热修复方案
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复之AndFix原理探索(黑科技热修复的Java层实现)
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- android:AndFix热修复实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复之AndFix
- 关于Android热修复技术(AndFix—阿里)
- Android-AndFix 热修复框架原理及源码解析
- Android热修复---AndFix
- Android 热修复-AndFix
- Android AndFix 热修复 使用
- (4.2.32.4)android热修复之Andfix方式:Andfix的实践应用
- Android热修复实践应用--AndFix
- AndFix 实现热修复功能