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然后再配置自己需要的參數(shù),最后在第二步的時候引入apply from: 'tinkerpatch.gradle'。第三步 配置正式的簽名在你app的gradle上面配置正式的簽名,代碼
第四步 配置application這里采用的是reflectApplication = true 這種方式,注意:reflectApplication = true的狀態(tài)在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, 達(dá)到按照時間間隔輪訓(xùn)的效果 * @param hour */ public void fetchPatchWithInterval(int hour) { //設(shè)置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下回生成一個對應(yīng)的版本,記住一個版本的名稱,并且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文件就是補(bǔ)丁包,直接上傳官網(wǎng)就ok,運行以后就可以查看補(bǔ)丁是否成功三、最后項目demo的地址Demo
新聞熱點
疑難解答