一文接入Android阿里Sophix热更新

这篇具有很好参考价值的文章主要介绍了一文接入Android阿里Sophix热更新。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        最近公司项目渐趋成熟,已经不需要经常更新版本,并且更新版本对客户的影响特别大,但是日常维护难免需要更新代码,因此热修复的技术,就比较迫切了。

        经过一段时间的对比,我们最终决定使用阿里的Sophix方案,因为它实在是太强大,而且接入及其简单。

        阿里网址如下:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

         应用申请这些因为过于简单,我这里就不说了,直接上代码

1、引入官方库,在app的build.gradle下,直接插入

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

2、心间自定义Application文件名为SophixStubApplication,继承自SophixApplication,代码如下:

public class SophixStubApplication extends SophixApplication {
    private final String TAG = "SophixStubApplication";
    // 此处SophixEntry应指定真正的Application,并且保证RealApplicationStub类名不被混淆。
    @Keep
    @SophixEntry(自定义的Application.class)
    static class RealApplicationStub {}
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
//         如果需要使用MultiDex,需要在此处调用。
         MultiDex.install(this);
        initSophix();
    }
    private void initSophix() {
        String appVersion = "0.0.0";
        try {
            appVersion = this.getPackageManager()
                    .getPackageInfo(this.getPackageName(), 0)
                    .versionName;
        } catch (Exception e) {
        }
        final SophixManager instance = SophixManager.getInstance();
        instance.setContext(this)
                .setUsingEnhance() // 适配加固模式,如果app使用了加固则需要加上此方法
                .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();
        instance.queryAndLoadNewPatch();
    }
}

简单说一下这里,基本是固定格式,最重要的代码是

instance.queryAndLoadNewPatch();

顾名思义,查询并加载新的补丁。这个一定要调用的,不然无法加载补丁,记得把SophixStubApplication注册到AndroidManifest.xml中,举个例子:

 <application
        android:name="xxxxxx.SophixStubApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:maxAspectRatio="2.4"
        android:resizeableActivity="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true">


 <meta-data
            android:name="com.taobao.android.hotfix.IDSECRET"
            android:value="" />
        <meta-data
            android:name="com.taobao.android.hotfix.APPSECRET"
            android:value="" />
        <meta-data
            android:name="com.taobao.android.hotfix.RSASECRET"
            android:value="" />

</application>

这样一套下来,阿里云热修复就已经成功集成到app中。

接再来再说说一些注意事项

1、不能热更新的场景

        1)、新增四大组件

        2)、修改了SophixStubApplication的内容

        3)、修改了AndroidManifest.xml的内容

        4)、其他配置文件

        除此之外,其他的一切皆可更新,包括.so文件

2、关于加固的app,如果采用了加固,去打补丁的时候一定要拿未加固前的apk去操作,否则无法加固文章来源地址https://www.toymoban.com/news/detail-718543.html

到了这里,关于一文接入Android阿里Sophix热更新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity2021接入讯飞语音听写(Android)

    使用的引擎工具: Unity2021.3.19 android-studio-2021.1.21 第一步: 新建一个Android项目(工程名字随便啦) 然后新建一个library (同上,库名自己命名吧) Android环境目前就算是初步建立好了。 第二步: 导包 libs文件夹里面放入这4个文件,arm64-v8a,armeabi-v7a,Msc.jar这三个文件是讯飞官

    2024年02月06日
    浏览(43)
  • Unity与Android交互(4)——接入SDK

    【前言】 unity接入Android SDK有两种方式,一种是把Unity的工程导出google project的形式进行接入,另一种是通过把Android的工程做成Plugins的形式进行接入。我们接入SDK基本都是将SDK作为插件的形式接入的。 对我们接入SDK的人来说,SDK也是分等级的: 第一等级:只有so文件,这种

    2024年02月16日
    浏览(43)
  • Unity接入IAP内购(Android,IOS)最新流程,第一篇:内购接入

    你好! 这将是一个系列的文章 第一篇 介绍客户端里支付的调起以及购买。 第二篇 介绍后台对购买结果的验证以及发货(IOS)。 第三篇 介绍后台对购买结果的验证以及发货(Android)。 第四篇 介绍后台对内购退单问题的处理(IOS欺诈检测以及欺诈信息反馈)。 我们是用的

    2024年04月13日
    浏览(46)
  • Android 沾包处理,以串口接入为例 (usb-serial-for-android)

    我们在通过串口、 TCP 、 UDP 等方式接收协议的时候,由于单次接收数据有限,导致一条命令可能被分割成多次进行接收。 这种情况下,就需要进行沾包处理,使多次接收的数据,合并成一条数据。本文通过博主本人一个真实的工作案例,实例讲解Android串口的接入和对于沾包

    2023年04月16日
    浏览(38)
  • Unity Android平台接入支付宝支付全流程

      Unity3D接入支付宝支付的流程非常复杂,涉及到很多方面(有任何问题都可以在评论区留言,我尽量尽快回复)所以写篇文章记录一下。支付宝支付和微信支付以及其它支付差不多,但是支付宝有沙箱环境,可以很方便地调试,所以选用支付宝平台作为演示。   此教程

    2024年04月29日
    浏览(45)
  • gromore穿山甲接入激励视频Android 原生

    第一步:准备好,穿山甲的gromore广告的appid,广告ID(注:广告ID和代码位ID要区分好),参考下图 第二步:引入sdk 在build.gradle项目中 repositories {         google()         jcenter()         mavenCentral()         maven {             url \\\'https://artifact.bytedance.com/repository/pangle\\\'        

    2023年04月13日
    浏览(74)
  • Unity 欧盟UMP用户隐私协议Android接入指南

    Google 欧盟地区用户意见征求政策 UMPSDK接入文档 mainTemplate.gradle 中引入 项目路径下 Assets/Plugins/Android/mainTemplate.gradle CustomUnityPlayerActivity 导入UMP相关的包 java类中新增字段 初始化UMPSDK方法 在下面代码注释 “加载广告”的地方处理你的开屏广告 调用 测试 TEST-DEVICE-HASHED-ID 为你的

    2024年02月03日
    浏览(58)
  • Android | 教你如何使用HwCameraKit接入相机人像模式

      HwCameraKit为开发者提供了一套兼容EMUI的相机能力开放接口,开发者可以通过HwCameraKit使自己的应用快速接入华为相机的私有能力,扩展应用的拍摄功能,为用户提供更好拍摄体验。   人像模式为HwCameraKit开放的多种相机模式其中之一,它将允许您: 获取华为相机的人像

    2024年02月22日
    浏览(36)
  • 【Android -- 开源库】腾讯 TBS 浏览器 SDK 接入

    在 Android 开发项目中,经常会用到 Webview 。而 WebView 是出了名的坑,各种 Bug。腾讯 TBS 浏览服务面向应用开发商和广大开发者,提供浏览增强,内容框架,广告体系,H5游戏分发,大数据等服务,能够帮助应用开发商大幅改善应用体验,有效提升开发,运营,商业化的效率。

    2024年02月11日
    浏览(42)
  • Android APP之接入AWS IOT实现发布订阅测试

    本文中是开发的APP控制端(开发语言是Android),来接入AWS IOT平台并且实现消息的订阅和发布。由于能力有限,若有错误的理解请指正。 AWS IOT的官方文档,不得不说文档写的真“详细”啊,看得云里雾里,只能参考互联网。 由于国内使用AWS物联网平台应用不多,关于Android APP的

    2024年01月23日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包