阿里热更新最新集成

前言:希望帮助不会的小伙伴们!

一:阿里官方文档

阿里热修复文档

二:集成步骤:

1.先注册:

先创建应用
选择管理控制平台

添加产品

json拷贝到根目录下面

2.查看Appkey,RSA,AppSecret:


点击热修复

查看Appkey,RSA,Appsecret

3.AS(android studio)配置

  • gradle远程仓库依赖, 打开项目找到app的build.gradle文件,添加如下配置:

添加maven仓库地址:
代码块

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

添加gradle坐标版本依赖:

compile 'com.aliyun.ams:alicloud-android-hotfix:3.2.8' 
  • 添加权限






READ_EXTERNAL_STORAGE权限属于Dangerous Permissions,仅调试工具获取外部补丁需要,不影响线上发布的补丁加载,调试时请自行做好android6.0以上的运行时权限获取。

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



备注:appid啥的都是上面图片显示的,记得到上面找哦,记得填写进去哦。

  • 新建SophixStubApplication
package com.doublez.stock;

import android.app.Application;
import android.content.Context;
import android.util.Log;

import androidx.annotation.Keep;

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(Myapplaction.class)
    static class RealApplicationStub {
//Myapplaction 是自己applaction哦,记得替换
}
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
//         如果需要使用MultiDex,需要在此处调用。
//         MultiDex.install(this);
        initSophix();
    }
    private void initSophix() {
        String appVersion = "1.03";
        try {
            appVersion = this.getPackageManager()
                    .getPackageInfo(this.getPackageName(), 0)
                    .versionName;
        } catch (Exception e) {
        }
        final SophixManager instance = SophixManager.getInstance();
        instance.setContext(this)
                .setAppVersion(appVersion)
                .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_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();
    }
}
  • AndroidManifest.xml 文件中引用 SophixStubApplication ,做如下配置:

        
        
        
        
            
                

                
            
        
    
  • 查询补丁包

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //查询并加载补丁包
        SophixManager.getInstance().queryAndLoadNewPatch();
    }
}

备注:集成As配置集成基本完成。(没有拉,现在要打补丁了哦)


打补丁
四 :打补丁
  • 补丁下载工具
  • Mac版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_macos.zip

  • Windows版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_windows.zip

  • Linux版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_linux.zip

  • 调试工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/hotfix_debug_tool-release.apk

备注:我用的是mac版,要注意哦,mac版本的
MAC下需要把本工具移到“应用程序”(/Applications/)目录下,否则可能有异常问题。

  • mac 版就是将这个软件拖到应用程序里面就可以啦。


  • 点击应用打开, 主对话框


旧包:<必填> 选择基线包路径(有问题的APK)。
新包:<必填> 选择新包路径(修复过该问题APK)。
日志:打开日志输出窗口。
高级:展开高级选项,见1.2.2。
设置:配置其他信息。
GO!:开始生成补丁。

  • 设置对话框


  • 都配置好就GO吧,就可以打出补丁包拉!

五 补丁包上传发布

image.png
  • 补丁发布
image.png
  • 灰色测试,可以选更新几台设备
image.png
  • 通知成功,用户已经热跟新,后台显示


    image.png

重启app,就可以看到我们热跟新的效果拉!

你可能感兴趣的:(阿里热更新最新集成)