博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里移动热修复Sophix使用体验
阅读量:6226 次
发布时间:2019-06-21

本文共 1813 字,大约阅读时间需要 6 分钟。

hot3.png

Android 热修复是个热门技术,各大公司都推出了自己的热修复框架,阿里也推出了全新的Sophix,我决定写个Demo 测试一下,看了阿里的快速接入指南感觉挺简单的,没想到这么简单的事情需要注意的地方也不少,下面就说一下体验的整个过程以及整个过程中应该注意的问题:

一、编写有Bug的测试Demo

//testObj=new TestClass();        //testObj.str="hello world";        txt_test=(TextView)findViewById(R.id.txt_test);        btn_click=(Button)findViewById(R.id.btn_click);        txt_test.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(getApplicationContext(),"测试补丁",Toast.LENGTH_LONG).show();                Toast.makeText(getApplicationContext(),testObj.str,Toast.LENGTH_LONG).show();            }        });

对象不进行声明点击按钮就会导致崩溃。

###二、按照快速接入方法接入 (1)打开链接:进行程序的相关配置和Sophix 补丁修复代码编写 (2) 先打包一个有bug 的apk,然后再修复Demo中的bug 再打包一个apk,下载阿里的补丁生成工具 (3) 用阿里的补丁生成工具生成补丁,然后上传到阿里云平台,并发布补丁。

(4) 安装有Bug 的Demo 然后重启,提示补丁应用成功时既测试成功。

###三、需要注意的地方

(1) 阿里建议采用setSecretMetaData(idSecret, appSecret, rsaSecret) 方法代替在AndroidManifest里的设置。AndroidManifest 配置内容如下:

理解错误: 我以为是可以删除配置内容直接利用函数即可,结果怎么测试都不行。正确的理解是配置内容还需要有,但是可以不设置配置的值,如下:

(2) 当把setDebug 设为false 时,怎么也不起作用。后来发现是因为签名不一致。特别提醒:一定要保存好签名,另外在打补丁的时候移动保持签名信息一致。

(3) 增加补丁应用成功后重启代码,如下:

Intent mStartActivity = new Intent(getBaseContext(), MainActivity.class);                int mPendingIntentId = 123456;                PendingIntent mPendingIntent = PendingIntent.getActivity(getBaseContext(), mPendingIntentId,    mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);                AlarmManager mgr = (AlarmManager)getBaseContext().getSystemService(Context.ALARM_SERVICE);                mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);                System.exit(0);

感悟: 事情虽小,只有亲身实践过才知道其中的坑,真是应了那句话:“千看万看,不如经手一遍啊”!

转载于:https://my.oschina.net/zhugenqiang/blog/1512267

你可能感兴趣的文章
Editplus的设置
查看>>
wget使用技巧
查看>>
转:Bash脚本15分钟进阶指导
查看>>
excel表格如何限制单元格输入内容
查看>>
认识一下ES6的Reflect和Proxy
查看>>
升级cordova
查看>>
Alpha 冲刺 (10/10)
查看>>
简述mysql数据库配置文件
查看>>
count
查看>>
P3518 [POI2011]strongbox
查看>>
JS判断数组方法大全
查看>>
【20181019T3】比特战争【最小生成树思想】
查看>>
Python之初识模块
查看>>
iphone-common-codes-ccteam源代码 CCUICalloutView.m
查看>>
鐵打的營盤
查看>>
成功来自刻意练习
查看>>
LR11生成图表后修正Analysis中显示请求的地址长度过短50个字符的问题
查看>>
架构之美阅读笔记之二
查看>>
11.时间序列分析狠
查看>>
Java之Annotation
查看>>