开发工具:AndroidStudio 3.3.1,gradle插件3.2.0

背景:已有项目上集成TinkerPatch及Walle

一、集成TinkerPatch

步骤:

1、项目的build.gradle中依赖TinkerPatch插件

classpath "com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:1.2.9"

基于TinkerPatch+Walle实现热更新及多渠道打包方案

2、对应app的build.gradle中添加依赖

compileOnly("com.tinkerpatch.tinker:tinker-android-anno:1.9.9")

implementation("com.tinkerpatch.sdk:tinkerpatch-android-sdk:1.2.9")基于TinkerPatch+Walle实现热更新及多渠道打包方案

3、app目录下创建tinkerpatch.gradle文件

基于TinkerPatch+Walle实现热更新及多渠道打包方案

4、app的build.gradle中应用tinkerpatch.gradle文件

apply from: 'tinkerpatch.gradle'

基于TinkerPatch+Walle实现热更新及多渠道打包方案

5、同步项目

由于我的项目中用到了Lambda表达式,再用到Lambda表达式的时候引用了Java8

基于TinkerPatch+Walle实现热更新及多渠道打包方案

所以在同步项目的时候编译错误

基于TinkerPatch+Walle实现热更新及多渠道打包方案

根据错误提示,解决方案在项目的gradle.properties中加入以下两行代码

android.enableD8.desugaring= true

android.useDexArchive= true

编译通过,但是会提示警告,可以忽略!

基于TinkerPatch+Walle实现热更新及多渠道打包方案

6、基于tinkerpatch.gradle文件打基准包(也可以理解为线上BUG包),先看看tinkerpatch.gradle文件中的主要内容,详情请参考官方文档

http://www.tinkerpatch.com/Docs/SDK

基于TinkerPatch+Walle实现热更新及多渠道打包方案

首次集成和以后打补丁包会用到的属性字段已经在红框中标记出来

reflectApplication:

true表示当前项目中已经有Application,直接在对应的Application中初始化。

false表示需要继承TinkerPatch提供的DefaultApplicationLike

(由于我的项目已经有Application,所以我置为true,直接在自己的Application中初始化)

protectedApp:

当前apk上线之前如果需要进行加固,置为true,否则置为false,且再打补丁包时候也需要置为true

appKey:

TinkerPatch官网申请项目时候的appKey

appVersion:

打基准包时,appVersion要与app的build.gradle中的versionName保持一致。打补丁包时appVersion增加1即可

baseInfo:

打基准包时,无需修改。打补丁包时,指向基准包文件名

基于TinkerPatch+Walle实现热更新及多渠道打包方案

variantName:

debug模式和release模式

7、初始化TinkerPatch

Application中初始化相关代码

基于TinkerPatch+Walle实现热更新及多渠道打包方案

基于TinkerPatch+Walle实现热更新及多渠道打包方案

如果此方法报错需要添加依赖,implementation 'com.android.support:multidex:1.0.3'

8、打基准包

基于TinkerPatch+Walle实现热更新及多渠道打包方案

基于TinkerPatch+Walle实现热更新及多渠道打包方案

9、打补丁包

基于TinkerPatch+Walle实现热更新及多渠道打包方案

基于TinkerPatch+Walle实现热更新及多渠道打包方案

10、上传补丁,不解释

二、集成Walle

按照文档走即可

https://github.com/Meituan-Dianping/walle

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-11-14
  • 2021-05-24
  • 2021-09-13
  • 2022-12-23
  • 2021-08-30
  • 2021-12-26
  • 2021-08-10
  • 2021-06-16
猜你喜欢
  • 2021-09-09
  • 2021-10-28
  • 2021-12-06
  • 2022-01-18
  • 2021-08-13
  • 2021-12-24
  • 2021-08-12
相关资源
相似解决方案