正文
3、配置Tinker的gradle脚本
在项目根目录新建
tinkerpatch.gradle
文件
apply plugin: 'tinkerpatch-support'/*** TODO: 请按自己的需求修改为适应自己工程的参数*/def bakPath = file("${buildDir}/bakApk/")def baseInfo = "app-1.0.0-1213-19-52-36"def variantName = "release"/*** 对于插件各参数的详细解析请参考* http://tinkerpatch.com/Docs/SDK*/tinkerpatchSupport { /** 可以在debug的时候关闭 tinkerPatch **/ /** 当disable tinker的时候需要添加multiDexKeepProguard和proguardFiles, * 这些配置文件本身由tinkerPatch的插件自动添加,当你disable后需要手动添加 * 你可以copy本示例中的proguardRules.pro和tinkerMultidexKeep.pro, * 需要你手动修改'tinker.sample.android.app'本示例的包名为你自己的包名, * com.xxx前缀的包名不用修改 **/ tinkerEnable = true reflectApplication = true /** * 是否开启加固模式,只能在APK将要进行加固时使用,否则会patch失败。 * 如果只在某个渠道使用了加固,可使用多flavors配置 **/ protectedApp = false /** * 实验功能 * 补丁是否支持新增 Activity (新增Activity的exported属性必须为false) **/ supportComponent = true autoBackupApkPath = "${bakPath}" appKey = "c6a00cf4aafa2ab2" /** 注意: 若发布新的全量包, appVersion一定要更新 **/ appVersion = "1.0.0" def pathPrefix = "${bakPath}/${baseInfo}/${variantName}/" def name = "${project.name}-${variantName}" baseApkFile = "${pathPrefix}/${name}.apk" baseProguardMappingFile = "${pathPrefix}/${name}-mapping.txt" baseResourceRFile = "${pathPrefix}/${name}-R.txt" /** * 若有编译多flavors需求, 可以参照: * https://github.com/TinkerPatch/tinkerpatch-flavors-sample * 注意: 除非你不同的flavor代码是不一样的, * 不然建议采用zip comment或者文件方式生成渠道信息 * (相关工具:walle 或者 packer-ng) **/}/*** 用于用户在代码中判断tinkerPatch是否被使用*/android { defaultConfig { buildConfigField "boolean", "TINKER_ENABLE", "${tinkerpatchSupport.tinkerEnable}" }}/*** 一般来说,我们无需对下面的参数做任何的修改* 对于各参数的详细介绍请参考:* https://github.com/Tencent/tinker/wiki/Tinker-* %E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97*/tinkerPatch { ignoreWarning = false useSign = true dex { dexMode = "jar" pattern = ["classes*.dex"] loader = [] } lib { pattern = ["lib/*/*.so"] } res { pattern = ["res/*", "r/*", "assets/*", "resources.arsc", "AndroidManifest.xml"] ignoreChange = [] largeModSize = 100 } packageConfig { } sevenZip { zipArtifact = "com.tencent.mm:SevenZip:1.1.10"// path = "/usr/local/bin/7za" } buildConfig { keepDexApply = false }}