前言
tinker-android-anno是用来生成application类的,我们就来看下是如何生成的
DefaultLifeCycle
|
|
Processor
|
|
- 首先获取包名,applicaitonClassName
- 然后获取resource目录下的TinkerAnnoApplication.tmpl文件,根据注解的信息,替换其中的内容,生成一个新的Application类
|
|
可以看到,注解生成的Application类继承自TinkerApplication,接下来,我们要看的就是这个啦。
生成的Application以及传入的参数
从模板文件中,我们看到继承自TinkerApplication。而从生成的过程来看,传入的参数如下:
- applicationClassName,注解中application部分,在demo中就是tinker.sample.android.app.SampleApplication
- lifeCyclePackageName,对应demo中的包名+SampleApplicationLike
- falg 就是注解中的flag
- loaderClass就是loaderClassName,对应demo中就是默认值,om.tencent.tinker.loader.TinkerLoader
- verify_flag就是 flag
生成的文件中,会调用父类的构造方法,对应为
|
|