中文说明
Tinker-это библиотека решений Hot-Fix для Android, она поддерживает обновление DEX, библиотеки и ресурсов без переустановки APK.
Добавить Tinker-Gradle-Plugin в качестве зависимости в вашей основной build.gradle
в корне вашего проекта:
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, вам необходимо изменить этот класс и перенести все его орудия в проблему с пробелкой, а не применением:
- 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
, вам просто нужно добавить аннотацию для вашего класса SampleApplication
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
Как установить Tinker? Узнайте больше на выборке SampleApplianting Like.
Для Proguard мы уже создали автоматический конфигурацию Proguard, и Tinker также создаст для вас файл Multidex Hep Proguard.
Чтобы узнать больше о конфигурациях Tinker, узнайте больше в примере приложения/build.gradle.
Как запустить Тинкер на ковчеге?
Просто используйте следующую команду:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
указывает на абсолютный путь Android APK (не составлен ARK) с ошибкамиnew
указывает на абсолютный путь Android APK (не составлен ARK) с фиксациейПатч -файл упакован в APK.
Тодо
В настоящее время это составлено командой компилятора ARK. Выходной патч по -прежнему упакован в формате 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
}
Патч скомпилируется ARK и помещается на вышеупомянутый путь. Все последующие операции такие же, как Tinker-Cli или Gradle.
Ultimated Patch APK состоит из двух патчевых файлов:
classes.dex
для Androidpatch.apk
с SO для Ark. Есть некоторые проблемы, которые Тинкер не может динамическим обновлением.
Какие -нибудь проблемы?
Для получения дополнительной информации о внесении вопросов или запросах на вытягивание см. Наше руководство по содействию Tinker.
Тинкер находится под лицензией BSD. Смотрите файл лицензии для получения подробной информации.