Android 各版本新特性介绍5.0~9.0

Pie 9.0

室内WiFi定位 RTT

支持IEEE 802.11mc WiFi协议,通过该协议可以实现基于WiFi的室内定位,

异形屏支持

就是俗称的刘海屏支持,根据DisplayCutout可以获得刘海屏的缺口数量、位置和大小等相关信息。方便开发者进行适配。

多摄像头支持

在9.0上,你可以同时获取多个视频流。

ImageDecoder

9.0引入了新的图像类ImageDecoder,提供了更加现代化的方法来解码图片。用于替代老的BitmapFactoryBitmapFactory.Options APIs。

Animation

引入AnimatedImageDrawable类用于绘制和显示GIF。

Oreo 8.0

画中画模式

允许Activity启动picture-in-picture (PIP) mode。

Notification

引入channel的概念,必须设置。

自动填充框架

没有仔细看,应该需要Google Service配合,国内不用考虑了。

可下载字体

8.0以后支持应用后期下载字体文件而不是打包在APK里面。这样可以有效减少APK体积。

XML中声明字体

8.0以后支持将字体文件保存在resource资源文件夹中,同时生成对应的R文件,这样就不必再放在asset文件夹中了。并且支持在对应xml中编写字体库。

自适应大小的TextView

官方支持TextView根据控件尺寸来决定其内部文字的大小。(我之前还自己写过一个类似的,很多坑,现在终于有官方的了,喜大普奔)

新的WebView API

  • Version API
  • Google SafeBrowsing API
  • Termination Handle API
  • Renderer Importance API

快捷菜单

就是常见的桌面在长按某个应用图标,可以弹出一些子菜单,方便用户直接实现某步操作,

Nougat 7.0

多窗口支持(分屏显示)

官方详细文档

  • 手机和平板设备上,用户可以同时运行两个应用在同一屏幕上。
  • TV上,应用可以将自己设置为画中画模式,允许用户在浏览别的应用时继续显示。

Notification增强

其实每代新版本发布,或多或少都会Notification进行一定的优化和调整,介于这次调增相对大些,就大致介绍下。

  • 自定义消息风格
  • 打包通知
  • 直接回复
  • 自定义view

JIT/AOT 交叉编译

在5.0引入ART模式,以AOT编译模式替代了JIT模式,在7.0后,Google又在ART模式中新加入了JIT模式的编译器,让JIT帮助AOT进行混合编译,提高应用的运行性能,节省磁盘空间占用。提高应用和系统更新速度。

SurfaceView加强

7.0后使用SurfaceView将会比TextureView更加省电。

Vulkan支持

新Emoji

OpenGL ES 3.2

VR支持

Marshmallow 6.0

运行时权限

在Android6.0之前所有权限的获取方式,都仅需要将对应权限在Manifest文件中进行申明即可,这种机制造成了流氓软件的盛行,为此Google在6.0中加入了运行时权限的概念。

对于一些敏感的权限,需要在代码中进行动态获取和判断。具体判断机制可参考Android6.0运行时权限请求

电池优化

官方详细文档

  • Doze

    拔出电源后,当屏幕关闭,一段时间不使用时,系统会进入一种休眠模式、该模式下系统会统一管理应用的行为。

  • App Standby

    当一个应用没有被用户积极的使用时,系统会决定该应用是否进入闲置状态,在该状态下,系统会禁止该应用的网络和后台行为。

移除HTTP Client库

6.0中默认移除了支持库Apache HTTP client。如果需要,请手动添加依赖:

android {    useLibrary 'org.apache.http.legacy'}

文本选择器

当用户使用你的应用进行文本选择,你能显示文本选择事件如:剪贴,复制和粘贴。

Lollipop 5.0/5.1

Welcome to Android 5.0 Lollipop—the largest and most ambitious release for Android yet!

欢迎使用Android 5.0 Lollipop - Android史上最大,最雄心勃勃的版本!

Material design

Material design,中文名“材料设计”,在此之前的Android官方设计可以说是非常的low,我们都知道Google是一家技术为驱动的公司,也因为这个原因早期Android的UI设计被iOS各种吊打。但是这种情况在MD推出之后得到了改变。

  • 控件库

    官方基于该设计规范制作了控件库Design,相信绝大多数开发者对这个库都不会陌生,这里就不多介绍了。

  • Z轴

    除了带来了简单好用的控件库,自此以后Android视图从2D变成了3D,任何控件增加了一个新的坐标参数Z轴,通过该参数,系统会自动帮助我们绘制出具有立体效果的层级View。

  • 动画

    在5.0之前,Android动画非常单一,仅有简单的帧动画和补间动画两种。官方也是为了填充动画方面的劣势,在该版本中添加了大量的高级动画,常见的包括:Activity转场动画,共享元素动画,Button涟漪动画,对象动画物理插值器等等。

  • Vector

    支持Vector,是一种矢量图标格式,Google另外原生提供了很多常见的Icon。

  • RenderThread

    一个名为RenderThread的新系统管理处理线程,即使在主UI线程中存在延迟时也能保持动画流畅。

Android Run Time(ART)

这是Android历史上非常重要的里程碑,熟悉Android运行机制的小伙伴肯定不会陌生。

在此之前,Android应用采用的是一种叫即时编译(JIT)的机制,由于这种机制,系统在每次打开一个软件的时候都需要将软件的字节码进行一次编译。而ART推出后,系统摒弃了之前的编译模式,而改用预编译(AOT),简单来说就是在应用安装时候便将整个字节码编译成了本地代码保存下来,当应用运行时就跳过了编译过程,CPU可以直接运行已经编译好的本地代码。

  • 优点:提高应用运行性能,提高启动速度。
  • 缺点:应用安装时间加长,应用存储占用增加。

这里由于篇幅关系就不过多介绍,总结就是在这种模式的加持下,Android的整体流畅度已经完全可以和iOS媲美。

TV优化

提供了大屏显示的相关支持库和Android TV Input Framework (TIF) 、

概览屏幕

概览屏幕(也称为最新动态屏幕、最近任务列表或最近使用的应用)是一个系统级别 UI,其中列出了最近访问过的 Activity 和任务。用户可以浏览该列表并选择要恢复的任务,也可以通过滑动清除任务将其从列表中移除。 包含不同文档的同一 Activity 的多个实例可能会以任务的形式显示在概览屏幕中。

高级连接

  • 低功耗蓝牙
  • 多网络连接
  • NFC

高性能图像

支持OpenGL ES 3.1。

相机&视频增强

  • Camera2
  • 支持HEVC编解码

屏幕捕捉和分享

简单来说就是官方支持了屏幕录像类似的功能,需要申请用户权限。

电量优化

引入Job Schedule

更多相关文章

  1. 【转】Android(安卓)动画框架详解,第 1 部分
  2. Android应用架构之MVP模式
  3. 【Android翻译】关于Activity的onSaveInstanceState调用时机的说
  4. Android艺术开发探索第三章——View的事件体系(上)
  5. 从底层看android5.0系统的启动过程
  6. Android手机游戏开发知识点总结
  7. Android的任务栈task stack
  8. 为什么Android要采用Binder作为IPC机制?
  9. 给android系统添加自己想要的属性

随机推荐

  1. ubuntu 10.10 编译Android2.2问题解决
  2. Android面试复习资料整理
  3. 定制个性化屏保
  4. 【Android】android的基本UI操作(2)以及小
  5. Android(安卓)RecyclerView最全使用详解
  6. android 获取apk签名的序列号
  7. Android(安卓)自定义View实例之进度圆环
  8. Android(安卓)RIL源码研究笔记 の ril_ev
  9. 【android】多语言与国际化
  10. android studio自定义生成jar包基础篇