天天看点

Android 7.0来的真快,来看看又来了些什么出人意料的东西(墙外搬运)

转载请注明出处:王亟亟的大牛之路

先安利,本周会完成工具类等模块的拆分,敬请期待:https://github.com/ddwhan0123/Useful-Open-Source-Android

最近都在看RN的东西,然后发现React.js的语法还是不熟又想去看看JS但是7.0又顶在菊花后面,还有我那丢了许久的Python和一堆源生知识点,感觉整个人都要爆炸了(这里还没工作的东西挤进来)。

不过作为一个Native的开发者和脑残粉还是把Native的新特性放在第一位,毕竟RN还不成熟,React.js是前端的事,Python只是随便写写。

这一篇会介绍官方主推的一些新特性和功能,接下来的几天会陆续推出相关详细的介绍,不过按照国内更新迭代的尿性,还早,这个是真的还早,想想隔壁的 6.0,不过作为开发者还是要先人一步!!

N的未成熟版在我的电脑里沉寂许久现在“完整版”已经浮出水面,又多了一些新特性以及大量优化,本篇文章会一个一个点的给大家做介绍!

多窗口支持

现在,用户可以一次在屏幕上打开两个应用。

  • 在运行 Android N 的手机和平板电脑上,用户可以并排运行两个应用,或者处于分屏模式时一个应用位于另一个应用之上。 用户可以通过拖动两个应用之间的分隔线来调整应用。
  • 在 Android TV 设备上,应用可以将自身置于画中画模式,从而让它们可以在用户浏览或与其他应用交互时继续显示内容。
Android 7.0来的真快,来看看又来了些什么出人意料的东西(墙外搬运)

分析:很赞的一个新功能,会让“超大屏”手机/平板 获得新的活力和拓展空间!

更强大的Notification

进行了重新的设计,引入了新的风格。

  • 模板更新:我们正在更新通知模板,新强调了英雄形象和化身。 开发者将能够充分利用新模板,只需进行少量的代码调整。
  • 消息样式自定义:您可以自定义更多与您的使用 MessageStyle 类的通知相关的用户界面标签。 您可以配置消息、会话标题和内容视图。
  • 捆绑通知:系统可以将消息组合在一起(例如,按消息主题)并显示组。 用户可以适当地进行 Dismiss 或 Archive 等操作。 如果您已实现 Android Wear 的通知,那么您已经很熟悉此模型。
  • 直接回复:对于实时通信应用,Android 系统支持内联回复,以便用户可以直接在通知界面中快速回复短信。
  • 自定义视图:两个新的 API 让您在通知中使用自定义视图时可以充分利用系统装饰元素,如通知标题和操作。
Android 7.0来的真快,来看看又来了些什么出人意料的东西(墙外搬运)

分析: 更好的用户体验,更多元的设计(直接回复在iOS和个别国产ROM里已经有了实现,官方将其推向普及是个不错的举措)

快速的应用安装路径

Android 运行组件的 JIT 编译器最实际的好处之一是应用安装和系统更新的速度。 即使在 Android 6.0 中需要几分钟进行优化和安装的大型应用,现在只需几秒钟就可以完成安装。 系统更新也变得更快,因为省去了优化步骤。

分析:妈妈再也不用担心我编译大项目10分钟啦!!

随时随地低电耗模式

在 Android N 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉的 CPU 和网络限制。这意味着用户即使将设备放入口袋里也可以省电。

分析:更好的优化算法+逻辑便于用户更好的续航

Project Svelte:后台优化

Project Svelte 在持续改善,以最大程度减少生态系统中一系列 Android 设备中系统和应用使用的 RAM。 在 Android N 中,Project Svelte 注重优化在后台中运行应用的方式。

后台处理是大多数应用的一个重要部分。处理得当,可让您实现非常棒的用户体验 — 即时、快速和情境感知。如果处理不得当,后台处理会毫无必要地消耗 RAM(和电池),同时影响其他应用的系统性能。

官方还删了3个高频耗电广播,内容如下:

删除了三个常用隐式广播 — CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO — 因为这些广播可能会一次唤醒多个应用的后台进程,同时会耗尽内存和电池。 如果您的应用收到这些广播,请充分利用 N Developer Preview 以迁移到 JobScheduler 和相关的 API。

分析:流氓软件总会换着法的保持常驻,任重而道远!!

Data Saver

在移动设备的整个生命周期,蜂窝数据计划的成本通常会超出设备本身的成本。 对于许多用户而言,蜂窝数据是他们想要节省的昂贵资源。

Android N 推出了 Data Saver 模式,这是一项新的系统服务,有助于减少应用使用的蜂窝数据,无论是在漫游,账单周期即将结束,还是使用少量的预付费数据包。 Data Saver 让用户可以控制应用使用蜂窝数据的方式,同时让开发者打开 Data Saver 时可以提供更多有效的服务。

Android 7.0来的真快,来看看又来了些什么出人意料的东西(墙外搬运)

分析:类似于OS的 Cellular Data开关,对偷跑流量的流氓们做了更好的限制。

Vulkan API

Android N 将一项新的 3D 渲染 API Vulkan™ 集成到平台中。就像 OpenGL™ ES 一样,Vulkan 是 3D 图形和渲染的一项开放标准,由 Khronos Group 维护。

Vulkan 是完全从零开始设计,以最小化驱动器中的 CPU 开销,并能让您的应用更直接地控制 GPU 操作。 Vulkan 还允许多个线程同时执行工作,如命令缓冲区构建,以获得更好的并行化。

Vulkan 开发工具和库都已卷入 Android NDK。它们包括:

  • 验证层(调试库)
  • SPIR-V 着色程序编译器
  • SPIR-V 运行时着色器编译库
  • Vulkan 仅适用于已启用 Vulkan 硬件的设备上的应用,如 Nexus 5X、Nexus 6P 和 Nexus Player。 我们正在与合作伙伴密切合作,以尽快使 Vulkan 能面向更多的设备。

分析:对3D图像处理加了一种新的解决方式,难道是觉得OpenGL过于“繁重”,要予以“替换”?

Quick Settings Tile API

“快速设置”通常用于直接从通知栏显示关键设置和操作,非常简单。 在 Android N 中,我们已扩展“快速设置”的范围,使其更加有用更方便。

Android 7.0来的真快,来看看又来了些什么出人意料的东西(墙外搬运)

分析:各大Rom厂商在这部分已经有了自己的风格,主要是看易用性吧

号码屏蔽

Android N 现在支持在平台中进行号码屏蔽,提供框架 API,让服务提供商可以维护屏蔽的号码列表。 默认短信应用、默认手机应用和提供商应用可以对屏蔽的号码列表进行读取和写入操作。 其他应用则无法访问此列表。

分析:很好的安全措施,很好地防止流氓软件的读取用户数据

来电过滤

Android N 允许默认的手机应用过滤来电。手机应用执行此操作的方式是实现新的 CallScreeningService,该方法允许手机应用基于来电的 Call.Details 执行大量操作,例如:

  • 拒绝来电
  • 不允许来电到达通话记录
  • 不向用户显示来电通知

分析:这部分是否开放我个人觉得有待商榷。。。。

多区域设置支持、多语言

Android N 现在允许用户在设置中选择多个区域设置,以更好地支持双语用例。 应用可以使用新的 API 获取用户选择的区域设置,然后为多区域设置用户提供更成熟的用户体验 — 如以多个语言显示搜索结果,并且不会以用户了解的语言翻译网页。

除多区域设置支持外,Android N 还扩展了用户可用的语言范围。 它针对常用语言提供超过 25 种的变体,如英语、西班牙语、法语和阿拉伯语。 它还针对 100 多种新语言添加了部分支持。

分析:更完善的语言,地区适应性功能

新增的表情符号

Android N 引入更多表情符号和表情符号相关功能,包括肤色表情符号和支持变量选择符。 如果您的应用支持表情符号,请遵循以下准则,以便能充分利用这些表情符号相关功能优势。

  • 在插入之前,检查设备是否包含表情符号。 若要检查系统字体中有哪些表情符号,使用 hasGlyph(String) 方法。
  • 检查表情符号是否支持变量选择符。 变量选择符使您能够呈现一些彩色或黑白的表情符号。 在移动设备上,应用应呈现彩色的表情符号,而不是黑白的。但是,如果您的应用显示嵌入在文本中的表情符号,那应使用黑白变量。 若要确定表情符号是否有变量,使用变量选择符。 如需有关支持变量的字符的完整清单,请参阅变量的 Unicode 文档中的 表情符号变量序列部分。
  • **检查表情符号是否支持肤色。**Android N 允许用户按照他们的喜好修改表情符号呈现的肤色。 键盘应用应为有多个肤色的表情符号提供可视化的指示,并应允许用户选择他们喜欢的肤色。 若要确定哪些系统表情符号有肤色修改器,使用 hasGlyph(String) 方法。 您可以通过读取 Unicode 文档来确定哪些表情符号使用肤色。

Android 中的 ICU4J API

Android N 目前在 Android 框架(位于 android.icu 软件包下)中提供 ICU4J API 的子集。 迁移很简单,主要是需要从 com.java.icu 命名空间更改为 android.icu。 如果您已在您的应用中使用 ICU4J 捆绑包,切换到 Android 框架中提供的 android.icu API 可以大量节省 APK 大小。

分析:有一种包体积的浓缩处理的方案

OpenGL™ ES 3.2 API

Android N 添加了框架接口和对 OpenGL ES 3.2 的平台支持,包括:

  • 来自 Android 扩展包 (AEP) 的所有扩展(EXT_texture_sRGB_decode 除外)。
  • 针对 HDR 的浮点帧缓冲和延迟着色。
  • BaseVertex 绘图调用可实现更好的批处理和流媒体服务。
  • 强大的缓冲区访问控制可减少 WebGL 开销。

Android N 上适用于 OpenGL ES 3.2 的框架 API 与 GLES32 类一起提供。 使用 OpenGL ES 3.2 时,请务必通过 标记和 android:glEsVersion 属性在您的清单中声明要求。

分析:模块Update

VR 支持

Android N 添加了新的 VR 模式的平台支持和优化,以使开发者能为用户打造高质量移动 VR 体验。 新版针对开发者提供了大量性能增强特性,包括单一缓冲区渲染以及允许 VR 应用访问某个专属的 CPU 核心。在您的应用中,您可以享受到专为 VR 设计的平滑头部跟踪和立体声通知功能。 最重要的是,Android N 的图形延时非常低。

分析:网红功能

一眼下去看到好多好多需要了解,学习的新功能新特性,感觉任重道远。

接下来一段时间还会继续分析,学习相关内容分享给大家。

相关传送门:

https://developer.android.com/topic/performance/background-optimization.html

https://developer.android.com/training/monitoring-device-state/doze-standby.html#assessing_your_app

https://developer.android.com/guide/topics/ui/notifiers/notifications.html

https://developer.android.com/guide/topics/ui/multi-window.html

Android 7.0来的真快,来看看又来了些什么出人意料的东西(墙外搬运)