android--------阿里 Sophix移动热修复

生也有涯,知也无涯。这篇文章主要讲述android--------阿里 Sophix移动热修复相关的知识,希望能为你提供帮助。
移动热修复(Mobile Hotfix)是阿里云提供的全平台App热修复服务方案。产品基于阿里巴巴首创hotpatch技术,提供最细粒度热修复能力,让您无需等待实时修复应用线上问题。
移动热修复提供的热修复能力,让您对应用程序的控制更加自由。您可以使用HotFix:

  • 紧急修复线上问题。
  • 快速发布新鲜功能。
产品优势:(图片来自阿里云)
android--------阿里 Sophix移动热修复

文章图片

 
阿里云接入文档:https://help.aliyun.com/document_detail/53240.html?spm=a2c4g.11186623.6.546.ppnCPR
 
后台创建应用得到应用相应信息(右键查看大图像)
android--------阿里 Sophix移动热修复

文章图片

 
androidManifest.xml中间的application节点下添加如下配置:
< meta-data android:name="com.taobao.android.hotfix.IDSECRET" android:value="https://www.songbingjia.com/android/App ID" /> < meta-data android:name="com.taobao.android.hotfix.APPSECRET" android:value="https://www.songbingjia.com/android/App Secret" /> < meta-data android:name="com.taobao.android.hotfix.RSASECRET" android:value="https://www.songbingjia.com/android/RSA密钥" />

 
Application代码:
public class SophixStubApplication extends Application { public interface MsgDisplayListener { void handle(String msg); }public static MsgDisplayListener msgDisplayListener = null; public static StringBuilder cacheMsg = new StringBuilder(); @Override public void onCreate() { super.onCreate(); initHotfix(); }private void initHotfix() { String appVersion; try { appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName; Log.i("appVersion",appVersion); } catch (Exception e) { appVersion = "1.0.0"; }SophixManager.getInstance().setContext(this) .setAppVersion(appVersion) .setAesKey(null) //.setAesKey("0123456789123456") .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); } } }).initialize(); } }

 
第一次运行,有bug的效果:
android--------阿里 Sophix移动热修复

文章图片

生成有bug的apk文件保存。
下载补丁生成工具和调试工具,其中调试工具是一个apk文件
android--------阿里 Sophix移动热修复

文章图片

修改bug代码,运行生成 apk 文件。
 
现在有两个apk文件了,一个老的apk文件(有bug),一个新的apk文件(无bug),然后用工具就会生成一个补丁文件
运行下载的 SophixPatchTool 程序,按照要求导入apk文件,如图:(注:在设置中加入补丁生成文件路径)
android--------阿里 Sophix移动热修复

文章图片

 
生成的是一个 jar包
android--------阿里 Sophix移动热修复

文章图片

 
可以利用测试工具进行本地测试
这里我们通过adb命令来将sophix-patch.jar文件上传到手机本地内存目录下,然后修复错误,
adb命令相关请看博客:  http://www.cnblogs.com/zhangqie/p/8505252.html
android--------阿里 Sophix移动热修复

文章图片

 
结束应用,重启得到效果:(文字和图片都改变了)
android--------阿里 Sophix移动热修复

文章图片

 
 
也可以通过阿里云控制台进行apk补丁修复
android--------阿里 Sophix移动热修复

文章图片

 
然后通过测试工具,连接应用---》二维码扫描修复文件
android--------阿里 Sophix移动热修复

文章图片

 
 
 
官方Demo下载:https://github.com/aliyun/alicloud-android-demo/tree/master/hotfix_android_demo
【android--------阿里 Sophix移动热修复】 

    推荐阅读