程序员Android 力荐 ,Android 开拓者须要的必备技能
经历一年多的开拓和数月以来早期用户的反复测试,最新 Android 平台 —— Android 9 Pie 终于正式面向环球发布!
Android 9 利用人工智能技能,让您的手机更加智能、简洁与人性化。请通过本文理解 Android 9 的所有新特性,同时也希望各位开拓者能够借助 Android 9,全面提升运用性能,打造出色体验,让您的运用与用户走得更近!
在 Android 9 的开拓过程中,十分感谢大家的积极反馈 ,我们收到了超过 1000 条报错与特性要求 。共有超过 140,000 名开拓者通过 Android Beta 项目试用了之前发布的开拓者预览版,此外,更有 7 家顶尖互助设备厂商相继推出了支持 Android P Beta 版的旗舰机型,帮助我们获取环球早期 Beta 用户的反馈。
从本日起,我们将在 Android 开源项目 (AOSP) 中发布 Android 9 源码,同时开始向 Pixel 用户推送系统更新关照,其它更多 Android 设备估量会在接下来的几个月要地本地续收到关照。
我们会连续努力将 Android 打造成一流的开放平台,助力环球开拓者取得商业成功。期望各位能够利用 Android 9 这个新平台并借助 Google Play 中新增的功能,开拓出优质的运用和游戏,通过最有效和安全的办法,为环球用户带去精彩体验!
Android 9 终版新功能
以机器学习为核心,打造更为智能的手机
Android 9 授予手机强大的学习能力:系统能够根据用户在利用过程中展露的习气与偏好,进行自我学习与适应 —— 从强劲续航到人性化运用推举,Android 9 都能想您所想,保障持久流畅的用户体验。
动态电量管理
我们与 DeepMind 互助推出了动态电量管理特性,利用机器学习技能对系统资源进行有限分配,更专注于用户最常用的运用。如果您已经针对低耗电模式、运用待机模式以及后台限定对您的运用进行过干系优化,那么它就该当已经能够和动态电量管理特性完美合营。如果您暂时还未开始优化事情,请阅读电量管理官方文档,获取详细操作指南。
DeepMind 链接
https://deepmind.com/
动态电量管理
https://developer.android.google.cn/preview/features/power
低耗电模式
https://developer.android.google.cn/training/monitoring-device-state/doze-standby#understand_doze
运用待机模式
https://developer.android.google.cn/training/monitoring-device-state/doze-standby#understand_app_standby
后台限定
https://developer.android.google.cn/about/versions/oreo/background
电量管理官方文档
https://developer.android.google.cn/preview/features/power
image
Slices
Slices 能够有效帮助用户节省操作韶光,不须要通过全屏体验就能够利用运用的部分功能。借助配套的 UI 模板,Slices 能够将运用内容以高动态、富交互的形式插入到多个利用场景中,比如 Google Search 和 Assistant。请进一步理解如何在运用中构建 Slices。
构建 Slices
https://developer.android.google.cn/guide/slices/
image
App Actions
App Actions 是一种全新的运用推举办法。开拓者可以利用这个功能,让更多人看到自己的运用并极大提高用户参与度。借助机器学习技能,App Actions 能对运用的语义意图和利用场景进行剖析,并根据剖析结果在适当的机遇向用户推举您的运用。
image
我们将在接下来几周内公布详细操作细节,帮助开拓者理解如何在运用内处理一个或多个用户意图。一旦运用启用该推举功能后,系统就会根据用户要求,在浩瀚 Google 和 Android 交互入口推举您的运用。
App Actions
http://developer.android.google.cn/guide/actions/
文本识别与 Smart Linkify
在 Android 9 中,我们对识别文本的机器学习模型进行了扩展,使其可以借助TextClassifier API 识别出类似日期或航班号这样的信息。此外, Smart Linkify 许可开拓者通过 Linkify API 利用文本识别模块完成多项操作,比如对用户可采纳的操作提出建议。Smart Linkify 让系统在文本识别精确度与速率上都有明显的提升。
image
TextClassifier API
https://developer.android.google.cn/reference/android/view/textclassifier/package-summary
Linkify API
https://developer.android.google.cn/reference/android/text/util/Linkify
神经网络 API 1.1
Android 9.0 对神经网络 API 进行了扩展与改进,进一步优化 Android 对机器学习硬件加速的支持。神经网络 API 1.1 共增加了对 9 个新算子的支持,它们分别是 Pad、BatchToSpaceND、SpaceToBatchND、Transpose、Strided Slice、Mean、Div、Sub 和 Squeeze。TensorFlow Lite 便是一个已经用上此 API 的范例机器学习框架。
神经网络 API 1.1
https://developer.android.google.cn/ndk/guides/neuralnetworks/index.html
TensorFlow Lite
https://www.tensorflow.org/mobile/tflite/
人机交互,便是这么随意马虎
“让智好手机更加智能” 是我们向前迈进的主要一步。但是,如何把握好用户与科技的关系 —— 让科技以人为先,这一点也同样关键。在 Android 9 中,我们大幅度改进了用户界面,让它更简洁,也更易于操作;对付开拓者而言,这些变更能够让用户更加随意马虎搜索,利用和管理您的运用。
全新系统导航
经由一年多的努力, Android 9 迎来了全新的系统导航,让多任务切换及关联运用探索变得更加大略。您只须要向上滑动屏幕就可以全屏预览最近利用过的运用,轻触预览页后便可以切换至所选运用。
image
凹口屏支持
Android 9 中加入了凹口屏支持,让您的运用可以充分利用最新全面屏,展现运用的独特魅力。该功能可以在大部分运用中无缝事情,系统会通过调度状态栏高度将运用内容与屏幕缺口区域分开。如果您的运用含有沉浸式内容,您可调用 display cutout APIs 确认缺口形状与位置,然后要求环绕缺口进行全屏布局。其余,我们还加入了开拓者选项来仿照任意设备上的凹口形状,从而极大简化了运用支持凹口屏幕所需的构建以及测试流程。
凹口屏支持
https://developer.android.google.cn/guide/topics/display-cutout/
display cutout APIs
https://developer.android.google.cn/reference/android/view/DisplayCutout.html
image
△ 内含沉浸式内容的运用可以在凹口屏设备上实现全屏显示
关照与智能回答
Android 9 进一步改进了关照的实用性与可操作性。类运用可以调用新的MessagingStyle API 来显示对话,附加照片和表情,或者供应智能回答建议。再过不久,您就可以利用 ML Kit 在运用中天生智能回答。
image
△ 在 MessagingStyle 关照中,您可以显示对话和智能回答 (左) 或添加图片和表情 (右)
MessagingStyle
https://developer.android.google.cn/preview/features%23notifications
ML Kit
https://developers.google.com/ml-kit/
文本放大镜
Android 9 中添加笔墨放大镜工具 (Magnifier widget),以提升文本选择方面的用户体验。由于该放大器供应了可以在文本上方拖拽的文本放大面板,以是有助于用户精准地定位光标或文本选择手柄。该功能可以灵巧利用在所有附加在窗口的视图上,个性化小部件和定制文本呈现均是不错的运用处景。而且,该放大器工具还可以供应任何视图或界面的放大版本,而不仅仅是文本。
笔墨放大镜工具 (Magnifier widget)
https://developer.android.google.cn/reference/android/widget/Magnifier
image
请阅读《Android P 中的新文本特性》,理解更多有关放大镜以及文本特性的干系信息,如 Precomputed Text、行高以及基线文本对齐。
Precomputed Text
https://developer.android.google.cn/reference/android/text/PrecomputedText
用户安全与隐私
统一身份验证对话框
生物传感器被广泛运用于身份认证,为了保障用户在不同感应器和运用间能够得到同等的体验, Android 9 引入了统一的身份验证对话框,提示用户进行操作。运用不再须要自行设计对话框,而是通过调用 BiometricPrompt API 触发系统对话框。除指纹识别以外 (包括屏幕下指纹识别),该 API 还支持面部识别以及虹膜识别。
BiometricPrompt API
https://developer.android.google.cn/reference/android/hardware/biometrics/BiometricPrompt
image
若您的运用仍在利用自行设计的指纹识别对话框,我们建议您尽快转用 BiometricPrompt API。
高可信度用户确认
Android 9 新增了高可信度用户确认 (Android Protected Confirmation) ,该功能通过可信实行环境 (TEE) 确保提示文本被真实用户确认。只有在用户成功确认之后,TEE 才会签发该文本,让运用进行后续验证步骤。
Android Protected Confirmation
https://developer.android.google.cn/preview/features/security#android-protected-confirmation
加强密钥安全保护
我们还加入了一个新的 KeyStore 类 —— StrongBox,并供应相应的 API 来支持那些供应了防入侵硬件方法的设备,比如独立的 CPU,内存以及安全存储。您可以在KeyGenParameterSpec 里进行设置,决定是否把密钥交给 StrongBox 安全芯片来保存。
KeyStore
https://link.juejin.im?target=https%25253A%25252F%25252Fdeveloper.android.google.cn%25252Fpreview%25252F
KeyGenParameterSpec
https://developer.android.google.cn/reference/android/security/keystore/KeyGenParameterSpec
DNS over TLSAndroid 9 内置对 DNS over TLS 的支持:若网络 DNS 做事器供应支持,设备会自动将 DNS 查询升级为 TLS 查询。用户可以通过变动 “网络和互联网” 设置下的隐私 DNS (Private DNS) 模式来管理 DNS over TLS 行为。自走运行 DNS 查询的运用可以通过调用新的 LinkProperties.isPrivateDnsActive() API 来获取 DNS 模式干系信息。请阅读《Android P 开拓者预览版支持 DNS over TLS》,获取进一步信息。
默认利用 HTTPS
为了将所有网络流量从明文 (未加密的HTTP) 逐步迁移至 TLS,我们变动了网络安全配置的默认设置,以阻挡所有明文流量,逼迫运用通过 TLS 建立网降连接,除非开拓者明确许可特定域名利用明文传输。
网络安全配置
https://developer.android.google.cn/training/articles/security-config.html
基于编译器的安全缓解方法
Android 9 将进一步扩展编译器级别的安全缓解方法,借助运行时危险行为监测进一步加强平台安全培植。Android 9 通过掌握流程完全性 (CFI) 技能办理了代码重用 (code-reuse) 和任意代码实行两大漏洞,并扩展了 CFI 在媒体框架和其它关键安全组件内的利用范围,如 NFC 与蓝牙。同时,Android 9 还针对 Android 常见内核的 LLVM 编译添加了 CFI 内核支持。
此外,Android 9 还将整数溢出检讨器 (Integer overflow sanitizer) 的利用范围扩展到其他库,以缓解内存破坏与信息透露这两个问题。我们调高了检讨器在以下两类库中的优先级:1) 存在历史漏洞,2) 须要处理繁芜且不受信赖的输入,如 libui、libnl 和 libmediaplayerservice 一类的库都在调度范围内。
用户隐私
Android 9 新加入多项机制,进一步加强了对用户隐私的保护。系统禁止所有处于空闲状态的运用对发话器、摄像头和所有 SensorManager 传感器的访问。当运用的 UID 空闲时,麦克风将会报告 “无音频旗子暗记”,传感器将会停滞报告事宜,运用利用的摄像头也会断开连接,并在运用试图访问时天生缺点。在大多数情形下,这些限定不会对现有运用造成新的问题,但建议您从运用中移除此类传感器要求。
SensorManager
https://developer.android.google.cn/reference/android/hardware/SensorManager.html#getSensors()
Android 9 还让用户掌握是否许可访问平台 build.serial 识别码 (它被READ_PHONE_STATE 权限保护) 。自 Android 8.0 以来,直接访问此识别码的功能已被弃用。您可以调用 Build.getSerial() 方法,访问 build.serial 识别码。
READ_PHONE_STATE
https://developer.android.google.cn/reference/android/Manifest.permission.html#READ_PHONE_STATE
Build.getSerial()
https://developer.android.google.cn/reference/android/os/Build.html#getSerial()
理解全部隐私变更:https://developer.android.google.cn/about/versions/p/android-9.0-changes-all#privacy-changes-all
感官新体验: 摄像和影音的全面升级
多摄像头 API 以及其它改进
从 Android 9 开始,您可以在支持多摄像头 API 的设备上通过两个或更多实体摄像头同时访问视频流;在配有双前置或双后置摄像头的设备上,实现单摄像头无法实现的创新功能:如无缝变焦、散景和立体视觉。该 API 还许可您调用可以在两台或更多台摄像头之间自动切换的逻辑或稠浊摄像头视频流。
两个或更多实体摄像头
https://developer.android.google.cn/reference/android/hardware/camera2/CameraMetadata.html#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
摄像头的其他改进还包括:利用新的会话参数 (Session parameters) 来有效减少初始捕捉时的延迟,表面 (Surface) 共享技能让摄像头客户端无须重启视频流便可处理各种场景。此外,我们还加入了干系 API,供应基于屏幕闪光灯支持及 OIS 韶光戳的访问权限。
Session parameters
https://developer.android.google.cn/reference/android/hardware/camera2/params/SessionConfiguration.html
闪光灯
https://developer.android.google.cn/reference/android/hardware/camera2/CameraMetadata.html#CONTROL_AE_MODE_ON_EXTERNAL_FLASH
OIS 韶光戳
https://developer.android.google.cn/reference/android/hardware/camera2/CaptureResult.html#STATISTICS_OIS_TIMESTAMPS
HDR VP9 视频以及 HEIF 图像
Android 9 增加了对 HDR VP9 Profile 2 的内置支持。现在,您可以在支持 HDR 的设备上,把启用 HDR 功能的视频内容分享给您的用户。
其余,我们还在添加了对 HEIF (heic) 图像编码的平台支持。 HEIF 是目前比较盛行的一种的压缩格式,它改进了图片的压缩效果,并减少了图片的储存空间以及网络流量。引入平台支持后,开拓者能更加方便地从后台做事器传输并利用 HEIF 图像。一旦确定您的运用与该数据格式兼容,可用于分享或者显示,不妨考试测验将 HEIF 设定为运用内图片的储存格式。此外,您还可以通过 ImageDecoder 将 jpeg 文件转化为 heic 文件,或通过 Bitmap Factory 从 jpeg 文件中获取位图。您亦可利用 AndroidX 库中的 HeifWriter从 YUV 字节缓冲区、Surface以及位图中写入 HEIF 静态图像。
HEIF
https://developer.android.google.cn/reference/android/media/MediaFormat.html#MIMETYPE_IMAGE_ANDROID_HEIC
HeifWriter
https://developer.android.google.cn/reference/androidx/heifwriter/HeifWriter.html
利用动态处理增强音频
开拓者可以调用 Dynamics Processing API 对音频进行动态处理,通过分离出特定频率的声音,降落过大的音量,或者增强过小的音量,来改进运用的音频质量。比如说,即便说话者声音小,离麦克风远,而且外界环境十分喧华,您的运用依然可以有效捕捉并他/她的声音,并进行相应优化。该 API 供应了多声场、多频段的动态处理效果,包括一个预均衡器、一个多频段压缩器,一个后均衡器以及一个串联的音量限定器。
Dynamics Processing API
https://developer.android.google.cn/reference/android/media/audiofx/DynamicsProcessing
image
用于位图和 drawable 的 ImageDecoder
ImageDecoder API 让开发者可以通过一种更为大略的办法将图像解码为位图或 drawable。ImageDecoder 许可您从字节缓冲区、文件或 URI 创建位图或 drawable。它比较 BitmapFactory 有以下几个上风:支持精确缩放,支持单步解码至硬件存储器,支持解码后处理,以及动画图像解码。请获取进一步信息:https://developer.android.google.cn/preview/features#decoding-images
ImageDecoder
https://developer.android.google.cn/reference/android/graphics/ImageDecoder
网络连接与位置
利用 Wi-Fi RTT ,进行室内定位
Android 9 为 IEEE 802.11mc Wi-Fi 协议添加了平台支持 (也称为 Wi-Fi 来回韶光,RTT),这可以让您在运用中利用室内定位功能。在供应硬件支持的 Android 9 设备上,在启动位置做事并勾选 “许可获取地理位置信息” 选项后,运用就可以利用 RTT API 丈量与附近 Wi-Fi 接入点 (AP) 的间隔。设备不须要连接到 AP 便可以利用 RTT,而且为了保护隐私,只有手机能够确定间隔,而 AP 不可以。
RTT APIs
https://developer.android.google.cn/reference/android/net/wifi/rtt/package-summary.html
image
通过丈量从设备到三个或更多 AP 的间隔,您可以打算设备位置至 1 到 2 米的精度。这种精确度许可您创建更多新的体验:室内导航、基于位置的细粒度做事,例如,模糊语音掌握 ( \公众打开这里的灯\"大众 ) ;以及基于位置的资讯做事 ( \"大众这个产品有优惠活动吗?\公众 )。
JobScheduler 中的数据用度敏感度
JobScheduler 是 Android 的一项核心做事,它可以帮助您针对低耗电模式、运用待机模式以及后台限定,妥善进行各种任务的调度。在 Android 9 中,JobScheduler 可以更好地帮助用户处理与网络干系的任务,并与运营商单独供应的网络状态旗子暗记相折衷。任务现在可以声明预估数据量、旗子暗记预取以及指定详细的网络哀求 —— 运营商可以报告网络状况是拥塞还是不计量,然后 JobScheduler 会根据网络状态管理作业。例如,当网络拥塞时,JobScheduler 可能推迟大型网络要求;而在网络可以不计量利用时,则可以运行多种预加载作业 (例如,预读标题) 来改进用户体验。
JobScheduler
https://developer.android.google.cn/reference/android/app/job/JobScheduler.html
低耗电模式
https://developer.android.google.cn/training/monitoring-device-state/doze-standby#understand_doze
运用待机模式
https://developer.android.google.cn/training/monitoring-device-state/doze-standby#understand_app_standby
后台限定
https://developer.android.google.cn/about/versions/oreo/background
用于 NFC 支付和安全交易的 Open Mobile API
Android 9 将 GlobalPlatform Open Mobile API 的实现添加至平台中。在支持的设备上,运用可以利用 OMAPI API 访问安全元素 (SE) ,以启用智能卡支付等安全做事。硬件抽象层 (HAL) 供应了必要的 API,用于列举多种可用的 Secure Elements (如 eSE, UICC 等)。
GlobalPlatform Open Mobile API
https://www.globalplatform.org/
OMAPI API
https://developer.android.google.cn/reference/android/se/omapi/package-summary.html
更强劲的性能表现
ART 性能提升
Android 9 借助 ART 运行时显著提高了运用的性能表现与运行效率。我们扩展了 ART 对实行特色的利用,以优化运用并减少已编译运用代码的内存占用量。ART 现可利用特色文件信息在设备上重写 DEX 文件,帮助多个常见运用的内存占用减少高达 11%。我们期望借此减少系统 DEX 内存利用量并加快运用启动韶光。
Kotlin 优化
Kotlin 是 Android 开拓的一等编程措辞,如果您还未考试测验,还在等什么呢?我们在 Kotlin 性能方面进行了长期资源投入,同时持续加大对 Kotlin 的支持,如优化 Kotlin 代码性能。在 Android 9 中,您会看到这项事情已初见成效 —— 我们已经改进了一些编译器优化,尤其是那些针对循环的编译器优化,以实现更好的性能。我们还将连续与 JetBrains 互助,优化 Kotlin 天生的代码。只需保持更新 Android Studio 上的 Kotlin 插件,您就能得到所有最新的 Kotlin 性能更新。
Kotlin
https://developer.android.google.cn/kotlin/index.html
本日,我们还在 Android 9 中发布了更新后的 API —— API 28 SDK (rev. 6),在部分最常用的 API 内加入可空值表明 (nullability annotation)。我们会在近期发布干系文章,供应更多细节信息,敬请期待。
当代化的 Android
在 Android 9 中,我们连续投入大量资源,进一步打造更为当代的 Android 平台与运行运用,进而推动我们在安全性、性能和稳定性这三方面长远目标的实现。
我们在去年就已经宣告过 Google Play 将哀求所有运用在 2018 年 11 月之前针对 Android Oreo (targetSdkVersion 26 或更高) 进行更新。因此,若您的运用目标平台版本早于 Android 4.2 (API等级17),用户在安装您的运用时,系统会弹出警告对话框。请阅读迁移指南干系文档。我们期待着您的运用能够充分利用当代 Android 为用户带来更好的体验。
targetSdkVersion
https://developer.android.googl.cn/guide/topics/manifest/uses-sdk-element.html#target
迁移指南
https://developer.android.google.cn/distribute/best-practices/develop/target-sdk.html
大略几步,即可上手
由于 Pixel 用户从本日起就可以开始利用 Android 9,而其他设备也会在接下来的几个月陆续收到更新推送,因此尽快适配您的运用至 Android 9。您只需在 Android 9 Beta 设备或者仿照器上利用 Google Play 安装您目前的运用并进行测试,请确保您的运用在测试过程中运行流畅,界面都雅,并能够妥善处理 Android 9 的各项行为变更。
Android 9 Beta 设备
https://developer.android.google.cn/preview/devices
仿照器
https://developer.android.google.cn/studio/run/managing-avds.html
Android 9 行为变更
https://developer.android.google.cn/preview/behavior-changes
image
同时,请您把稳运用调用非 SDK 接口的情形。Android 9 限定了一些特定非 SDK 接口的访问权限,因此您须要减少运用对这些接口的依赖。请阅读《后续更新 | 减少利用非 SDK 接口以提升稳定性》,理解详细信息。
在完成必要更新之后,我们建议您立即将运用发布至 Google Play,暂时无需变动运用的目标平台版本。这能帮助您在保障用户体验的同时,连续利用 Android 9 API 优化运用性能并将其逐步迁移至目标平台。
利用 Android 9 特性和 API,进一步优化您的运用
当您准备就绪后,请尽情探索 Android 9,并利用新特性与 API 让您的运用臻于完美。
新特性与 API https://developer.android.google.cn/preview/api-overview.html
首先,请将官方版 API 28 SDK 、最新的开拓工具与映像文件下载至 Android Studio 3.1,或者利用 Android Studio 3.2 最新版本,然后将项目的 compileSdkVersion 和 targetSdkVersion 更新至 API 28。在变动完目标平台版本之后,请确保您的运用支持所有的行为变更。
Android Studio 3.2 最新版本 https://developer.android.google.cn/preview/setup-sdk.html#get-studio
在您准备好后,请将 APK 更新发布至 Google Play。我们建议您利用 Google Play 中的 beta 测试功能,先获取一小部分用户的早期反馈,然后再逐渐进行全量发布。
Google Play 中的 beta 测试功能 https://developer.android.google.cn/distribute/engage/beta.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog
访问 Android 9 官方网站,阅读文档并获取更多干系信息。点击收看视频或者前往Google I/O Android 播放列表,理解 Android 9 为开拓者准备的精彩新亮点。
Android 9 官方网站 https://developer.android.google.cn/preview/index.html
Google I/O Android 播放列表 https://www.youtube.com/watch?v=Hzv5-R9XLTc&list=PLWz5rJ2EKKc9Gq6FEnSXClhYkWAStbwlC
即刻升级设备,体验 Android 9
从本日开始,Pixel 设备将陆续获取 Android 9 的更新推送。
其它加入 Beta 项目的设备,如 Sony、小米、HMD、Oppo、Vivo、一加和 Essential 以及所有符合哀求的 Android One 设备估量会在今年秋末收到更新推送。与此同时,我们也在和其他互助伙伴展开互助,希望在今年推出更多新 Android 9 设备或升级现有设备以支持新系统。
此外,适用于 Pixel 设备的系统映像现可供下载 (https://developers.google.com/android/images),支持手动刷机。
请前往 Android 开源项目资源库中的 Android 9 板块,获取更多 Android 9 的干系资源。
Android 开源项目 https://source.android.com/
下一步
Android 9 发布之际,开拓者预览版也就正式结束了。我们将在不久后关闭预览版报错渠道,但是请各位连续向我们供应反馈!
如果您碰着任何有关 Android 9 的问题,请通过 AOSP 反馈功能提交新的缺点报告。
提交错误报告
https://issuetracker.google.com/issues/new?component=190923&template=841312
其余,我们操持放慢 Android Beta 项目的步调,并移除项目内所有机型。如果您想连续在 Pixel 设备上体验预览版 Android 系统,请点击此处注册,以便连续获取干系项目的信息。
Android Beta
https://www.google.com/android/beta
再次感谢大家此前对预览版和公测版的大力支持。每一位开拓者和早期用户都为 Android 9 的出身供应了必不可少的力量,帮助我们将 Android 9 打造成为卓越平台,为开拓者和用户带来精彩体验。感激!