中文说明
Tinker est une bibliothèque de solutions à chaud pour Android, il prend en charge la mise à jour Dex, bibliothèque et ressources sans réinstaller APK.
Ajoutez Tinker-Gradle-Plugin comme dépendance dans votre build.gradle
principale. Gradle à la racine de votre projet:
buildscript {
dependencies {
classpath ( ' com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1 ' )
}
}
Ensuite, vous devez «appliquer» le plugin et ajouter des dépendances en ajoutant les lignes suivantes à votre 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 '
Si votre application a une classe qui sous-classe Android.App.Application, vous devez modifier cette classe et déplacer tous ses outils sur SampleApplicationLike plutôt que l'application:
- public class YourApplication extends Application {
+ public class SampleApplicationLike extends DefaultApplicationLike {
Vous devez maintenant modifier votre classe Application
, en faire une sous-classe de TinkerApplication. Comme vous pouvez le voir sur son API, c'est une classe abstraite qui n'a pas de constructeur par défaut, vous devez donc définir un constructeur sans argle:
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" );
}
}
Utilisez tinker-android-anno
pour générer votre Application
est recommandée, il vous suffit d'ajouter une annotation pour votre classe SampleApplication Like
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
Comment installer Tinker? En savoir plus à l'échantillon SampleApplicationlike.
Pour Proguard, nous avons déjà rendu la configuration de Proguard automatique et Tinker générera également le fichier Multidex Keep Proguard pour vous.
Pour plus de configurations Tinker, en savoir plus sur l'exemple d'application / build.gradle.
Comment exécuter Tinker sur l'arche?
Utilisez simplement la commande suivante:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
indique le chemin absolu de l'Android APK (non compilé par ARK) avec des boguesnew
indique le chemin absolu d'Android APK (non compilé par ARK) avec la fixationLe fichier de correctif est emballé dans APK.
FAIRE
À l'heure actuelle, il est compilé par l'équipe du compilateur ARK. Le patch de sortie est toujours emballé au format APK sans signature.
Pour Tinker-Cli, ajoutez les lignes suivantes à votre tinker_config.xml
. Sinon, la configuration par défaut sera utilisée.
< issue id = " arkHot " >
< path value = " arkHot " /> // path of patch
< name value = " patch.apk " /> // name of patch
</ issue >
Pour Gradle, ajoutez les lignes suivantes à votre app/build.gradle
. Sinon, la configuration par défaut sera utilisée.
ark {
path = " arkHot " // path of patch
name = " patch.apk " // name of patch
}
Le patch est compilé par ARK et placé sur le chemin ci-dessus. Toutes les opérations ultérieures sont les mêmes que Tinker-Cli ou Gradle.
Le correctif ultimé APK se compose de deux fichiers de correctifs:
classes.dex
pour Androidpatch.apk
avec ainsi pour arche. Il y a des problèmes que Tinker ne peut pas mettre à jour dynamique.
Un problème?
Pour plus d'informations sur les problèmes de contribution ou les demandes de traction, consultez notre guide de contribution Tinker.
Tinker est sous la licence BSD. Voir le fichier de licence pour plus de détails.