首页 > 学院 > 开发设计 > 正文

微信热更新Tinker的远程版本是使用教程

2019-11-09 16:05:35
字体:
来源:转载
供稿:网友

一、概述

对于最近的微信的热修复Tinker这项技术已经成为了项目上面比较实用并且是必备的功能,而且对于外包这样需求不

确定的公司更是实用,项目上线以后客户会有一些列的什么这改改文字那里改改的一些小细节的东西,但是要是每次

修改一个小需求就去更新一个版本,在时间上和精力上面都是浪费。好了,不多说本文就只直截了当的介绍微信热更

新的使用!

二、接入Tinker的sdk

对于Tinker具体的介绍我就不多说了在github的wiki上面说的很清楚了,本文具体的根据Tinker的官网来开发,

第一步 添加 gradle 插件依赖
buildscript {    repositories {        jcenter()    }    dependencies {        // TinkerPatch 插件        classpath "com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:1.1.3"    }}第二步 集成 TinkerPatch SDK
dependencies {    // 若使用annotation需要单独引用,对于tinker的其他库都无需再引用    PRovided("com.tencent.tinker:tinker-android-anno:1.7.7")    compile("com.tinkerpatch.sdk:tinkerpatch-android-sdk:1.1.3")}这里为了更容易的分辨单独写一个gradle,gradle在github上面的直接copy然后再配置自己需要的参数,最后在第二步的时候引入apply from: 'tinkerpatch.gradle'。第三步 配置正式的签名在你app的gradle上面配置正式的签名,代码第四步 配置application这里采用的是reflectApplication = true 这种方式,注意:reflectApplication = true的状态在tinkerpatch.gradle里面的修改为reflectApplication=trueApplication参照github上面的直接copy就ok,这时少一个FetchPatchHandler这个类直接新建就好
  public static final long HOUR_INTERVAL = 3600 * 1000;    public static final long HOUR_INTERVAL11 =10*1000;    private long checkInterval;    /**     * 通过handler, 达到按照时间间隔轮训的效果     * @param hour     */    public void fetchPatchWithInterval(int hour) {        //设置TinkerPatch的时间间隔        TinkerPatch.with().setFetchPatchIntervalByHours(hour);        checkInterval = hour * HOUR_INTERVAL11;        //立刻尝试去访问,检查是否有更新        sendEmptyMessage(0);    }    @Override    public void handleMessage(Message msg) {        super.handleMessage(msg);        //这里使用false即可        TinkerPatch.with().fetchPatchUpdate(false);        //每隔一段时间都去访问后台, 增加10分钟的buffer时间        sendEmptyMessageDelayed(0, checkInterval + 10 * 60 * 1000);    }}第五步 配置AndroidManifest.xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.access_NETWORK_STATE" />。。。android:name="自己的Application"最后就可以直接点as的Build/Generate Signed APK然后在项目地址的/app/build/bakApk下回生成一个对应的版本,记住一个版本的名称,并且copy到 'tinkerpatch.gradle'里面的
def baseInfo = "之前正式签名的版本"
def variantName = "release"

appKey = "你的Tinkerid"

到这里就可以直接点击as的左边的gradle/项目名称或者.app/tinker /tinkerPatchRelease
双击 
然后在项目地址的/app/build/outputs/tinkerPatch/release/patch_signed_7zip.apk
这个apk文件就是补丁包,直接上传官网就ok
,运行以后就可以查看补丁是否成功
三、最后项目demo的地址
Demo
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表