Android 热修复AndFix的简单使用介绍
2017-03-13 19:53
471 查看
转载请注明出处:http://blog.csdn.net/darling_R/article/details/61925743
AndFix是一个Android App的在线热补丁框架。使用此框架,我们能够在不重复发版的情况下,在线修改App中的Bug。AndFix就是 “Android Hot-Fix”的缩写。
就目前来说,AndFix支持Android 2.3到6.0版本,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime。
AndFix 的补丁文件是以 .apatch 结尾的文件。
AndFix是阿里巴巴开源项目。
1,在build.gradle文件添加依赖
2。在application中做一些初始化操作
3。将项目(此时是有bug的)打包,命名为oldapk;
4。修改项目bug
5。将修改后的项目打包,命名为newapk;
6。下载官方提供的工具apkpatch
7,执行命令行
8。会在-o后面的路径中生成指定的文件夹,将里面的xxx.apatch文件放到服务器上修改名称为patch.apatch,这样用户在用使用old.apk的时候会下载这个补丁文件,并立即生效
AndFix是一个Android App的在线热补丁框架。使用此框架,我们能够在不重复发版的情况下,在线修改App中的Bug。AndFix就是 “Android Hot-Fix”的缩写。
就目前来说,AndFix支持Android 2.3到6.0版本,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime。
AndFix 的补丁文件是以 .apatch 结尾的文件。
AndFix是阿里巴巴开源项目。
1,在build.gradle文件添加依赖
dependencies { compile 'com.alipay.euler:andfix:0.3.1@aar' }
2。在application中做一些初始化操作
public class BaseApplication extends Application { public PatchManager mPatchManager; @Override public void onCreate() { super.onCreate(); initPatch(); downPatch(); } private void initPatch() { // 初始化patch管理类 mPatchManager = new PatchManager(this); // 初始化patch版本 mPatchManager.init("1.0"); // 加载已经添加到PatchManager中的patch mPatchManager.loadPatch(); //删除所有已加载的patch文件 mPatchManager.removeAllPatch(); } /** * 下载补丁文件 */ private void downPatch() { String target = Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch.apatch"; Log.e("monkey", "target--> " + target); HttpUtils httpUtils = new HttpUtils();//为了简便使用了xUtils下载文件 String url = "http://xxx/patch.apatch";//下载地址 httpUtils.download(url, target, false, true, new RequestCallBack<File>() { @Override public void onSuccess(ResponseInfo<File> responseInfo) { String path = responseInfo.result.getAbsolutePath(); Log.e("monkey", "下载成功--> " + path); try { //添加patch,只需指定patch的路径即可,补丁会立即生效 mPatchManager.addPatch(path); initData(); } catch (IOException e) { e.printStackTrace(); } } @Override public void onFailure(HttpException e, String s) { Log.e("monkey", "下载失败-->"); } }); } private void initData() { List<String> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i + ""); } Toast.makeText(BaseApplication.this, list.get(list.size()), Toast.LENGTH_SHORT).show();//故意写成数组越界bug }
3。将项目(此时是有bug的)打包,命名为oldapk;
4。修改项目bug
5。将修改后的项目打包,命名为newapk;
6。下载官方提供的工具apkpatch
7,执行命令行
命令 : apkpatch.bat -f new.apk -t old.apk -o output1 -k debug.keystore -p android -a androiddebugkey -e android -f <new.apk> :新版本 -t <old.apk> : 旧版本 -o <output> : 输出目录 -k <keystore>: 打包所用的keystore -p <password>: keystore的密码 -a <alias>: keystore 用户别名 -e <alias password>: keystore 用户别名密码
8。会在-o后面的路径中生成指定的文件夹,将里面的xxx.apatch文件放到服务器上修改名称为patch.apatch,这样用户在用使用old.apk的时候会下载这个补丁文件,并立即生效
相关文章推荐
- Android热修复AndFix简单使用
- Android_AndFix支付宝热修复简单使用
- Android MediaPlayer使用方法简单介绍
- 【Android】MediaPlayer使用方法简单介绍
- android ContentProvider简单介绍及使用
- Android使用bootstrap简单介绍
- Android-AsyncTask简单介绍和使用
- android交叉编译简单介绍(在android中使用C/C++库)
- Android Design Support Library 中控件的使用简单介绍
- android studio使用教程(四)Gradle简单介绍
- Android Design Support Library 中控件的使用简单介绍(一)介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android
- Android使用Font Awesome简单介绍
- Android MediaPlayer使用方法简单介绍---(setdatasource)
- Android MediaPlayer使用方法简单介绍
- Android MediaPlayer使用方法简单介绍
- android Handler 简单使用介绍
- Android MediaPlayer使用方法简单介绍
- M3U8的简单介绍和在Android中使用…
- Android之ListView控件使用简单介绍
- Android Design Support Library 中控件的使用简单介绍(一)