使用Android注解来改善代码
昨晚看到一篇好文章。然后是英文的。所以决定翻译分享给大家。这是原文链接:http://www.michaelevans.org/blog/2015/07/14/improving-your-code-with-android-support-annotations/
假设你还没听说过Android支持注解库,那么你将错过能够帮助你捕获bug的一个轻便灵活的新包。
在这个库中包括了非常多Java的注解,它将帮助Android Studio为了可能出现的错误来检查你的代码,而且反馈通知给你。这个库有相当多的注解。在此我仅仅打算说明几个,可是假设你须要其余部分完整清晰的说明文档,能够在这里查看:check out the docs。
@NonNull 与 @Nullable
@NonNull 与 @Nullable 可能是支持注解中最基础的,可是绝大多数情况下还是非常实用的。 假设參数或者方法的返回值可能是null为空的,则以凝视一个參数或者方法来表示。
眼下Android Studio 给予了一个非常好的警告提示。在我们做了一些不安全严谨的编码操作的时候。
比如这样:
改动后是这样:
更赞的是:我们甚至能够像样例一样更进一步的使用@CheckResult注解,来告诉我们该方法的返回值类型是我们估计要使用的,而不是错误效果的方法:
@StringRes 与 @DrawableRes 等等
你是不是在TextView上调用setText方法。常常会出现莫名其妙的异常java android.content.res.Resources$NotFoundException: String resource ID #0x3039? 假设设置了一个整型数给setText。TextView会假定这个整型数是一个字符串的资源id,为了设置string文本将会查询这个整数。
对于整型数是无效的资源id的问题,能够通过@StringRes 注解来补救。
public void setText(@StringRes int id) {
// Do something like getString(id), etc.
}
假设你设置无效的字符串资源id到setText方法里。就会例如以下图显示:
这个库还为全部的资源类型都提供了相相应的资源注解:java@DrawableRes, @ColorRes,@InterpolatorRes, 等等。
@Keep
今天发现了一个新支持注解@Keep。依据注解文档描写叙述,这个注解还没有连接到Gradle插件中,可是当在混淆app的时候通过凝视方法和类能够被保留。
这个便捷的注解就通知混淆器保留相应的方法和类,就像这样:
public class Example {
@Keep public void doSomething() {
// hopefully this method does something
}
...
}
假设你正在用的是appcompat-v7的包,就已经包括了 support-annotations的库,那就開始愉快的使用吧!(逗比这么简单的文章还要你翻译。臭不要脸的…Orz!
)
以上check out the docs链接处须要翻墙才干打开!
使用Android注解来改善代码的更多相关文章
- Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架
前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直 ...
- Android注解使用之使用Support Annotations注解优化代码
前言: 前面学习总结了Java注解的使用,博客地址详见Java学习之注解Annotation实现原理,从本质上了解到什么注解,以及注解怎么使用?不要看见使用注解就想到反射会影响性能之类,今天我们就来学 ...
- Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...
- Android注解支持(Support Annotations)
注解支持(Support Annotations) Android support library从19.1版本开始引入了一个新的注解库,它包含很多有用的元注解,你能用它们修饰你的代码,帮助你发现bu ...
- android注解使用详解(图文)
在使用Java的SSH框架的时候,一直在感叹注解真是方便啊,关于注解的原理,大家可以参考我的另一片文章Java注解详解.最近有时间研究了android注解的使用,今天与大家分享一下. android中 ...
- Android Studio环境下代码混淆+签名打包
Android Studio环境下代码混淆+签名打包 作者 Mr_冯先生 关注 2016.08.21 01:10 字数 1040 阅读 734评论 5喜欢 34 注:本文使用的Android Stud ...
- Android注解框架实战-ButterKnife
文章大纲 Android注解框架介绍 ButterKnife实战 项目源码下载 一.框架介绍 为什么要用注解框架? 在Android开发过程中,我们经常性地需要操作组件,操作方法有findVie ...
- 开发自己的山寨Android注解框架
目录 开发自己的山寨Android注解框架 开发自己的山寨Android注解框架 参考 Github黄油刀 Overview 在上一章我们学习了Java的注解(Annotation),但是我想大家可能 ...
- Android注解支持(Support Annotations) (转)
原文地址:http://www.flysnow.org/2015/08/13/android-tech-docs-support-annotations.html 注解支持(Support Annot ...
随机推荐
- Mysql书签
关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析
- java面试题之什么是线程ThreadLocal?作用是什么?
定义:线程局部变量是局限于线程内的变量,属于线程自身所有,不在多个线程间共享.java提供ThreadLocal类来支持线程局部变量,是一个实现线程安全的方式. 任何线程局部变量一旦在工作完成后没有释 ...
- linux tomcat安装(二)
安装步骤: 1.下载 Tomcat 下载 apache-tomcat-7.0.69.tar.gz(官方网址:http://tomcat.apache.org/) 2.解压 Tomcat 解压 apac ...
- ecs01初始化node环境
npm install 报错 > uglifyjs-webpack-plugin@ postinstall /opt/apps/iview-admin/node_modules/webpack/ ...
- 【CF645D】 Robot Rapping Results Report(拓扑排序,二分)
题意:有一张N点M边的有向图,求最小的K使根据前K条边就能够确定图是否有唯一的拓扑序, 若没有唯一拓扑序输出-1 思路:二分答案再拓扑排序,以入度为0的节点作为新的一层,若某一层的节点个数<&g ...
- 标准C程序设计七---61
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- MinGW 创建的程序或 DLL 脱离 libgcc-xx-xx.dll 和 libstdc++-x.dll 运行库的方法
MinGW 沿袭了 Linux 下 gcc/g++ 的习惯,编译出的程序或者动态链接库(共享库)总是默认采用动态链接方式,需要系统中附带运行时库文件 libgcc-xx-xx.dll 和 libstd ...
- PHP实现自定义中奖和概率算法
最近玩<QQ飞车手游>,出了一款点券A车,需要消耗抽奖券抽奖,甚是激动,于是抽了几次,没想到中的都是垃圾道具,可恨可叹~~ 这几天项目中也涉及到了类似的概率操作,于是思考了一下,简单分装了 ...
- Vue.js实战:初识Vue.js
一.Vue.js是什么 简单小巧的核心,渐进式技术栈,足以应付任何规模的应用. 简单小巧指的是Vue.js 压缩后大小仅有17KB 所谓渐进式(Progressive)就是你一步一步,有阶段性地来使用 ...
- Codeforces Gym101606 J.Just A Minim (2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017))
J Just A Minim 超级无敌大水题,但是被精度卡了一手,输出要精确到小数点后6位,我直接输出的... 代码: 1 #include<iostream> 2 #include< ...