中文说明
O Tinker é uma biblioteca de soluções de Fix Hot Fix para Android, ele suporta a atualização de Dex, Biblioteca e Recursos sem reinstalar o APK.
Adicione a plugina do tinker como uma dependência em sua build.gradle
principal.gradle na raiz do seu projeto:
buildscript {
dependencies {
classpath ( ' com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1 ' )
}
}
Em seguida, você precisa "aplicar" o plug -in e adicionar dependências adicionando as seguintes linhas ao seu 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 '
Se o seu aplicativo tiver uma classe que subclasse Android.App.Application, você precisará modificar essa classe e mover todos os seus implementos para o SampleApplication, em vez de aplicativos:
- public class YourApplication extends Application {
+ public class SampleApplicationLike extends DefaultApplicationLike {
Agora você deve alterar sua classe Application
, torná -lo uma subclasse de TinkerApplication. Como você pode ver na sua API, é uma classe abstrata que não possui um construtor padrão, então você deve definir um construtor não-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 gerar seu Application
é recomendado, você só precisa adicionar uma anotação para sua classe de amostragem semelhante a uma amostragem
@ DefaultLifeCycle (
application = "tinker.sample.android.app.SampleApplication" , //application name to generate
flags = ShareConstants . TINKER_ENABLE_ALL ) //tinkerFlags above
public class SampleApplicationLike extends DefaultApplicationLike
Como instalar o Tinker? Saiba mais na amostra de amostragem como um.
Para o ProGuard, já tornamos a configuração do ProGuard automática, e o Tinker também gerará o arquivo Multidex Keep ProGuard para você.
Para mais configurações do Tinker, saiba mais no aplicativo de amostra/build.gradle.
Como correr Tinker na arca?
Basta usar o seguinte comando:
bash build_patch_dexdiff.sh old=xxx new=xxx
old
indica o caminho absoluto do Android APK (não compilado por arca) com insetosnew
indica o caminho absoluto do Android APK (não compilado pela arca) com a fixaçãoO arquivo de patch é embalado no APK.
PENDÊNCIA
Atualmente, é compilado pela equipe do Ark Compiler. O patch de saída ainda está embalado no formato APK sem assinatura.
Para Tinker-cli, adicione as seguintes linhas ao seu tinker_config.xml
. Caso contrário, a configuração padrão será usada.
< issue id = " arkHot " >
< path value = " arkHot " /> // path of patch
< name value = " patch.apk " /> // name of patch
</ issue >
Para Gradle, adicione as seguintes linhas ao seu app/build.gradle
. Caso contrário, a configuração padrão será usada.
ark {
path = " arkHot " // path of patch
name = " patch.apk " // name of patch
}
O patch é compilado pela Arca e colocado no caminho acima. Todas as operações subsequentes são iguais ao Tinker-Cli ou Gradle.
O Patch APK final consiste em dois arquivos de patch:
classes.dex
para Androidpatch.apk
com assim para arca. Existem alguns problemas que o Tinker não pode atualizar dinâmico.
Algum problema?
Para obter mais informações sobre questões contribuintes ou solicitações de puxar, consulte nosso guia contribuinte do Tinker.
Tinker está sob a licença BSD. Consulte o arquivo de licença para obter detalhes.