Android7.0新特性

定名为“Nougat”(牛轧糖)。谷歌2016年的 I/O 开发者大会在美西时间2016年5月18-20日召开

Android N 据谷歌介绍,Nougat带来了250多项新特性。
        Google Assistant  “清除全部”按钮
        Instant Apps(即时应用)  无缝更新
        Daydream VR支持
        真正的多窗口多任务处理
        捆绑通知
        直接回复通知
        概览(Overview)按钮
        夜间模式
        “省流量”模式
        改进的文件浏览器
        改进的Java 8语言支持

!!!:
新的Interpreter+JIT+AOT编译器;
Daydream:一个在移动设备上创建虚拟现实体验的VR SDK;
Vulkan:一个跨平台的图形和计算API。它来自Khronos Group,面向现代GPU;
多窗口:在Nougat上,开发人员可以创建两个窗口;
借助Direct Reply,开发人员可以增强通知功能;
改进了在Android Marshmallow 中引入的Doze,当屏幕关闭而设备没有接通电源时,限制应用程序使用CPU和网络;
Svelte 进一步降低了后台运行的应用程序使用的内存。
包含有关“数据流量节省(Data Saver)”、号码拦截、呼叫显示、多区域支持、新Emojis、WebView(已回归Chrome)、 虚拟文件等特性的详细信息。

 

1.多窗口模式 (Multi-Window Support)。7.0全新引入,8.0更加丰富,注意不是PicInPic。

        Android N 允许手持设备(智能手机或者平板电脑)同时运行两个窗口.
一是,用户可在最近任务的概览界面,长按支持多窗口模式的应用标题不放,拖拽到屏幕顶部,这时该应用会切换到多窗口模式,屏幕底部继续显示其他任务的概览界面;
二是,如果当前的应用可以支持多窗口模式,长按导航栏的窗口按钮即可将当前应用切换到多窗口模式.
 

2.通知机制 (Notifications)

        Android 从4.1开始就支持了通知的扩展样式,也就是我们通常所说的多行通知栏.Android N 可以根据来源将接收到的通知归拢在一起,而不是像现在这样四处散落
除此之外,Android N 的通知栏,可以直接对消息进行回复.

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

 

3.流量节省程序(Data Saver)

        这是一项新的系统服务,有助于减少应用使用的移动数据网络,无论是在漫游,账单周期即将结束,还是使用少量的预付费数据包。
        Android N中提供了一个全局的流量控制机制,目的自然是为了防止应用程序在后台恶意偷跑宝贵的移动流量。这个功能是默认关闭的,一旦开启之后除了GMS
(Google Mobile Service,谷歌移动服务)外,其他应用都是默认不允许在后台使用超过前台所消耗的移动流量。还扩展了ConnectivityManager API 的能力,
        使得应用可以检测系统是否开启了流量保护模式。

4.Android 框架中提供部分ICU4J API支持

        ICU4J(International Components for Unicode)是由IBM维护,基于IBM公共许可证分发的免费开源Unicode工具库,开发者可以使用ICU4J根据各地的风俗
和语言习惯,实现对数字、货币、时间、日期、和消息的格式化、解析,对字符串进行大小写转换、整理、搜索和排序等功能。

5.开始支持Java 8

        从Android N 开始,开发者可以使用Java 8来编写应用程序,目前Android N对于Java 8的支持并不全面,但这依然是一个重量级的更新。目前支持以下内容:
默认和静态接口方法;
Lambda 表达式;
反射及语言相关的API;
公用工具API;
为了使用Java8同时还需要引入Jack编译工具链,与传统编译工具链相比的优势在于全部开源,编译速度更快。

6.增强多语言支持 (Language and Locale)

        在Android N之前的系统中,多语言的匹配略显粗暴.

7.更加省电 (Efficiency)随时随地低电耗模式..

        在安卓6.0中,安卓引入了新的省电机制Doze,当时针对的场景只是当手机同时处于灭屏以及静止状态来减少应用对电量的消耗。

        而在安卓7.0中,谷歌对Doze进行了更多的优化,休眠机制的使用规则和场景有所扩展.
.在 Android 7.0 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉的 CPU 和网络限制。

 

8.系统级电话黑名单功能

在安卓7.0中,谷歌将电话拦截功能变成了一个系统级功能。其它应用可以调用这个拦截名单,但只有个别应用可以写入,包括拨号应用、默认的短信应用等.
支持在平台中进行号码屏蔽,提供框架 API,让服务提供商可以维护屏蔽的号码列表。

9,Project Svelte:后台优化

Project Svelte 在持续改善,以最大程度减少生态系统中一系列 Android 设备中系统和应用使用的 RAM。在 Android 7.0 中,Project Svelte 注重优化在后台中运行应用的方式。
自 Android 5.0 发布以来,JobScheduler 已成为执行后台工作的首选方式
另一个非常好的选择是 GCMNetworkManager(Google Play 服务的一部分),其在旧版 Android 中提供类似的作业安排和兼容性。
删除了三个常用隐式广播 — CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO — 因为这些广播可能会一次唤醒多个应用的后台进程,同时会耗尽内存和电池。

10,SurfaceView

Android 7.0 可同步移动到 SurfaceView 类,此类在某些情况下提供的电池性能优于 TextureView:在渲染视频或 3D 内容时,包含滚动和动画视频位置的应用在使用 SurfaceView 时比 TextureView 耗电更少。
SurfaceView 类可减少屏幕合成对电池的消耗,因为它是在专用硬件中合成,与应用窗口内容分隔开。因此,它产生的中间副本少于 TextureView。
现在,SurfaceView 对象的内容位置和包含的应用内容同步更新。这一变化导致的一个结果是,在画面移动时,SurfaceView 中播放的视频的简单的平移或缩放不再在画面侧面产生黑条。
从 Android 7.0 开始,我们强烈建议您使用 SurfaceView 代替 TextureView,以实现省电。

11,配置文件指导的 JIT/AOT 编译

在 Android 7.0 中,我们添加了即时 (JIT) 编译器,对 ART 进行代码分析,让它可以在应用运行时持续提升 Android 应用的性能。JIT 编译器对 Android 运行组件当前的 Ahead of Time (AOT) 编译器进行了补充,有助于提升运行时性能,节省存储空间,加快应用更新和系统更新速度。
配置文件指导的编译让 Android 运行组件能够根据应用的实际使用以及设备上的情况管理每个应用的 AOT/JIT 编译。除提升应用的关键部分的性能外,配置文件指导的编译还有助于减少整个 RAM 占用,包括关联的二进制文件。
Android 运行组件在管理配置文件指导的编译时,可最大程度降低对设备电池的影响。

12,Vulkan API

Android 7.0 将一项新的 3D 渲染 API Vulkan™ 集成到平台中。就像 OpenGL™ ES 一样,Vulkan 是 3D 图形和渲染的一项开放标准,由 Khronos Group 维护。
Vulkan 是完全从零开始设计,以最小化驱动器中的 CPU 开销,并能让您的应用更直接地控制 GPU 操作。Vulkan 还允许多个线程同时执行工作,如命令缓冲区构建,以获得更好的并行化。
Vulkan 开发工具和库都已卷入 Android 7.0DK。它们包括:
标头
验证层(调试库)
SPIR-V 着色程序编译器
SPIR-V 运行时着色器编译库

13,Quick Settings Tile API

 

 

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

 

13,多语言区域支持,更多语言

 

14,新增的表情符号

 

 

15,WebView

多进程
从 Android 7.0 中的 Chrome 版本 51 开始,WebView 将开发者选项“多进程 WebView”被启用时.在一个单独的沙盒进程中运行网页内容.
Javascript 在页面加载之前运行
从以 Android 7.0 为目标平台的应用开始,JavaScript 上下文会在加载新页面时重置。

 

 

16,OpenGL™ ES 3.2 API

Android 7.0 添加了框架接口和对 OpenGL ES 3.2 的平台支持
 

17,Android TV 录制

Android 7.0 通过新的录制 API 添加了从 Android TV 输入服务录制和播放内容的功能。
 

18,Always on VPN

设备所有者和配置文件所有者可以确保工作应用始终通过指定的 VPN 连接。系统在设备启动后自动启动该 VPN。
 

19,无障碍增强功能

Android 7.0 现在针对新的设备设置直接在欢迎屏幕上提供“Vision Settings”。
 

20,直接启动

直接启动可以缩短设备启动时间,让注册的应用具有有限的功能,即使在意外重启后。
 

21,密钥认证

Android 7.0 引入密钥认证,这是一个新的安全工具,可帮助您确保设备的硬件支持的密钥库中存储的密钥对适当保护您的应用使用的敏感信息。
 

22,APK signature scheme v2

Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。
在默认情况下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用 APK Signature Scheme v2 和传统签名方案来签署您的应用。。最佳的实践是,打包时同时打开v1,v2两种模式,这样低版本可以使用低版本,高版本可以使用更好的v2.

  android {
    ...
    defaultConfig { ... }
    signingConfigs {
      release {
        storeFile file("myreleasekey.keystore")
        storePassword "password"
        keyAlias "MyReleaseKey"
        keyPassword "password"
        v2SigningEnabled false
      }
    }
  }

 

23,虚拟文件

在较早的 Android 版本中,您的应用可以使用存储访问框架来允许用户从他们的云存储帐户中选择文件,如 Google Drive。但是,不能表示没有直接字节码表示的文件;每个文件都必须提供一个输入流。

 

 

系统权限更改

为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问 (0700)。此设置可防止私有文件的元数据泄漏,如它们的大小或存在性。此权限更改有多重副作用:

  • 私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE 和/或 MODE_WORLD_WRITEABLE 而进行的此类尝试将触发 SecurityException

    :迄今为止,这种限制尚不能完全执行。应用仍可能使用原生 API 或 File API 来修改它们的私有目录权限。但是,我们强烈反对放宽私有目录的权限。

在应用间共享文件(Uri共享地址)

对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。
要在应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。
想目前常用的发送 Intent 进行拍照图片选择,Intent 进行下载apk的安装,在这里都会报送异常。

屏幕缩放

Android 7.0 支持用户设置显示尺寸,以放大或缩小屏幕上的所有元素,从而提升设备对视力不佳用户的可访问性。

NDK 应用链接至平台库

从 Android 7.0 开始,系统将阻止应用动态链接非公开 NDK 库,这种库可能会导致您的应用崩溃。此行为变更旨在为跨平台更新和不同设备提供统一的应用体验。即使您的代码可能不会链接私有库,但您的应用中的第三方静态库可能会这么做。因此,所有开发者都应进行相应检查,确保他们的应用不会在运行 Android 7.0 的设备上崩溃。如果您的应用使用原生代码,则只能使用公开 NDK API
.mk编译时,编译为私有库:   

LOCAL_LDLIBS := -lfoo:= -lfoo

 

名为 Crypto 的 JCA 提供程序已弃用,因为它仅有的 SHA1PRNG 算法为弱加密。应用无法再使用 SHA1PRNG(不安全地)派生密钥。

org.apache不支持问题:
defaultConfig{
        useLibrary 'org.apache.http.legacy'
}

SharedPreferences闪退,不再支持多应用多进程模式
//MODE_WORLD_READABLE
改使用 MODE_PRIVATE

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值