首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏QQ音乐技术团队的专栏

    浅析ButterKnife

    初探ButterKnife ButterKnife是Jake Wharton写的开源依赖注入框架,它和Android Annotations比较类似,都是用到了Java Annotation Tool来在编译期间生成辅助代码来达到 ButterKnife在业务层的使用我就不介绍了,各位老司机肯定是轻车熟路。假如是我们自己写类似于ButterKnife这样的框架,那么我们的思路是这样:定义注解,扫描注解,生成代码。 让我们以ButterKnife最新版本8.4.0的源代码为例。假如是我们自己写ButterKnife这样的框架,那么第一步肯定得先定义自己的注解。 在ButterKnife源码的butterknife-annotations包中,我们可以看到ButterKnife自定义的所有的注解,如下图所示。 ? :8.4.0' apt 'com.jakewharton:butterknife-compiler:8.4.0' } 总结 ButterKnife作为一个被广泛使用的依赖注入库,有很多优点: 没有使用反射

    1K61发布于 2018-01-31
  • 来自专栏vsdfa

    ButterKnife adapter报错

    Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

    51320发布于 2020-03-04
  • 来自专栏程序员开发工具

    butterknife 源码分析

    本篇博客要分析的 ButterKnife 的源码主要包括以下三个部分,版本号是8.5.1 butterknife-annotations butterknife-compiler butterknife 其中 butterknife-annotations 库主要用来存放自定义注解;butterknife-compiler 主要是用来扫描哪些地方使用到我们的自定义注解,并进行相应的处理,生成模板代码等 ;butterknife 主要是用来注入我们的代码的。 :butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' } public class 我们对 ButterKnife 的分析到此为止。 ---- 题外话 这篇博客主要是分析了 ButterKnife 的主要原理实现,对 ButterKnife 里面的一些实现细节并未详细分析。

    1.1K10发布于 2018-09-17
  • 来自专栏深入理解Android

    Butterknife全方位解析

    本篇博客将对Butterknife进行深入解析。 ; import butterknife.BindView; import butterknife.ButterKnife; public class ButterknifeActivity extends ; import butterknife.BindView; import butterknife.ButterKnife; public class ButterknifeActivity extends ; import butterknife.BindView; import butterknife.ButterKnife; public class ButterknifeActivity extends ; import butterknife.BindView; import butterknife.ButterKnife; public class ButterknifeActivity extends

    91830编辑于 2022-06-22
  • 来自专栏俞其荣的博客

    ButterKnife源码分析

    比如今天要分析的主角—— ButterKnife ,如果你做 Android 开发却没有听说过 ButterKnife 那就 Out 啦。 image.png 0x02 ButterKnife 的使用方法 我们先讲下 ButterKnife 的使用方法: 使用方法非常简单,不得不赞叹 ButterKnife 实在是太方便了。 ButterKnife 的注解都在 butterknife-annotations 模块下: butterknife注解 发现我们平时常用的 @BindView 、@OnClick 和 @OnItemClick 在 ButterKnife 中 ButterKnifeProcessor (路径:butterknife-compiler/butterknife/compiler/ButterKnifeProcessor.java 0x05 ButterKnife bind() 通过之前介绍 ButterKnife 的使用方法,我们知道 View 绑定是通过调用 ButterKnife.bind() 方法来实现的。

    49820编辑于 2022-07-28
  • 来自专栏曾大稳的博客

    手写 ButterKnife BindView

    先建三个module,分别为Butterknife ButterKnife-Annotions ButterKnife-compiler,其中butterknife为Android Module其余的都是 ButterKnife-Annotions:提供注解。 ButterKnife-compiler: 依赖ButterKnife-Annotions,生成代码的module。 Butterknife:应用直接使用的库。 里面添加ButterKnife-compiler依赖 api project(':ButterKnife-compiler') app添加Butterknife依赖和compiler生成代码依赖 implementation project(':Butterknife') annotationProcessor project(':ButterKnife-compiler') 在app的MainActivity添加注解

    69520发布于 2018-09-11
  • 来自专栏Android干货

    ButterKnife注解框架详解

    Android 懒人注解框架 :https://github.com/JakeWharton/butterknife   前言:     注解,相信很多同学都用到了,对控件进行初始化的时候需要用到 findViewById 那我们使用注解就很方便了,按下面的步骤来,学一下如何在项目中使用注解 一、添加依赖   在app目录下的 build.gradle文件中添加 : compile 'com.jakewharton:butterknife 2、搜索 'Android ButterKnife' 安装插件 Zelezny  右侧绿色安装按钮 ?   3、写个布局,里面有若干个控件 <? 并且onCreate()里多了一个 ButterKnife.bind(this);代码 ?  

    1.1K30发布于 2018-06-08
  • 来自专栏Nicky's blog

    Android系列之butterknife基本用法

    现在安卓项目开发中,butterknife是比较常用的注解框架,从而简化了findViewById的重复使用,提高了编程的效率 然而为什么要使用butterknife? 一方面是为了提高编程效率,一方面butterknife对系统性能是没有影响的,因为butterknife是在编译的时候生成新的class,不是运行时进行反射,所以对性能不会有影响 butterknife 现在最新版本是butterknife8,不过开发中还是主要使用butterknife6和butterknife7 butterknife6和butterknife7用法还是稍稍有点不同的 (a)引入butterknife :7.0.1或者com.jakewharton:butterknife:6.1.0等等,引入框架,也可以网上下载jar,然后选择add as library,添加到项目 (b)butterknife的主要用处 /butterknife/javadoc/ github上开源项目: https://github.com/JakeWharton/butterknife

    2.6K11编辑于 2022-05-07
  • 来自专栏program

    Android ButterKnife(黄油刀)的使用

    GitHub地址:https://github.com/JakeWharton/butterknife ButterKnife基本使用 使用步骤 1.在Setting->Plugins中输入butterknife ——>添加插件Android ButterKnife Aelezny ——>点击安装。 :butterknife-compiler:8.8.1" ButterKnife使用心得 在Activity类中绑定,ButterKnife.bind(this);必须在setContentView() 使用ButterKnife修饰的方法和控件,不能用private or static 修饰,否则会报错。 ButterKnife.bind(this); } } 在Fragment中绑定ButterKnife public class ButterKnifeFragment extends

    1.9K20编辑于 2022-06-29
  • 来自专栏青蛙要fly的专栏

    项目需求讨论— ButterKnife初级小结

    前言 在没有使用DataBinding之前,我的项目都是使用ButterKnife,当然对于ButterKnife大家估计都熟悉的不要太熟悉了。本文我也就当自己的一个总结。 ? 基本使用 基本使用我就直接贴相关的ButterKnife使用教程的文章链接: ButterKnife官方教程的翻译 butterknife github链接 从Github链接我们也可以看出有哪些基本的功能注解 : butterknife : android library model 提供android使用的API butterknife-annotations: java-model,使用时的注解 butterknife-compiler : 该项目的测试用例 butterknife-lint: 该项目的lint检查 sample: demo 复制代码 我们同时可以在butterknife-annotations里面看到基本的注解: ? 详细的生成AAA_ViewBinding.java文件可以看以下链接: 深入理解ButterKnife源码并掌握原理(一) 深入理解ButterKnife源码并掌握原理(二) 深入理解ButterKnife

    57730发布于 2018-08-29
  • 来自专栏Nicky's blog

    Android注解框架butterknife基本用法

    现在安卓项目开发中,butterknife是比较常用的注解框架,从而简化了findViewById的重复使用,提高了编程的效率 然而为什么要使用butterknife? 一方面是为了提高编程效率,一方面butterknife对系统性能是没有影响的,因为butterknife是在编译的时候生成新的class,不是运行时进行反射,所以对性能不会有影响 butterknife 现在最新版本是butterknife8,不过开发中还是主要使用butterknife6和butterknife7 butterknife6和butterknife7用法还是稍稍有点不同的 (a)引入butterknife (b)butterknife的主要用处 (i)Activity类里使用: Demo:只要使用InjectView就可以,然后在onCreate方法里初始化 ButterKnife.inject(类名.this /butterknife/javadoc/ github上开源项目: https://github.com/JakeWharton/butterknife

    1.3K30发布于 2019-01-17
  • 来自专栏Android开发与分享

    【Android】ButterKnife 8.x详解

    ButterKnife 前言 Butterknife——相信多同学都知道,这是一个注解框架,一般在绑定View的时候使用。不得不说,这个框架"有毒",用了就上瘾,连写个Demo都要去导这个库。 不得不承认,在这之前,我对ButterKnife的使用,也只停留在绑定视图和点击事件上。??? 介绍 ButterKnife我已经用了好一段时间了,它除了方便,还是方便。 ButterKnife为我们简化了很多代码,具体有的作用,可以下面的例子来了解。 优势 强大的View绑定和Click事件等处理功能,简化代码,提升开发效率 运行时不会影响APP效率,使用配置方便 代码清晰,可读性强 申明 可能有些人对ButterKnife有一些误解,认为ButterKnife ); 使用Setter final ButterKnife.Setter<View, Boolean> VIEWS_VISIAVLE = new ButterKnife.Setter<View, Boolean

    1.7K100发布于 2018-05-18
  • 来自专栏设计模式

    拆 JakeWharton 系列之 ButterKnife

    他开源的项目特点是小而美,且应用广泛,比如 butterknife、RxBinding、hugo 等,本文从受众最广泛,star 最多的 ButterKnife 讲起。 2 你将获得什么? 组件依赖关系 ButterKnife 共7个组件,他们的依赖关系如下图所示(其中,butterknife-integration-test 工程不做介绍): 0.sample:代表使用 ButterKnife 1.butterknife:这个工程提供了 ButterKnife.bind(this),这是 ButterKnife 对外提供的门面。 5.butterknife-lint:针对 butterknife-gradle-plugin 而做的静态代码检查工具,非常有态度的一种做法,在下文做详细介绍。 ButterKnife 完美地诠释了这一切。

    83230发布于 2020-12-15
  • 来自专栏大宇笔记

    Android Studio ButterKnife Zelezny 安装注意点

    常规操作: ButterKnife Zelezny Github地址 Github作者有讲How to use it,虽然刚学安卓,按照经验这应该很easy。 implementation 'com.jakewharton:butterknife:8.8.1’ annotationProcessor 'com.jakewharton:butterknife-compiler

    73920发布于 2019-01-15
  • 来自专栏我的Android开源之旅

    XPage系列|是时候抛弃ButterKnife

    这意味着如果我们把Gradle插件升级到5.0版本之后ButterKnife将无法再被使用! 而且在ButterKnife的官方文档上也看到了ButterKnife被标注弃用的信息: 因为当初设计XPage是为了能够更方便的使用Fragment, 所以就默认集成了ButterKnife. 果不其然, 我的XPage的开源项目很快就被使用者提了去除ButterKnife的issue, 具体如下: 这样看来, XPage去除ButterKnife依赖是势在必行的, 于是就有了这次XPage 去除butterknife依赖 去除butterknife依赖, 使用ViewBinding代替是趋势所向. 那么使用ViewBinding代替有哪些好处呢? 的sdk implementation 'com.jakewharton:butterknife:10.1.0' annotationProcessor 'com.jakewharton:butterknife-compiler

    89420编辑于 2022-04-18
  • 来自专栏韩曙亮的移动开发专栏

    【Android APT】编译时技术 ( ButterKnife 原理分析 )

    文章目录 一、编译时技术简介 二、ButterKnife 原理分析 二、ButterKnife 生成 Activity_ViewBinding 代码分析 一、编译时技术简介 ---- APT ( Annotation 'com.jakewharton:butterknife-compiler:10.2.3' } 其中 com.jakewharton:butterknife:10.2.3 是 编译时注解 , com.jakewharton :butterknife-compiler:10.2.3 是 注解处理器 ; 二、ButterKnife 原理分析 ---- 使用 ButterKnife : ① 添加依赖 : dependencies { implementation 'com.jakewharton:butterknife:10.2.3' annotationProcessor 'com.jakewharton:butterknife-compiler ; import android.os.Bundle; import android.widget.TextView; import butterknife.BindView; import butterknife.ButterKnife

    78410编辑于 2023-03-29
  • 来自专栏ClericYi's Blog

    锦囊篇|一文摸懂ButterKnife

    implementation 'com.jakewharton:butterknife:10.2.1' annotationProcessor 'com.jakewharton:butterknife-compiler 不得不承认,ButterKnife在一定的程度上会提高我的开发效率,但是他到底是怎么运作呢? 源码分析 在使用ButterKnife的时候其实我们是否注意到一个问题,我们一定需要写一个这样的一段代码。 ButterKnife.bind(this); 如果不写会出现下方这样的错误。 现在我们就来看看通过这个ButterKnife生成的代码是长什么样的。 下方贴出ButterKnife中给出的答案。

    1K40发布于 2020-06-23
  • 来自专栏移动开发

    ButterKnife和Realm同时引用的小问题

    同时引用ButterKnife和Realm编译时可能会出现下述错误: Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug javax.annotation.processing.Processor File1: C:\Users\Администратор.gradle\caches\modules-2\files-2.1\com.jakewharton\butterknife \7.0.1\d5d13ea991eab0252e3710e5df3d6a9d4b21d461\butterknife-7.0.1.jar File2: C:\Users\Администратор.gradle

    63220发布于 2018-10-18
  • 来自专栏Android开发经验

    集成butterknife最新版本8.6.0

    Butter Knife 地址:https://github.com/JakeWharton/butterknife 其实,照着文档集成很简单,在你的moudle目录build文件的dependencies 添加如下代码即可: dependencies { compile 'com.jakewharton:butterknife:8.6.0' annotationProcessor 'com.jakewharton 屏幕快照 2017-07-05 下午4.53.34.png 但是这个问题确实是引入butterknife后才出现的,最后用下边儿的方法解决了这个问题,移除依赖: compile('com.jakewharton :butterknife:8.6.0') { exclude module: 'support-compat' } annotationProcessor 'com.jakewharton :butterknife-compiler:8.6.0' 用上边儿这种方式添加依赖,问题解决。

    85930发布于 2018-06-28
  • 来自专栏刘晓杰

    AnnotationProcessor实战:实现ButterKnife的findViewById方法

    要实现findViewById,需要四个参数(控件类型,控件变量名,宿主view(通常是activity,我们一般省去),以及控件id) BindView 通常是如下使用的

    54320发布于 2020-06-02
领券