AndroidN特性解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AndroidN特性解析
作者:Redyan, 腾讯移动客户端开发⼯程师
商业转载请联系腾讯WeTest获得授权,⾮商业转载请注明出处。
导语
8⽉22⽇,⾕歌正式推送Android 7.0 Nougat(⽜轧糖)正式版,⾸发推送了多款Nexus设备。
除了修复常规BUG,Android 7.0还新增了分屏、新的Notification、VR⽀持等新特性。
8⽉22⽇,⾕歌正式推送Android 7.0 Nougat(⽜轧糖)正式版,他们还会三个⽉⼀次推送开发版,⽽曝光的消息看,第⼀个开发版就是Android 7.1,Android N主要新增了以下的新特性和优化。
⼀、新的Notification
Android N 增加了许多新的notifications API,进⾏了重新的设计,引⼊了新的风格。
●模板更新:开发者将能够充分利⽤新模板,只需进⾏少量的代码调整。
●消息样式⾃定义:可以⾃定义更多与使⽤MessageStyle类的通知相关的⽤户界⾯标签。
可以配置消息、会话标题和内容视图。
●捆绑通知:系统可以将消息组合在⼀起(例如,按消息主题)并显⽰组。
⽤户可以适当地进⾏ Dismiss 或 Archive 等操作。
●直接回复:对于实时通信应⽤,Android 系统⽀持内联回复,以便⽤户可以直接在通知界⾯中快速回复短信。
●⾃定义视图:两个新的 API ,在通知中使⽤⾃定义视图时可以充分利⽤系统装饰元素,如通知标题和操作。
⼆、多窗⼝⽀持(分屏模式)
运⾏ Android N 的⼿机和平板电脑上,⽤户可以并排运⾏两个应⽤,或者处于分屏模式时⼀个应⽤位于另⼀个应⽤之上。
⽤户可以通过拖动两个应⽤之间的分隔线来调整应⽤。
在Android TV 设备上,应⽤可以将⾃⾝置于画中画模式,从⽽让它们可以在⽤户浏览或与其他应⽤交互时继续显⽰内容。
三、Quick Settings Tile API
“快速设置”通常⽤于直接从通知栏显⽰关键设置和操作,⾮常简单。
在 Android N中,已扩展“快速设置”的范围,使其更加有⽤更⽅便。
为额外的“快速设置”图块添加了更多空间,⽤户可以通过向左或向右滑动跨分页的显⽰区域访问它们。
还让⽤户可以控制显⽰哪些“快速设置”图块以及显⽰的位置 — ⽤户可以通过拖放图块来添加或移动图块。
对于开发者,Android N 还添加了⼀个新的 API,从⽽可以定义⾃⼰的“快速设置”图块,使⽤户可以轻松访问应⽤中的关键控件和操作。
四、快速的应⽤安装路径
Android 运⾏组件的 JIT 编译器最实际的好处之⼀是应⽤安装和系统更新的速度。
即使在Android 6.0 中需要⼏分钟进⾏优化和安装的⼤型应⽤,现在只需⼏秒钟就可以完成安装。
系统更新也变得更快,因为省去了优化步骤。
五、随时随地低电耗模式
在 Android N 中,低电耗模式⼜前进了⼀步,随时随地可以省电。
只要屏幕关闭了⼀段时间,且设备未插⼊电源,低电耗模式就会对应⽤使⽤熟悉的 CPU 和⽹络限制。
这意味着⽤户即使将设备放⼊⼝袋⾥也可以省电。
六、Project Svelte:后台优化
Project Svelte在持续改善,以最⼤程度减少⽣态系统中⼀系列 Android 设备中系统和应⽤使⽤的 RAM。
在 Android N 中,Project Svelte 注重优化在后台中运⾏应⽤的⽅式。
后台处理是⼤多数应⽤的⼀个重要部分。
处理得当,可实现⾮常棒的⽤户体验—即时、快速和情境感知。
如果处理不得当,后台处理会毫⽆必要地消耗 RAM和电池,同时影响其他应⽤的系统性能。
Android N 删除了三项隐式⼴播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO),以帮助优化内存使⽤和电量消耗。
此项变更很有必要,因为隐式⼴播会在后台频繁启动已注册侦听这些⼴播的应⽤,删除这些⼴播可以显著提升设备性能和⽤户体验。
移动设备会经历频繁的连接变更,例如在 Wi-Fi 和移动数据之间切换时。
⽬前,可以通过在应⽤清单⽂件中注册⼀个接收器来侦听隐
式 CONNECTIVITY_ACTION⼴播,让应⽤能够监控这些变更。
由于很多应⽤会注册接收此⼴播,因此单次⽹络切换即会导致所有应⽤被唤醒并同时处理此⼴播。
同理,应⽤可以注册接收来⾃其他应⽤(例如相机)的隐式ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO ⼴播。
当⽤户使⽤相机应⽤拍摄照⽚时,这些应⽤即会被唤醒处理⼴播。
为减缓这些问题,Android N应⽤了以下优化措施:
1、⾯向 Android N 开发的应⽤不会收到 CONNECTIVITY_ACTION ⼴播,即使它们已有清单条⽬来请求接受这些事件的通知。
在前台运⾏的应⽤如果使⽤BroadcastReceiver请求接收通知,则仍可以在主线程中侦听CONNECTIVITY_CHANGE。
2、应⽤⽆法发送或接收 ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO⼴播。
此项优化会影响所有应⽤,⽽不仅仅是⾯向 Android N 的应⽤。
未来的 Android 版本还可能会弃⽤其他隐式⼴播以及未绑定的后台服务。
有鉴于此,应避免依赖在清单⽂件中声明的接收器来侦听隐式⼴播或删除此依赖关系,以及避免或删除对后台服务的依赖关系。
Android 框架提供多种解决⽅案来降低这些隐式⼴播或后台服务的必要性。
例如,JobScheduler API 提供了⼀个稳健可靠的机制来安排满⾜指定条件(例如连⼊不按流量计费的⽹络)时所执⾏的⽹络操作。
甚⾄可以使⽤JobScheduler来响应内容提供程序所发⽣的变更。
七、Data Saver
在移动设备的整个⽣命周期,蜂窝数据计划的成本通常会超出设备本⾝的成本。
对于许多⽤户⽽⾔,蜂窝数据是他们想要节省的昂贵资源。
Android N推出了Data Saver模式,这是⼀项新的系统服务,有助于减少应⽤使⽤的蜂窝数据,⽆论是在漫游,账单周期即将结束,还是使⽤少量的预付费数据包。
Data Saver让⽤户可以控制应⽤使⽤蜂窝数据的⽅式,同时让开发者打开Data Saver时可以提供更多有效的服务。
⼋、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。
九、号码屏蔽
Android N 现在⽀持在平台中进⾏号码屏蔽,提供框架 API,让服务提供商可以维护屏蔽的号码列表。
默认短信应⽤、默认⼿机应⽤和提供商应⽤可以对屏蔽的号码列表进⾏读取和写⼊操作,其他应⽤则⽆法访问此列表。
⼗、来电过滤
Android N 允许默认的⼿机应⽤过滤来电。
⼿机应⽤执⾏此操作的⽅式是实现新的CallScreeningService,该⽅法允许⼿机应⽤基于来电的Call.Details执⾏⼤量操作,例如:
●拒绝来电
●不允许来电到达通话记录
●不向⽤户显⽰来电通知
⼗⼀、多区域设置⽀持、多语⾔
Android N 现在允许⽤户在设置中选择多个区域设置,以更好地⽀持双语⽤例。
应⽤可以使⽤新的 API 获取⽤户选择的区域设置,然后为多区域设置⽤户提供更成熟的⽤户体验,如以多个语⾔显⽰搜索结果,并且不会以⽤户了解的语⾔翻译⽹页。
除多区域设置⽀持外,Android N 还扩展了⽤户可⽤的语⾔范围。
它针对常⽤语⾔提供超过 25种的变体,如英语、西班⽛语、法语和阿拉伯语。
它还针对 100 多种新语⾔添加了部分⽀持。
应⽤可以通过调⽤ LocaleList.GetDefault() 获取⽤户设置的区域设置列表。
为⽀持扩展的区域设置数量,Android N 正在改变其解析资源的⽅式。
⼗⼆、新增的表情符号
Android N引⼊更多表情符号和表情符号相关功能,包括肤⾊表情符号和⽀持变量选择符。
如果应⽤⽀持表情符号,请遵循以下准则,以便能充分利⽤这些表情符号相关功能优势。
●在插⼊之前,检查设备是否包含表情符号。
若要检查系统字体中有哪些表情符号,使⽤hasGlyph(String) ⽅法。
●检查表情符号是否⽀持变量选择符。
变量选择符能够呈现⼀些彩⾊或⿊⽩的表情符号。
在移动设备上,应⽤应呈现彩⾊的表情符号,⽽不是⿊⽩的。
但是,如果应⽤显⽰嵌⼊在⽂本中的表情符号,那应使⽤⿊⽩变量。
若要确定表情符号是否有变量,使⽤变量选择符。
如需有关
⽀持变量的字符的完整清单,请参阅变量的 Unicode ⽂档中的表情符号变量序列部分。
●检查表情符号是否⽀持肤⾊。
Android N允许⽤户按照他们的喜好修改表情符号呈现的肤⾊。
键盘应⽤应为有多个肤⾊的表情符号提供可视化的指⽰,并应允许⽤户选择他们喜欢的肤⾊。
若要确定哪些系统表情符号有肤⾊修改器,使⽤hasGlyph(String) ⽅法。
可以通过读取Unicode ⽂档来确定哪些表情符号使⽤肤⾊。
⼗三、Android 中的 ICU4J API
ICU4J 是⼀个⼴泛使⽤的开源 Java 库集合,为软件应⽤提供 Unicode 和全球化⽀持。
Android N 在android.icu软件包下显⽰ Android 框架中的 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开销。
⼗五、VR ⽀持(⾯向Android的 Google VR SDK)
Android N 添加了新的VR 模式的平台⽀持和优化,以使开发者能为⽤户打造⾼质量移动 VR体验。
新版针对开发者提供了⼤量性能增强特性,包括单⼀缓冲区渲染以及允许 VR 应⽤访问某个专属的CPU 核⼼。
在应⽤中,可以享受到专为 VR 设计的平滑头部跟踪和⽴体声通知功能。
⼗六、⽆障碍增强功能(API参考 android.accessibilityservice.GestureDescription)
Android N 现在针对新的设备设置直接在欢迎屏幕上提供“Vision Settings”。
这使⽤户可以更容易发现和配置他们设备上的⽆障碍功能,包括放⼤⼿势、字体⼤⼩、显⽰屏尺⼨和TalkBack。
⼗七、密钥认证
使⽤硬件⽀持的密钥库,可更安全地在 Android 设备上创建、存储和使⽤加密密钥。
它们可保护密钥免受 Linux 内核、潜在的 Android 漏洞的攻击,也可防⽌从已取得根权限的设备提取密钥。
为了让硬件⽀持的密钥库使⽤起来更简单和更安全,Android N 引⼊了密钥认证。
应⽤和关闭的设备可使⽤密钥认证以坚决地确
定 RSA 或 EC 密钥对是否受硬件⽀持、密钥对的属性如何,以及其使⽤和有效性有何限制。
应⽤和关闭的设备服务可以通过 X.509 认证证书(必须由有效的认证密钥签署)请求有关密钥对的信息。
认证密钥是⼀个 ECDSA 签署密钥,其在出⼚时被注⼊设备的硬件⽀持的密钥库。
因此,有效的认证密钥签署的认证证书可确认硬件⽀持的密钥库是否存在,以及该密钥库中密钥对的详细信息。
为确保设备使⽤安全的官⽅ Android 出⼚映像,密钥认证要求设备 bootloader向可信执⾏环境(TEE)提供以下信息:
设备上安装的操作系统版本和补丁级别
●验证的启动公钥和锁定状态。
●除密钥认证外,Android N 还推出了指纹绑定密钥,在指纹注册时不会撤销。
另外新增特性还有直接启动、打印服务增强、持续性能 API、作⽤域⽬录访问、键盘快捷键辅助⼯具等。
Android 7.0诸多新特性,如何⽴刻体验?
腾讯WeTest 云真机上已经有多部Android 7.0⼿机可以选择,让您在⽹页端流畅控制云端⼿机。
点击:。