| 文件类型 | APK |
|---|---|
| 版 | Preview |
| 发行人 | |
| 发布日期 | 2017年10月25日 |
| 添加日期 | 2017年10月25日 |
| 操作系统要求 | Android |
| 要求 | Only compatible with the Nexus 5X, Nexus 6P, Pixel C, Pixel, Pixel XL, Pixel 2, and Pixel 2 XL. |
| 下载总数 | 1,002 |
| 每周下载 | 8 |
| 价钱 | Free |
描述
Android O 为用户和开发人员引入了各种新特性和功能。本文档重点介绍了开发人员的新功能。
请务必查看 Android O 行为更改,以了解平台更改可能会影响您的应用的领域。
神经网络 API
神经网络 API (NNAPI) 为应用程序提供硬件加速,用于设备上的机器学习操作。 API 支持设备上模型的创建、编译和执行。应用程序通常不直接使用 NNAPI;相反,NNAPI 旨在由机器学习库、框架和工具调用,让开发人员训练他们的模型并将它们部署在 Android 设备上。
要了解有关神经网络 API 的更多信息,请参阅神经网络 API 参考文档和神经网络 API 开发人员指南。
通知
Android 8.1 Developer Preview 1 包括对通知的以下更改:
应用程序现在只能每秒发出一次通知警报声。超过此速率的警报声音不会排队并丢失。此更改不会影响通知行为的其他方面,并且通知消息仍按预期发布。
NotificationListenerService 和 ConditionProviderService 在调用 ActivityManager.isLowRamDevice() 时返回 true 的低内存 Android 设备上不受支持。
改进了针对低 RAM 设备的目标
Android 8.1(API 级别 27)向包管理器添加了两个新的硬件功能常量 FEATURE_RAM_LOW 和 FEATURE_RAM_NORMAL。这些常量允许您将应用程序和 APK 拆分分配到普通或低 RAM 设备。
这些常量使 Play 商店能够通过突出显示特别适合给定设备功能的应用程序来提升更好的用户体验。
自动填充框架更新
Android 8.1 开发者预览版(API 级别 27)对自动填充框架进行了多项改进,您可以将这些改进整合到您的应用中。
Developer Preview 添加了对 Android 系统在自动填充保存 UI 中显示的自定义描述的支持,而不是数据的原始表示。例如,当您想要屏蔽信用卡号并仅显示最后四位数字时,这很有用。要了解更多信息,请参阅 CustomDescription 类。
Developer Preview 允许您指定一个 Validator 对象,您的应用可以使用该对象来决定 Android 系统是否应该显示自动填充保存 UI。此功能由 SaveInfo.Builder 类的 setValidator() 方法提供。
Developer Preview 中的 BaseAdapter 类包括 setAutofillOptions() 方法,它允许您提供适配器中值的字符串表示形式。这对于在其适配器中动态生成值的微调器控件很有用。例如,您可以使用 setAutofillOptions() 方法提供年份列表的字符串表示形式,用户可以选择作为信用卡到期日期的一部分。自动填充服务可以使用字符串表示来适当地填充需要数据的视图。
此外,AutofillManager 类包括 notifyViewVisibilityChanged(View, int, boolean) 方法,您可以调用该方法来通知框架有关虚拟结构中视图可见性的更改。非虚拟结构的方法也有重载。但是,非虚拟结构通常不需要您显式通知框架,因为 View 类已经调用了该方法。
编辑文本更新
从 API 级别 27 开始,EditText.getText() 方法返回一个 Editable;以前它返回一个 CharSequence。此更改是向后兼容的,因为 Editable 实现了 CharSequence。
可编辑界面提供有价值的附加功能。例如,由于 Editable 还实现了 Spannable 接口,因此您可以将标记应用于 EditText 实例中的内容。
程序化安全浏览操作
通过使用安全浏览 API 的 WebView 实现,您的应用可以检测 WebView 实例何时尝试导航到被 Google 归类为已知威胁的 URL。默认情况下,WebView 会显示一个插页式广告,如图 1 所示,警告用户存在已知威胁,并让他们可以选择加载 URL 或返回到安全的前一页面。
在 Android 8.1 Developer Preview 中,您可以以编程方式定义您的应用如何响应已知威胁:
您可以控制您的应用是否向安全浏览报告已知威胁。
您可以让您的应用在每次遇到安全浏览归类为已知威胁的 URL 时自动执行特定操作(例如返回安全)。
注意:为获得针对已知威胁的最佳保护,请等到您初始化安全浏览后再调用 WebView 对象的 loadUrl() 方法。
视频缩略图提取器
MediaMetadataRetriever 类有一个新方法 getScaledFrameAtTime(),它会在给定时间位置附近找到一个帧,并返回一个与源帧具有相同纵横比的位图,但会缩放以适应给定宽度和高度的矩形。这对于从视频生成缩略图图像很有用。
我们建议使用此方法而不是 getFrameAtTime(),因为它会返回与源视频具有相同分辨率的位图,这会浪费内存。例如,来自 4K 视频的帧将是 16MB 位图,远大于缩略图图像所需的大小。
共享内存 API
Android 8.1(API 级别 27)引入了一个新的 SharedMemory 类。此类允许您创建、映射和管理可由多个进程或应用程序使用的匿名共享内存。
壁纸颜色 API
Android 8.1 Developer Preview(API 级别 27)增加了对管理壁纸颜色的支持。此功能允许您从位图、可绘制对象或使用前三种最具视觉代表性的颜色创建 WallpaperColors 对象。您还可以检索墙纸前三种明显颜色的详细信息。
要创建 WallpaperColors 对象,请执行以下任一操作:
要使用三种颜色创建 WallpaperColors 对象,请通过传递主要颜色、次要颜色和三次颜色来创建 WallpaperColors 类的实例。原色不能为空。
要从位图创建 WallpaperColors 对象,请通过将位图源作为参数传递来调用 fromBitmap() 方法。
要从可绘制对象创建 WallpaperColors 对象,请通过将可绘制源作为参数传递来调用 fromDrawable() 方法。
要从壁纸中检索主要、次要或三次颜色细节,请调用以下方法:
getPrimaryColor() 返回壁纸最引人注目的颜色。
getSecondaryColor() 返回壁纸的第二大颜色。
getTertiaryColor() 方法返回壁纸的第三大颜色
要通知系统任何重大的颜色变化,请调用 notifyColorsChanged() 方法。此方法触发 onComputeColors() 生命周期事件,您有机会提供新的 WallpaperColors 对象。
要添加颜色更改的侦听器,可以调用 addOnColorsChangedListener() 方法。您还可以调用 getWallpaperColors() 方法来检索壁纸的原色。
指纹更新
FingerprintManager 类引入了以下错误代码:
FINGERPRINT_ERROR_LOCKOUT_PERMANENT - 用户尝试使用指纹读取器解锁设备的次数过多。
FINGERPRINT_ERROR_VENDOR - 出现供应商特定的指纹读取器错误。