buildscript { repositories { jcenter() } dependencies { // TinkerPatch 插件 classpath "com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:1.1.3" }}第二步 集成 TinkerPatch SDKdependencies { // 若使用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
新闻热点
疑难解答