android 7.0 Nougat 新特性

2016年8月 Google 推出了android 7.0正式版, 虽然现在市面上大部分设备还没有更新到该版本,所以开发中也没有太多去考虑这个版本,但是对于改版本的一些新特性还是需要了解一下,方便日后开发中更快的上手。本文主要基于android 官网的一些介绍 。
目前只支持 Nexus 5X、Nexus 6、Nexus 6P、Nexus 9 (LTE)、Nexus Player 以及 Google 自家打造的 Pixel C 平板。

1. 多窗口支持


在 Android 7.0 中,我们为该平台引入了一个新的而且非常需要的多任务处理功能 — 多窗口支持。

简单来说,就是屏幕上可以出现多个多个程序。想想你平时看视频的时候来了微信消息的时候,你得退出视频App,切到微信,回复消息,然后再切回来重新缓冲… 这是一个多么蛋疼的设定...
现在,用户可以一次在屏幕上打开两个应用。

全新的 Android N 下将支持两种新的窗口模式:

  • Side-By-Side 模式:两个 App 瓜分一个屏幕
  • One-above-the-other 模式:一个 App 浮动在另一个 App 之上

或者这么说:

  • 在运行 Android 7.0 的手机和平板电脑上,用户可以并排运行两个应用,或者处于分屏模式时一个应用位于另一个应用之上。用户可以通过拖动两个应用之间的分隔线来调整应用。
  • 在 Android TV 设备上,应用可以将自身置于画中画模式,从而让它们可以在用户浏览或与其他应用交互时继续显示内容。

多窗口支持为您提供新的吸引用户方式,特别是在平板电脑和其他更大屏幕的设备上。您甚至可以在您的应用中启用拖放,从而使用户可以方便地将内容拖放到您的应用或从其中拖出内容—这是一个非常好的增强用户体验的方式。
向您的应用添加多窗口支持并配置多窗口显示的处理方式非常简单。例如,您可以指定您的 Activity 允许的最小尺寸,从而防止用户将 Activity 调整到该尺寸以下。您还可以为应用停用多窗口显示,这可确保系统将仅以全屏模式显示应用。

对开发者而言,想要支持多窗口也很简单,只需要在 AndroidManifest 文件里加上一个属性即可:
在清单的 <activity>或 <application> 节点中设置该属性,启用或禁用多窗口显示:

android:resizeableActivity=["true" | "false"]

如果您的应用面向 Android N,但未对该属性指定值,则该属性的值默认设为 true。

android:supportsPictureInPicture
在清单文件的 <activity>
节点中设置该属性,指明 Activity 是否支持画中画显示。 如果 android:resizeableActivity
为 false,将忽略该属性。

android:supportsPictureInPicture=["true" | "false"]

布局属性

对于 Android N,<layout>清单元素支持以下几种属性,这些属性影响 Activity 在多窗口模式中的行为:

android:defaultWidth :以自由形状模式启动时 Activity 的默认宽度。
android:defaultHeight:以自由形状模式启动时 Activity 的默认高度。
android:gravity:以自由形状模式启动时 Activity 的初始位置。请参阅 Gravity
参考资料,了解合适的值设置。android:minimalHeight、android:minimalWidth

分屏和自由形状模式中 Activity 的最小高度和最小宽度。 如果用户在分屏模式中移动分界线,使 Activity 尺寸低于指定的最小值,系统会将 Activity 裁剪为用户请求的尺寸。

例如,以下节点显示了如何指定 Activity 在自由形状模式中显示时 Activity 的默认大小、位置和最小尺寸:

<activity android:name=".MyActivity">    
      <layout android:defaultHeight="500dp"          
                android:defaultWidth="600dp"          
                android:gravity="top|end"          
                android:minimalHeight="450dp"       
                android:minimalWidth="300dp" />
</activity>

大致效果就是下面这个样子的:

1951128-39dde827af343886.png
mw-portrait.png

2. 通知增强功能


在 Android 7.0 中,我们重新设计了通知,使其更易于使用并且速度更快。部分变更包括:

  • 模板更新:我们正在更新通知模板,新强调了英雄形象和化身。开发者将能够充分利用新模板,只需进行少量的代码调整。
  • 消息传递样式自定义:您可以自定义更多与您的使用 MessagingStyle类的通知相关的用户界面标签。您可以配置消息、会话标题和内容视图。
  • 捆绑通知:系统可以将消息组合在一起(例如,按消息主题)并显示组。用户可以适当地进行拒绝或归档等操作。如果您已实现 Android Wear 的通知,那么您已经很熟悉此模式。
    邮件和 IM 类的 App 总是会在短时间内发来很多通知,在此之前,所有的通知栏是相互独立的,这些新到的通知占用了很多空间,却只能显示有限的信息。归拢通知就是把这些通知归拢起来,逻辑性更强,展示的也会更多。另外一大好处可能就是,用户可以一键消除掉所有同一个 App 发来的通知。个人感觉这个功能比 iOS 要先进一些,很多人的 iOS 通知栏里肯定存在着很对微信的通知对吧...
    1951128-3948b94af6878c4e.png
    notifications-1.png
  • 直接回复:对于实时通信应用,Android 系统支持内联回复,以便用户可以直接在通知界面中快速回复短信。
    1951128-e6b35d9e74e8d7f6.png
    notifications-2.png
  • 自定义视图:两个新的 API 让您在通知中使用自定义视图时可以充分利用系统装饰元素,如通知标题和操作。
1951128-a1fcf44e56477176.png
notifications-3.png

3. 权限更改

随着Android版本越来越高,Android对隐私的保护力度也越来越大。从Android6.0引入的动态权限控制(Runtime Permissions)到Android7.0的“私有目录被限制访问”,“StrictMode API 政策”。这些更改在为用户带来更加安全的操作系统的同时也为开发者带来了一些新的任务。如何让你的APP能够适应这些改变而不是crash,是摆在每一位Android开发者身上的责任。

4. 电池和内存

Android 6.0(API 级别 23)引入了低电耗模式,Android7.0在电池和内存上又做了进一步优化,
来减少Android应用对电量的消耗以及对内存的占用。这些优化所带来的一些规则的变更可能会影响你的应用访问系统资源,以及你的系统通过特定隐式 Intent 与其他应用互动的方式。

4.1 低电耗模式

在低电耗模式下,当用户设备未插接电源、处于静止状态且屏幕关闭时,该模式会推迟 CPU 和网络活动,从而延长电池寿命。
Android7.0通过在设备未插接电源且屏幕关闭状态下、但不一定要处于静止状态(例如用户外出时把手持式设备装在口袋里)时应用部分 CPU 和网络限制,进一步增强了低电耗模式。

也就是说,Android7.0会在手机屏幕关闭的状态下,限制应用对CPU以及网络的使用。

其他

除了以上比较重大的更新外,还有一些比较细小的改动,比如夜间模式、节约流量模式、集成VR功能、增加了emoji表情等

参考文档

1. Android 7.0开发者版本,主要介绍面向开发者的新功能
2. 官网:多窗口支持
3. 官网:对低电耗模式和应用待机模式进行针对性优化

没有更多推荐了,返回首页