这篇文章将演示一下在项目中如何使用AndFix框架,如何实现动态修复app中的bugs。在看这篇文章之前请先看Android 热修复框架 AndFix (一) :https://bbs.520it.com/forum.php?mod=viewthread&tid=3014&extra=
AndroidFix项目github地址: https://github.com/LiuJunb/AndroidFix
情景分析:
1.假如一个登录界面,由于一个小小的问题导致点登录就蹦了!当发现这个bug的时候,app已经发布上线了。
2.此时,我们可以通过热修复完成这个bug ,而不需重新发布一个新app的版本。
1.新建一个项目
1.集成AndFix
为app下的gradle添加依赖,添加依赖有构建一下项目
2.新建Application的子类MainApplication
在onCreate()方法中进行下面的操作:
1.初始化PatchManager
2.加载补丁
3.添加补丁文件
(这里为了演示简单补丁文件只是从内存中获取,而不从网上获取,一般的情况是从服务器上下载)
3.配置MainApplication
4.添加权限
5.完成登录布局
布局中有:一张头像,输入用户名,输入密码,点击登录
6.完成MianActivity
在MianActivity中实例化所有的控件,然后给登录添加一个点击事件。
当点登录的时候,app就会蹦,因为username=null ; password=null;
这里是故意制造bugs
7.生成签名文件
1.点击Android studio中的: Buider->Generate Signed APk..—>Create New
2.最后生成一个签名文件:androidfix.jks
8.签名打包APP
1.点击Android studio中的: Buider->Generate Signed APk..—>Next
2.签名打包后就会生成一个正式签名的apk文件:app-release1.0.apk
9.发布运行出现bugs
1.在点击登录的时候蹦了
10.开始修复bugs
1.修改MainActivity中的点击登录里面的逻辑
11.签名打包APP
重复第8步
1.1.点击Android studio中的: Buider->Generate Signed APk..—>Next
2.生成一个修复bugs后的正式的apk:app-release1.0.fix.apk
12.制作补丁
1.下载制作补丁工具:apkpatch-1.0.3.zip
2.解压:制作补丁的工具:
3.把androidfix.jks , app-release1.0.apk与app-release1.0.fix.apk拷贝到刚解压补丁工具的文件夹中
4.启动DOS命令行,进入到补丁文件工具文件夹,执行:
5.执行了上面的命令就会在D:apk文中生成下面三个文件:
其中:app-release1-44c095be1acbdd01beed3afd478182f0.apatch是补丁文件
把这个补丁文件修改文件名为:out.apatch,方便使用。
13.把补丁push到手机的内存中
1.这里没有把补丁out.apatch放到服务器上去给客户端下载,而是直接push到手机上,目的方便测试
2.因为这里使用的模拟器是genymotion:把补丁文件push到下面文件夹;
14.从新启动APP
1.从新启动APP , APP在启动的时候会在sdcard下面加载补丁文件,如果补丁文件存在,就会自动添加补丁,这些代码在在发布app-release1.0.ap的时候已经写好。
2.重新启动后bugs已被修复,并不需要重新安装APP
3.至此APP登录出现的bug修复完成
更多资讯更多伙伴,尽在bbs.520it.com。
标签: studio安卓手机版
评论列表
初始化PatchManager 2.加载补丁 3.添加补丁文件 (这里为了演示简单补丁文件只是从内存中获取,而不从网上获取,一般的情况是从服务器上下载) 3.配置MainApplication 4.添加权限 5.完成登录布局 布局中有:一张头像,输入用户名,输入密码,点击登
ks 8.签名打包APP 1.点击Android studio中的: Buider->Generate Signed APk..—>Next 2.签名打包后就会生成一个正式签名的apk文件:app-release1.0.apk 9.发布运行出现bu
: 5.执行了上面的命令就会在D:apk文中生成下面三个文件: 其中:app-release1-44c095be1acbdd01beed3afd478182f0.apatch是补丁
在MianActivity中实例化所有的控件,然后给登录添加一个点击事件。 当点登录的时候,app就会蹦,因为username=null ; password=null; 这里是故意制造bugs 7.生成签名文件 1.点击Android studio中的: Buider->Gene
PP 1.从新启动APP , APP在启动的时候会在sdcard下面加载补丁文件,如果补丁文件存在,就会自动添加补丁,这些代码在在发布app-release1.