Android 热修复框架: Sophix基本使用

本文介绍了Android热修复框架Sophix的基本使用方法,包括集成步骤:添加依赖、替换Application、修改AndroidManifest、混淆配置。此外,还讲解了如何查询加载新补丁,使用SophixPatchTool生成补丁,并在阿里云平台上发布补丁。
摘要由CSDN通过智能技术生成

转载请注明链接:https://blog.csdn.net/feather_wch/article/details/87903926

Android 热修复框架: Sophix基本使用

版本号:2019/2/24-15:38


框架集成

添加依赖

1、build.gradle文件中添加热修复相关的依赖

根目录: build.gradle

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

    }
}

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

module app: build.gradle

dependencies {
    // Sophix-阿里热修复
    api 'com.aliyun.ams:alicloud-android-hotfix:3.2.8'
}
// implementation、compile都可以,看实际情况。

添加SophixStubApplication

2、添加热修复需要的SophixStubApplication,不要添加任何内容,除非有特殊需要。

@SophixEntry(BaseApplication.class)其中的Application就是原来自定义的Application(实现业务逻辑)。SophixStubApplication中绝对不要增加任何逻辑代码。

package com.hao.lib_base.base;

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

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;

import androidx.annotation.Keep;

/**
 * Sophix入口类,专门用于初始化Sophix,不应包含任何业务逻辑。
 * 此类必须继承自SophixApplication,onCreate方法不需要实现。
 * 此类不应与项目中的其他类有任何互相调用的逻辑,必须完全做到隔离。
 * AndroidManifest中设置application为此类,而SophixEntry中设为原先Application类。
 * 注意原先Application里不需要再重复初始化Sophix,并且需要避免混淆原先Application类。
 * 如有其它自定义改造,请咨询官方后妥善处理。
 */
public class SophixStubApplication extends SophixApplication {
   
    private final String TAG = "SophixStubApplication";
    // 此处SophixEntry应指定真正的Application,并且保证RealApplicationStub类名不被混淆。
    @Keep
    @SophixEntry(BaseApplication.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()
                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值