中文說明
Tinker是用於Android的熱點解決方案庫,它支持DEX,庫和資源更新而無需重新安裝APK。
在您的主要build.gradle
中添加Tinker-Gradle-Plugin作為依賴性。
buildscript {
dependencies {
classpath ( ' com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1 ' )
}
}
然後,您需要“應用”插件,並通過將以下行添加到app/build.gradle
來添加依賴項。
dependencies {
// optional, help to generate the final application
provided( ' com.tencent.tinker:tinker-android-anno:1.9.1 ' )
// tinker's main Android lib
compile( ' com.tencent.tinker:tinker-android-lib:1.9.1 ' )
}
.. .
.. .
apply plugin : ' com.tencent.tinker.patch '
如果您的應用程序具有子類Android.App.Application的類,則需要修改該類,並將其所有工具移動到SampleApplicationlike而不是應用程序:
- public class YourApplication extends Application {
+ public class SampleApplicationLike extends DefaultApplicationLike {
現在,您應該更改Application
類,使其成為TinkerApplication的子類。從其API中可以看到,它是一個沒有默認構造函數的抽像類,因此您必須定義一個no-arg構造函數:
public class SampleApplication extends TinkerApplication {
public SampleApplication () {
super (
//tinkerFlags, which types is supported
//dex only, library only, all support
ShareConstants . TINKER_ENABLE_ALL ,
// This is passed as a string so the shell application does not
// have a binary dependency on your ApplicationLifeCycle class.
"tinker.sample.android.app.SampleApplicationLike" );
}
}
建議使用tinker-android-anno
生成您的Application
,您只需要為SampleApplicationlike類添加註釋
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
如何安裝修補匠?在樣本樣本樣中了解更多信息。
對於Proguard,我們已經製作了Proguard Config Automatic,Tinker還將為您生成Multidex Keep Proguard文件。
有關更多修補程序配置,請在示例應用程序/build.gradle上了解更多信息。
如何在方舟上運行修補匠?
只需使用以下命令:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
表示使用錯誤new
表示Android APK的絕對路徑(未由ARK編譯)和修復補丁文件包裝在APK中。
托多
目前,它是由方舟編譯團隊編輯的。輸出補丁仍以APK格式打包,而無需簽名。
對於Tinker-CLI,將以下行添加到tinker_config.xml
中。否則,將使用默認配置。
< issue id = " arkHot " >
< path value = " arkHot " /> // path of patch
< name value = " patch.apk " /> // name of patch
</ issue >
對於Gradle,將以下行添加到您的app/build.gradle
中。否則,將使用默認配置。
ark {
path = " arkHot " // path of patch
name = " patch.apk " // name of patch
}
該貼片由方舟編譯並放在上述路徑上。隨後的所有操作與Tinker-CLI或Gradle相同。
最終的補丁APK由兩個補丁文件組成:
classes.dex
for androidpatch.apk
with so s for ark。 有一些問題無法動態更新。
有問題嗎?
有關貢獻問題或提取請求的更多信息,請參見我們的Tinker貢獻指南。
Tinker屬於BSD許可。有關詳細信息,請參見許可證文件。