您的位置:首页 > 移动开发 > 微信开发

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

2017-02-08 11:37 441 查看

一、概述

对于最近的微信的热修复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=true
Application参照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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐