HotFix移动热修复详解
来源:互联网 发布:如果南京是首都知乎 编辑:程序博客网 时间:2024/06/05 13:22
集成步骤:
1、打开阿里云选择产品------移动热修复:
2、登录:
3、点击控制台:
4、产品与服务点击移动热修复:
5、创建App
7、返回控制台管理页面已经有创建的应用--------点击管理--------得到Appid、AppSecret和RSA秘钥点击添加版本创建补丁版本:
注:这里的补丁版本要和清单文件中的VersionName,MyApplication中的HotFix初始化的appVersion的版本号一致,不一致不能进行修复
快速集成:
1、配置AndroidManifest文件(这三个值在上面已经得到)
在AndroidManifest.xml
中间的application
节点下添加如下配置:
<meta-dataandroid:name="com.taobao.android.hotfix.IDSECRET"android:value="App ID" /><meta-dataandroid:name="com.taobao.android.hotfix.APPSECRET"android:value="App Secret" /><meta-dataandroid:name="com.taobao.android.hotfix.RSASECRET"android:value="RSA密钥" />
将上述value中的值分别改为通过平台HotFix服务申请得到的App Secret和RSA密钥,出于安全考虑,建议使用setSecretMetaData这个方法进行设置,详见1.3.2.1的方法说明。
2、 混淆配置 (要使用混淆就添加,我的项目中没有用到)
#基线包使用,生成mapping.txt-printmapping mapping.txt#生成的mapping.txt在app/buidl/outputs/mapping/release路径下,移动到/app路径下#修复后的项目使用,保证混淆结果一致#-applymapping mapping.txt
#hotfix-keep class com.taobao.sophix.**{*;}-keep class com.ta.utdid2.device.**{*;}#防止inline-dontoptimize
3、在 Moudle的 build.gradle中添加:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' }}repositories { mavenLocal() //阿里云仓库 maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" } mavenCentral() jcenter() flatDir { dirs 'libs' }}
4、在dependencies中添加引用:
compile 'com.aliyun.ams:alicloud-android-hotfix:3.1.1'
libs目录下添加jar包
utdid4all-1.1.5.3_proguard.jar'
4、在MyApplicstion中做初始化操作:
/** * 热修复标记 */ public static Boolean state=false; public static MsgDisplayListener msgDisplayListener = null; public static StringBuilder cacheMsg = new StringBuilder(); @Override public void onCreate() { super.onCreate(); app = this; initHotfix(); } private void initHotfix() { String appVersion; try { appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName; } catch (Exception e) { appVersion = "2.0.0"; } SophixManager.getInstance().setContext(this) .setAppVersion(appVersion) .setAesKey(null) .setEnableDebug(true) .setPatchLoadStatusStub(new PatchLoadStatusListener() { @Override public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) { String msg = new StringBuilder("").append("Mode:").append(mode) .append(" Code:").append(code) .append(" Info:").append(info) .append(" HandlePatchVersion:").append(handlePatchVersion).toString(); if (msgDisplayListener != null) { msgDisplayListener.handle(msg); } else { cacheMsg.append("\n").append(msg); } if(code== PatchStatus.CODE_LOAD_RELAUNCH) { SophixManager.getInstance().killProcessSafely(); } } }).initialize(); }
5、在需要更新的地方调下面的方法即可:
SophixManager.getInstance().queryAndLoadNewPatch();
阅读全文
0 0
- HotFix移动热修复详解
- Hotfix热修复混淆
- iOS HotFix热修复
- HotFix热修复示例
- Android热修复学习(HotFix)
- hotfix热修复遇到问题
- AndHotFix 阿里HotFix(热修复)
- android热修复技术 HotFix
- 移动端热修复方案——阿里百川HotFix
- Android打补丁 热修复(HotFix)小结
- Android热修复框架HotFix分析拓展
- Android热修复原理(HotFix)初涉
- Android热修复之HotFix初探
- Android热修复之Hotfix接入流程
- Android:热修复(阿里hotfix使用)
- 阿里云HotFix热修复应用
- android热修复-阿里Hotfix最新版(Sophix)
- 阿里HotFix热修复的简单使用
- BZOJ1179【APOI2009】ATM <Tarjan>
- 安装kinetic版的moveit失败或找不到相关包问题
- LeetCode: 22. Generate Parentheses
- Udacity作业——TensorFlow notMNIST代码及输出结果——Udacity学习笔记
- 删除链表中重复放入结点
- HotFix移动热修复详解
- C语言运算符
- 注解
- Electron打包总结, 附例子(windows+linux)
- ACM贪心算法之活动安排以及算法证明
- Windows下安装和配置MongoDB
- Java基础之集合框架--Collections.synchronizedList() 线程安全的List
- 前端之css-flex
- 将jar包打入maven库中的命令