Android Tinker熱更新的集成教程

1.創建項目與集成所需類庫


在工程的gradle中:classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.7')


在項目的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.寫一個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);

}

}

現在編譯會報錯,需要配置


3. build.gradle的配置





3.構建app簽名






4.編寫測試類


5.運行測序到手機

6.配置補丁文件



替換為一致的


7.更改測試代碼


7.生成補丁文件


8.獲取補丁


9.把補丁拷貝到內存卡根目錄

10.重新打開app,可能會閃退,第二次進入,更新成功

github:https://github.com/LostDeer/Tinker

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容