转自:http://blog.csdn.net/maosidiaoxian/article/details/50452706
Android Support库是官方出的支持扩展库,包含了丰富的组件、工具类等,通过在Android SDK Manager中勾选以下两项来获取到。
其中,Android Support Library
下载的是对应的源码或jar包,在使用Eclipse时会从这里拷贝出需要的文件到项目中。而Android Support Repository
下载的是这个support库所对应的本地Maven库。如果你是使用Gradle进行构建(如Android Studio),并通过远程依赖的方式来使用support库的话,则需要下载它,才能获取到对应的依赖。
如上面所说,Android support库包含了众多有用的类库,包括目前基本在项目中都会用到的support-v4包。而本序列第一篇要讲的是,除此support-v4库之外,我们用得特别多的一个库:android-support-annotations。
由于我所使用的是Android Studio,所以对于Eclipse相关的知识在本篇及后续博客中都会略过不谈。
android-support-annotations是Android官方提供的一个注解库,它提供了许多有用的注解,这些注解的生命周期为源码时期,也就是在编译之后则不再保留,通常用于辅助代码上的静态检查。
在Gradle中引入这个库的方式通常如下:
compile 'com.android.support:support-annotations:23.1.1'
- 1
但是如果你已经通过这种方式依赖了support-v4库的话,则不必再显式声明依赖它,因为support-v4也依赖于这个库,由于Gradle的传递依赖的特性,你的项目如果依赖了support-v4库的话,也会依赖到这个注解库。
通过使用support-annotations的注解,我们可以限定一些变量、方法参数或者是方法返回值的范围,这些注解涵盖的使用范围如下:
22个资源类注解:
-
AnimatorRes
:指出一个integer
的参数,成员变量,或方法返回值是一个animator
资源的引用。 -
AnimRes
:指出一个integer
的参数,成员变量,或方法返回值是一个anim
资源的引用。 -
AnyRes
:指出一个integer
的参数,成员变量,或方法返回值是一个任意资源类型的引用。 -
ArrayRes
:指出一个integer
的参数,成员变量,或方法返回值是一个array
资源类型的引用。 -
AttrRes
:指出一个integer
的参数,成员变量,或方法返回值是一个attr
资源的引用。 -
BoolRes
:指出一个integer
的参数,成员变量,或方法返回值是一个boolean
资源的引用。 -
ColorRes
:指出一个integer
的参数,成员变量,或方法返回值是一个color
资源的引用。 -
DimenRes
:指出一个integer
的参数,成员变量,或方法返回值是一个dimen
资源的引用。 -
DrawableRes
:指出一个integer
的参数,成员变量,或方法返回值是一个drawable
资源的引用(包括@mipmap
)。 -
FractionRes
:指出一个integer
的参数,成员变量,或方法返回值是一个fraction
资源的引用。 -
IdRes
:指出一个integer
的参数,成员变量,或方法返回值是一个id
资源的引用。 -
IntegerRes
:指出一个integer
的参数,成员变量,或方法返回值是一个integer
资源的引用。 -
InterpolatorRes
:指出一个integer
的参数,成员变量,或方法返回值是一个interpolator
资源的引用。 -
LayoutRes
:指出一个integer
的参数,成员变量,或方法返回值是一个layout
资源的引用。 -
MenuRes
:指出一个integer
的参数,成员变量,或方法返回值是一个menu
资源的引用。 -
PluralsRes
:指出一个integer
的参数,成员变量,或方法返回值是一个plurals
资源的引用。 -
RawRes
:指出一个integer
的参数,成员变量,或方法返回值是一个raw
资源的引用。 -
StringRes
:指出一个integer
的参数,成员变量,或方法返回值是一个string
资源的引用。 -
StyleableRes
:指出一个integer
的参数,成员变量,或方法返回值是一个styleable
资源的引用。 -
StyleRes
:指出一个integer
的参数,成员变量,或方法返回值是一个style
资源的引用。 -
TransitionRes
:指出一个integer
的参数,成员变量,或方法返回值是一个transition
资源的引用。 -
XmlRes
:指出一个integer
的参数,成员变量,或方法返回值是一个xml
资源的引用。
颜色注解:
假如我们定义了一个方法用来设置颜色,但是因为表示颜色用的是int类型,这样就会导致使用的人无法区分是要传一个表示颜色的资源还是颜色值,对于这种情况,support-annotations给我们提供了以下这个注解:
-
ColorInt
:指出一个被注解的元素,是一个int颜色值,表示的是AARRGGBB
。
4个线程相关的注解:
-
BinderThread
:指出被注解的方法应该只在binder线程中被调用。 -
MainThread
:指出被注解的方法应该只在主线程中被调用。 -
WorkerThread
:指出被注解的方法应该只在工作线程中被调用。 -
UiThread
:指出被注解的方法应该只在UI线程中被调用。
关于这四个注解的差异,可参见stackoverflow的回答:Difference between MainThread, UiThread, WorkerThread, BinderThread in Android Annotation
其他方法相关的注解:
-
CallSuper
:指出一个方法如果被重写了,它必须也被调用。比如Activity的生命周期方法onCreate
方法等。 -
CheckResult
:指出一个方法返回的结果通常是否为一个忽略的错误。比如删除文件:new File("xx").delete();
-
Keep
:指出一个方法在被混淆的时候应该被保留。
取值范围的注解:
-
FloatRange
:指出一个被注解的元素应该是一个给定范围内的float值或double值。比如:
@FloatRange(from=0.0,to=1.0)
public float getAlpha() {
...
}
- 1
- 2
- 3
- 4
-
IntRange
:指出一个被注解的元素应该是一个给定范围内的int值或long值。 -
IntDef
:指出一个int类型的元素,它表示的是一个逻辑上的类型,并且它的值必须是被明确声明的常量之一。官方常使用这种方式使int类型代替enum类型。 -
StringDef
:指出一个String类型的元素,它表示的是一个逻辑上的类型,并且它的值必须是被明确声明的常量之一。
空指针检查
通常我们如果对一个变量进行主动的赋值为null,编译器可能会进行可能引发空指针异常的警告,我们可以使用以下注解对这种行为进行控制。
- NonNull
:指出一个参数,变量,或方法返回值永远不可为null。
- Nullable
:指出一个参数,变量,或方法返回值可能为null。
其他注解:
-
Size
:表示一个被注解的元素应该有一个给定的大小或长度。 -
VisibleForTesting
:可注解一个类,方法,或变量,表示有更宽松的可见性,这样它能够有更宽泛的可见性,使代码可以被测试。
本文原创,转载请注明出处。
关于博文内容,如有遗误错讹,欢迎指出。如果你觉得写得还可以,欢迎微信扫描左侧栏底部二维码进行打赏。
相关推荐
标题提到的"android-support-v4 .jar"和"android-support-annotations.jar"是Android支持库中的两个关键组件。 "android-support-v4 .jar"是Android支持库的v4版本,它是对Android API Level 4(Android 1.6 Donut...
首先,我们来看一下`android-support-annotations.jar.zip`这个压缩包,其中包含的核心文件`android-support-annotations.jar`正是Android Support Annotations库的实现。这个库包含了各种注解(annotations),如`@...
《深入理解Android支持库:android.support.annotations.jar》 在Android应用开发中,`android.support.annotations.jar`是一个至关重要的组件,它是Google为开发者提供的一种支持库,主要用于解决在Eclipse环境中...
"Android Support Library"就是为了解决这个问题而推出的,它是一系列库,旨在帮助开发者在多个Android版本上实现一致的行为和特性,无需依赖最新的API。在这个场景中,我们关注的是版本号为23.2.0的兼容包。 **...
support-annotations-28.0.0,自己用的eclipse的jar包,方便用户使用!
### 深入浅出Android Support Annotation #### 引言 在Android开发过程中,为了提高代码的可读性和维护性,开发者们会采用各种各样的技术手段,其中使用注解是一种非常有效的方法之一。Android Support Library ...
Android Support 包之一的 support-annotations 是通过静态编译检测来提高代码质量的一个注解工具。里面包含了 Android 开发中常用的代码检测注解,帮助开发者提高代码质量。
支持库中的`support-annotations-27.1.1.jar`文件包含了`@RequiresApi`在内的各种注解,这些注解是进行兼容性编程的关键。通过导入这个库,开发者可以使用这些注解来标记代码,确保代码的正确运行范围。 使用`@...
`support-annotations.zip`是一个包含Android支持库中注解相关类的压缩包,主要用于增强应用程序的功能和可维护性。这个库是从Android Support Library 19.1版本开始引入的,旨在帮助开发者更方便地使用各种注解,而...
Android Support Library是Google为了兼容不同版本的Android系统而推出的一系列库包,它们极大地扩展了Android SDK的功能,并提供了向后兼容性,使得开发者可以利用最新的API特性,即使这些特性在目标设备上并未原生...
android-support-annotations.jar android-support-v4.jar android-support-v7-appcompat.jar ... android-support-v7-recyclerview android-support-v13.jar
《Android支持库之Support Annotations详解》 在Android开发中,`support-annotations`是一个至关重要的组件,它提供了丰富的注解,极大地增强了代码的可读性和可维护性。本篇文章将详细解析`support-annotations-...
gradle编译报错说23.3.3找不到时,把这个包解压放到sdk的extras\android\m2repository\com\android\support\support-annotations即可
这里我把5个包合并为一个大包,注意大包里面没包含android-support-annotations-25.3.1 android-support-v4-25.3.1(由下面的5个小包合并) v4-support-compat-25.3.1 v4-support-core-ui-25.3.1 v4-support-core-...
support-annotations-23.1.0.jar
Android Annotations是Android开发中的一个开源库,它通过提供一组注解,简化了Android应用的编码工作,使开发者能够更专注于业务逻辑,而不是繁琐的视图绑定和依赖注入。这个库的目标是提高代码的可读性和可维护性...
android-support-annotations-25.3.1.jar 最近版本jar包,可直接导入使用。
Android Annotations库是专门为Android应用设计的一个注解处理框架,它提供了一系列预定义的注解,可以极大地简化Android开发中的常见任务,如UI绑定、依赖注入、生命周期管理等。下面我们将详细探讨Android ...
support-annotations-23.0.1-sources.jar