使用注解库
android为我们提供了注解库,帮助我们在编译工程前及时的发现一些问题。达到在代码编译编译期间,编辑器帮助我们检查的效果
Nullness 设置参数是否可以为空
@Nullable作用于函数的参数或者返回值,表示值可以为空
@NonNull 表示值不可以为空
资源类型注解
AnimatorRes :表示资源是R.animator
AnimRes:表示资源是R.anim
AnyRes:表示为任何一种资源
Boolean :表示值是boolean类型
ColorRes:表示值是R.color
DrawableRes:表示值是R.drawable
IdRes:表示值是id类型
RawRes:表示值是R.raw
LayoutRes:表示值是R.layout的类型
使用整形值达到枚举的作用
使用@IntDef 讲允许的值传递给该注解,在使用时达到枚举的效果
线程注解
@UiThread 标记视图操作在主线程
@MainThread 标记业务在主线程
@WorkerThread 标记在后台线程工作
@BinderThread 标记在binder线程
值的范围注解
@Size:对于限定数组,集合,字符串长度时,可以使用
@Size(min=1) 集合不可以为空
@Size(max=2) 字符串最大长度是2
@Size(multiple=2) 长度为2的倍数
@IntRange(from=0,to=330)
参数的范围是0---330
权限注解
RequiresPermission 调用该方法时,检查有没有声明权限。
@RequiresPermisson(权限) 声明一个
@RequiresPermisson(anyof={权限,权限}) 至少声明范围内的一个
@ RequiresPermisson(allof={权限,权限}) 全部都要声明
keep保证方法不会混淆
@keep