中文说明
Tinker es una biblioteca de soluciones de hot de Android, admite la actualización de DEX, biblioteca y recursos sin reinstalar APK.
Agregue Tinker-Gradle-Plugin como dependencia en su build.gradle
principal. Gradle en la raíz de su proyecto:
buildscript {
dependencies {
classpath ( ' com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1 ' )
}
}
Luego, debe "aplicar" el complemento y agregar dependencias agregando las siguientes líneas a su 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 su aplicación tiene una clase que subclasea Android.App.Application, entonces debe modificar esa clase y mover todos sus implementos a la aplicación de muestreo en lugar de la aplicación:
- public class YourApplication extends Application {
+ public class SampleApplicationLike extends DefaultApplicationLike {
Ahora debe cambiar su clase Application
, conviértalo en una subclase de TinkerApplication. Como puede ver en su API, es una clase abstracta que no tiene un constructor predeterminado, por lo que debe definir un constructor 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" );
}
}
Use tinker-android-anno
para generar su Application
.
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
¿Cómo instalar Tinker? Obtenga más información en la muestra de muestreo similar.
Para Proguard, ya hemos hecho la configuración Proguard automática, y Tinker también generará el archivo de proguard multidex para usted.
Para obtener más configuraciones de Tinker, obtenga más información en la aplicación de muestra/build.gradle.
¿Cómo ejecutar Tinker en el arca?
Solo usa el siguiente comando:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
indica la ruta absoluta de Android APK (no compilada por ARK) con erroresnew
indica la ruta absoluta de Android APK (no compilada por Ark) con la fijaciónEl archivo de parche está empaquetado en APK.
HACER
Actualmente está compilado por el equipo de compiladores de ARK. El parche de salida todavía está empaquetado en formato APK sin firma.
Para Tinker-Cli, agregue las siguientes líneas a su tinker_config.xml
. De lo contrario, se utilizará la configuración predeterminada.
< issue id = " arkHot " >
< path value = " arkHot " /> // path of patch
< name value = " patch.apk " /> // name of patch
</ issue >
Para Gradle, agregue las siguientes líneas a su app/build.gradle
. De lo contrario, se utilizará la configuración predeterminada.
ark {
path = " arkHot " // path of patch
name = " patch.apk " // name of patch
}
El parche es compilado por ARK y se coloca en el camino anterior. Todas las operaciones posteriores son las mismas que Tinker-Cli o Gradle.
El Patch APK final consta de dos archivos de parche:
classes.dex
para Androidpatch.apk
con SO para arca. Hay algunos problemas que Tinker no puede actualizar dinámica.
¿Algún problema?
Para obtener más información sobre problemas de contribución o solicitudes de extracción, consulte nuestra Guía de contribución de Tinker.
Tinker está bajo la licencia BSD. Consulte el archivo de licencia para obtener más detalles.