王学岗移动架构35-IOC框架设计之Butterknife

我们平时写代码,都是java文件,然后转化为class文件,在java虚拟机中运行,我们上一篇文章写的 IOC,都是运行时候绑定的。今天,我们用一个APT的东东,我们在java转化为class文件的时候,我们使用APT,可以做很多事情。在编译阶段使用注解是无需反射的,性能会提升。ButterKnife的用法我就不介绍了,很简单,我们现在手动写一套Butterknife框架。
我们的模块分为以下几个,APP的Module,annotations的Moudle,专门用来提供注解。annotation compile 处理其它模块中的注解,就是我们的APT

annotation_compile的build.gradle

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    //注册我们的注解处理器
    //如果我们希望当前的模块是注解处理器,需要加这两句代码
//    implementation 'com.google.auto.service:auto-service:1.0-rc3'
    // As-3.4.1 + gradle5.1.1-all + auto-service:1.0-rc4
    annotationProcessor'com.google.auto.service:auto-service:1.0-rc4'
    compileOnly'com.google.auto.service:auto-service:1.0-rc4'

    implementation project(path: ':annotations')
}

sourceCompatibility = "7"
targetCompatibility = "7"

在app的build.gradle里面修改

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation project(path: ':annotations')
    //添加这句代码,这里不能写成implementation
    annotationProcessor project(path: ':annotation_compiler')
}

待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值