Android-SDK版本号表格

前言

~
由于经常需要对SDK的版本进行不同适配,需要知道SDK的版本号,这里为了方便以后查看,以表格的形式记录下。仅仅记录4.0以上的Android版本,毕竟4.0以上的普及率已经达到了97.4%


1.SDK版本表格

~ 基于Android 6.0(API Level 23)

发布日期 API Level Android版本 VERSION_CODES 英文名称 中文名称
2011.10 14 4.0 ICE_CREAM_SANDWICH IceCreamSandwich 冰淇淋三明治
2011.12 15 4.0.3 ICE_CREAM_SANDWICH_MR1 IceCreamSandwich 冰淇淋三明治
2012.06 16 4.1 JELLY_BEAN Jelly Bean 果冻豆
2012.11 17 4.2 JELLY_BEAN_MR1 Jelly Bean 果冻豆
2013.07 18 4.3 JELLY_BEAN_MR2 Jelly Bean 果冻豆
2014.06 19 4.4 KITKAT KitKat 奇巧巧克力
2014.09 20 4.4W KITKAT_WATCH KitKat Wear 奇巧巧克力-穿戴设备
2014.11 21 5.0 L或者LOLLIPOP Lollipop 棒棒糖
2015.03 22 5.1 LOLLIPOP_MR1 Lollipop 棒棒糖
2015.10 23 6.0 M Marshmallow 棉花糖
未发布 24 6.X N Nougat 牛轧糖

如果需要更详细的NDK版本看这里:带NDK版本的SDK表格


2.SDK版本号的用处

~

2.1.获取版本号

~

  • 为什么要获取版本号
    有时候发布的APP出现异常,我们捕获异常,需要将异常携带该设备的SDK版本号上传到服务器,方便开发者进行异常分析。
  • 如何获取发布版本号以及API Level
   /**
     * 获取Android发布的版本
     */
    public static String getVersion() {
        return android.os.Build.VERSION.RELEASE;
    }
    /**
     * 获取SDK的API Level
     * @return
     */
    public static int getSDK() {
        return android.os.Build.VERSION.SDK_INT;
    }
2.2.根据版本号来适配

~

  • 情况一.Android 6.0的权限系统:
     protected boolean hasPermission(String permission) {
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1)
            return (checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED);
        return true;
    }

判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。Build.VERSION.SDK_INT是指当前设备的API Level。

  • 情况二.通知的部分属性:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {    
builder.setSubText("it is really basic");
}

通知的副标题需要API Level 16才能使用。


3.后记

  • 由于版本的更新,该表格可能需要及时更新
  • 使用版本号的情况还有很多,这里只是一小部分,仅供参考。
  • 当然API Level也可以直接写成数字,不过不建议大家这样做,这里你可能记得16数字的含义,可是在其他地方使用数字你可能就不记得了,所以为了规范还是写VERSION_CODES吧,毕竟这样逼格也更高!
if (Build.VERSION.SDK_INT >= 16) {    
builder.setSubText("it is really basic");
}

你可能感兴趣的:(Android-SDK版本号表格)