[译]Android O 来了
WHY
阅读本文可以较为全面的了解到Android O。
2017年3月21日,Google发布了Android O。这个版本的系统主要提高了手机的电池使用寿命以及增加了画中画等功能。当然也新增了一些API。如:TextView支持自动缩放以及添加了Autofill Framework(就像自动填充表单的意思)、后台运行的限制等。[译者言]
自2008年首次推出以来,Android项目获得了来自我们充满活力的应用开发者和设备制造商以及我们的用户的令人难以置信的反馈。
最近,我们一直在努力改进我们的工程流程,以便我们能够与我们的合作伙伴更早地,更公开地分享我们的工作。
所以,今天,我很高兴地分享了第一个开发者预览的操作系统:Android O。
早期有更多的功能,当然在正式使用之前还有很多的优化系统稳定性以及提高系统性能的工作要做。
在接下来的几个月内,我们将发布更新的开发者预览,我们将在5月份在Google I / O上对这个版本进行更深入的探讨。
在此期间,我们非常欢迎您尝试新功能的反馈,当然你也可以在新操作系统上测试您的应用。
O中有什么新东西?##
Android O引入了许多新功能和API,可以在您的应用程序中使用这些新的API。这里只是一些新的东西,你开始尝试这个第一个开发者预览:
后台限制:基于我们在Nougat开始的工作,Android O将把提高用户的电池寿命和设备的交互性能作为重中之重。为了实现这一点,我们对后台应用程序可以执行的其他自动限制有三个主要方面:隐式广播,后台服务和位置更新。这些更改将更容易创建对用户设备和电池影响最小的应用。后台限制代表了Android的重大变化,因此我们希望每个开发人员都熟悉它们。
有关详细信息,请参阅有关 后台执行限制和后台位置限制的文档。
通知渠道: Android O还引入了通知渠道,这是针对通知内容的新的应用程序定义的类别。
频道可让开发人员针对不同类型的通知提供不同程度的控制权限,用户可以单独阻止或更改每个频道的行为,而不是一起管理所有应用的通知。
Android O还添加了新的视觉效果和分组到通知,当他们有一个传入的消息或正在通知时使得用户更容易看到。
在Android的O,我们重新设计了通知,以提供管理通知的行为和设置更方便,更一致的方式。
这些变化包括:
- Notification channels(通知信道):Androi O 介绍的通知信道,允许你创建要显示每种类型的通知的用户可定制的频道。所述用户界面是指通知信道作为通知类别。要了解如何执行的通知信道,看到通知通道指南。
- Snoozing(打盹):用户可以暂停通知,在以后的时间再次出现。通知再现与同等重要的水平,他们第一次出现了。应用程序可以删除或更新延后的通知,但更新延后的通知不会导致它出现。
- Notification timeouts(通知超时):您现在可以使用创建通知时设置超时 Notification.Builder.setTimeout()。
您可以使用此方法来指定在此之后,通知应被取消的持续时间。
如果需要的话,可以取消之前指定的超时时间到达的通知。 - Notification dismissal(通知解雇):系统现在区分的通知是否是由用户驳回,或由一个应用程序除去。要检查通知是如何被解雇,你应该实施新 [onNotificationRemoved()](https://developer.android.com/reference/android/service/notification/NotificationListenerService.html#onNotificationRemoved(android.service.notification.StatusBarNotification, android.service.notification.NotificationListenerService.RankingMap, int))的方法 NotificationListenerService 类。
- 背景颜色:现在,您可以设置并启用通知的背景颜色。您应该只使用在通知这一功能对于这对用户一看便知关键的日常任务。例如,您可以为相关的行车路线通知的背景颜色,或正在进行的电话。您还可以使用设置所需的背景色 Notification.Builder.setColor()。这样做允许您使用Notification.Builder.setColorized()启用通知使用背景色。
- 消息的风格:使用该通知 MessagingStyle类现在显示在他们的折叠形式更多的内容。您应该使用MessagingStyle类对于那些消息相关的通知。您也可以使用新的 addHistoricMessage() 方法,通过将历史信息以短信相关的通知,以提供上下文的对话。
自动填充API: Android用户已经依赖一系列密码管理器来自动填充登录详细信息以及一些重复的信息,这使得设置新的APP或者进行交易时更简单快捷。现在,我们通过为自动填充添加平台支持,使整个生态系统中的工作更加轻松。用户可以选择自动填充应用,类似于他们选择键盘应用的方式。自动填充应用程序存储和受保护的用户数据,如地址,用户名,甚至密码。对于要处理自动填充的应用,我们需要添加新的API来实现自动填充服务。
类型Form表单的自动填充
PIP的手机和新的窗口功能: 画中画(PIP)显示,现已可以在手机和平板电脑上使用,所以用户可以在观看视频的同时回答一个聊天或招呼一辆汽车。应用程序可以从恢复的PiP模式或系统支持的暂停状态将自己置于PiP模式 - 您可以指定宽高比和一组自定义交互(如播放/暂停)。其他新窗口特性包括应用程序使用 新应用程序覆盖窗口,而不是系统警报窗口,以及在远程显示器上启动活动的多显示器支持。
画中画功能已经在三星手机上实现过了
XML中的 字体(fonts) 资源: 字体现在是Android O中完全支持的资源类型。应用程序现在可以在XML布局中使用字体,也可以在XML中定义字体系列 - 声明字体样式和重量以及字体文件。
就是使用统一的字体。现在很多手机厂商ROM已经支持了。
自适应图标:为了帮助您更好地与设备UI集成,您现在可以
基于设备选择的掩码,创建系统以不同形状显示的 自适应图标。系统还会与图标进行动画交互,并在启动器,快捷方式,设置,共享对话框和概述屏幕中使用它们。
应用程序的宽色域:成像应用程序的Android开发人员现在可以利用具有宽色域显示功能的新设备。要显示宽色域图片,应用需要在其清单(每个活动)中启用标记,并使用嵌入式宽色配置文件(AdobeRGB,Pro Photo RGB,DCI-P3等)加载位图。
连接:为了最终的音频保真度,Android O现在还支持高品质的蓝牙音频编解码器,如LDAC编解码器。我们还增加了新的Wi-Fi功能,如 Wi-Fi Aware,以前称为邻居感知网络(NAN)。在具有适当硬件的设备上,应用和附近的设备可以通过Wi-Fi发现和通信,而无需互联网接入点。我们正在与我们的硬件合作伙伴一起,尽快为设备带来Wi-Fi Aware技术。
电信框架正在扩展ConnectionService API,以使第三方调用应用程序与System UI集成,并与其他音频应用程序无缝操作。例如,应用可以在不同类型的UI(诸如汽车头单元)中显示和控制他们的呼叫。
键盘导航:随着Chrome操作系统和其他大型设备上Google Play应用的出现,我们发现这些应用中键盘导航的使用正在复苏。在Android O中,我们专注于为“开发者”和“标签”导航创建一个更可靠,可预测的模型,帮助开发人员和最终用户。
AAudio API for Pro Audio: AAudio是一种新的本机API,专为需要高性能,低延迟音频的应用程序而设计。使用AAudio的应用程序通过流读取和写入数据。在开发者预览中,我们发布了这个新API的早期版本,以获取您的反馈。
WebView增强功能:在Android Nougat中,我们为WebView引入了一个可选的多进程模式,将Web内容的处理转移到一个独立的进程中。在Android O中,我们默认启用多处理模式,并添加一个API,让应用处理错误和崩溃,以提高安全性和提高应用程序稳定性。作为进一步的安全措施,您现在可以选择启用应用的WebView对象,以通过Google安全浏览验证网址。
Java 8语言API和运行时优化: Android现在支持几种新的Java语言API,包括新的java.time API。此外,Android Runtime比以前更快,在某些应用程序基准上的改进高达2x。
合作伙伴平台贡献:硬件制造商和硅谷合作伙伴已经加快了O版本中Android平台的修复和增强。例如,索尼已经提供了超过30个功能增强,包括LDAC编解码器和250个修复Android O的bug.
250个bug。。。
开始使用几个简单的步骤##
首先,让您的应用程序兼容,让您的用户无缝过渡到Android O.只需下载设备系统映像或模拟器系统映像,安装您当前的应用程序,并测试 - 应用程序应该运行和看起来不错,处理行为更改正确。完成任何必要的更新后,我们建议您立即发布到Google Play,而不必更改应用的平台定位。
使用Android O构建
当你准备好了,深入了解O,了解你可以利用你的应用程序的一切。有关预览时间轴,行为更改
,新API和支持资源的详细信息,
请访问O Developer Preview网站。
规划应用程式如何支援背景限制和其他变更。尝试一些在您的应用程序的伟大的新功能 - 通知渠道,PIP, 自适应图标,XML中的字体资源,自动调整TextView
和许多其他。
为了更轻松地探索Android O中的新API,我们已经提供了API差异报告与
Android O API参考。
Autosizing TextViews(自动缩放TextView)
两种使用方法,每种使用方法均有对应的代码和XML使用方式
-
Granularity(粒度)
通过使用粒度,可以指定一个范围的最小和最大文本尺寸,并且指定每个步长的大小的尺寸。Android Studio中允许文本在TextView以统一的规模,在给定的最小和最大尺寸的属性之间的范围内。每个增量呈现在粒度属性中指定的步长大小。要设置使用粒度自动调整大小,请执行以下操作:-
调用[setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)](https://developer.android.com/reference/android/widget/TextView.html#setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int))方法。您可以使用任何TypedValue 尺寸单元,最大,最小和粒度值。
-
使用autoSizeMinTextSize, autoSizeMaxTextSize和autoSizeStepGranularity 属性设置布局XML文件中的自动调整大小的尺寸。
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="100sp" android:autoSizeStepGranularity="2sp" />
-
-
Preset Sizes(预设尺寸)
通过使用预设的尺寸,可以自动调整的 TextView,从预定义的尺寸列表。要设置使用预设的大小自动调整大小的,请执行以下操作:- 调用[setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit)](https://developer.android.com/reference/android/widget/TextView.html#setAutoSizeTextTypeUniformWithPresetSizes(int[], int)) 方法。You can provide an array of sizes in pixels and any dimension unit for the size。
- 使用autoSizePresetSizes 布局XML文件中的属性。访问数组作为一种资源,在一个XML文件中定义数组,然后将文件添加到res/values/文件夹中。
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoSizePresetSizes="@array/autosize_text_sizes" />
最新的Canary(金丝雀)版本的Android Studio 2.4 包含新功能,以帮助您开始使用Android O.您可以从Android Studio下载并设置O预览SDK,然后使用Android O的XML字体资源和自动调整布局编辑器中的TextView。观看更多Android O支持在未来几个星期。
我们还发布了一个alpha版本的26.0.0支持库,供您试用。此版本添加了许多新的API,并将minSdkversion增加到14.有关详细信息,请查看发行说明。
要把AS更新到2.4预览版才能使用Android O的虚拟机(00)貌似
预览更新##
O开发者预览版包括一个更新的SDK,其中包含用于在官方Android模拟器以及Nexus 5X,Nexus 6P,Nexus Player,Pixel,Pixel XL和Pixel C设备上测试的系统映像。如果您正在构建可穿戴设备,还有一个模拟器可用于在Android O上测试Android Wear 2.0。
我们计划在O Developer Preview中定期更新预览系统映像和SDK。此初始预览版本仅适用于开发人员,不适用于每日或消费者使用,因此我们只能通过手动下载和闪光提供。下载和说明在这里。
随着我们更接近最终产品,我们将邀请消费者尝试一下,我们将通过Android测试版开放注册。请继续关注细节,但现在,请注意,Android测试版目前不支持AndroidØ。