Android Version & API Level

Android目前为止所有发布的版本以及对应的API等级

Android SDK版本

两个预发布的内部版本

> Android alpha (Astro·原子小金刚)

Android beta (Bender·机器人班亭)
@2007.11.05

初期过渡版本

Android 1.0
[API 1]

@2008.09.23

Android 1.1
[API 2]
@2009.02.09

甜点版本代号

Android 1.5 (Cupcake·纸杯蛋糕)
[API 3]

@2009.04.27

Android 1.6 (Donut·甜甜圈)
[API 4]

@2009.09.15

Android 2.0 (Eclair· 泡芙)
[API 5]

@2009.10.26

Android 2.0.1 (Eclair· 泡芙)
[API 6]

@2009.12.03

Android 2.1 (Eclair· 泡芙)
[API 7]

@2010.01.12

Android 2.2/2.2.1/2.2.2/2.2.3 (Froyo·冻酸奶)
[API 8]

@2010.05.20/2011.01.18/2011.01.22/2011.11.21

Android 2.3/2.3.1/2.3.2 (Gingerbread·姜饼)
[API 9]

@2010.12.06/2010.12.15/2011.01.09

Android 2.3.3/2.3.4/2.3.5/2.3.6/2.3.7 (Gingerbread·姜饼)
[API 10]

@2011.02.09/2011.04.28/2011.07.25/2011.09.02/2011.09.21

Android 3.0 (Honeycomb·蜂巢)
[API 11]

@2011.02.22

Android 3.1 (Honeycomb·蜂巢)
[API 12]

@2011.05.10

Android 3.2/3.2.1/3.2.2/3.2.3/3.2.4/3.2.5/3.2.6 (Honeycomb·蜂巢)
[API 13]

@2011.07.15/…/…/…/2011.12.04/2012.01.14/2012.02.22

Android 4.0/4.0.1/4.0.2 (Ice Cream Sandwich·冰淇淋三明治)
[API 14]

@2011.10.18/2011.10.21/2011.11.28

Android 4.0.3/4.0.4 (Ice Cream Sandwich·冰淇淋三明治)
[API 15]

@2011.12.16/2012.03.29

Android 4.1/4.1.1/4.1.2 (Jelly Bean·果冻豆)
[API 16]

@2012.07.09/2012.07.11/2012.10.09

Android 4.2/4.2.1/4.2.2 (Jelly Bean·果冻豆)
[API 17]

@2012.11.13/2012.11.27/2013.02.11

Android 4.3/4.3.1 (Jelly Bean·果冻豆)
[API 18]

@2013.07.24/2013.10.03

Android 4.4/4.4.1/4.4.2/4.4.3/4.4.4 (KitKat·奇巧巧克力)
[API 19]

@2013.10.31/2013.12.05/2013.12.09/2014.06.02/2014.06.20

Android 4.4W/4.4W.1/4.4W.2 (KitKat·奇巧巧克力)
[API 20]

@2014.06.25/2014.09.06~2014.10.21

Android 5.0/5.0.1/5.0.2 (Lollipop·棒棒糖)
[API 21]

@2014.11.12~2014.12.02/2014.12.19

Android 5.1/5.1.1 (Lollipop·棒棒糖)
[API 22]

@2015.03.10/2015.04.22

Android 6.0/6.0.1 (Marshmallow·棉花糖)
[API 23]

@2015.10.05/2015.12.07

Android 7.0 (Nougat·牛轧糖)
[API 24]

_@2016.08.22

Android 7.1.1/7.1.2 (Nougat·牛轧糖)
[API 25]

@2016.12.05/2017.04.04

Android 8.0 O(预览版)
[API 26]
@2017.03.21

Android SDK版本用处

获取版本号

  • 为什么要获取版本号?

有时候发布的APP出现异常,我们捕获异常,需要将异常携带该设备的SDK版本号上传到服务器,方便开发者进行异常分析。

  • 如何获取发布版本号以及API Level?

    /**

    • 获取Android发布的版本
      */
      public static String getVersion() {
      return android.os.Build.VERSION.RELEASE;
      }

      /**

    • 获取SDK的API Level
      */
      public static int getSDK() {
      return android.os.Build.VERSION.SDK_INT;
      }

根据版本号来适配

  • 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才能使用。

当然API Level也可以直接写成数字,不过不建议大家这样做,这里你可能记得16数字的含义,可是在其他地方使用数字你可能就不记得了,所以为了规范还是写VERSION_CODES吧,毕竟这样逼格也更高!

if (Build.VERSION.SDK_INT >= 16) {    
    builder.setSubText("it is really basic");
}

参考文献

https://zh.wikipedia.org/wiki/Android%E6%AD%B7%E5%8F%B2%E7%89%88%E6%9C%AC
http://www.cnblogs.com/kangjianwei101/p/5220035.html
http://www.jianshu.com/p/830d0eb44a56

QinPeng Zhu wechat
扫一扫,关注我的公众号获取更多资讯!
学习分享,感谢鼓励!