tinker(二)-使用TinkerPatch 平台-集成
来源:互联网 发布:vb调用matlab的dll 编辑:程序博客网 时间:2024/06/02 04:29
感觉直接使用tinker,文档有很多没有说清楚的地方,也需要自己去搭建不定平台,所以建议使用TinkerPatch 平台去做热更新,看自己实际情况吧。
一、project的gradle集成:
dependencies { classpath 'com.android.tools.build:gradle:2.3.3' // TinkerPatch 插件 classpath "com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:1.1.7" }
二、module的gradle集成:
apply from: 'tinkerpatch.gradle'
dependencies {//可选,用于生成application类provided("com.tinkerpatch.tinker:tinker-android-anno:1.7.11")//无需引入tinker的任何库,使用tinkerpatch sdk即可compile("com.tinkerpatch.sdk:tinkerpatch-android-sdk:1.1.7")}
需要将tinkerpatch.gradle复制到module的个目录
三、Application设置:
1、先在tinkerpatch.gradle设置 reflectApplication = true
2、Application:
@Overrideprotected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this);}@Overridepublic void onCreate() { MultiDex.install(this); super.onCreate(); initTinkerPatch();}/** * 我们需要确保至少对主进程跟patch进程初始化 TinkerPatch */ private void initTinkerPatch() { // 我们可以从这里获得Tinker加载过程的信息 if (BuildConfig.TINKER_ENABLE) { tinkerApplicationLike = TinkerPatchApplicationLike.getTinkerPatchApplicationLike(); // 初始化TinkerPatch SDK TinkerPatch.init( tinkerApplicationLike// new TinkerPatch.Builder(tinkerApplicationLike)// .requestLoader(new OkHttp3Loader())// .build() ) .reflectPatchLibrary() .setPatchRollbackOnScreenOff(true) .setPatchRestartOnSrceenOff(true) .setFetchPatchIntervalByHours(3) ; // 获取当前的补丁版本 Log.d(TAG, "Current patch version is " + TinkerPatch.with().getPatchVersion()); // fetchPatchUpdateAndPollWithInterval 与 fetchPatchUpdate(false) // 不同的是,会通过handler的方式去轮询 TinkerPatch.with().fetchPatchUpdateAndPollWithInterval(); } }
四、tinkerpatch.gradle配置:
1、在tinkerpatch的官网中注册,获取appKey:
appKey = "3e20c4212df0b421"/** 注意: 若发布新的全量包, appVersion一定要更新 **/appVersion = "1.2.1"
2、如果需要加固,增加以下代码,也可以参考:https://github.com/TinkerPatch/tinkerpatch-flavors-sample/blob/master/app/tinkerpatch.gradle:
productFlavors { flavor { flavorName = "protect" appVersion = "${tinkerpatchSupport.appVersion}_${flavorName}" pathPrefix = "${bakPath}/${baseInfo}/${flavorName}-${variantName}/" name = "${project.name}-${flavorName}-${variantName}" baseApkFile = "${pathPrefix}/${name}.apk" baseProguardMappingFile = "${pathPrefix}/${name}-mapping.txt" baseResourceRFile = "${pathPrefix}/${name}-R.txt" /** 开启加固开关,上传此flavor的apk到加固网站进行加固 **/ protectedApp = true } flavor { flavorName = "flavor1" appVersion = "${tinkerpatchSupport.appVersion}_${flavorName}" pathPrefix = "${bakPath}/${baseInfo}/${flavorName}-${variantName}/" name = "${project.name}-${flavorName}-${variantName}" baseApkFile = "${pathPrefix}/${name}.apk" baseProguardMappingFile = "${pathPrefix}/${name}-mapping.txt" baseResourceRFile = "${pathPrefix}/${name}-R.txt" }}
具体参考:https://github.com/TinkerPatch/tinkerpatch-flavors-sample
阅读全文
0 0
- tinker(二)-使用TinkerPatch 平台-集成
- tinker(三)-使用TinkerPatch 平台-实践
- tinker集成方法之使用tinkerpatch平台快速极简集成!
- 热修复Tinker的使用 + TinkerPatch补丁管理平台 gradle接入
- 关于使用腾讯 Bugly 平台 Tinker开源热修复框架的 项目集成
- 热更新Tinker的初次集成使用
- 热更新Tinker的集成使用
- Tinker热修复server端tinkerPatch的接入
- Tinker集成和使用(一)Tinker简介和运行Tinker示例出现的问题
- 微信Tinker在Android中集成以及使用
- 一次集成使用Tinker热更新的体验
- 微信 Tinker 在 Android 中集成以及使用
- Android实战——Tinker的集成和使用
- 热修复——Tinker的集成与使用
- 热修复——Tinker 的集成与使用
- 集成tinker热更新
- Tinker集成步骤
- tinker(一)-集成
- 如何把一个数的位按四位进行相加
- 左值引用(&)以及右值引用(&&)(原创+转载)
- ACM-Classy
- 自定义布局某个点击区域
- 利用多线程编写多个客户端向服务器并发数据
- tinker(二)-使用TinkerPatch 平台-集成
- HDU 5726--GCD【倍增】【单调栈】【STL-map】
- Android中listview布局,自定义adapter,长按,点击,退出的demo
- LeetCode_200 求海岛数目
- Qt4与Qt5的区别
- golang 接口
- HDU 3008 Warcraft (动态规划)【打怪类】
- 使用flashFXP连接云服务器
- 各种计算机学习的网络课