前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直到后来android-apt的出现通过注解根据反射机制动态编译生成代码的方式来解决在运行时不再使用发射机制,不过随着android-apt的退出不再维护,我们今天利用Android studio的官方插件annotationProcessor来实现一下自己的ButterKnife UI注解框架. 需…
apt: @Retention后面的值,设置的为CLASS,说明就是编译时动态处理的.一般这类注解会在编译的时候,根据注解标识,动态生成一些类或者生成一些xml都可以,在运行时期,这类注解是没有的~~会依靠动态生成的类做一些操作,因为没有反射,效率和直接调用方法没什么区别~~~ RUNTIME, 说明就是运行时动态处理,这个大家见得应该最多,在运行时拿到类的Class对象,然后遍历其方法.变量,判断有无注解声明,然后做一些事情. SOURCE,标记一些信息,这么说可能太抽象,那么我说,你见过@O…
Android高效率编码-findViewById()的蜕变-注解,泛型,反射 Android的老朋友findViewById()篇! 先看看他每天是在干什么 //好吧,很多重复的,只不过想表达项目里确实有很多控件 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.laft_drawer); mDrawerLayout = (Dra…
前言: 本人是一个只有几个月工作经验的码小渣.这是我写的第一篇博客,如有不足之处还请大家不要介意,还请大佬可以指出问题. 在这几个月的实战开发中自己也遇到了很多问题,真的是举步艰难啊!!! 在实战开发中遇到最多的就是findViewById我相信这也是很多和我一样初入安卓行业的码小渣遇到的最多的代码. 现在来给码小渣同志们分享一个非常实用的框架   “ButterKnife” 这是“听着music睡”大佬给我推荐的.大家可以关注一下他,人特别好.我的这篇文章就是参考了他的文章. 废话不多说上图.…
本文主要是记录注解的使用的学习笔记,如有错误请提出. 在通常的情况下,我们在Activity中有一个View,我们要获得这个View的实例是要通过findViewById这个方法,然后这个方法返回的是一个Object类型,我们还需要进行强制的类型转换,但是相信很多人都遇到过,当我们的一个布局中有很多个控件的时候,每一个控件都要进行上面的这个操作其实是很烦躁的,特别是强制类型转换,即使是用Alt+Enter,多按几次都累了.而今天要用的是通过注解的方式来简化这一个复杂的步骤,在我们编写好相应的代码…
一般我们在写android Activity的时候总是会在onCreate方法中加上setContentView方法来加载layout,通过findViewById来实现控件的绑定,每次写这么多代码总觉得很烦躁.近来看了下android中有Annotation来实现这方面的简化,对于java不是很了解,就简单的看了下.上次玩web的时候,springmvc也有很多的注解,不知道怎么实现的,这里其实基本上类似. Annotation注解这里主要还是讲讲怎么使用吧,单纯的原理会把人绕进去的,没办法,…
android 中的一些资源注解,让编译器帮你检查代码 写方便的时候可以用注解来声明一些参数,以明确的指示参数的类型,让代码更安全.我们看到,在android源代码里大量使用了注解.我整理了一些注解如下: @NonNull  告诉编译器,这个参数是非空的,编译器会帮你做出检查. 示例: @NonNull public static Snackbar make(@NonNull View view, @StringRes int resId, @Duration int duration) {  …
android Observable api请求参数设置注解问题 2018-10-29 20:05:24.919 11786-11786/xxx E/wxh: getQuote=USD getBase=ETH2018-10-29 20:05:24.927 11786-11786/xxx E/ProgressObserver____: onSubscribe: 2018-10-29 20:05:24.933 11786-11841/xxx D/OkHttp: --> POST http://192…
Atitit.注解and属性解析(2)---------语法分析 生成AST  attilax总结  java .net 1. 应用场景:::因为要使用ui化的注解 1 2. 使用解释器方式来实现生成AST 1 3. 识别TerminalExpression和NonterminalExpression 2 1.1. 单词流必须识别为保留字,标识符(变量),常量,操作符(运算符 )和界符五大类 2 1.2. 操作符(运算符 )::: 2 4. 生成括号操作符表达式 2 5. 逗号操作符表达式 5…
1.generator配置文件generatorConfig.xml的区别 2.生成代码的区别 注:二者的实体类都一样. (1)基于XML 生成的文件有: 后面省略. 也就是说,基于xml的方式,是要生成Mapper.xml文件的. (2)基于注解的方式 生成的文件有: 因为toolkit代码中用的基于xml的方式,所以我也用基于xml的方式,这样可以继承一些方法,不用全部重新定义.…