安卓小技巧

安卓小技巧

安卓开发中,在低版本SDK使用高版本的API会报错。一般的处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案;后者可以用如下技巧实现。

step 1

在使用了高版本API的方法前面加一个@TargetApi(API版本号)

step 2

在代码上用版本判断来控制不同版本使用不同的代码

eg:

@TargetApi(11)

public void text(){

if(Build.VERSION.SDK_INT>=11){

                      //使用api11新加的api方法

}

else {

//低版本的折衷处理方法

}

}

知识点

  1. Annotation注解

    Annototion继承自java.lang.annotation.Annotation的类,用于向程序分析工具或虚拟机提供package class field method等方面的信息。Annotation提供了一条与程序元素关联任何信息或者任何元素(metadata)的途径。从某方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。annotation类型是一种接口,能够通过java反射API的方法提供信息的访问。annotation不影响程序代码的执行,无论增加、删除annotation,代码都始终如一的执行。annotation与其他类的主要不同之处在于其使用方法;只要按照“@+annotation类型名称+(…逗号分割的name-value对…)”的组成语法,写在需要的地方。其中成员可以按照任何顺序。如果annotation类型定义某个成员默认值,则这个成员可以被省略,

        

Annotation 分类

1 标准 Annotation

包括Override, Deprecated, SuppressWarnings,标准 Annotation 是指 Java 自带的几个 Annotation,上面三个分别表示重写函数,函数已经被禁止使用,忽略某项 Warning

2 元 Annotation

@Retention, @Target , @Inherited, @Documented,元 Annotation 是指用来定义 Annotation 的 Annotation,在后面 Annotation 自定义部分会详细介绍含义

3 自定义 Annotation

自定义 Annotation 表示自己根据需要定义的 Annotation,定义时需要用到上面的元 Annotation
这里只是一种分类而已,也可以根据作用域分为源码时、编译时、运行时 Annotation,后面在自定义 Annotation 时会具体介绍

    

    2 . Android lint

Android lint是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,比如使用了高于minSdk的api

   3 . @TargetAPI Annotation

@TargetAPI对应android.annotation.TargetApi,与它相似的注解还有@SuppressLint,作用都是告诉编译器:你可以忽略掉lint错误了,我用于高于minSdk又咋滴?要你管啊!!

为什么这里我们用@TargetAPI而不用@SuppressLink,因为@TargetAPI还能指明应用的API版本,在代码中获取平台的SDK版本与这个版本对比后提示应用于平台的兼容性,比如现在的TargetAPI指定为11,如果我用了13的,仍然会得到不兼容的提示;而@SuppressLint做不到这一点,所以@TargetAPI更优

转载于:https://my.oschina.net/carbenson/blog/506166

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109331.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • ActiveMQ入门系列三:发布/订阅模式

    在上一篇《ActiveMQ入门系列二:入门代码实例(点对点模式)》中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub&Sub),详细介绍了点对点模式并用代码

    2022年2月16日
  • softreference 回收_method verification

    softreference 回收_method verification一、softReference的作用    SoftReference的主要特点就是在当内存不够的时候,GC会回收SoftReference所引用的对象。所以,在memorysensitive的项目中将某些数据设置成SoftReference可以避免内存的溢出。1、创建一个SoftReferenceSoftReference>softReference=newSof

    2022年9月8日
  • Python数据类型有几种「建议收藏」

    Python数据类型有几种「建议收藏」数据类型是每种编程语言必备属性,只有给数据赋予明确的数据类型,计算机才能对数据进行处理运算,因此,正确使用数据类型是十分必要的,不同的语言,数据类型类似,但具体表示方法有所不同,以下是Python编程常用的数据类型:1.数字类型Python数字类型主要包括int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。int(整型)在…

    2022年6月6日
  • 变异系数法之python

    变异系数法之python1.简介2.算法原理2.1指标正向化2.2数据标准化2.3计算变异系数2.4计算权重以及得分3.实例分析3.1读取数据3.2指标正向化3.3查看行数和列数3.4数据标准化3.5计算变异系数3.6计算权重3.7计算得分完整代码

    2022年6月12日
  • python django环境搭建_Python 虚拟环境

    python django环境搭建_Python 虚拟环境python虚拟环境虚拟环境(virtualenvironment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西

    2022年7月28日
  • cmd查看哪个端口被占用并终止其占用进程

    cmd查看哪个端口被占用并终止其占用进程打开cmd,输入命令:netstat-ano,列出所有端口的情况;查看被占用端口对应的PID,输入命令:netstat-aon|findstr“端口号”,回车,最后一位数字即PID;利用命令taskkill/f/pid进程ID结束进程。…

    2022年5月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号