Android架构之路--热更新Tinker(下)
在上一篇介绍了Tinker的基本集成Android架构之路--热更新Tinker(上),本篇介绍Tinker多渠道打包。
一、多渠道打包
tinker官方文档推荐用walle或者packer-ng-plugin来辅助打渠道包。估计有不少同学用过,今天我想推荐另外一款多渠道打包的插件ApkMultiChannelPlugin,它作为Android Studio插件进行多渠道打包。
安装步骤:打开 Android Studio: 打开 Setting/Preferences -> Plugins -> Browse repositories 然后搜索 ApkMultiChannel 安装重启。
有不了解的同学,可以直接看它的文档。
我是采用add channel file to META-INF方式进行多渠道打包,在这里提供一个读取渠道的工具类ChannelHelper。
二、多渠道打包步骤
1. 选择一个基准包
选择基准包的一个apk,然后右键,点击Build MultiChannel
1-1:选择基准包
2. 配置
配置签名信息,打包方式和渠道等。
配置说明:
Key Store Path: 签名文件的路径
Key Store Password: 签名文件的密码
Key Alias: 密钥别名
Key Password: 密钥密码
Zipalign Path: zipalign 文件的路径(用于优化 apk;zipalign 可以确保所有未压缩的数据均是以相对于文件开始部分的特定字节对齐开始,这样可减少应用消耗的 RAM 量。)
Signer Version: 选择签名版本:apksigner 和 jarsigner
Build Type: 打包方式
Channels: 渠道列表,每行一个,最前面可加 > 或不加(保存信息的时候,程序会自行加上)
我们刚才刚才配置的东西会保存在根目录的 channels.properties里
3. 开始打包
配置完成后,选择基准包的一个apk,然后右键,点击Build MultiChannel,就会开始进行多渠道打包,文件会输出在选中的apk的当前目录下的channels是目录下,如图:
1-4:多渠道打包
4. 发布APK
将刚才打包完成的包,分别发布到对应的应用市场。
5. 修改bug
随便修改部分代码
6. 生成补丁包
在生成补丁包前,我们需要去tinkerpatch.gradle文件下修改一些信息。
-
baseInfo :改成我们刚才选择基准包的目录app-1.0.1-0601-14-30-42就可以。
双击TinkerPatchRelease生成差分包,patch_signed_7zip.apk就是补丁包 -
variantName : 因为刚刚我们使用assembleRelease生成的补丁,所以我们只需要使用release
双击TinkerPatchRelease生成差分包,patch_signed_7zip.apk就是补丁包
1-5:生成补丁包7. 发布补丁包
回到Tinker后台,选中我们开始新建的项目,补丁下发->添加APP版本。然后上传刚刚的patch_signed_7zip.apk。
APP开启强制更新的话那么重启应用就会更新,否则会通过轮询去更新。应用重启才生效。
1-6: 发布补丁包.png
注:
- 这个补丁包对于以app-1.0.1-0601-14-30-42为基准宝,进行多渠道打包的apk都能生效(亲测成功),如果你把该渠道包进行360加固(protectedApp = true),也生效。
- 当我们在正式环境需要混淆代码:设置 minifyEnabled true,添加混淆:
-keep public class * implements com.tencent.tinker.loader.app.ApplicationLike
如图:
这里推荐一篇混淆代码的文章:5分钟搞定android混淆。
到这里Tinker的多渠道集成成功。