【安卓】腾讯Bugly之应用升级&热更新-热更新

如何接入请参阅 【安卓】腾讯Bugly之应用升级&热更新-接入篇

什么是热更新:

热更新能力是Bugly为解决开发者紧急修复线上bug,而无需重新发版让用户无感知就能把问题修复的一项能力。Bugly目前采用微信Tinker的开源方案,开发者只需要集成我们提供的SDK就可以实现自动下载补丁包、合成、并应用补丁的功能,我们也提供了热更新管理后台让开发者对每个版本补丁进行管理。

为什么使用Bugly热更新?

  • 无需关注Tinker是如何合成补丁的
  • 无需自己搭建补丁管理后台
  • 无需考虑后台下发补丁策略的任何事情
  • 无需考虑补丁下载合成的时机,处理后台下发的策略
  • 我们提供了更加方便集成Tinker的方式
  • 我们通过HTTPS及签名校验等机制保障补丁下发的安全性
  • 丰富的下发维度控制,有效控制补丁影响范围
  • 我们提供了应用升级一站式解决方案

官方视频教程 : 

课程1:Bugly热更新介绍

课程2:tinker-support插件使用

课程3:集成升级SDK

课程4:生成补丁包之痛我懂你

课程5:补丁包为何上传不上去?

课程6:普通打包的热更新、

课程7:渠道包的热更新

课程8:加固的热更新

ps :如果网页打不开,或者加载很慢。大家可以直接去腾讯视频官网,搜索 腾讯Bugly。

一、制作基准包

基准包就是我们后续升级或更新的依据,打出这个基准包之后,后续继续做出的一些调整都是依据基准包进行差别分析,从而生成补丁包。 

【安卓】腾讯Bugly之应用升级&热更新-热更新_第1张图片

1.点击右侧Gradle.

2.找到项目

3.展开Tasks

4.展开build

5.根据情况确定执行那种版本。

 

生成基准包之后, 在哪里可以找到

【安卓】腾讯Bugly之应用升级&热更新-热更新_第2张图片

  • assembleDebug  调试版
  • assembleRelease  正式版

二、修改BUG,生成补丁包

这里以一个基础的下标越界异常为例,修改前的代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button updata = findViewById(R.id.updata);
        Button bug01 = findViewById(R.id.bug01);
        Button bug02 = findViewById(R.id.bug02);
        TextView msg = findViewById(R.id.msg);

        list = new ArrayList();
        list.add("信息1");

        msg.setText("基线版本 : grade-4.0.0\n补丁版本 : 暂无补丁\n当前状态 : 当前为最新版本");
//        updata.setText("更新完成,点击显示提示信息");

        updata.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Beta.checkUpgrade(true,false);
            }
        });
        bug01.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "list.get(1):" + list.get(1), Toast.LENGTH_SHORT).show();
            }
        });
        bug02.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "list.get(1):" + list.get(0), Toast.LENGTH_SHORT).show();
            }
        });

    }

修改后的代码:

list = new ArrayList();
list.add("信息1");
list.add("信息2");

修改完我们的BUG之后,生成补丁包:

1.修改 tinker-support.gradle 内信息

1.1 对应基准包版本号(如果你把基准包删除了,自然对应不上,更别提那什么去生成补丁包)

1.2 确定tinkerId,理论上可以随意写,但是我们必须确保他的唯一性,而且格式尽量规范

1.3 生成补丁包

【安卓】腾讯Bugly之应用升级&热更新-热更新_第3张图片

ps :根据基准包的类别,生成对应的补丁包

生成好之后,就会有对应的文件:

【安卓】腾讯Bugly之应用升级&热更新-热更新_第4张图片

三、上传并下发补丁包

1.打开文件所在位置

【安卓】腾讯Bugly之应用升级&热更新-热更新_第5张图片

2.打开Bugly官网,登入自己的账号,点开集成的应用,找到应用升级,点击热更新,发布新补丁

【安卓】腾讯Bugly之应用升级&热更新-热更新_第6张图片

3.选择要发布的补丁(后缀为 7zip的,不要问为什么。。。)

【安卓】腾讯Bugly之应用升级&热更新-热更新_第7张图片

4.上传成功后,系统会提示上传成功,如果系统没有识别到目标版本,请自行百度(因为我没有遇到过这种情况,但是在集成的时候看到有人问这样的问题)

【安卓】腾讯Bugly之应用升级&热更新-热更新_第8张图片

5.下发范围自行确定,点击立即下发

四、注意事项

为什么我按照流程都走完了,我的设备却没有接到更新?

实际测试之后,未成功收到补丁分为两种情况,第一种就是网络延迟,这个就看看自己的网络状况而定了,而且Bugly也存在延迟,具体延迟时间没有计算过,但是不会超过全量更新的15分钟。第二种就是你自己的配置错误。我在看官方视频的时候,主讲人的AS能看到运行情况,我的AS上却没有(难道是因为我用的Linux?。脸黑-.-!!。。)

 

 

 

你可能感兴趣的:(【安卓】腾讯Bugly之应用升级&热更新-热更新)