首页 存档 技术 查看内容

Android7.0 对于开发者来说的35条重要新功能

2018-3-30 13:00 |来自: 互联网 348 0

摘要: 说完Android7.1 对开发者来说的重要更新《Android7.1 有哪些新功能?开发者必看!》,接下来说说Android7.0 ,Android7.0 正式发布已有一段时间,并且已有数款机器支持,对用户和开发者都有重大功能的更新,当然,如 ...

说完Android7.1 对开发者来说的重要更新《Android7.1 有哪些新功能?开发者必看!》,接下来说说Android7.0 ,Android7.0 正式发布已有一段时间,并且已有数款机器支持,对用户和开发者都有重大功能的更新,当然,如果开发者充分利用这些新功能,用户自然而然的就能体验到Android7.0带来的新体验,本文重点介绍面向开发者的一些新功能:

1.支持多窗口

在android 7.0中,我们介绍了在支持多窗口平台上的一个多任务处理的新功能。
现在,用户可以一次在屏幕上打开两个应用。

在手机和平板上运行7.0,用户可以并排运行两个应用,或者一个应用位于另一个应用之上在分屏模式的时候。 用户可以通过拖动两个应用之间的分隔线来调整app大小。

在android TV上的设备,app可以将自身置于画中画模式。当用户浏览或者与其他app交互的时候,允许它们继续显示内容。

尤其是在平板上和大屏的设备上,多窗口支持为你提供新的吸引用户的方式。你甚至能够让你的应用进行拖放,用户可以方便的把内容拖到你的应用,或者从中拖出内容,这是一个非常好的增强用户体验的方式。

它是简单的为你的app添加多窗口支持,并配置它如何处理多窗口显示。例如,你可以指定activity允许的最小尺寸,从而防止用户将activity调整到该尺寸以下。你也可以在你的app中禁止多窗口显示,确保系统将仅以全屏模式显示你的app。

关于更多的信息,请查看Multi-Window Support的开发者文档。

2.通知功能的增强

在android 7.0我们重新设计了通知,让它们更加容易和快速的被使用。以下是一些改变的地方。

(a)模板的更新,我们正在更新的通知模板,强调了英雄的头像和化身。开发者将能够利用新的模板,在代码中做最小的调整。
(b)消息样式的自定义,你能够自定义很多和通知相关的用户界面的标签,使用MessagingStyle类。你可以配置消息,会话标题,内容视图。
(c)绑定通知,系统能够把一组消息放在一起,例如,按照主题消息,显示这个组。用户可以适当地进行Dismiss或Archive等操作。如果你已实现Android Wear的通知,那么你已经很熟悉此模式。
(d)直接回复,对于实时通信app,android系统支持内嵌的回复,用户可以直接快速响应一个短消息或文本消息,直接在通知接口。
(e)自定义视图,两个新的API让你在通知中使用自定义视图时可以充分利用系统装饰元素,如通知标题和操作。

3.介绍JIT / AOT编译

在android 7.0中,我们添加了Just in Time (JIT) 编译器,对ART 进行代码分析,它能不断的提高android app的运行性能。JIT编译器对android运行组件当前的Ahead of Time (AOT) 编译器进行了补充,有助于提升运行时性能,节省存储空间,加快应用更新和系统更新速度。

配置编译器让ART管理AOT/JIT编译每一个app根据实际使用,以及设备上的条件。例如,ART保持着每一个app热门方法的简介,并且可以预编译和缓存这些方法以实现最佳性能。对于应用的其他部分,在实际使用之前不会进行编译。
除了提高app的性能是关键部分。简介编译器帮助减少app的内存占用,包括相关的二进制文件。这个功能对于降低设备的内存是很重要的。

ART管理profile-guided编译时,在最大程度上降低对设备电池的影响。仅当设备处于空闲状态和充电时才进行编译,节约时间和电量通过提前执行该工作。

4.快速的app安装路径

ART JIT编译的一个最明显的好处是提高app安装和系统更新的速度。在android 6.0中即使是大型的app,也要求几分钟来优化安装的,但是现在只需要几秒钟。系统更新也变的很快,自从它不需要优化了。

5.休眠情况下…

android 6.0介绍休眠机制,通过推迟app的cpu和网络活动来实现省电目的的系统模式,当设备空闲的时候,例如设备放在桌上或抽屉里时。

现在在android 7.0时,休眠机制又前进了一步,随时随地的节省电量。任何时候只要屏幕关闭了一段时间,并且设备也没有插电,休眠就会应用到这个app熟悉的CPU和网络限制的子集。这意味着用户节省电量,当他们将设备放入口袋里的时候。



当设备在使用电池时,屏幕关闭片刻后,休眠模式限制网络访问,同时延迟作业和同步。在维持着短暂的窗口期间,应用允许网络访问,并执行延迟的作业/同步的作业。打开屏幕或者将设备插入电源会使设备退出休眠模式。

当设备再次静止时,屏幕关闭且使用了电池一段时间。休眠模式应用整个cpu和网络限制在PowerManager.WakeLock, AlarmManager闹钟和GPS/Wi-Fi扫描。

无论设备移动与否,将app在休眠模式的最佳适配是相同。所以,如果你已经更新了你的app,优雅的处理了休眠模式,则一切就绪。如果没有,请看adapting your app to Doze文档。

6.Project Svelte:后台优化

瘦身计划在持续的优化,尽可能的减少系统和app对RAM的使用,在安卓设备的生态系统的范围内。在Android 7.0中,瘦身计划注重优化app在后台运行的方式。

后台处理是大多数app的一个重要部分。处理得当,它能够让用户感觉非常神奇,即时地、快速地和有感知力地。处理不得当,后台处理会不必要地消耗内存(包括电量),同时影响其他app的系统性能。

从Android 5.0开始,JobScheduler已成为执行后台工作的首选方式,其工作方式有利于用户。app可以在安排工作的同时允许系统基于内存、电源和连接情况进行优化。 JobScheduler 可实现控制和简洁性,我们想要所有的app都使用它。

另一个非常好的选择是GCMNetworkManager,Google Play Services的一部分,提供类似工作调度,能够很好的兼容在旧的安卓版本。

我们持续扩展JobScheduler和GCMNetworkManager,满足更多的用户案例。例如,在Android 7.0中,你能够立即安排后台工作,基于可变化的内容提供程序。在同一时间,我们开始反对一些旧的模式,如降低系统性能,特别是低内存设备。

在7.0中,我们移除掉来三个隐式广播, CONNECTIVITY_ACTION(网络变化)、ACTION_NEW_PICTURE(相机、拍照、图片)、and ACTION_NEW_VIDEO(ship)。因为这些广播可能会一次性唤醒多个app的后台进程,同时会耗尽内存和电池。如果你的app接收来这些广播,请例如Android 7.0的优势,迁移到JobScheduler上,用相关的API来代替。

想要了解更详细的信息,请看Background Optimizations文档。

7.SurfaceView

Android 7.0带来了同步运动的类SurfaceView。提供了在某些情况下比TextureView更好的电池性能,当渲染视频或者3D视频时,app滚动和切换视频位置是,使用SurfaceView比TextureView更省电量。

SurfaceView类在屏幕的影像合成上有更好的电池效率。因为它是复合的专用硬件,分离了app窗口内容。因此,它中间的复制比TextureView更少。

一个SurfceView对象的内容位置现在同步更新到app所包含的内容。这个变化的结果是:简单的移动或者缩放一个视频,如果用的是SurfaceView,将不会在view的边上产生黑色的进度条。

从Android 7.0开始,我们强烈推荐,你要省电的话用SurfaceView代替TextureView。

8.Data Saver(数据保护)

在移动设备的生命周期内,蜂窝数据计划的成本通常超过设备本身的成本。 对于更多用户来说,蜂窝数据是一个昂贵的资源,是他们想要保存。

Android 7.0介绍了数据保护模式。一个新的系统服务,能够帮助app减少蜂窝数据的使用。无论是在计费周期结束时的漫游,还是少量的预付费数据包。数据保护给用户控制哪个app使用蜂窝数据,同时让开发者打开Data Saver时,可以提供更多有效的服务。

当一个用户在设置里面启用了Data Saver,就可以在设备上计算网络流量。系统封锁了后台数据的使用,同时在前台的信号app尽可能减少数据的使用,例如限制流的比特率,降低图片质量,延迟预先的高速缓冲。用户能设置一个特殊的app白名单,允许后台计算流量使用,即使是Data Saver打开的时候。

Android 7.0扩展了ConnectivityManager类,可以让app检索用户的Data Saver首选项和监控首选项变更。所有的app应该检查用户是否开启了Data Saver,尽力限制前台和后台数据的使用。

9.Vulkan API

Android 7.0集成了Vulkan,一个3D渲染的API。像OpenGL ES一样,Vulkan 是 3D 图形和渲染的一项开放标准,由 Khronos Group 维护。

Vulkan是被设计成最小化的驱动CPU的开销,允许应用程序直接地控制CPU的操作。Vulkan也有更好的并行化,允许多个线程执行工作,如命令缓冲区构建一次。

Vulkan开发工具和依赖都在Android 7.0的NDK中,他们包括:
1.头
2.验证层(调试库)
3.SPIR-V着色编译器
4.SPIR-V运行时着色器编译库
Vulkan只适合已启用Vulkan硬件的设备上的应用,如Nexus 5X,Nexus 6P,Nexus Player。我们和合作伙伴正在紧密合作,尽可能带来更多的关于Vulkan的设备。

关于更多信息,请看API documentation。

10.快速设置Tile API

快速设置是一个很普遍地和简单地显示设置按钮和一些其他行为的功能,直接从通知栏下拉。在android 7.0中,我们扩展了快速设置的范围大小,让它更富有适用性和方便性。

我们增加了更多的空间来添加快速设置的图块,用户可以向左或者向右滑动,随意翻阅来显示它们。我们也可以让用户来控制哪些快速设置图块的显示用户可以添加删除这些图块,通过拖动和放下他们。

对于开发者来说,android 7.0也增加了一些新的API,让你能够定义自己的快速设置图块,给用户能够很容易的访问他们的应用,通过这个图块来控制、操作它们。

快速设置图块保留了控制和行为,它们是急切的要求和频繁的使用,应该不被使用快捷键来运行app。

一旦你定义了你的图块,你可以让他们显示给用户看,可通过拖放将图块添加到快速设置。

关于更多的创建一个app图块的信息,请看Tile文档。

11.号码拦截

android 7.0平台上现在已经支持号码拦截了,提供了一个framework的API,让服务提供者维护一个号码拦截的列表。默认的是SM这个app,这个自带的app能够往号码拦截列表中读写数据。这个列表不能够被其他app访问。

通过使号码屏蔽成为平台的标准功能,android提供了一致的做法,在广泛的设备上让app支持号码拦截。app能够利用以下的这些好处:

1.能够拦截电话,也能够拦截短信
2.通过Backup

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部