打包补丁流程
1. 生成基准包 (baseline apk)
首先需要生成一个基准包,后续的补丁都是基于这个基准包生成的:
./gradlew assembleRelease
生成的基准包位于 app/build/bakApk/
目录下。
2. 修改代码
修复 bug 或进行其他修改后,确保只修改了代码而没有新增或删除资源文件(Tinker 对资源文件的修改有限制)。
3. 配置补丁信息(由于已经配置到单独文件,所以此步可省略)
在 app/build.gradle
中配置 tinkerPatch:
tinkerPatch {
oldApk = "基准apk路径"
ignoreWarning = false
useSign = true
buildConfig {
tinkerId = "补丁版本号"
keepDexApply = false
}
dex {
dexMode = "jar"
pattern = ["classes*.dex"]
loader = ["com.xxx.xxx.MyApplication"] // 你的Application类
}
lib {
pattern = ["lib/*/*.so"]
}
res {
pattern = ["res/*", "assets/*", "resources.arsc", "AndroidManifest.xml"]
ignoreChange = ["assets/sample_meta.txt"]
largeModSize = 100
}
packageConfig {
configField("patchMessage", "fix bugs")
}
}
4. 生成补丁包
运行以下命令生成补丁包:
./gradlew tinkerPatchRelease
生成的补丁包位于 app/build/outputs/tinkerPatch/
目录下,文件名为 patch_signed_7zip.apk
。
demo地址:https://download.csdn.net/download/wy313622821/91316471