Android 各版本特性总结、
持续更新中…
Android 9.0
室内 WIFI RTT 定位
Android P 为 IEEE 802.11mc WiFi 协议添加了平台支持 (也称为 WiFi 往返时间,RTT),这可以让您在应用中使用室内定位。
拥有硬件支持的 Android P 设备可以让您的应用使用 RTT API 测量与附近 WiFi 接入点 (AP) 的距离,设备不需要连接到 AP 便可以使用 RTT。为了保持隐私,只有手机能够确定距离,AP 无法做到这一点。
通过测量从设备到三个或更多 AP 的距离,您可以以 1 到 2 米的精度确定设备位置。这种精确度允许您创建更多新的体验:室内导航、基于位置的细粒度服务,例如,模糊语音控制 ( “打开这里的灯” ) ;基于位置的资讯服务 ( “这些优惠是针对这个产品的吗?” )。“刘海”屏幕支持
现在应用可以充分利用最新的全面屏设备来展示内容。我们在 Android 平台加入了对凹口屏幕的支持,並提供 API 供您使用,从而管理内容展示方式。
本功能可以在应用中无缝工作,系统会管理状态栏的高度从而将您的内容与裁切区域分开。如果您拥有重要的沉浸式内容,则还可以使用新的 API 查看裁切形状并创建全屏布局。您可以调用 getDisplayCutout() 来判断本地设备是否具有凹口屏幕,然后再确定裁切区域的位置和形状。平台添加了一个新的窗口布局属性 layoutInDisplayCutoutMode 让您告诉系统如何以及何时将您的内容相对于裁剪区域进行布局。通知
- 增强体验
- 通道设置、广播以及免打扰
- 多相机支持和相机更新
- 新的图片解码
- 动画
- HDR VP9视频,HEIF图像压缩和媒体API
- JobScheduler中的数据成本敏感度
- 神经网络API 1.1
- 改进表单自动填充
- 安全增强
- Android 备份加密
- 用于 NFC 支付和安全交易的 Open Mobile API
Android 8.1
- Android Go 简介
- 人工智能神经网络 API(如:TensorFlow)
- 自动填充框架更新
- Notification 通知变更
- EditText 更新
- WebView 安全浏览更新
- 视频缩略图提取器更新
- 共享内存API
- WallpaperColors API
- 指纹更新
Android 8.0
- APP“安装未知应用”功能默认被限制
- 优化通知
- 通知渠道 Notification Channel
- 通知标志
- 休眠
- 通知超时
- 通知设置
- 通知清除
- 自动填充框架
- 画中画模式:清单中Activity设置android:supportsPictureInPicture
- 可下载字体:FontRequest
- XML 中的字体
- 自动调整 TextView 的大小
- 自适应图标
- 颜色管理
- WebView API
- 多显示器支持
- 统一的布局外边距和内边距
- 指针捕获
- 应用类别
- Android TV 启动器
- AnimatorSet
- 新的 StrictMode 检测程序
- 缓存数据
- findViewById() 签名变更
- 权限
- 更新的 Java 支持
Android 7.1
- 加入重启按钮
- App圆形图标
- 添加新的Emoji
Android 7.0
分屏多任务
进入后台多任务管理页面,然后按住其中一个卡片,然后向上拖动至顶部即可开启分屏多任务,支持上下分栏和左右分栏,允许拖动中间的分割线调整两个APP所占的比例。
全新下拉快捷开关页
Android 7.0中,下拉打开通知栏顶部即可显示5个用户常用的快捷开关,支持单击开关以及长按进入对应设置。如果继续下拉通知栏即可显示全部快捷开关,此外在快捷开关页右下角也会显示一个编辑按钮,点击之后即可自定义添加/删除快捷开关,或拖动进行排序。
新通知消息
通知消息快捷回复
加入了全新的API,支持第三方应用通知的快捷操作和回复,例如来电会以横幅方式在屏幕顶部出现,提供接听/挂断两个按钮;信息/社交类应用通知,还可以直接打开键盘,在输入栏里进行快捷回复。
通知消息归拢
Android7.0会将同一应用的多条通知提示消息归拢为一项,点击该项即可展开此前的全部通知,允许用户对每个通知执行单独操作。
流量保护模式
新增的流量保护模式不仅可以禁止应用在后台使用流量,还会进一步减少该应用在前台时的流量使用。推测其有可能使用了类似Chrome浏览器的数据压缩技术。此外,谷歌还扩展了ConnectivityManager API的能力,使得应用可以检测系统是否开启了流量保护模式,或者检测自己是否在白名单中。Android7.0允许用户单独针对每个应用,选择是否开启数据保护模式。
菜单键快速应用切换
支持VR
引入JIT编译器
使得App安装速度快了75%,编译代码的规模减少了50%
画中画
Project Svelte: 后台优化
Android 6.x
动态权限管理
Android 6.0引入了动态权限管理,将标记为危险的权限从安装时权限模型移动到运行时权限模型。
安装时权限模型(Android5.1以及更早):用户在应用安装和更新时,对危险权限授权。但是OEM和运行商预装的应用将自动预授权。
运行时权限(Android6.0及以后):用户在应用运行时,对应用授予危险权限。由应用决定何时去申请权限(例如,在应用启动时或者用户访问某个特性时),但必须容许用户来授予或者拒绝应用对特定权限组的访问。OEM和运营商可以预装应用,但是不能对权限进行预授权。
运行时权限提供给用户关于应用所需权限更多的相关上下文和可视性,这也让开发者帮助用户更好的理解:为什么应用需要所请求的权限,授权将有什么样的好处,拒绝将有何种不便。用户可以通过设置中的菜单来撤销应用的权限。
指纹识别Finger Support
说到指纹识别,很多用户都会觉得现在的中高端android手机都支持,但事实上这些android手机的指纹识别都是各个厂商自行开发的并没有系统底层的支持。Android 6.0则在系统层面加入指纹识别,能提供原生指纹识别API,这不但降低了厂商开发指纹识别模块的成本,最重要的是原生指纹识别将会大大提升android手机的指纹识别支付安全性
电池管理
Android 6.0使用下列特性来延长电池使用时间:
App Standby(应用待机): 系统可以将未使用的应用置为AppStandby模式,临时限制这些应用的网络访问,延迟同步和后台job
Doze(瞌睡): 如果用户在某个时间期限内未主动使用设备(屏幕关闭、设备静止),平台将进入深度睡眠状态。因为该特性要求平台检测静止状态,因此只有那些在Sensor HAL中实现了显式移动检测API的设备中才有效。
Exemptions(豁免): 预装在设备上的系统应用和云消息服务,默认通常被豁免。应用开发者可以要求其应用使用这种设定。用户也可以在设置中来豁免某些应用。
Android Pay
Android支付统一标准。新的M系统中集成了Android Pay。其特性在于简洁、安全、可选性。Android Pay是一个开放性平台,用户可以选择谷歌的服务或者使用银行的APP来使用它,Android Pay支持4.4以后的系统设备,Google宣布Android Pay已经与美国三大运营商700多家商店达成合作,支付功能可以使用指纹支付。
存储
在之前,安卓系统虽然可以支持TF卡扩展,但TF卡扩展的容量只能当成外置存储。虽然用户可以把照片、音乐等内容放进去,但App不能安装到其中。在安卓6.0中,当首次插入TF卡的时候,系统会询问会将TF卡作为外置还是内置储存。如果选择作为内置存储,系统则会对TF卡格式化并加密——注意,这会丢失数据!然后,TF卡的容量就和设备的内置存储融合了。
取消支持 Apache HTTP 客户端
BoringSSL
硬件标识符访问权
通知
音频管理器变更
支持文本选择
Android 密钥库不再支持 DSA。但仍支持 ECDSA
WLAN 和网络连接变更
相机服务变更
APK 验证
USB 连接
Android 5.0
Android Runtime (ART)默认运行平台设置
支持64位ART虚拟机。新系统放弃了之前一直使用的Dalvik虚拟机,改用了ART模式,实现了真正的跨平台编译。ART虚拟机编译器在内存占用及应用程序加载时间上进行了大幅提升,谷歌承诺所有性能都会比原来提升一倍。另外,对64位的支持也让ART虚拟机如鱼得水,开发者可以针对像ART Cortex-A57这样的64位架构核心开发应用程序。 Android L支持更大的寄存器,支持新的指令集,提升了内存寻址空间,未来Android智能手机将支持4GB以上的内存。
全新通知中心设计
- Material Design 样式
- 声音和振动
- 锁定屏幕可见性
- 媒体播放
- 浮动通知
Google在android L中加入了全新风格的通知系统。改进后的通知系统会优先显示对用户来说比较重要的信息,而将不太紧急的内容隐藏起来。用户只需轻轻向下滑动就可以查看全部的通知内容。
新的通知系统另外一个很酷的新功能是在锁屏界面也可以直接查看通知消息了。不仅如此,用户还可以直接在锁屏的情况下回复或进入应用。另外,如果在操作手机的过程中有电话进入,也不会进行全画面的切换,而是同样以通知的方式告知用户。
引入Material Design设计
扁平化的设计理念,新的视觉语言,在基本元素的处理上,几件了传统的印刷设计,字体版式、网格系统、空间、比例、调色、图像使用等这些基础的平面设计规范。
作为我们开发者,最关心的还是如何在项目中使用Material Design风格:
设置应用的 targetSdkVersion 和 targetSdkVersion 为21
在values目录下的style资源文件中创建一个style,让其继承自 android:Theme.Material
在AndroidManifest中指定应用的主题或者Activity的主题为我们设定的样式
谷歌官方我们提供了三种配色风格的Material Design样式:黑色主题 Theme.Material 明亮主题 Theme.Material.Light 明亮主题黑色ActionBar Theme.Material.Light.DarkActionBar 我们也可以继承系统提供的Material Design样式,进行配色修改:themecolor
|
|
主题不仅可以对Application和Activity使用,也可以对某一个控件单使用,或者是在xml布局中给一个根节点控件设置Android:theme属性,来修改它和它所有子控件的主题。
如果我们要对特定控件实例做自定义修改,更建议大家可以通过控件自身的API进行设置修改。
Project Volta电池续航改进计划
Project Volta计划增加了新工具可以让开发者能够更容易的找出为何自己的应用程序会对电量产生比较大的影响,同时确保在执行某些任务时将手机电量的影响降至最低。首先,Battery Historian可以列出手机电量消耗的详细情况,帮助开发者识别电量消耗的原因或者是哪个硬件或任务对电池寿命的影响比较大;而Job Scheduler API则可以让开发者更容易的选择合适的时机触发电量消耗比较高的任务,避免在低电量或未完成充电时更新应用程序。
而对于用户层面上,Android L 增加了Battery Saver模式,在低电量时系统会调整某些耗电设置,如降低屏幕亮度、限制自动更换背景等。
全新的”最近应用程序“
除了界面风格设计的改变之外,新的最近应用界面还借鉴了Chrome浏览器的理念,采用单独的标签展示方式。而且,谷歌已经向开发者开放了API,所以第三方开发人员可以利用这个改进为特定的应用增加全新的功能。getAppTasks()
改进安全性
支持多种设备
可以在智能手机、平板电脑、笔记本电脑、智能电视、汽车、智能手表甚至是各种家用电子产品等设备上使用Android系统。
支持OpenGL ES3.1
媒体控件和 RemoteControlClient
支持Android NDK中的64位
只能显示绑定到服务,取消隐藏绑定服务
WebView API修改
自定义权限唯一性要求
TLS/SSL 默认配置变更
- 服务器不支持任何已启用的加密套件
- 应用对用于连接服务器的加密套件做出错误的假设
- 服务器不支持 TLSv1.1、TLSv1.2 或新的 TLS 扩展
- 支持托管配置文件
Android 4.4
- 支持Android Beam
- 添加打印框架
- 存储访问框架
- 低功耗传感器
- 添加短信提供程序
- 添加全屏沉浸模式
- Android 沉浸式状态栏的三种实现方式
- 兼容库SystemBarTint
- 添加透明系统 UI 样式
- 添加新的媒体功能
- RenderScript Compute
- 持续性能提升
- GPU 加速
- Android NDK 中的 RenderScript
- 图形
- GLES2.0 SurfaceFlinge
- 新的硬件合成器支持虚拟显示
- 支持新的连接类型
- 新的蓝牙配置文件
- 红外发射器
- Wi-Fi TDLS 支持
- 无障碍功能
- 安全增强功能
- 内存使用率分析工具
- Procstats
Android 4.0,4.1,4.2,4.3
- 支持OpenGL ES 3.0
- 增强蓝牙连接
- 优化位置和传感器
- 添加转场动画
- 支持Daydream
- 人脸识别解锁
- Photo Sphere 全景相片
Android API 对照表
Android Beta,发布于2007年11月5日,同时的软件开发套件(SDK),发布于2007年11月12日。 11月5日被认为是Android的”生日”。
Android每个版本都有个API Level,对应着某个Android发布版本的名称。
Android版本名称Code name | Android版本 | 版本发布时间 | 对应API |
---|---|---|---|
(no code name) | 1.0 | 2008年9月23日 | API level 1 |
(no code name) | 1.1 | 2009年2月9日 | API level 2 |
Cupcake 纸杯蛋糕 | 1.5 | 2009年4月27日 | API level 3,NDK 1 |
Donut 甜甜圈 | 1.6 | 2009年9月15日 | API level 4,NDK 2 |
Eclair 泡芙 | 2 | 2009年10月26日 | API level 5 |
Eclair | 2.0.1 | 2009年12月3日 | API level 6 |
Eclair | 2.1 | 2010年1月12日 | API level 7,NDK3 |
Froyo 冻酸奶 | 2.2.x | 2010年5月20日 | API level 8,NDK 4 |
Gingerbread 姜饼 | 2.3 – 2.3.2 | 2010年12月6日 | API level 9,NDK5 |
Gingerbread | 2.3.3 – 2.3.7 | 2011年2月9日 | API level 10 |
Honeycomb 蜂巢 | 3.0 | 2011年2月22日 | API level 11 |
Honeycomb | 3.1 | 2011年5月10日 | API level 12,NDK 6 |
Honeycomb | 3.2.x | 2011年7月15日 | API level 13 |
Ice Cream Sandwich | 4.0.1 – 4.0.2 | 2011年10月18日 | API level 14,NDK 7 |
Ice Cream Sandwich | 4.0.3 – 4.0.4 | 2011年12月16日 | API level 15,NDK 8 |
Jelly Bean 果冻豆 | 4.1.x | 2012年7月9日 | API level 16 |
Jelly Bean | 4.2.x | 2012年11月13日 | API level 17 |
Jelly Bean | 4.3.x | 2013年7月24日 | API level 18 |
KitKat 奇巧 | 4.4.x | 2013年10月31日 | API level 19 |
KitKat | 4.4W.x | 2014年6月25日 | API level 20 |
Lollipop(Android L) 棒棒糖 | 5.0 – 5.0.2 | 2014年11月12日 | API level 21 |
Lollipop(Android L) | 5.1 – 5.1.1 | 2015年3月9日 | API level 22 |
Marshmallow(Android M) | 6.0 – 6.0.1 | 2015年10月5日 | API level 23 |
Nougat(Android N) 牛轧糖 | 7.0 | 2016年8月22日 | API level 24 |
Nougat(Android N) | 7.1.1 | 2016年10月 | API level 25 |
Oreo(Android O) 奥利奥 | 8.0 | 2017年3月21日 | API level 26 |
Oreo(Android O) Android Go | 8.1 | 2017年12月6日 | API level 27 |
Pistachio Ice Cream(Android P) | 9 | 2018年8月6日 | API level 28 |