Build相关属性和调用系统信息的方法

本文介绍了Android系统中Build类的使用方法,包括如何获取设备信息和系统版本详情。同时,详细解释了@TargetApi注解的应用场景及其如何帮助开发者进行版本适配,确保应用程序在不同版本的Android系统上都能正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://blog.youkuaiyun.com/meng425841867/article/details/8498748

Build相关属性和调用系统信息的方法
一、Build类的作用主要是获取系统信息,他有两个嵌套类:
    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  //用户

①  Build.VERSION      获取android系统的版本信息。
 当前开发代号   Build.VERSION.CODENAME  
 源码控制版本号   Build.VERSION.INCREMENTAL  
 版本字符串   Build.VERSION.RELEASE  
 版本号   Build.VERSION.SDK  
           版本号   Build.VERSION.SDK_INT  
②  Build.VERSION_CODES 这个类封装了已经存在的SDK框架及android版本。

ECLAIR_0_1 December 2009: Android 2.0.1
ECLAIR_MR1 January 2010: Android 2.1
FROYO June 2010: Android 2.2
GINGERBREAD November 2010: Android 2.3
GINGERBREAD_MR1 February 2011: Android 2.3.3.
HONEYCOMB February 2011: Android 3.0.
HONEYCOMB_MR1 May 2011: Android 3.1.
HONEYCOMB_MR2 June 2011: Android 3.2.
ICE_CREAM_SANDWICH Android 4.0.
二、关于在获取系统信息的使用
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)对比应用的版本与平台的版本做相应的处理。
    @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)这个语句在程序中指出应用的版本。
     getRadioVersion方法可以根据以上属性获取系统信息。
三、实例:
/**
 * Shows the progress UI and hides the login form.
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) // 指明应用版本
private void showProgress(final boolean show) {
    // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
    // for very easy animations. If available, use these APIs to fade-in
    // the progress spinner.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { // 应用版本与平台版本对比。
        int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);//获得android定义的短片动画时间
        mLoginStatusView.setVisibility(View.VISIBLE);//设置该VIEW为显示
        mLoginStatusView.animate().setDuration(shortAnimTime)//设置动画显示时间
               .alpha(show ? 1 : 0)//设置动画的渐变效果
               .setListener(new AnimatorListenerAdapter() {
                   @Override
                   public void onAnimationEnd(Animator animation) {
                       mLoginStatusView.setVisibility(show ? View.VISIBLE : View.GONE); //跟据参数控制该控件显示或隐藏
                   }
        });

        mLoginFormView.setVisibility(View.VISIBLE);
        mLoginFormView.animate().setDuration(shortAnimTime).alpha(show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
            }
        });
    } else {
        // The ViewPropertyAnimator APIs are not available, so simply show
        // and hide the relevant UI components.
        mLoginStatusView.setVisibility(show ? View.VISIBLE : View.GONE); //根据参数控制控件的显示与隐藏
        mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
    }
}

问题: 在使用android自带的登录界面时遇到了@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2),这段代码什么意思,在程序中起到什么作用那。

解答: 指明应用的API版本,在代码中获得平台的SDK版本与这个版本对比,在代码中判断应用与平台的兼容性。
关于获取及使用用户信息的Bulid列的介绍及使用说明。

使用@TargetApi annotaion, 使高版本API的代码在低版本SDK不报错

例如:

AsyncTask.THREAD_POOL_EXECUTOR, 这个静态变量是API11才有的, 设置project build target 为 2.1.

这个时候eclipse会提示找不到这个变量。

只要在方法前面加一个 @TargetApi(11), 这样就不会报错了,程序已经可以跑在低版本SDK上了。

另外在代码上要加一个版本判断是否执行该代码, 例子如下

@TargetApi(11)
public void text() {
    if (Build.VERSION.SDK_INT >= 11) {
             // 使用api11 新加 api
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值