Android进阶Support Annotation Library 使用详解

Support Annotation Library是从Android Support Library 19.1 开始引入的一个全新的函数包,它包含一系列有用的元注解,用来帮助开发者在编译期间发现可能存在的Bug。Support Library本身也使用Annotation Library 提供的注解来完善自身的代码质量,Android Studio 提供可视化的交互以便开发者发现问题。

Android Support Library 发展到现在已经不止是一个jar包了,而是拆分成多个独立的Jar包,例如support-v4、support-v7、gridlayout-v7、design、cardview-v7等等。而Annotation Libary 也是其中之一,默认情况下是不会包含在工程中的,如果我们的SDK已经安装了android Support Repository,那么我们打开Project Structure 对话框,并选中一个Module,选中Dependencies选项,点击“+”按钮,在弹出的Choose Library Dependency 对话框中轻松找到Annotation Library。

这里写图片描述

点击添加后,在Module的build.gradle文件中会新增加Annotation函数库的依赖如下:

compile 'com.android.support:support-annotations:26.0.0-alpha1'

下面我们按照类型进行一一介绍。

1. Nullness 注解

此类型包含如下内容:

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

如果在函数参数或返回值使用了上述注解,而又出现违反该注解的代码时,Android Studio 会给出提示,同时使用Android Lint进行静态代码扫描,也会显示出错提示。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        test(null);
    }
    private void test(@NonNull String str) {
        Log.e(TAG,str);
    }

我们用Android Lint扫描这个文件的话,在扫描结果中会出现如下错误:

这里写图片描述

2. 资源类型注解

我们知道,资源是以int整型表示,并保存在R.Java文件中。这就意味着在一个需要Layout资源值函数传入String字符串,在编译时不会报错,只有在运行时才会报错,为了防止这种情况的出现,可以使用资源类型注解。

资源类型的注解作用于函数参数、返回值及类的变量,每种资源类型对应一种注解。

  • AnimatorRes:标记整型值是android.R.animation类型。

  • AnimRes:标记整型是android.R.anim类型。

  • AnyRes:标记整型是任何一种资源类型,如果确切知道表示的是哪一个具体资源的话,建议显式指定。

  • ArrayRes:标记整型是android.R.array类型。

  • AttrRes:标记整型是android.R.attr类型。

  • BoolRes:标记整型是布尔类型。

  • ColorRes:标记整型是android.R.color类型。

  • DrawableRes:标记整型是android.R.drawable类型。

  • FranctionRes:标记整型值是fraction类型,这个比较少见,这种类型资源常见于Animation
    Xml中,比如50%,表示占parent的50%

  • IdRes:标记整型是android.R.id类型。

  • IntegerRes:标记整型是android.R.integer类型。

  • InterpolatorRes:标记整型是android.R.interpolator类型,插值器,在Animation
    Xml中使用较多。

  • LayoutRes:标记整型是android.R.layout类型。

  • MenuRes:标记整型是android.R.menu类型。

  • RawRes:标记整型是android.R.raw类型。

  • StringRes:标记整型是android.R.string类型。

  • StyleableRes:标记整型是android.R.styleable类型。

  • StyleRes:标记整型是android.R.style类型。

  • XmlRes

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值