Android:热修复(阿里hotfix使用)
来源:互联网 发布:普吉岛4日游 知乎 编辑:程序博客网 时间:2024/05/20 06:26
一、引入所需要的依赖:
1.在工程根目录的build.gradle中加入如下代码
allprojects { repositories { jcenter() maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" } }}
2.在工程中app目录下的build.gradle中加入jar包依赖:
dependencies { api fileTree(include: ['*.jar'], dir: 'libs') api 'com.aliyun.ams:alicloud-android-hotfix:+'}
<meta-data android:name="com.taobao.android.hotfix.IDSECRET" android:value="AppKey" /> <meta-data android:name="com.taobao.android.hotfix.APPSECRET" android:value="AppSecret" /> <meta-data android:name="com.taobao.android.hotfix.RSASECRET" android:value="RSA密钥" />
三、在app目录下AndroidManifest.xml中下配置权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
四、在app目录下的proguard-rules.pro中加入混淆代码:
-keepclassmembers class com.jcgroup.ease.EaseApplication { public <init>();}-keep class com.jcgroup.ease.SophixStubApplication$RealApplicationStub
五、创建一个继承SophixApplication的Application类:
/** * hotfix专用Application类,无其他业务 */public class SophixStubApplication extends SophixApplication { /** * 此处SophixEntry应指定真正的Application, 这里为MyApplication, 并且保证RealApplicationStub类名不被混淆。 */ @Keep @SophixEntry(MyApplication.class) static class RealApplicationStub { } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); initSophix(); } /** * hotfix初始化工作 */ private void initSophix() { final SophixManager instance = SophixManager.getInstance(); instance.setContext(this) .setAppVersion(VersionUtil.getAppVersion(this)) .setSecretMetaData(null, null, null) .setEnableDebug(true) .setEnableFullLog() .setPatchLoadStatusStub(new PatchLoadStatusListener() { @Override public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) { if (code == PatchStatus.CODE_LOAD_RELAUNCH) { // 新补丁生效需要重启, 强制退出; SophixManager.getInstance().killProcessSafely(); } } }).initialize(); }}
六、配置Application, 将原有的换成自定义SophixApplication类(app下的AndroidManifest.xml):
<application android:name=".SophixStubApplication">
七、在原有的Application中的onCreate中加入获取补丁包的代码:
//hotfix拉取补丁 SophixManager.getInstance().queryAndLoadNewPatch();
1.对以上工程打2个apk,一个旧的apk,一个新的apk,即修复bug的代码。
2.从以下地址下载补丁包生成工具:
http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_windows.zip?spm=5176.doc53247.2.4.DAipia&file=SophixPatchTool_windows.zip
3.打开工具,分别在旧包和新包中选择对应的apk文件,点设置,设置打包签名的信息,然后点击"GO!",过会生成"sophix-patch.jar"文件,这个就是补丁包。
4.上传补丁文件到阿里云,管理控制台 -> 产品与服务 -> 移动服务 -> 移动热修复 -> APP管理 -> APP列表 -> 点某个应用的管理按钮 -> 应用版本列表中添加版本号 -> 版本详情中上传该版本的补丁文件,可以有多个。
九、下载并使用补丁:
SophixManager.getInstance().queryAndLoadNewPatch(); //在适当的位置加上此句,执行后会下载补丁文件,有些补丁需要重启才能使用,有些可直接使用无需重启
阅读全文
0 0
- Android:热修复(阿里hotfix使用)
- android热修复-阿里Hotfix最新版(Sophix)
- 阿里HotFix热修复的简单使用
- AndHotFix 阿里HotFix(热修复)
- Android 热修复方案--阿里百川HotFix
- Android热修复学习(HotFix)
- android热修复技术 HotFix
- 阿里云HotFix热修复应用
- android 非侵入式热修复框架Hotfix使用
- android热修复--阿里热修复使用和源码分析
- 如何使用阿里百川hotfix热修复功能(一)
- 如何使用阿里百川hotfix热修复功能(二)
- 如何使用阿里百川hotfix热修复功能(三)
- 如何使用阿里百川hotfix热修复功能(一)
- 如何使用阿里百川hotfix热修复功能(二)
- 如何使用阿里百川hotfix热修复功能(三)
- Android打补丁 热修复(HotFix)小结
- Android热修复框架HotFix分析拓展
- java基本数据类型的默认值
- JS实现弹出下载对话框及常见文件类型的下载
- 转:[Java] Access restriction: The type FtpClient is not accessible due torestriction on required libr
- vue-router学习(一)
- 判断app是不是只能32bit运行方法
- Android:热修复(阿里hotfix使用)
- [Leetcode] 471. Encode String with Shortest Length 解题报告
- LintCode之8 旋转字符串
- 优化数据访问
- omnipeek注册机被windows defender强制删除的问题
- 解决程序编码格式正确,cmd命令行(DOS窗口)输出不正确的问题
- java 堆和栈
- 机房登陆窗体
- java使用jacob将word,excel,ppt转成html