在2016年8月22日,谷歌正式推送Android 7.0 Nougat正式版。Android的版本推送真是快啊!6.0还没完全推广,7.0已经推送了。作为开发者不努力真的跟不上节奏了。那么,我先细说下7.0的哪些新特性。
多窗口支持
在 Android N 中,引入了一个新的而且非常需要的多任务处理功能 — 多窗口支持。
现在,用户可以一次在屏幕上打开两个应用。在运行 Android N 的手机和平板电脑上,用户可以并排运行两个应用,或者处于分屏模式时一个应用位于另一个应用之上。 用户可以通过拖动两个应用之间的分隔线来调整应用。
通知功能加强
在 Android N 中,我们重新设计了通知,使其更易于使用并且速度更快。 部分变更包括:
- 模板更新:我们正在更新通知模板,开发者将能够充分利用新模板,只需进行少量的代码调整。
- 消息样式自定义:您可以自定义更多与您的使用 MessageStyle 类的通知相关的用户界面标签。 您可以配置消息、会话标题和内容视图。
- 捆绑通知:系统可以将消息组合在一起(例如,按消息主题)并显示组。 用户可以适当地进行 Dismiss 或 Archive 等操作。 如果您已实现 Android Wear 的通知,那么您已经很熟悉此模型。
- 直接回复:对于实时通信应用,Android 系统支持内联回复,以便用户可以直接在通知界面中快速回复短信,感觉这点就是模仿IOS的功能。
- 自定义视图:两个新的API让您在通知中使用自定义视图时可以充分利用系统装饰元素,如通知标题和操作。
个人资料指导的 JIT/AOT 编译
在 Android N 中,我们添加了 Just in Time (JIT) 编译器,对 ART 进行代码分析,让它可以在应用运行时持续提升 Android 应用的性能。 JIT 编译器对 Android 运行组件当前的 Ahead of Time (AOT) 编译器进行了补充,有助于提升运行时性能,节省存储空间,加快应用更新和系统更新速度。
个人资料指导的编译让 Android 运行组件能够根据应用的实际使用以及设备上的情况管理每个应用的 AOT/JIT 编译。 例如,Android 运行组件维护每个应用的热方法的个人资料,并且可以预编译和缓存这些方法以实现最佳性能。 对于应用的其他部分,在实际使用之前不会进行编译。
除提升应用的关键部分的性能外,个人资料指导的编译还有助于减少整个 RAM 占用,包括关联的二进制文件。 此功能对于低内存设备非常尤其重要。
Android 运行组件在管理个人资料指导的编译时,可最大程度降低对设备电池的影响。 仅当设备处于空闲状态和充电时才进行编译,从而可以通过提前执行该工作节约时间和省电。
快速的应用安装路径
Android 运行组件的 JIT 编译器最实际的好处之一是应用安装和系统更新的速度。 即使在 Android 6.0 中需要几分钟进行优化和安装的大型应用,现在只需几秒钟就可以完成安装。 系统更新也变得更快,因为省去了优化步骤。
随时随地低电耗模式
Android 6.0 推出了低电耗模式,即设备处于空闲状态时,通过推迟应用的 CPU 和网络活动以实现省电目的的系统模式,例如,设备放在桌上或抽屉里时。
现在,在 Android N 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉的 CPU 和网络限制。这意味着用户即使将设备放入口袋里也可以省电。
屏幕关闭片刻后,设备在使用电池时,低电耗模式将限制网络访问,同时延迟作业和同步。 在短暂的维护时间范围后,其允许应用访问网络,并执行延迟的作业/同步。 打开屏幕或将设备插入电源会使设备退出低电耗模式。
当设备再次处于静止状态时,屏幕关闭且使用电池一段时间,低电耗模式针对 PowerManager.WakeLock、AlarmManager 警报和 GPS/Wi-Fi 扫描应用完整 CPU 和网络限制。
无论设备是否处于运动状态,将应用调整到低电耗模式的最佳做法均相同,因此,如果您已更新应用以妥善处理低电耗模式,则一切就绪。 如果不是,请立即开始将应用调整到低电耗模式。
Project Svelte:后台优化
Project Svelte 在持续改善,以最大程度减少生态系统中一系列 Android 设备中系统和应用使用的 RAM。 在 Android N 中,Project Svelte 注重优化在后台中运行应用的方式。
后台处理是大多数应用的一个重要部分。处理得当,可让您实现非常棒的用户体验 — 即时、快速和情境感知。如果处理不得当,后台处理会毫无必要地消耗 RAM(和电池),同时影响其他应用的系统性能。
自 Android 5.0 发布以来,JobScheduler 已成为执行后台工作的首选方式,其工作方式有利于用户。 应用可以在安排作业的同时允许系统基于内存、电源和连接情况进行优化。 JobScheduler 可实现控制和简洁性,我们想要所有应用都使用它。
另一个非常好的选择是 GCMNetworkManager(Google Play 服务的一部分),其在旧版 Android 中提供类似的作业安排和兼容性。
我们在继续扩展 JobScheduler 和 GCMNetworkManager,以符合多个用例 — 例如,在 Android N 中,现在,您可以基于内容提供程序中的更改安排后台工作。 同时,我们开始弃用一些较旧的模式,这些模式会降低系统性能,特别是低内存设备的系统性能。
在 Android N 中,我们删除了三个常用隐式广播 — CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO — 因为这些广播可能会一次唤醒多个应用的后台进程,同时会耗尽内存和电池。 如果您的应用收到这些广播,请充分利用 N Developer Preview 以迁移到 JobScheduler 和相关的 API。
Data Saver
在移动设备的整个生命周期,蜂窝数据(俗称流量)的成本通常会超出设备本身的成本。 对于许多用户而言,蜂窝数据是他们想要节省的昂贵资源。
Android N 推出了 Data Saver 模式,这是一项新的系统服务,有助于减少应用使用的蜂窝数据,无论是在漫游,账单周期即将结束,还是使用少量的预付费数据包。 Data Saver 让用户可以控制应用使用蜂窝数据的方式,同时让开发者打开 Data Saver 时可以提供更多有效的服务。
用户在 Settings 中启用 Data Saver 且设备位于按流量计费的网络上时,系统屏蔽后台流量消耗,同时指示应用在前台尽可能使用较少的流量 — 例如,通过限制用于流媒体服务的比特率、降低图片质量、延迟最佳的预缓冲等方法来实现。 用户可以将特定应用加入白名单以允许后台按流量的流量消耗,即使在打开 Data Saver 时也是如此。
Android N 扩展了 ConnectivityManager,以便为应用检索用户的 Data Saver 首选项并监控首选项变更提供一种方式。 所有应用均应检查用户是否已启用 Data Saver 并努力限制前台和后台流量消耗。
这个可是许多用户的福音,有些不良App,一直在后台挂着进程浪费资源,有了Data Saver能自动帮用户节省流量,出发点是好的,希望不要又搞出什么幺蛾子,黑科技。
Quick Settings Tile API
“快速设置”通常用于直接从通知栏显示关键设置和操作,非常简单。 在 Android N 中,我们已扩展“快速设置”的范围,使其更加有用更方便。感觉这个在国内很多手机上都有了,这个应该不算什么新鲜事物了。
号码屏蔽
Android N 现在支持在平台中进行号码屏蔽,提供框架 API,让服务提供商可以维护屏蔽的号码列表。 默认短信应用、默认手机应用和提供商应用可以对屏蔽的号码列表进行读取和写入操作。 其他应用则无法访问此列表。
来电过滤
Android N 允许默认的手机应用过滤来电。手机应用执行此操作的方式是实现新的 CallScreeningService,该方法允许手机应用基于来电的 Call.Details 执行大量操作,例如:
- 拒绝来电
- 不允许来电到达通话记录
- 不向用户显示来电通知
7.0已经来了,又要开始新一轮的学习了。赶上新潮流!!!
更多内容参考:
https://developer.android.com/about/versions/nougat/android-7.0.html#number-blocking