Tinker

Tinker是一个Android热修复解决方案库,它支持无安装apk的DEX,库和资源更新。

nMFnMn.png

入门

将 tinker-gradle-plugin 作为一个依赖添加到项目的根目录的主要build.gradle中。

buildscript {

dependencies {

classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.5')

}

}

然后你需要应用这个插件并通过在app/build.gradle中添加下列内容来应用插件:

dependencies {

//optional, help to generate the final application

provided('com.tencent.tinker:tinker-android-anno:1.7.5')

//tinker's main Android lib

compile('com.tencent.tinker:tinker-android-lib:1.7.5')

}

...

...

apply plugin: 'com.tencent.tinker.patch'

如果你的app中有一个 android.app.Application的子类,那么你需要修改这个类,并将它的所有实现方案移动到SampleApplicationLike中:

-public class YourApplication extends Application {

+public class SampleApplicationLike extends DefaultApplicationLike {

现在你需要改变你的 Application类,将它作为TinkerApplication的子类。 正如你从这个API中所看到的,它是一个没有默认构造函数的抽象类,所以你必须定义一个无参数的构造函数:

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-annoto 来生成Applicationis ,你只需要为你的SampleApplicationLike类添加注释即可:

@DefaultLifeCycle(

application = "tinker.sample.android.app.SampleApplication", //application name to generate

flags = ShareConstants.TINKER_ENABLE_ALL) //tinkerFlags above

public class SampleApplicationLike extends DefaultApplicationLik

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐