使用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 ...
随机推荐
- operator的各种问题
a+b = a^b + (a&b)<<1 用位运算实现两数相加 int Add(int a,int b) { return b?Add(a^b,(a&b)<<1 ...
- MFC拾遗
c++处理文件,对txt进行处理,学了那么久才发现我还不会这些操作,另外c++处理文本真是快得可怕啊 #include <iostream> #include <fstream> ...
- CS231n笔记 Lecture 5 Convolutional Neural Networks
一些ConvNets的应用 Face recognition 输入人脸,推测是谁 Video classfication Recognition 识别身体的部位, 医学图像, 星空, 标志牌, 鲸.. ...
- HDU——1003Max Sum(子序列最大和)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- BZOJ 4870 [Shoi2017]组合数问题 ——动态规划 矩阵乘法
注意到$r<k$ 别问我为什么要强调. 考场上前30分水水. 然后写阶乘的时候大力$n\log {n}$预处理 本机跑的挺快的,然后稳稳的T掉了. 然后就是简单的矩阵乘法了. #include ...
- Java面试题之notify和notifyAll的区别
锁池: 假设线程A已经拥有对象锁,线程B.C想要获取锁就会被阻塞,进入一个地方去等待锁的等待,这个地方就是该对象的锁池: 等待池: 假设线程A调用某个对象的wait方法,线程A就会释放该对象锁,同时线 ...
- 数据库操作之——key与index的区别
mysql的key和index多少有点令人迷惑,这实际上考察对数据库体系结构的了解的. 1 key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查 ...
- poj 2318 TOYS 点与矩形的关系
题目链接 题意 有一个矩形盒子,\(n(n\leq 5e4)\)条线段将其分成了\(n+1\)个区域(每条线段的两个端点分别在矩形的上边和下边,且线段互不相交).现向盒子中扔\(m(m\leq 5e4 ...
- EXT.JS6中的model,store,proxy的一些用法
//one-to-one Ext.define('Address', { extend: 'Ext.data.Model', fields: [ 'address', 'city', 'state', ...
- 小程序-生成一个小程序码画在canvas画布上生成一张图片分享出去
这个需求我遇到过2次.一次是在识别二维码后跳转到其它页面,另一次是识别二维码后进入到生成小程序码的当前页面. 我有一个梦想,就是成为一名黑客!!!!!! 小程序中js wx.request({ ...