• Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD


    Build.VERSION.SDK_INT是系统的版本,Build.VERSION_CODES.GINGERBREAD是版本号。

    到VERSION.SDK_INT不禁诧异,这是何物?!

    看API的定义,如下:

    1. public static final int SDK_INT  
    2.   
    3. Since: API Level 4  
    4. The user-visible SDK version of the framework; its possible values are defined in Build.VERSION_CODES.  


    原来是一个常量值。但是这个常量值可以根据系统的不同而不同哟!为了揭开其神秘的面纱,将源码ctrl如下:

    1. /** 
    2.   * The user-visible SDK version of the framework; its possible 
    3.   * values are defined in {@link Build.VERSION_CODES}. 
    4.   */  
    5.   public static final int SDK_INT = SystemProperties.getInt(  
    6.                "ro.build.version.sdk", 0);  


    可以看出,获取系统属性,类似Java中获取系统属性值。

    研究一下 SystemProperties 这个类,知道该类没有在API中出现,Android并没有开放这个API接口。
    VERSION.SDK_INT 常量,在开发过程中还是比较有用的,为了做到平台兼容性,可以使用该值做一些判断,防止API调用过时或者消失。

    示例:

     

    1. int currentVersion = android.os.Build.VERSION.SDK_INT;  
    2. if(currentVersion == android.os.Build.VERSION_CODES.ECLAIR_MR1) {  
    3.     // 2.1  
    4. else if(currentVersion == android.os.Build.VERSION_CODES.FROYO) {  
    5.     // 2.2  
    6. else if(currentVersion == android.os.Build.VERSION_CODES.GINGERBREAD) {  
    7.     // 2.3  
    8. else if(currentVersion == android.os.Build.VERSION_CODES.HONEYCOMB) {  
    9.     // 3.0  
    10. }  

    还如,判断如果设备不是3.0(平板操作系统)的话,就设置不显示标题

    1. if (VERSION.SDK_INT != 11) {  
    2.       getWindow().requestFeature(Window.FEATURE_NO_TITLE);  
    3. }  

    这些常量位于android.os.Build.VERSION_CODES这个内部类中:

     
  • 相关阅读:
    line-height:150%和line-height:1.5的区别
    javascript: with 表单验证
    CSS实现背景透明,文字不透明,兼容所有浏览器
    关于伪类元素:before和:after
    图片预览实例分享
    微信浏览器取消缓存的方法
    学习笔记(四):jQuery之动画效果
    学习笔记(三):jQuery之DOM
    Git 常用命令
    开发规范(三)数据库 By 阿里
  • 原文地址:https://www.cnblogs.com/yaowen/p/6024421.html
Copyright © 2020-2023  润新知