Android SDK 更新日志
1.8.22-RC04 (2025/07/22)
Fixes
- 修复宿主APP集成了依赖低版本reshub的第三方SDK时,更新reshub到新版本后,第三方SDK会发生NoSuchMethodError报错问题
1.8.22-RC03 (2025/07/21)
Features
- 支持通过shiply通道上报加载事件
1.8.22-RC02 (2025/06/25)
Features
- IReshub增加RN数据上报接口
- 配置SDK升级到1.3.38-RC02
1.8.22-RC01 (2025/04/01)
Features
- SDK初始化增加appChannel/devModel/devManufacturer/androidSystemVersion/customServerUrl字段
- 配置SDK升级到1.3.37-RC02(支持appChannel字段)
- 外网版本默认开启多进程
1.8.21 (2024/11/29)
Release
- 基于1.8.21-RC03发布1.8.21正式版本
1.8.21-RC03 (2024/11/29)
Fixes
- 修复同时加载多个不同内置资源时偶现ANR问题
1.8.21-RC02 (2024/11/11)
Features
- ResHubParams增加skipIntegrityCheckAfterPresetResCopy参数,支持跳过内置资源复制后的文件完整性校验
- 内置资源复制失败上报新增fail_reason字段,区分是复制失败还是校验失败
1.8.21-RC01 (2024/09/04)
Features
- 初始化时增加fetchProjectWhenAppOnly设置项,当pullTarget为[TargetType.AndroidApp]时,支持额外拉取项目级别的配置信息
- 升级内部依赖的RDelivery SDK到1.3.36-RC03版本(支持fetchProjectWhenAppOnly)
1.8.20 (2024/09/04)
Release
- 基于1.8.20-RC02发布1.8.20正式版本
1.8.20-RC02 (2024/08/28)
Features
- 异步加载接口增加validateResFile参数,支持在读取本地资源时不校验md5只校验文件大小
- 加载上报时增加网络类型/下载的文件大小(完整包/压缩包/差量包)
- 内置文件复制改为临时文件rename方式,复制结束后主动调用flush确保数据写入
1.8.20-RC01 (2024/08/07)
Features
- ErrorInfo类中增加了subErrorCode字段,用于透传子错误码
1.8.19 (2024/06/25)
Fixes
- 修改构建脚本,修复内部版本找不到com.tencent.beacon:beacon-android-release库的bug
1.8.19-RC02 (2024/06/14)
Features
- 修改构建脚本,支持发布到腾讯云maven仓库
1.8.19-RC01 (2024/06/12)
Features
- IResHub增加addUserToExperienceList接口,支持添加体验名单
- IResHub增加deleteResWithDelayOption接口,支持延迟删除资源文件
- 升级内部依赖的RDelivery SDK到1.3.36-RC02版本(支持添加体验名单)
1.8.18 (2024/06/12)
Release
- 基于1.8.18-RC02发布1.8.18正式版本
1.8.18-RC02 (2024/05/28)
Fixes
- 修复CRC32值以0开头时会检验失败的bug
- 修复本地存在完整原始文件,再次触发压缩包文件下载后会返回异常文件路径的bug
1.8.18-RC01 (2024/05/23)
Features
- 支持制品版本降级
- 本地制品任务支持降级并且不是内置资源版本时,支持自动删除资源
- ResHubCenter.strictRemoteVersionCheck不再支持外部修改,默认为false
Fixes
- 修复加载进度值可能会回跳的bug
1.8.17 (2024/05/22)
Release
- 基于1.8.17-RC03发布1.8.17正式版本
1.8.17-RC03 (2024/05/07)
Fixes
- 计算MD5前增加文件锁,避免多进程IO异常
1.8.17-RC02 (2024/04/28)
Fixes
- 修复默认线程池实现会阻塞等待异步线程执行完毕的bug(1.8.16-RC03版本引入)
1.8.17-RC01 (2024/04/19)
Features
- 本地存在不同制品版本的相同资源文件时,避免重复下载
- 支持CRC32校验
- IRes增加getTaskId接口,支持获取任务ID
- 优化加载耗时,避免重复计算MD5
- 升级内部依赖的RDelivery SDK到1.3.35-RC03版本(MmkvStorage/MmkvStorageFactory支持设置支持设置自定义锁)
1.8.16 (2024/03/29)
Release
- 基于1.8.16-RC03发布1.8.16正式版本
1.8.16-RC03 (2024/03/28)
Features
- 本地资源与APP版本不匹配时,忽略制品版本判断逻辑,使用远端配置
- 版本号对比支持不同位数
Fixes
- 修复拉到的远端配置低于本地配置时,可能会触发重复下载流程的bug
- 默认线程池执行异常时增加日志打印
1.8.16-RC02 (2024/02/26)
Fixes
- 修复多进程同时加载同一个资源场景,文件解压时可能会相互覆盖的bug
Features
- 升级内部依赖的RDelivery SDK到1.3.33版本(get协议支持加密)
1.8.16-RC01 (2024/02/22)
Fixes
- 修复直接调用getSpecific查询本地已有资源可能返回空的bug
1.8.15 (2024/01/22)
Release
- 基于1.8.15-RC01发布1.8.15正式版本
1.8.15-RC01 (2024/01/15)
Fixes
- 修复APP升级后首次加载本地不兼容旧资源报错后无法正常加载新资源的bug
1.8.13 (2024/01/12)
Release
- 基于1.8.13-RC02发布1.8.13正式版
1.8.13-RC02 (2023/12/26)
Fixes
- 修复特定机型上无法解析独立目录内置资源配置信息的bug
1.8.13-RC01 (2023/12/19)
Features
- 下载接口增加额外字段参数,透传资源ID/资源类型和下载类型
1.8.12 (2023/12/15)
Release
- 修改版本号,发布正式版
1.8.12-RC01 (2023/11/22)
Features
- ResHubParams增加enableLazyLoadInnerConfig字段,用来控制是否懒加载内部的配置信息
- 升级内部依赖的RDelivery SDK到1.3.31-RC01版本(配置协议增加联网上报控制开关)
1.8.11 (2023/11/20)
Release
- 修改版本号,发布正式版
1.8.11-RC01 (2023/11/10)
Fixes
- 修复解压过程中杀进程,下次加载时可能会跳过解压步骤的bug
1.8.10-RC01 (2023/11/07)
Features
- IResHub增加requestMultiRemoteResConfig接口,支持根据多个资源key拉取远程配置信息
- IResHub增加getLastRequestServerTime接口,支持查询资源key最近一次发送远程网络请求时间戳
- IResHub增加getLastFullRequestServerTime接口,支持查询最近一次发送全量远程网络请求时间戳
- 升级内部依赖的RDelivery SDK到1.3.30-RC02版本(支持记录和查询最近一次发送配置更新请求的时间)
1.8.09-RC01 (2023/11/01)
Fixes
- 修复loadSpecific在特定场景下差量逻辑无效的bug
- 解压异常时尝试使用zipfile解压
1.8.08-RC01 (2023/10/25)
Features
- 默认解压器支持优先使用ZipFile进行解压
1.8.07-RC01 (2023/10/17)
Features
- 新增初始化接口,支持不同实例的参数相互隔离
1.8.06 (2023/09/11)
Release
- 修改版本号,发布正式版
1.8.06-RC01 (2023/09/05)
Features
- 内部配置支持根据32位64位隔离
- 升级内部依赖的RDelivery SDK到1.3.29-RC01版本(支持自定义存储文件路径后缀)
1.8.05-RC01 (2023/08/11)
Features
- IResHub增加getHitSubTaskTags方法,支持查询子任务标签
- 升级内部依赖的RDelivery SDK到1.3.28-RC01版本(支持查询子任务标签)
1.8.03 (2023/08/11)
Fixes
- 修复Android工程中不同模块依赖不同版本的reshub sdk,编译运行时可能发生java.lang.NoSuchMethodError的bug
1.8.02 (2023/08/08)
Fixes
- 修复APP启动时立即加载资源可能会触发远程配置拉取操作的bug
1.8.01 (2023/07/28)
Features
- 升级内部依赖的RDelivery SDK到1.3.27.3版本(修复不同配置实例的righly全量采样开关会相互覆盖的bug)
1.8.00 (2023/07/21)
Features
- 新建发布任务选中强制更新时SDK忽略CDN限流
- 升级内部依赖的RDelivery SDK到1.3.27.2版本(支持设置网络超时时间)
Fixes
- 修复业务方自定义解压路径后innerMd5校验失败的bug
- 修复开启压缩方式下发资源,先拉取高版本,再拉取低版本任务时会出现10004错误的bug
1.7.91 (2023/05/26)
Features
- 计算MD5异常时增加日志打印
1.7.90 (2023/05/17)
Features
- 内置文件配置信息支持存放到资源key相关独立文件夹
- loadSpecific接口加载资源时支持差量更新
- IResHub增加deleteSpecificTaskRes方法,支持删除通过loadSpecific接口加载的资源
- IResHub增加getPresetResConfig方法,支持只获取内置资源配置不做数据拷贝
- 当差量包大小大于压缩包大小时,不走差量更新逻辑
1.7.81 (2023/05/05)
Features
- 优化解压目录校验逻辑:目录不包含子文件时直接校验失败
Fixes
- 修复同时调用preloadLatest和load接口加载远端同一个版本的资源时可能加载失败(读取到的本地资源是关闭状态)的bug
1.7.80 (2023/05/04)
Features
- 支持外部注入7z解压接口
- IRes接口增加getDescription方法,支持获取资源描述信息
- IResHub接口增加batchFetchResConfigByScene方法,支持根据场景ID获取资源列表
Fixes
- 修复主线程繁忙时自动预加载逻辑没有被触发的bug
1.7.70 (2023/04/24)
Features
- 支持与shiply配置实例聚合拉取配置数据
- 资源加载上报默认开启抽样,抽样率由后台控制,不复用配置上报抽样率
- 预加载异常上报增加上报次数限制
- 升级内部依赖的RDelivery SDK到1.3.25版本(支持不同实例聚合拉取配置数据)
Fixes
- 修复同时调用preloadLatest和load接口加载远端同一个版本的资源时可能加载失败的bug
1.7.60 (2023/03/30)
Features
- 资源配置信息增加资源类型字段,SDK支持根据资源类型自定义下载路径
1.7.50 (2023/03/07)
Features
- IRes接口增加getDiffPkgSize方法
- IResHub接口增加updateCustomProperties方法
Fixes
- 修复先后使用loadSpecific接口和load接口加载同一个版本的资源时可能加载失败的bug
1.7.40 (2023/02/27)
Features
- SDK性能优化(减少长字符串打印/内置配置文件改为按数组分批读取/默认线程池实现改为懒加载)
- IResHubCenter#getResHub方法增加ResHubInstanceExtraParams参数,支持下发服务set化独立部署
- 升级内部依赖的RDelivery SDK到1.3.22版本(支持下发服务set化独立部署)
1.7.30 (2023/02/07)
Features
- IResHubCenter#getResHub方法增加远程加载拦截器参数,确保预加载逻辑执行时拦截器已经设置好
- IResHub增加requestFullRemoteResConfig方法,支持业务方主动拉取后台全量资源配置信息
1.7.20 (2022/12/12)
Fixes
- 修复多进程场景下调用load接口偶现「读取到的本地资源是关闭状态」的bug
Features
- 升级内部依赖的RDelivery SDK到1.3.15版本(不同实例的日志实现相互隔离)
1.7.10 (2022/09/30)
Features
- 将SDK内部部分接口可见性设置为internal,避免业务方误用
- 升级内部依赖的RDelivery SDK到1.3.10版本(修复网络回包时进程恰好被杀的极端场景下,偶现删除配置开关没有生效的bug)
- 升级内部依赖的raft观测组件到0.5.2.16版本(下调默认采样率)
- 接入手Q ComponentPublish插件
1.7.00 (2022/09/16)
Features
- IRes添加isLoadFromPresetAssets()方法用于区分当前加载结果是本地预埋资源还是网络拉取资源
- 全量下载时进行压缩方案兼容旧版本SDK
- 升级内部依赖的RDelivery SDK到1.3.9版本(按照任务ID拉取资源支持体验名单)
1.6.92 (2022/08/30)
Fixes
- 修复「全量下载时进行压缩」和「文件加密」开关同时开启时资源加载失败的bug
1.6.91 (2022/08/16)
Fixes
- 修复浏览器反馈的reshub#setFullResConfigUpdateListener偶现没有回调的bug
Features
- IResHubCenter#getResHub接口增加FullReqResultListener参数
1.6.90 (2022/08/15)
Features
- 支持内置文件可以选择解压后合入仓库
- 增加全量资源配置数据拉取结果回调
- 支持按照压缩的方式下发文件
1.6.80 (2022/07/25)
Features
- 支持手动提交(非流水线方式提交)内置资源:手动提交的资源配置信息存储到manualConfig.json,与流水线提交的资源配置信息存储文件config.json隔离
1.6.70 (2022/07/14)
Features
- loadLatest接口增加是否强制从远端拉取配置参数
Fixes
- deleteAll接口执行时同时清空所有配置数据
Refactor
- 将patch sdk中差量包合并逻辑拆分成独立的pure-patch module
- 修复单进程模式下patch合成失败的bug
Features
- 升级内部依赖的RDelivery SDK到1.3.7版(优化配置回包大小)
1.6.60 (2022/06/29)
Features
- 上架raft组件市场
- 修改发布脚本,支持打tag发布
1.6.50 (2022/06/16)
Features
- 优化加载请求合并部分的代码
- 支持根据资源CDN索引来限制繁忙状态
- RDeliveryData为空字符串时,返回null,不打出JSON解析异常
- 升级内部依赖的RDelivery SDK到1.3.6版(支持bugly监控联动)
1.6.40 (2022/06/06)
Features
- (同版本的)远程配置中资源文件发生了变更,和本地已有资源文件不一致时,可设定不同的处理策略(报错/覆盖/忽略,默认覆盖)
- 资源配置中增加下载优先级字段,透传下载优先级到外部下载接口
- 批量加载时,可强制依据优先级顺序调用外部下载器 (默认关闭)
- 资源加载上报支持在当前进程内,对于特定"资源/版本/加载状态"仅上报一次,减少上报量,节约成本 (默认打开)
- 资源加载上报支持抽样上报,减少上报量,节约成本 (默认关闭)
- 升级内部依赖的Raft接口到0.0.8版
- 升级内部依赖的RDelivery SDK到1.3.5版
1.6.30 (2022/05/31)
Features
- ResHub使用的RDelivery的外部依赖(网络/配置/任务)可通过外部设置
- 使用RDelivery中的HttpsURLConnectionNetwork作为默认的网络实现(目前仅RDelivery使用),不再使用原来的ResHubDefaultNetworkImpl
Fixes
- 多进程模式,关闭文件锁后同时关闭文件锁所在的特殊文件,避免报文件未被关闭的警告
Features
- 默认关闭"前后台切换/初始化时拉取全部配置检查预加载",减轻配置拉取量
- 增加"默认全量配置定时自动更新时间间隔"到3小时,增加"忽略重复拉取请求的时间间隔"到3小时,减轻配置拉取量
- 默认关闭RDelivery在"前后台切换"和"网络切换"时的配置自动更新策略,减轻配置拉取量
- 升级内部依赖的RDelivery SDK到1.3.3版
1.6.20 (2022/05/12)
Features
- 支持按场景批量拉取资源,增加batchLoadByScene/batchLoadLatestByScene接口
- 新增资源文件更新回调 (IResRefreshListener)
- 支持is64Bit属性
Fixes
- 修复PendingDelete Sp类型改变导致的crash
1.6.10 (2022/04/29)
Features
- 支持多进程场景使用资源
- fetchConfig支持批量 -【成本优化】优化配置拉取量,优先从RDelivery本地读取配置
- 优化Server繁忙的判断,允许强制执行加载请求
- 支持"资源大包"合并
- 新增资源属性字段:无需解压(noNeedUnZip)
- 增加任务强制更新能力,强制更新时对当前已经锁定版本的资源解锁
1.6.00 (2022/04/21)
Fixes
- 修复kt和java8兼容问题(部分接入方有报AbstractMethodError)
Features
- 升级RDeliverySDK 1.3.2:修复内部网络监听在安卓11以上有权限crash
- 添加逻辑环境枚举值
1.5.11 (2022/05/12)
Fixes
- 修复PendingDelete Sp类型改变导致的crash
1.5.10 (2022/04/13)
Features
- DemoApp重新设计和实现,并放入DemoApp的apk文件,方便下载
- 允许修改本地文件路径,当本地路径被修改时(通常是使用方改变了文件路径生成规则/解压规则等),更新本地文件路径
- 支持同步获取资源已拉到的最新配置(getFetchedResConfig)
- 支持外部设置RDelivery的更新策略
- 上报中使用"task_id"代替"res_ver"
Fixes
- 内部忽略RDelivery中的BuglyHelper错误日志(不影响功能,且打得太多了)
Refactor
- 删除旧配置通道相关的所有代码,现在只支持新配置通道(RDelivery通道)
Features
- 增加空白示例,仅使用最基本的ResHub功能,用来对比集成ResHub SDK前后,最终Apk大小的变化
Cost Optimization
- 去掉加载开始和中间阶段的上报,结束时整合报一次(requestId和相关代码也不需要了)
- 远程服务器繁忙(CDN限流/外部设置繁忙)状态下,优化远程加载策略: load在本地有资源时不更新,loadLatest/loadSpecific/preload在本地有资源时优先返回本地资源
- 设置RDelivery的isDebugPackage
Refactor
- IPreloadInterceptor更名为IRemoteLoadInterceptor,增加外部设置远程服务器是否繁忙的方法isRemoteServerBusy()
Features
- 升级内部依赖的RDelivery SDK到1.3.1版
1.5.02 (2022/03/26)
Fixes
- 修复IllegalStateException: Method addObserver must be called on the main thread
1.5.00 (2022/03/24)
Features
- 默认开启使用RDelivery通道获取远程资源配置
- 支持资源自动/手动预加载(走RDelivery通道时),和loadLatest类似,只是受到条件限制
- 数据存储与SharedPreferences解耦,改为依赖IRStorage
- 提供预下载/更新的拦截接口,业务方可注入拦截策略
- CDN繁忙时,限制自动预加载资源下载
- 拉取后台配置请求频率优化,默认10分钟内不重复拉取(直接使用当前最新配置)
- 如果远程资源配置修改了资源文件(和本地同版本的不一致),则根据是否严格检查来处理,默认不再报错,而是使用本地的代替
- 增加getStatus接口,可以获取本地资源可用状态(LocalResStatus)
Refactor
- 优化代码; 提出并复用本地资源检查代码; 解析ResConfig的代码统一
Features
- 允许外部设置App的预置资源在Asset中的基路径
- 旧通道使用同样的AppId,额外增加AppName,避免新旧通道的存储配置/内置路径等都不一致
Refactor
- 去掉useRDelivery(),默认用新通道,旧通道仅兼容用途,使用旧通道时需要主动调用useOldConfigServer()并提供AppName
Features
- 只要appId/target/env相同,就可以复用同一个ResHub实例(appKey理论上应该一样)
- ResHub实例的复用方式和文件存储的划分方式保持一致,避免不同ResHub实例的文件操作可能相互干涉,但实例之间的配置不同步
Version
- 由于默认拉取配置通道改为了新通道(RDelivery),以及和iOS一致的原因,版本号增到1.5.00
1.3.31 (2022/03/15)
Features
- 支持按任务ID拉取特定资源(配置分开存放,下载文件共用)
- 下载前判断本地是否已经有需要下载的文件
- 升级内部依赖的RDelivery SDK到1.3.0版
Fixes
- 老的配置拉取接口发送请求时,打出接口访问参数
1.3.30 (2022/03/04)
Features
- fetch获取资源最新配置时增加上报
Fixes
- 批量加载时,每个资源加载成功且资源都有效时才算全部成功
- Patch包匹配原资源包时,按照old_md5匹配,不再用版本号匹配
- 如果远程资源配置修改了资源文件(和本地同版本的不一致),则检查配置时直接报错(同一版本不允许修改资源文件)
- 解密时如果已经解密过了(有解密后的originLocal文件路径),则忽略解密
1.3.29 (2022/03/02)
Features
- 支持资源的关闭状态
- 升级内部依赖的RDelivery SDK到1.2.2版
- RDelivery通道支持Debug模式
Fixes
- 增加读取本地资源检查失败的错误信息和返回
- 网络请求参数构造时不共享状态,避免不同线程的同步问题
1.3.28 (2022/02/25)
Fixes
- 判断本地是否已经有了下载好的资源时,不判断app_max_ver
1.3.27 (2022/02/22)
Features
- 设置RDelivery的自定义参数
Fixes
- 拉取配置错误日志增加resId
1.3.26 (2022/02/21)
Features
- 增加RDelivery配置通道支持
- App相关信息都封装到AppInfo
- 支持资源文件加解密
- 允许设置是否在下载文件前先重置对应路径的文件
- 在开始加载的上报中增加本地配置版本
- 资源配置增加"最大支持的App版本"属性,App升级到超过支持版本后该资源会立即失效
1.3.25 (2022/01/17)
Fixes
- 修复远程版本小于本地版本时(非正常情况),兼容处理可能导致加载出错
- 修复最终回调用户时,可能产生ConcurrentModificationException
Features
- 修正上报的res_ver取值,规避版本号冲突导致统计展示异常
1.3.24 (2022/01/12)
Features
- 校验本地是否已经有相同配置且下载好了的资源(锁定的或者最新的只要一个有,就不需要再下载了)
Fixes
- 如果要下载的文件不存在(正常情况,需要下载),则无需进行MD5检查(避免打出MD5检查失败的log)
- 远程资源版本配置错误时兼容处理: 允许在远程资源版本低于本地资源版本时,使用本地版本。(保证当有可用的本地资源时,加载过程能够正常进行)
- 接口数据校验错误给出详细原因
1.3.23 (2022/01/10)
Features
- 新增只拉取配置的接口: fetchConfig
- 允许透传并更新当前版本资源的fileExtra
- 优化md5校验卡顿、提供只读配置不校验的方法
1.3.22 (2022/01/06)
Features
- 加载任务结束处理耗时优化: 最终回调时再切换到主线程,其他操作(包括锁)都放在原来的子线程中执行
- 增加参数,可由用户决定结束回调/进度回调是否在主线程(默认结束回调在主线程)
1.3.21 (2021/12/29)
Fixes
- 内置资源多线程加载优化: 加锁以避免内置资源多线程同时加载时文件操作(如解压)失败
1.3.20 (2021/12/24)
Features
- 支持用户自定义内置资源保存位置: 允许设置为任意路径
- 增加fileExtra字段
- 更换MD5计算实现,避免ANR
- 设备型号和系统版本号改为业务注入
- 允许外部业务方强制删除/重新下载某个资源
- Log改为可以外部注入Raft标准日志接口
- 线程池/子线程任务执行改为可以外部注入
- 去除对灯塔上报SDK的强依赖(改为IRReport接口注入并提供默认实现)
- Batch加载改为在单个资源加载的基础上
- 资源下载流程支持取消
- 资源加载接口回调增加error信息
1.2.01 (2021/11/30)
Features
- 提供简单的默认实现(网络+下载)
Fixes
- 优化错误码处理: 加载不同阶段的错误都是用平坦的一级错误码
- 增加捕获回调异常并上报,避免回调异常影响加载流程
1.2.00 (2021/11/18)
Refactor
- 优化整理SDK的代码和结构
- 对外接口易用性改造: 外部使用接口改为意义更加简明的名字(见"老版本升级")
Features
- 内置资源加载异步化,优化首次卡顿
1.1.01 (2021/11/03)
Features
- 同步加载时,先尝试加载和更新预置资源
1.1.00 (2021/11/03)
Features
- kotlin版本降级到1.3.70,适配手Q接入
Fixes
- 初始化时不再统一读取所有预置资源,改为加载资源时优先尝试从预置资源中读取
1.0.02 (2021/10/20)
Features
- 调整SDK版本,和iOS保持一致
1.0.01 (2021/10/18)
Fixes
- 取消同步获取数据的上报
1.0.00 (2021/10/14)
Note
- 及之前为内部老版本,非对外使用