Android中Build类以及@SuppressLint("NewApi")和@TargetApi()区别

1、类结构

Android中Build类以及@SuppressLint(

Object类的子类。

2、类描述

Information about the current build, extracted from system properties.

从系统属性中提取设备硬件和版本信息。

3、内部类

3.1 Build.VERSION

Various version strings.

各种版本字符串。

// 当前开发代号  
Build.VERSION.CODENAME  
// 源码控制版本号  
Build.VERSION.INCREMENTAL  
// 版本字符串  
Build.VERSION.RELEASE  
// 版本号  
Build.VERSION.SDK  
// 版本号  
Build.VERSION.SDK_INT  

3.2 Build.VERSION_CODES

Enumeration of the currently known SDK version codes.

目前已知的版本代码的枚举类。

Android中Build类以及@SuppressLint(

经常用来区分不同系统版本信息:

if(Build.VERSION.SDK_INT

4、常量UNKOWN

Value used for when a build property is unknown.

当一个版本属性不知道时所设定的值。其字符串值为 unknown .

5、静态属性

Build.BOARD // 主板  
Build.BRAND // android系统定制商  
Build.CPU_ABI // cpu指令集  
Build.DEVICE // 设备参数  
Build.DISPLAY // 显示屏参数  
Build.FINGERPRINT // 硬件名称  
Build.HOST  
Build.ID // 修订版本列表  
Build.MANUFACTURER // 硬件制造商  
Build.MODEL // 版本  
Build.PRODUCT // 手机制造商  
Build.TAGS // 描述build的标签  
Build.TIME  
Build.TYPE // builder类型  
Build.USER  

6、公共方法

public static String getRadioVersion()
获取无线电固件版本

7、@SuppressLint(“NewApi”)和@TargetApi()的区别

在开发时Build.VERSION_CODES通常和这条注解语句联系:
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
有时候使用的是@SuppressLint(“NewApi”),那么两者有什么区别呢?

(1)@SuppressLint(“NewApi”)屏蔽一切新api中才能使用的方法报的android lint错误;

(2)@TargetApi() 只屏蔽某一新api中才能使用的方法报的android lint错误。

举个例子,某个方法中使用了api9新加入的方法,而项目设置的
android:minSdkVersion=8,此时在方法上加@SuppressLint(“NewApi”)和@TargetApi(Build.VERSION_CODES.GINGERBREAD)都可以,以上是通用的情况。

而当你在此方法中又引用了一个api11才加入的方法时,
@TargetApi(Build.VERSION_CODES.GINGERBREAD)注解的方法又报错了,而@SuppressLint(“NewApi”)不会报错,这就是区别。

当然,不管你使用了哪个注解,作用仅仅是屏蔽android lint错误,所以在方法中还要判断版本做不同的操作,比如:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {  
            //  
        } else {
        // Pre GINGERBREAD  
            //  
        }  

你可能感兴趣的:(android系统)