1.創(chuàng)建項(xiàng)目與集成所需類庫
在工程的gradle中:classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.7')
在項(xiàng)目的gradle中:
compile('com.tencent.tinker:tinker-android-lib:1.7.7') { changing =true}
provided('com.tencent.tinker:tinker-android-anno:1.7.7') { changing =true}
compile'com.android.support:multidex:1.0.1'
2.寫一個(gè)application的代理類
@SuppressWarnings("unused")
@DefaultLifeCycle(application ="com.meng.app.AppApplication",
flags = ShareConstants.TINKER_ENABLE_ALL,
loadVerifyFlag =false)
public classApplicationLikeextendsDefaultApplicationLike {
publicApplicationLike(Application application,inttinkerFlags,booleantinkerLoadVerifyFlag,longapplicationStartElapsedTime,longapplicationStartMillisTime, Intent tinkerResultIntent) {
super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, applicationStartMillisTime, tinkerResultIntent);
}
/**
* install multiDex before install tinker
* so we don't need to put the tinker lib classes in the main dex
*
*@parambase
*/
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public voidonBaseContextAttached(Context base) {
super.onBaseContextAttached(base);
//you must install multiDex whatever tinker is installed!
MultiDex.install(base);
//installTinker after load multiDex
//or you can put com.tencent.tinker.** to main dex
TinkerInstaller.install(this);
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public voidregisterActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback) {
getApplication().registerActivityLifecycleCallbacks(callback);
}
}
現(xiàn)在編譯會報(bào)錯(cuò)反璃,需要配置
3. build.gradle的配置
3.構(gòu)建app簽名
4.編寫測試類
5.運(yùn)行測序到手機(jī)
6.配置補(bǔ)丁文件
7.更改測試代碼
7.生成補(bǔ)丁文件
8.獲取補(bǔ)丁
9.把補(bǔ)丁拷貝到內(nèi)存卡根目錄
10.重新打開app蟹演,可能會閃退稚虎,第二次進(jìn)入余赢,更新成功
github:https://github.com/LostDeer/Tinker