栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

阿里云Android热修复

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

阿里云Android热修复

gradle

allprojects {
    repositories {
      ...
        maven {
            url "http://maven.aliyun.com/nexus/content/repositories/releases"
        }
      ...
    }
}

app gragle

dependencies {
    ...
    compile 'com.aliyun.ams:alicloud-android-hotfix:3.3.5'
    ...
}

Admanifest.xml文件配置
写在application下面
添写自己对应的value




编写sophixapplication

import android.annotation.SuppressLint;
import android.app.Application;
import android.content.Context;
import android.content.pm.PackageManager;
import android.util.Log;

import androidx.annotation.Keep;
import androidx.multidex.MultiDex;

import com.taobao.sophix.PatchStatus;
import com.taobao.sophix.SophixApplication;
import com.taobao.sophix.SophixEntry;
import com.taobao.sophix.SophixManager;
import com.taobao.sophix.listener.PatchLoadStatusListener;

public class SophixStubApplication extends SophixApplication {
    private final String TAG = "SophixStubApplication";
    // 此处SophixEntry应指定真正的Application,并且保证RealApplicationStub类名不被混淆。
    @Keep
    @SophixEntry(MApplication.class)
    static class RealApplicationStub {}
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
//         如果需要使用MultiDex,需要在此处调用。
         MultiDex.install(this);
        initSophix();
    }
    @SuppressLint("WrongConstant")
    private void initSophix() {
        String appVersion = "2.1";
        try {
            appVersion = this.getPackageManager()
                    .getPackageInfo(this.getPackageName(), 20)
                    .versionName;
        } catch (Exception e) {
        }
        final SophixManager instance = SophixManager.getInstance();
        instance.setContext(this)
                .setAppVersion(appVersion)
                .setSecretMetaData("APP ID", "App Secret", "RSA密钥")
                .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_SUCCESS) {
                            Log.i(TAG, "sophix load patch success!");
                        } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
                            // 如果需要在后台重启,建议此处用SharePreference保存状态。
                            Log.i(TAG, "sophix preload patch success. restart app to make effect.");
                        }
                    }
                }).initialize();
    }
}

在我们自己application的oncreate中加入这句代码

 @Override
    public void onCreate() {
        super.onCreate();
		...
		...
        SophixManager.getInstance().queryAndLoadNewPatch();
    }

下载补丁打包工具

官方地址下载





然后选择全量发布就行了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号