2019年5月1日起安卓应用应基于API 26开发,那么API等级是啥?
2019年5月1日起安卓应用应基于API 26开发,那么API等级是啥?
转 https://www.ithome.com/html/android/372234.htm
据泰尔终端实验室公众微信号报道,2018年7月18日上午,电信终端产业协会(TAF)发布《移动应用软件高API等级预置与分发自律公约》(以下简称《公约》)。OPPO、华为、百度、360、阿里、小米、vivo、腾讯作为发起单位,共同签署《公约》,并发出联合倡议:号召广大移动应用软件预置与分发服务提供者,拒绝上架并及时更新低API等级的应用,共同维护用户权益。
《公约》规定,自2019年5月1日起,新上架和预置应用应基于Android 8.0(API等级26)及以上开发。自2019年8月1日起,现有应用的更新应基于Android 8.0(API等级26)及以上开发。八家厂商在签约仪式上郑重承诺:将严格遵守和履行自律公约规定,拒绝上架和更新低API等级应用。
可能大家对《公约》中所提到的“API等级”这个概念不是很熟悉,那么我们就来聊聊它究竟是一个什么东西。
一、“API”是什么
API的全称是“Application Programming Interface”,中文释义为“应用程序编程接口”。在手机或者电脑等的系统中,API是一些预先定义的函数,通过调用这些函数,能够让程序得以使用设备自身的硬件或软件。比如,在用微信进行视频聊天的时候,微信就可以使用手机的前置摄像头。使用API接口可以不用访问底层的源代码,也不用理解内部的工作机制和细节,当访问某些软硬件的时候,直接通过调用要使用的API接口函数就能完成操作,大大提高程序员的工作效率。
二、“API等级26”是什么
知道了API的作用之后,我们就来了解一下什么是“API等级26”。在安卓系统中,系统提供了一个框架API,应用可利用它与底层安卓系统进行交互。每个版本的安卓平台都会进行框架API的更新,安卓1.0所对应的API等级为1,其后每个版本的安卓系统都会对API等级进行升级,以整数的形式往后累加。“API等级26”就是最新版本的安卓8.0系统的API等级。
▲安卓版本及其对应的API等级
三、“API等级”的更新原则
每次对API等级进行升级,都会包含之前系统的API,大多数API更改都是新增更改,会引入新功能或替代功能。在API的某些部分得到升级时,旧版的被替换部分将被弃用,但不会被移除,这样现有应用仍可使用它们。在极少数情况下,可能会修改或移除API的某些部分,但通常只有在为了确保API稳健性以及应用或系统安全性时,才需要进行此类更改。所有其他来自早期修订版的API部分都将结转,不做任何修改。
四、“API等级”的更新会带来怎样的好处
API等级的更新是谷歌公司针对系统安全以及易用性方面的改进。通过更新系统,可以增加一些功能,也可以修补一些漏洞,对于新增的功能,安卓会增加新功能的API接口,以供开发者运用到自己的应用中。比如安卓8.0以后新增的单摄虚化功能,这项功能也会提供相应的API接口,开发者可以把这项新功能加入到自己的应用中去。再比如,在安卓8.0的系统中,谷歌公司封堵了一些漏洞病毒,开发者就可以遵循新的框架API进行软件的适配,从而规避这些风险。
▲安卓8.0系统
五、对《公约》中规定的理解
API等级较低的应用,一是在权限管理方面存在用户可知而不可控的问题,二是存在可规避系统安全机制的漏洞,容易造成用户个人信息泄漏,引发大量终端安全和个人信息保护风险。《公约》中规定,自2019年5月1日起,新上架和预置应用应基于Android 8.0(API等级26)及以上开发。自2019年8月1日起,现有应用的更新应基于Android 8.0(API等级26)及以上开发。这样做就会保障用户的权益,大大减少用户隐私的泄漏风险,使得我们的手机更加安全。
现在大家明白了API等级的概念以及《公约》的执行会给我们带来的好处,未来手机应用在安全性方面势必会得到提高。《公约》的执行对我们的来说是一件好事,但究竟能不能达到我们想要的效果,我们拭目以待。
Android各版本代号/版本号/API级别
代号 |
版本号 |
API/NDK级别 |
发布时间 |
|
- |
O |
8.0 |
API level 26 |
2017-3-21 |
牛轧糖 |
Nougat |
7.1.1 |
API level 25 |
2016-10 |
7.0 |
API level 24 |
2016-08-22 |
||
棉花糖 |
Marshmallow |
6.0.1 |
API level 23 |
2015-12 |
6 |
2015-10-05 |
|||
棒棒糖 |
Lollipop |
5.1.1 |
API level 22 |
2015-04-21 |
5.1 |
2015-03-09 |
|||
5.0.2 |
API level 21 |
2014-12-19 |
||
5.0.1 |
2014-12-02 |
|||
5 |
2014-11-12 |
|||
奇巧 |
KitKat |
4.4W.2 |
API level 20 |
2014-10-21 |
4.4W.1 |
2014-09-06 |
|||
4.4W |
2014-06-25 |
|||
4.4.4 |
API level 19 |
2014-06-19 |
||
4.4.3 |
2014-06-02 |
|||
4.4.2 |
2013-12-09 |
|||
4.4.1 |
2013-12-05 |
|||
4.4 |
2013-10-31 |
|||
果冻豆 |
Jelly Bean |
4.3.1 |
API level 18 |
2013-10-03 |
4.3 |
2013-07-24 |
|||
4.2.2 |
API level 17 |
2013-02-11 |
||
4.2.1 |
2012-11-27 |
|||
4.2 |
2012-11-13 |
|||
4.1.2 |
API level 16 |
2012-10-09 |
||
4.1.1 |
2012-07-11 |
|||
4.1 |
2012-07-09 |
|||
冰激凌三明治 |
Ice Cream Sandwich |
4.0.4 |
API level 15 |
2012-03-29 |
4.0.3 |
2011-12-16 |
|||
4.0.2 |
API level 14 |
2011-11-28 |
||
4.0.1 |
2011-10-21 |
|||
4 |
2011-10-18 |
|||
蜂巢 |
Honeycomb |
3.2.6 |
API level 13 |
2012-02 |
3.2.5 |
2012-01 |
|||
3.2.4 |
2011-12 |
|||
3.2.3 |
- |
|||
3.2.2 |
- |
|||
3.2.1 |
- |
|||
3.2 |
2011-07-15 |
|||
3.1 |
API level 12 |
2011-05-10 |
||
3 |
API level 11 |
2011-02-22 |
||
姜饼 |
Gingerbread |
2.3.7 |
API level 10 |
2011-09-21 |
2.3.6 |
2011-09-02 |
|||
2.3.5 |
2011-07-25 |
|||
2.3.4 |
2011-04-28 |
|||
2.3.3 |
2011-02-09 |
|||
2.3.2 |
API level 9 |
2011-01 |
||
2.3.1 |
2010-12 |
|||
2.3 |
2010-12-06 |
|||
冻酸奶 |
Froyo |
2.2.3 |
API level 8 |
2011-11-21 |
2.2.2 |
2011-01-22 |
|||
2.2.1 |
2011-01-18 |
|||
2.2 |
2010-05-20 |
|||
泡芙 |
Eclair |
2.1 |
API level 7 |
2010-01-12 |
2.0.1 |
API level 6 |
2009-12-03 |
||
2 |
API level 5 |
2009-10-26 |
||
甜甜圈 |
Donut |
1.6 |
API level 4 |
2009-09-15 |
纸杯蛋糕 |
Cupcake |
1.5 |
API level 3 |
2009-04-27 |
- |
- |
1.1 |
API level 2 |
2009-02-09 |
- |
- |
1 |
API level 1 |
2008-09-23 |
2019年5月1日起安卓应用应基于API 26开发,那么API等级是啥?的更多相关文章
- Visual Studio 2019 发布活动 - 2019 年 4 月 2 日
Visual Studio 2019 发布活动 2019 年 4 月 2 日,星期二 | 上午 9:00 (PT) 围观: https://visualstudio.microsoft.com/zh- ...
- 2019年3月2日-小雨.md
2019年3月2日, 星期六 开学已经一周了,时间好像限制了自己进步的脚步,一个人的精力有限,想做好方方面面实在是太难了,有很多事儿最后都没做的完美.相反,自己应该放下繁琐的包袱,简简单单的干一件事儿 ...
- 2019年5月22日 AY 程序员调侃语录
我是AY,杨洋,做wpf开发的,最近得了一种病,程序员患得患失综合征.同事说,我年纪在变大,技术跟不上.业余之间,我原创了写了一些语录,给大家中午休息,累疲惫的时候,开心放松下. 1.活着的每一天都无 ...
- 【2019年05月20日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2019年05月20日 之间,滚动市盈率历史新低排名. 上市三年以上的公司, 2019年05月20日市盈率在300以下的公司. 1 - 阳光照明(SH600261) - 历 ...
- SPSS 2019年10月24日 今日学习总结
2019年10月24日今日课上内容1.SPSS掌握基于键值的一对多合并2.掌握重构数据3.掌握汇总功能 内容: 1.基于键值的一对多合并 合并文件 添加变量 合并方法:基于键值的一对多合并 变量 2. ...
- 批量添加删除Windows server DNS服务 恶意域名 * A记录 指向 127.0.0.1(2019年6月5日更新)
下载链接:https://pan.baidu.com/s/1OUHyvnIfXYF0PdiT-VRyHw 密码:7gjj 注意!本解决方案在本地的Windows server服务器上把恶意域名指向1 ...
- 34.ITerm配置使用——2019年12月24日
2019年12月23日15:17:36 ITerm使用教程 1.快键键配置 设置方法 设置方法如下: (1)选择 Preference 进入偏好设置: (2)选择 Profiles > Keys ...
- 36.React基础介绍——2019年12月24日
2019年12月24日16:47:12 2019年10月25日11:24:29 主要介绍react入门知识. 1.jsx语法介绍 1.1 介绍 jsx语法是一种类似于html标签的语法,它的作用相当于 ...
- 35.ES6语法介绍——2019年12月24日
2019年12月24日16:22:24 2019年10月09日12:04:44 1. ES6介绍 1.1 新的 Javascript 语法标准 --2015年6月正式发布 --使用babel语法转换器 ...
随机推荐
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...
- Redux中间件组合方法
中间件 https://redux.js.org/glossary#middleware 中间件在发送端 action端点 和 处理方reducer的端点之间. 主要负责将async action转换 ...
- HTTP常见的状态码——面试题常考
一些常见的状态码为: 200 - 服务器成功返回网页 400(错误请求)服务器不理解请求的语法. 404 - 请求的网页不存在 500(服务器内部错误)服务器遇到错误,无法完成请求. 503 - 服 ...
- seajs使用方法
必须执行seajs.use()时,才能自动执行预加载项 <script src="/UILib/sea.js"></script> <script s ...
- AtCoder Grand Contest 030题解
第一次套刷AtCoder 体验良好 传送门 Poisonous Cookies cout<<b+min(c,a+b+); Tree Burning 难度跨度有点大啊 可以证明当第一次转向之 ...
- Vue中ajax返回的结果赋值
这是第二次在项目中遇到此问题,ajax请求成功后在success函数中为Vue实例data里的变量赋值,却失败了 new Vue({ el:'#app', data:{ msg:'' }, creat ...
- LeetCode第十五题-找出数组中三数和为0的答案
3Sum 问题简介: 给定n个整数的数组nums,是否有元素a,b,c在nums中,使a + b + c = 0? 找到数组中所有唯一的三元组,它们的总和为零 注:解决方案集不得包含重复的三元组 例如 ...
- SqlServer存储过程及函数
存储过程和函数类似于Java中的方法. ⒈存储过程 一组预先编译好的sql语句的集合,理解成批处理语句. 好处: ①提高代码的重用性 ②简化操作 ③减少了编译次数并且减少了和数据库服务器的连接次数,提 ...
- mvc路由报错
1.添加新项目时,把就项目的dll一起拷贝过来.生成项目,编译通过,打开页面时报错:“找到多个与名为“Home”的控制器匹配的类型 ”,网上的解决方案是,加命名空间,解决,但是自己这边删掉bin中原来 ...
- 如何用java实现一个p2p种子搜索(3)-dht协议实现
dht协议实现 上一篇完成了路由表的实现,建立了路由表后,我们还要对路由表进行初始化,因为一开始路由表为空,所以我们需要借助一些知名的dht网络中的节点,对这些节点进行find_node,然后一步步初 ...