Android开发学习——3.平台版本、SDK版本、API级别
文章目录
- 一、引言
- 二、概念学习
- 1. 平台版本
- 2. API级别
- 3. SDK版本
- 三、参考
一、引言
前两篇文介绍了Android开发的IDE——AS和AS安装时需要准备的工具包。某种程度上来说,已经可以建工程,然后开发了。
但是实际项目中,往往会涉及到一个问题,你开发的App能否运行在目标设备上,你的App与目标机器是否兼容。假设我目标是一款塞班系统的老年机,然后我装个AS开发一款安卓App,那最后结果就是浪费时间,白白开发了一款App,因为目标设备根本跑不了该程序。当然这个例子比较极端,稍微有点经验的工程师也不会做出这种傻事。但是,如果你对目标机器不了解,并且你对开发环境也不了解,只是凭感觉去做,往往或多或少会出现兼容性问题。
我这次的目标机器是一款安卓系统的智能手表,系统是Android 10.7。在我正式开发之前,我想要知道我的环境开发出来的App能否运行在该系统的智能手表上。如果不能,应该对环境做一些怎样的改动。当然,最靠谱的方式就是将App开发出来,然后装在目标机器上运行看看。但显然前期不具备该条件。当前阶段,只能在理论上判断能否正常运行起来。
初步了解下来,我需要对平台版本、SDK版本、API级别这些概念有所理解,然后可以大致确认兼容性。
二、概念学习
1. 平台版本
平台版本,其实就是安卓系统的版本。
在项目中,就是目标设备上运行的安卓系统版本。打开手机,在系统参数中也可以看到,不过一般只讨论大版本,比如Android 10、Android 9之类的。至于小版本,如10.1、10.2,不太会有人关心,就和软件版本一样,小版本往往是针对大版本打些补丁,改改bug,大版本的主要特性已经定下来了。
所以版本这个概念,一般不会有大问题,开发前,看看目标设备的系统信息就好了。
2. API级别
在了解Android的API级别之前,先得知道API是啥。
写代码的都知道,API就是编程接口(全称Application Programming Interface,取各单词首字母,简称API)。
API简介:
程序员与程序员之间协作,往往通过API。
假设我找人帮忙写代码实现一个功能,那个人哗哗哗写了几千行代码,难道我调用这个功能的时候,还得把几千行代码拷到我程序里,然后编译运行?(当然,这也可以对吧,但实际情况一般不会这么干)如果发现运行结果不对,我还得改这堆代码。
在实际情况中,往往是受委托人写了一大堆代码,然后封装起来(编成库之类的),然后提供给你一个调用的函数(Func(p1,p2,p3…)),这个函数呢有一些参数,你可以通过传入这些参数来控制调用。然后一般配个函数说明的文档,告诉你每个参数是干什么的,返回值是干嘛的(如果有)。
这样对于使用方来说,面对的就是一个函数调用,而不是几千行代码了。那API就是这个函数调用了,就像下图一样:
API的好处很明显,屏蔽实现细节,你只管调用就完事了。
Android系统也提供了大量API,你可以通过调用这些API来与Android系统进行交互。Android系统诞生之初就提供了框架级的API(说框架级是因为这些API不是零散的,而是由组织架构的),在之后的每个版本都会对该API进行更新升级。
API级别就是一个用于标识API框架版本的整数,它由某个版本的Android平台提供。比如,Android平台1.0,对应的API等级为1。而后每个较大版本的安卓系统更新都会对API等级进行升级,表现为API等级加1。下面是一张摘自菜鸟教程上的平台与API等级的对应表,不过只到Android5.1,完整的可以去网上找找。
平台版本 | API等级 | 版本号 |
---|---|---|
Android 5.1 | 22 | LOLLIPOP_MR1 |
Android 5.0 | 21 | LOLLIPOP |
Android 4.4W | 20 | KITKAT_WATCH KitKat for Wearables Only |
Android 4.4 | 19 | KITKAT |
Android 4.3 | 18 | JELLY_BEAN_MR2 |
Android 4.2, 4.2.2 | 17 | JELLY_BEAN_MR1 |
Android 4.1, 4.1.1 | 16 | JELLY_BEAN |
Android 4.0.3, 4.0.4 | 15 | ICE_CREAM_SANDWICH_MR1 |
Android 4.0, 4.0.1, 4.0.2 | 14 | ICE_CREAM_SANDWICH |
Android 3.2 | 13 | HONEYCOMB_MR2 |
Android 3.1.x | 12 | HONEYCOMB_MR1 |
Android 3.0.x | 11 | HONEYCOMB |
Android 2.3.4 Android 2.3.3 |
10 | GINGERBREAD_MR1 |
Android 2.3.2 Android 2.3.1 Android 2.3 |
9 | GINGERBREAD |
Android 2.2.x | 8 | FROYO |
Android 2.1.x | 7 | ECLAIR_MR1 |
Android 2.0.1 | 6 | ECLAIR_0_1 |
Android 2.0 | 5 | ECLAIR |
Android 1.6 | 4 | DONUT |
Android 1.5 | 3 | CUPCAKE |
Android 1.1 | 2 | BASE_1_1 |
Android 1.0 | 1 | BASE |
API等级的提升意味着什么?
每次对API等级进行提升,都是基于之前的系统API的,大多数API更改都是新增一些功能,一般不会影响老API使用(API升级的模式是向后兼容的,所以新的API仍然兼容早期的API版本。极少数情况下,也会移除或修改老的API)。API等级的更新是谷歌针对系统安全和易用性方面的改进。通过更新系统,可以增加一些功能,修补一些漏洞。对于新增的功能,安卓会增加新功能的API接口,以供开发者运用到自己的App中;对于一些漏洞病毒,谷歌也会进行封堵,开发者可以遵循新的框架API进行软件适配,从而规避风险。
3. SDK版本
SDK版本是与平台API等级是对应的。我在AS的SDK管理器中,选中了Android 10.0进行下载安装,下面是弹出的安装信息。
所以API等级可以认为就是SDK版本。
包括在新建一个工程前,向导程序会让你选择一个最小SDK版本,此时右侧下拉列表框里出现的也是API等级和平台版本。你选的版本越高,能适配的设备就越少。显然,最小SDK表示你的App支持的最低Android版本。
各API版本的设备分布还是会不定期(定期)更新的,还是蛮有意思的。
三、参考
- 菜鸟教程
Android开发学习——3.平台版本、SDK版本、API级别相关推荐
- Android开发学习总结(一)——搭建最新版本的Android开发环境
最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环 境去学习,Android的更新速度比较快了,Android1 ...
- play-services-tasks (com.google.android.gms:play-services-tasks)”的开发者向 SDK 版本 18.0.0
"play-services-tasks (com.google.android.gms:play-services-tasks)"的开发者向 SDK 版本 18.0.0 添加了以 ...
- Android开发学习---使用Intelij idea 13.1 进行android 开发
Android开发学习---使用Intelij idea 13.1 进行android 开发 原文:Android开发学习---使用Intelij idea 13.1 进行android 开发 1.为 ...
- Android开发学习总结(三)——appcompat_v7项目说明
一.appcompat_v7项目说明 今天来说一下appcompat_v7项目的问题,使用eclipse创建Android项目时,发现project列表中会多创建出一个appcompat_v7项目,这 ...
- Android开发学习之以CameraAPI方式实现相机功能(一)——快速实现相机
今天无意当中发现在<Android开发学习之基于ZBar实现微信扫一扫>中的一部分代码可以用来以硬件方式实现一个照相机的功能,在<Android开发学习之调用系统相机完成拍照的实现& ...
- Cef开发学习 - Windows平台简易的Cef浏览器,支持下载管理和多标签管理
Cef开发学习 - Windows平台简易的Cef浏览器,支持下载管理和多标签管理 PS:本系列文章主要学习介绍Cef开发相关的内容. 文章目录 Cef开发学习 - Windows平台简易的Cef浏览 ...
- Android开发学习总结(四)——Eclipse在线安装ADT插件
Android开发学习总结(四)--Eclipse在线安装ADT插件 要想使用Eclipse开发Android应用,首先要安装一个ADT插件,在此记录一下在Eclipse中采用在线安装的方式ADT插件 ...
- 【嵌入式Android开发学习攻略】手把手教你循序渐进的学习
[嵌入式Android开发学习攻略]手把手教你循序渐进的学习 学习嵌入式主要有以下几个方面: C语言:C是必须学的,它是最基础的 操作系统:Linux.Android 目前Linux是主流,这个一 ...
- android开发学习大体思路
android开发学习: android学习的前提是java基础.如果你没有好的java基础,那就赶紧补充,我在这里不做介绍. android是基于linux的,如果你要做底层的东西,可以买一些关于l ...
最新文章
- 中国AI创业公司霸榜NeurIPS-AutoDL竞赛,代码已开源
- 第十五届全国大学生华东赛赛区开赛啦
- iostat 输出解析
- 使用Hexo+ github快速搭建自己的博客网站(一)
- Android中创建自己的对话框
- python中级_python复习之中级
- 小事也能看出一个人的能力
- 《DSP using MATLAB》示例Example4.2
- php5.2 json,php5.2 对json格式的支持
- WordPress使用360CDN替换google服务,解决WordPress打开速度变慢问题
- Apache24(VC15)安装步骤
- winapi检测鼠标是否在任务栏
- Android快速开发整理(库、插件,kotlin枚举注解
- 006 window7或虚拟机上不了网或DNS出问题
- 可以提升效率的待办清单APP
- 环境问题还是测试的老大难?
- 纹理过滤函数glTexParameteri
- HTML 网页制作 网易邮箱登录页面 关键代码
- java使用scanner.next方式接收键盘输入
- 事业单位招聘java_新华社新媒体中心2018年面向社会招聘事业单位人员