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

移动热修复(Mobile Hotfix)是阿里云提供的全平台App热修复服务方案。产品基于阿里巴巴首创hotpatch技术,提供最细粒度热修复能力,让您无需等待实时修复应用线上问题。

移动热修复提供的热修复能力,让您对应用程序的控制更加自由。您可以使用HotFix:

  • 紧急修复线上问题。
  • 快速发布新鲜功能。

产品优势:(图片来自阿里云)

 

阿里云接入文档:https://help.aliyun.com/document_detail/53240.html?spm=a2c4g.11186623.6.546.ppnCPR

 

后台创建应用得到应用相应信息(右键查看大图像)

 

AndroidManifest.xml中间的application节点下添加如下配置:

<meta-data
android:name="com.taobao.android.hotfix.IDSECRET"
android:value="App ID" />
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="App Secret" />
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="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的效果:

生成有bug的apk文件保存。

下载补丁生成工具和调试工具,其中调试工具是一个apk文件

修改bug代码,运行生成 apk 文件。

 

现在有两个apk文件了,一个老的apk文件(有bug),一个新的apk文件(无bug),然后用工具就会生成一个补丁文件

运行下载的 SophixPatchTool 程序,按照要求导入apk文件,如图:(注:在设置中加入补丁生成文件路径

 

生成的是一个 jar包

 

可以利用测试工具进行本地测试

这里我们通过adb命令来将sophix-patch.jar文件上传到手机本地内存目录下,然后修复错误,

adb命令相关请看博客: http://www.cnblogs.com/zhangqie/p/8505252.html

 

结束应用,重启得到效果:(文字和图片都改变了)

 

 

也可以通过阿里云控制台进行apk补丁修复

 

然后通过测试工具,连接应用---》二维码扫描修复文件

 

 

 

官方Demo下载:https://github.com/aliyun/alicloud-android-demo/tree/master/hotfix_android_demo

 

转载于:https://my.oschina.net/zhangqie/blog/1632951

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值