分类

安卓应用安卓游戏攻略资讯

安卓软件

SDKHotfix(SDK 热修复工具包)1.3 最新免费版有什么新功能图标

SDKHotfix(SDK 热修复工具包)1.3 最新免费版

大小:1,605.6

语言:简体中文系统:Android

类别:系统工具时间:2025-03-27

24小时打鱼游戏 棋盘打鱼游戏SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力. 优点无兼容问题实时生效修复成功率高达99.9%在用户规模千万级别的app中验证过,可信赖支持补丁异常自动失效,不用再担心补丁造成crash啦~ 使用方法1.添加配置和开关1.1在项目gradle.proper...

SDKHotfix(SDK热修复工具包)是一款让SDK开发者能快速赋予SDK热修复的能力.

优点

无兼容问题

实时生效

修复成功率高达99.9%

在用户规模千万级别的app中验证过,可信赖

支持补丁异常自动失效,不用再担心补丁造成crash啦~

使用方法

1.添加配置和开关

1.1在项目gradle.properties中添加开关和配置

#接入第一步:添加配置和开关
#Application模式,Robust需要是Application才能插入代码和打补丁
isAppModule=false
#Application模式下开启这个就可以打补丁
isPatchModule=false
#你的业务sdk的包名
sdkPackageName=com.feelschaotic.samplesdk
#是否开启混淆,一般情况下sdk默认不混淆
isProguard=false
#业务sdk版本号,请保持三位,且无后缀,且在打包前就要确定好版本,确保版本打在包中
SDK_VERSION=0.0.1
#业务sdk的upload_artifact_id
SDK_ARTIFACT_ID=MY-SAMPLES-SDK

1.2在sdkbuild.gradle中加入配置替换原有的 applyplugin:'com.android.library'

//注意!!一定要放在文件最前面
//applyplugin表示该项目会使用指定的插件,sdk对应的是com.android.library
if(isAppModule.toBoolean()){
  applyplugin:'com.android.application'
  if(isPatchModule.toBoolean()){
    //制作补丁时将这个打开,auto-patch-plugin紧跟着com.android.application
    applyplugin:'auto-patch-plugin'
  }
  applyplugin:'robust'
}else{
  applyplugin:'com.android.library'
}

applyfrom:rootProject.getRootDir().getAbsolutePath()+"/packPlugin.gradle"

1.3加入buildConfigField

//视情况而定,如果你在初始化热更sdk时的传入的版本号有另外的取值方式,也可以不加此buildConfig
android{
defaultConfig{
 buildConfigField"String","SDK_VERSION",""${SDK_VERSION}""
 buildConfigField"String","SDK_ARTIFACT_ID",""${SDK_ARTIFACT_ID}""
}
}

1.4在sdkbuild.gradle中配置签名

android{
 //签名的配置
  signingConfigs{
    debug{

    }
    //release版本的签名
    release{
      //签名的一些信息
      keyAlias'key0'
      keyPassword'123456'
      storeFilefile('./hotfix.jks')
      storePassword'123456'
    }
  }
}

1.5配置混淆

复制粘贴配置到sdkbuild.gradle

android{
 buildTypes{
    innerTest{
      //...
      matchingFallbacks=['debug','release']
    }
    release{
      signingConfigsigningConfigs.release
      minifyEnabledisProguard.toBoolean()//此处取的isProguard就是1.1在项目`gradle.properties`中添加的isProguard开关
      proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    }
  }

  sourceSets{
     main{
       //Application和Library清单文件处理方式不同
       if(isAppModule.toBoolean()){
         manifest.srcFile'src/main/debug/AndroidManifest.xml'
       }else{
         manifest.srcFile'src/main/release/AndroidManifest.xml'
       }
     }
   }
}

复制粘贴示例sdk的lib-proguard-rules.pro到业务SDKmodule目录下,修改文件中的包名

接着配置好sdk自己的混淆规则

android{
  defaultConfig{
    consumerProguardFiles'lib-proguard-rules.pro'
  }
}

2.导库

在sdk的 build.gradle 中引入库

implementation'com.github.feelschaotic:SDKHotFix:XX-RELEASE'

XX为最新SDK版本号,例如implementation'com.github.feelschaotic:SDKHotFix:1.3-RELEASE'

注:最新版本见README标志 

在根项目build.gradle中加入maven配置

repositories{
  //接入第二步:增加maven配置
  maven{url"https://mvnrepository.com/"}
}
...
allprojects{
  repositories{
    maven{url"https://mvnrepository.com/"}
  }
}

再添加classpath配置

//Application模式下引入Robust脚本插件
 if(isAppModule.toBoolean()){
    classpath'com.github.feelschaotic:Robust.gradle-plugin:0.4.87.5-RELEASE'
    classpath'com.github.feelschaotic:Robust.auto-patch-plugin:0.4.87.5-RELEASE'
 }

4.复制示例项目的脚本和文件

4.1复制MainActivity.java到sdkmodule的java包名目录下(目的是为了application打包配置不报错)

4.2复制debug和release2个文件夹到main目录下,修改里面的AndroidManifest.xml,更改为你自己业务SDK的包名

<manifestpackage="${packageName}"
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools">

4.3复制robust.xml到sdkmodule根目录,更改下包名

4.4复制packPlugin.gradle到项目的根目录

5.初始化热更库

valconfig:HotfixConfig=HotfixConfig.Builder().debug(true)
        .appVersion(BuildConfig.VERSION_NAME)
        .packageName(BuildConfig.APPLICATION_ID)
        .build()
    HotfixManager.init(application,config)

6.添加权限

<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

7.加入混淆

-keepclasscom.alibaba.sdk.android.oss.**{*;}
-dontwarnokio.**
-dontwarnorg.apache.commons.codec.binary.**

待改进

在编译阶段插件侵入了产品代码,对运行效率、方法数、包体积还是产生了一些副作用。(可指定某些class无需插入方法,减少插桩数)小猪素描相机app下载-小猪素描相机app3.6.0812 安卓版

so和资源的替换目前暂未实现

对于只有字段访问的函数无法直接修复,可通过调用处间接修复

上传GradleTask尚未在MAC环境下测试

上传的补丁支持按包名存档

要商用的小伙伴要注意,建议换成自己的后端接口或自己续费一个bmob应用,因为bmob云函数服务超过40天需要收费,所以本项目需要定期更新应用秘钥。

SDKHotfix(SDK热修复工具包)特点

5分钟即可让你的SDK拥有热修复的能力

节省踩坑和开发成本

hookandcreateGradleTask

Kotlin+groovy

热修复

非对称加密+对称加密

扩展美团Robust开源库,使其具有其他热更库不具备的补丁回滚功能

数据和监控思维

展开

  • SDKHotfix(SDK 热修复工具包)1.3 最新免费版有什么新功能1(1)
  • SDKHotfix(SDK 热修复工具包)1.3 最新免费版有什么新功能2(2)

猜您喜欢

同类推荐

网友评论