您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > Android70写给开发者的一封信(官网同步翻译)
Android7.0写给开发者的一封信(官网同步翻译)AndroidN(Nougat牛轧糖)在2016年8月22如期发布,在它正式发布前就向SDK推送了DeveoperPreview,AndroidN的很多新特性也被广大的开发者朋友挖掘出来了,那么官网上也有几篇关于AndroidN的变化的文章,下面就和大家一起来学习一下AndroidN的一些先关知识。。如果你自认为你的英语还可以,推荐你阅读官网的文章:AndroidNforDevelopers:AndroidN为开发者介绍新功能。如果想了解更多关于Android7.0的知识,可以阅读Android7.0行为变化(官网同步翻译)。AndroidN为开发者介绍新功能AndroidN目前仍然是开发状态,但现在AndroidNDeveloperPreview已经可以进行试用了。以下部分重点介绍面向开发者的一些新功能。请务必查阅行为变更(第二章节)以了解平台行为变更可能影响到你的App的地方,看看开发者指南,了解有关关键功能的更多信息,并下载Sample参考后获取新API的详细信息。多窗口支持在AndroidN中,Google为该平台引入了一个新的而且非常需要的多任务处理功能——多窗口支持。现在,用户可以一次在屏幕上打开两个应用。在运行AndroidN的手机和平板电脑上,用户可以并排运行两个应用,或者处于分屏模式时一个应用位于另一个应用之上。用户可以通过手指拖动两个应用之间的分隔线来调整应用的边框大小。在AndroidTV设备上,应用可以将自身置于画中画模式,从而让它们可以在用户浏览或与其他应用交互时继续显示内容。多窗口支持为我们提供了新的吸引用户的方式,特别是在平板电脑和其他更大屏幕的设备上。你甚至可以在应用中启用拖放,从而使用户可以方便地将内容拖放到你的应用或从你的APP中拖出内容——这个操作是一个增强用户体验的好方法。在你的应用中添加多窗口支持并配置多窗口显示的处理方式也不难。比如,你可以指定你的Activity允许缩放的最小尺寸,从而防止用户用手指拖动调整APP边框时将Activity调整的过于小。当然,你也可以禁用APP的多窗口显示,这么可以确保你的APP一直多整屏显示。至于详细的代码实现请参考开发者文档。在分屏模式下运行的应用一个例子,中间有一根黑色的线,拖动可以调整APP在屏幕上的大小:增强通知功能在AndroidN中,Google又抛弃了在L和M中的卡片式,Google重新设计了通知,使其更加易用并且速度更快。变更的内容包括:模板更新:Google更新的通知模板中,更加注重整体样式和头像(heroimageandavatar,我理解可能不太对,欢迎大家指正)。开发者只需调整少量的代码就能充分利用新模板。消息样式自定义:你可以使用MessageStyle类自定义更多与你的通知相关的用户界面标签。你也可以配置消息、会话标题和内容视图。捆绑通知:系统会将消息组合在一起(例如,按消息主题)并显示组。用户可以适当地进行Dismiss或Archive等操作。如果你在AndroidWear已实现这样的通知,我想你已经很熟悉这种模式了。直接回复:对于实时通信的App(类似微信、WhatsApp),AndroidN系统支持在通知栏直接回复,以便用户可以直接在通知界面中快速回复短信。自定义视图:你可以使用两个新的API在通知中使用利用系统装饰元素自定义视图,如通知标题和操作。具体如何实现新通知,请参阅通知指南。下面是快速回复的预览图。快速回复1:快速回复2:快速回复3:Profile-guidedJIT/AOT编译在AndroidN中,系统添加了JustinTime(JIT)编译器,对ART进行代码分析,让它可以在应用运行时持续提升Android应用的性能。JIT编译器对Android运行组件当前的AheadofTime(AOT)编译器进行了补充,有助于提升运行时性能,节省存储空间,加快应用更新和系统更新速度。Profile-guided编译让Android运行组件能够根据应用的实际使用以及设备上的情况管理每个应用的AOT/JIT编译。例如,ART维护每个APP的热方法的profile,并且可以预编译和缓存这些方法以实现最佳性能。对于应用的其他部分,在实际使用之前不会进行编译。除提升应用的关键部分的性能外,profile-guided编译还有助于减少整个RAM占用,包括关联的二进制文件。此功能对于低内存设备尤其重要。ART在管理profile-guided编译时,可最大程度降低对设备电池的消耗。仅当设备处于空闲状态或者充电时才进行编译,从而可以通过提前执行该工作节约时间和省电。快速的应用安装路径ART的JIT编译器最实际的好处之一是APP安装和系统更新的速度。即使在Android6.0中需要几分钟进行优化和安装的大型应用,现在只需几秒钟就可以完成安装。因为省去了优化步骤,系统更新也变得更快。随时随地低电耗模式Android6.0时就推出了低电耗模式,即设备处于空闲状态时,通过推迟应用的CPU和网络活动以实现省电目的的系统模式,比如,当设备放在桌子上或你的兜兜里时。而在AndroidN中,低电耗模式又优化了一下,即任何时候都可以省电。只要屏幕关闭了一段时间,且设备没有插入电源,低电耗模式就会对应用使用熟悉的CPU和网络限制。它的意思就是说用户即使将设备放入兜兜里也可以省电。低电耗模式适用于延长电池寿命,即使设备未是非静止状态:屏幕关闭一会儿后,设备在使用电池时,低电耗模式将限制网络连接,同时延迟work和async。在短暂的维护时间范围后,系统会允许应用访问网络,并执行延迟的wrok和async。打开屏幕或将设备插入电源会使设备退出低电耗模式。当设备再次处于静止状态时,屏幕关闭且使用电池一段时间,低电耗模式针对PowerManager.WakeLock、AlarmManager警报和GPS/Wi-Fi扫描后申请禁用所有的全部CPU和网络。调整APP的低电耗模式的最佳实践在移动设备和非移动设备上都是一样,因此,如果你已经更新了你的代码合理的处理了低电耗模式,那就没什么好说的。如果没有,那可以你可以看官网的这篇文章将应用调整到低电耗模式。项目瘦身(ProjectSvelte)——后台优化ProjectSvelte在持续改善,在整个Android生态系统中最大程度的减少Android系统和App使用的RAM。在AndroidN中,ProjectSvelte特别侧重优化在后台运行的App。后台处理是大多数App相当重要的一部分。处理的好,可以实现非常棒的用户体验——即时、快速和情境感知。如果处理不得当,后台处理会毫无必要地消耗RAM(和耗电),同时影响其他App的性能。自Android5.0发布以来,JobScheduler(作业调度器)已成为执行后台工作的首选方式,其工作方式有利于用户。应用可以在安排Job的同时允许系统基于内存、电源和连接情况进行优化。JobScheduler可最简洁的实现后台最优控制,Google想要所有App都使用它,JobScheduler将会非常有利于系统的优化。以后我也会出一片关于具体代码实现的系列文章,届时欢迎大家关注。另一个非常好的选择是GCMNetworkManager(GooglePlay服务的一部分),其在旧版Android中提供类似的Job安排和兼容性。在AndroidN中Google继续扩展了JobScheduler和GCMNetworkManager,以符合更多个用例——例如,现在开发者可以基于ContentProviders改变或者安排后台工作。同时,AndroidN也开始弃用了一些较旧的模式,这些被弃用的模式会降低系统性能,特别是低内存设备的系统性能。在AndroidN中,删除了三个常用隐式广播——CONNECTIVITY_ACTION、ACTION_NEW_PICTURE和ACTION_NEW_VIDEO——因为这些广播可能会一次唤醒多个应用的后台进程,同时会耗尽内存和电池。如果你的App现在用到了这些广播,建议你利用DeveloperPreview调试JobScheduler,用JobScheduler方案是来替换上面的几个广播。如需了解具体的代码实现详情,请查看后台优化文档。SurfaceViewAndroid7.0带来的同步移动SurfaceView类,它提供电池性能在某些情况下比TextureView更好:当渲染视频或3D内容、应用与滚动和移动视频位置时使用更加少的电。SurfaceView被解析合成到屏幕上时更加省电(battery-efficient),因为它在专用硬件上被解析合成,和App窗口上的其它内容是相互独立的。结果就是,它想比TextureView在被解析屏幕上的整个过程中消耗非常小。SurfaceView对象内容的位置是和App内容的位置同步更新的。这个改变的结果是简单的平移、缩放一个Video时不再产生黑条。在Android7.0开始Google推荐我们使用SurfaceView代替TextureView。DataSaver在移动设备的整个声明周期中,移动流量(窝蜂数据)划的成本通常会超出设备本身的成本。对于许多用户来说,移动流量(窝蜂数据)是他们最想节约的一个成本。AndroidN推出了DataSaver模式,这是一项新的系统服务,有助于减少应用使用的移动流量(窝蜂数据),无论是在漫游,账单周期即将结束,还是使用少量的预付费移动流量(窝蜂数据)包。DataSaver让用户可以控制应用使用移动流量(窝蜂数据)的方式,同时让开发者打开DataSaver时可以提供更多有效的其它服务。当设备用移动流量(窝蜂数据)上网时,用户可以在Settings中启用DataSaver,系统会自动屏蔽后台流量消耗,同时通知运行在前台的尽可能使用较少的流量,比如通过限制流媒体服务使用的比特率、降低图片质量、延迟加载、预缓冲等方法来实现。用户可以将特定App加入白名单,这样可允许这些App在后台时使用流量,即使在打开DataSaver时也如是。Android7.0扩展了ConnectivityManager,用户可以用来检查DataSaver是否开启或者监听DataSaver的改变状态。所有应用都应检查用户是否已启用DataSaver并努力限制前台和后台流量消耗。VulkanAPIAndroidN将一项新的3D渲染APIVulkan™集成到平台中。就像OpenGL™ES一样,Vulkan是3D图形和渲染的开放标准,由KhronosGroup维护。Vulkan从驱动器中最小化CPU开销,并且让你的App更直接地控制GPU操作。Vulkan还允许多个线程同时执行工作来获得更好的并行化,如命令缓冲区构建。Vulkan开发工具和库都已经在AndroidNDK。它们包括:HeadersValidationlayers(debuglibraries)SPIR-VshadercompilerSPIR-VruntimeshadercompilationlibraryVulkan仅适用于已启用Vulkan硬件的设备上的App,比如Nexus5X、Nexus6P和NexusPlayer。Google也正在和它的合作厂商积极的合作改善来支持更多的设备。如需要了解更多信息,请参阅API文档。快速设置Title的API“快速设置”通常用于简单直接的从通知栏显示关键设置和操作。在Android7.0中已扩展“快速设置”的范围,更加方便和快速。Google为其它的“快速设置”快提供了更多空间,用户可以像操作ViewPager一样通过向左或向右滑动跨分页的显示区域访问它们。同时用户可以通过手指拖拽来控制需要显示哪些“快捷设置”和他们显示的位置。对于开发者说,Android7.0添加了一个新的API,从而让我们定义自己的“快速设置”图块,使用户可以轻松访问我们App中的关键控件和操作。也就是说我们可以像系统一样在通知懒下拉后在地方设置像系统一
本文标题:Android70写给开发者的一封信(官网同步翻译)
链接地址:https://www.777doc.com/doc-2897156 .html