Support Annotation Library使用详解

Support Annotation Library是从Android Support Library19.1开始引入的一个全新的函数包。包含一系列的元注解,用来帮助开发者在编译间发现可能存在的bug。

下面我们看看都有哪些注解吧!

1、Nullness注解

  • @Nullable 作用于函数参数或返回值,标记参数或返回值可以为空。
  • @NonNull 同上,但标记参数或返回值不能为空。

2、资源类型注解

资源在Android通常是以整型值表示的,并保存在R.java中。资源类型的注解作用于函数参数、返回值及类的变量,在support-annotations-23.1.1中,每一个资源类型对应一个注解。

  • AnimatorRes:标记整型值是android.R.animator类型;
  • AnimRes:标记整型值是android.R.anim类型;
  • AnyRes:标记整型值是任何一种资源类型,如果确切知道表示的是哪一种具体资源的话,建议使用显式指定;
  • ArrayRes:标记整型值是android.R.array类型;
  • BoolRes:标记整型值是布尔类型;
  • ColorRes:标记整型值是android.R.color类型;
  • DrawableRes:标记整型值是android.R.drawable类型;
  • FractionRes:标记整型值是fraction类型,这个比较少见,这种类型资源常见于Animation XML中,比如50%p,表示占parent的50%;
  • IdRes:标记整型值是android.R.id类型,常见资源;
  • IntegerRes:标记整型值是android.R.integer类型;
  • Interpolator:标记整型值是android.R.interpolator类型;
  • MenuRes:标记整型值是android.R.menu类型;
  • LayoutRes:标记整型值是android.R.layout类型;
  • PlursRes:标记整型值是android.R.plurals类型,表示复数字符串类型;
  • RawRes:标记整型值是android.R.raw类型;
  • StringRes:标记整型值是android.R.string类型;
  • StyleableRes::标记整型值是android.R.styleable类型;
  • StyleRes:标记整型值是android.R.style类型;
  • TransitionRes:标记整型值是android.R.transition类型;
  • XmlRes:标记整型值是android.R.xml类型;

3、类型定义注释

  • @IntDef 注释用来创建一个整型类型定义的新注释,我们可以用这个新注释来标记自己编写的api;

4、线程注释

  • @UIThread :标记运行在UI线程。一个UI线程是一个activity运行所在的主窗口,对于一个应用而言,可能存在多个UI线程,每个UI线程对应不同的窗口;
  • @MainThread:标记运行在主线程。一个应用只有一个主线程,主线程也是@UIThread线程,通常情况下,我们使用@MainThread来注释生命周期相关函数,使用@UIThread来注释视图相关函数,一般情况下,@MainThrea和@UIThread是可以互换使用的;
  • @WorkerThread:标记运行在后台的线程;
  • @BinderThread:标记运行在Binder线程;

5、RGB颜色注释

  • @ColorInt:标记参数类型需要传入RGB或者ARGB颜色整型值;

6、值范围注释

  • @Size:对于类似数组、集合和字符串之类的参数,该注释表示这些参数的大小;如:@Size(2) 可以表示数组元素个数是2;
  • @IntRange:参数类型是int或者long;
  • @FloatRange:参数类型是float或double;

7、权限注解

  • @RequiresPermission:为了在 编译期间及时发现缺失的权限,可使用该注释;

8、重写函数注释

  • @CallSuper:如果api允许调用者重写某个函数,但同时要求重写的函数需要调用被重写的函数,否者代码逻辑会错误,那么可以使用@CallSuper注释来提示开发者;

9、返回值注释

  • @CheckResult:如果我们编写的函数需要调用者对返回值做某些操作,那么可以使用@CheckRrsult来提示开发者

10、@VisibleForTesting:单元测试中可能需要访问到一些不可见的类、函数、变量,这时可以使用@VisibleForTesting注释来使其对测试可见;

11、@Keep:用来标记在Proguard混淆过程中不需要混淆的类或者方法;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值