#AndroidDevSummit,就在此刻!
发布人:产品管理总监 Stephanie Cuthbertson
近日,我们在加州山景城的计算机历史博物馆召开了 Android 开发者峰会,回顾了 Android 过去 10 年的历程,继而为 Android 开发者们介绍了一些重要的新特性。以下便是我们分享的一些内容!
Android 开发者峰会:
https://developer.android.google.cn/dev-summit/
为 Android 设备带来全新体验
早在 Android 1.6 时代,Android 和我们的合作伙伴就曾考虑使用不同的屏幕尺寸和密度,从而让此平台能够支持多种设备机型和全新的体验,例如 Android TV、Android Auto、Wear OS,甚至是 Chromebook 上的 Android 应用。Android 合作伙伴在手机屏幕这一领域打破常规,在手机屏幕还很小的时候便推出 “平板手机”。快速发展至今,当平板手机……还仅是一部手机时,用户已然对这种标准尺寸的设备一见倾心。
现在我们看到 Android 设备制造商们打造出一个新类别:Foldables。这种设备的屏幕利用全新的柔性显示技术,可真正实现弯曲和折叠。
一般来说,此种设备有两种类型:双屏设备和单屏设备。折叠时,Foldables 看上去就像是手机,可装入您的口袋或钱包。展开时,其关键特征便是所谓的屏幕连贯性。例如,在折叠的小屏幕上开启一段视频,接着您可以坐下并展开此设备,在一块像平板电脑这么大尺寸的屏幕上畅享美妙的沉浸式体验。展开设备时,应用会顺场地变换到更大的屏幕上,而不会有任何卡顿。为适配这款新机型,我们正在对 Android 进行优化。同时,我们也正在做出一些改变,帮助世界各地的开发者利用这款设备带来的可能性打造令人惊叹的全新体验,以全新方式吸引用户并给他们带来乐趣。如需了解详情,请收看本周开发者峰会的 Foldables 会议。预计将有数家 Android 手机制造商会推出 Foldables,其中包括 Samsung 也刚刚亮相并计划于明年推出的一款新品。
Kotlin: 摇身一变为发展最迅速的语言
我们于 2017 年在 Android 上使用 Kotlin 这种一流语言。本月,我们已在 Android Studio 中使用 Kotlin 启动 118,000 多个新项目,这些项目均来自选择分享指标的用户。与去年相比,这个数量增长了 10 倍。就 GitHub 上的代码贡献者数量而言,Kotlin 已然成为发展最迅速的语言,并在 Stack Overflow 上最受欢迎的语言评比中位列第 2 名。我们的调查表明,开发者对 Kotlin 的使用程度越高,他们对该语言的满意度就越高。
上周,JetBrains 发布了最新版本的 Kotlin,即 Kotlin 1.3,该版本具有新的语言特性和 API、修复了一些问题并改进了性能:
内联类允许您创建无开销的类型 (除非对其进行装箱操作)。对于 Android 应用使用受限的设备而言,在避免开销的同时保持类型安全是该版本的一大优势。
无符号数现已成为 Kotlin 标准库的一部分,其中包括 UInt、UByte 和 ULong。这些新类型均通过内联类来构建。
多平台代码过去仅可面向 Android 或 JVM 进行编写,而现在也可面向 Javascript 或 native。这一特性也解锁了在更多平台上重复使用部分基准代码的可能性。
协程支持现已稳定。语言和库支持结合在一起,以简化您与异步操作的交互方式,并完成对每个 Android 应用都至关重要的并发工作。
Kotlin 1.3 的所有这些新特性均将融入我们所提供的 Kotlin 特有的 API 中,而大多数这些 API 都会通过 KTX 扩展程序作为 Jetpack 的一部分。
Kotlin:
https://developer.android.google.cn/kotlin/
Kotlin 1.3:
https://blog.jetbrains.com/kotlin/2018/10/kotlin-1-3/
Android Jetpack
我们在 Google I/O 大会上推出了 Jetpack,这是新一代的工具和 Android API,旨在加快您的 Android 应用开发速度。Jetpack 构建于支持库和架构的基础之上。在排名前 1000 位的应用和游戏中,80% 已在制作中使用了某个新的 Jetpack 库。
今年夏天我们已将 AndroidX (Jetpack 原始 Android 支持库的进化版) 移入公开的 AOSP。这意味着您可以看到实时完成的特性和问题修复,并提交给任何 AndroidX 库。您可以在此处了解有关提交的详情。
Jetpack:
https://developer.android.google.cn/jetpack/
AndroidX:
https://developer.android.google.cn/jetpack/androidx/
此处:
https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/README.md
我们一直在努力寻求有关两个新架构组件库尽可能多的反馈和优化,即:Navigation 和 Work Manager,同时我们也计划于本月将这两个库升级为测试版。Navigation 架构组件提供了使用单个 Activity 在应用中实现 Android 导航原则的简化方法。另外,Android Studio 中新的 Navigation Editor 可创建并编辑您的导航架构。如此便可消除导航样板,为您提供原子导航操作、更易实现的动画转场以及更多其他特性。Work Manager 能轻松实现以最高效的方式执行后台任务,可根据应用状态和设备的 API 级别选择最合适的解决方案。
Navigation Editor
我们同样也很兴奋地看到将 Android Slices 移至公开的搜索实验中!在今年的 I/O 大会上,我们推出了 Slices,这是一种将用户带入您应用的全新方式。Slices 就像是您应用中的一个小片段,您可以在其中呈现出内容与操作。您可以预订航班、播放视频或叫车。Slices 是另一个我们希望尽早开放的例子,但我们希望花时间将其完善。本月我们将与 Doist、Kayak 以及其他公司共同加入公开的早期采用者计划。我们将在 Google 搜索结果中进行显示 Slices 的实验。如需了解详情,开发者峰会上的另一个会议也可为您提供更多信息和最佳实践。
Android Studio: 专注于生产力、构建速度、质量和基本原则
Android Studio 是我们用于 Android 开发的官方 IDE。我们问道,您在哪个阶段花费的时间最多?当从选择参与活动的 Android Studio 用户收集数据时,我们会发现每次发布新版本后都会加快构建时间,有时会加快 20%,但也发现随着时间的推移,构建时间会越来越慢。那么,这不是自相矛盾吗?我们一直在努力去了解背后的真相。
结果发现,构建是一个相当复杂的生态系统。而开发者所作出的选择对构建影响巨大。我们的开发者所使用的操作系统、自定义插件、注解处理器和语言组合十分广泛,而且越来越多种多样。所有的这些选择均可对构建时间产生显著影响。举个例子,一些用户喜欢添加的某个插件在后台会使构建速度降低高达 45%。了解这一点后,我们就会意识到需要构建性能分析工具,如此便可轻松了解构建速度降低的因素。我们还将为我们自己的插件投入更多成本,从而提高性能以确保可继续改进核心构建的表现。
Android Studio 3.3 将发布测试版 3。在即将发布的版本中,我们有望看到对质量和基本原则的高度关注:减少崩溃与挂起的次数、优化内存使用以及修复影响用户使用的错误。我们还宣布,将于明年年初在 Chrome 操作系统上将 Android Studio 作为正式支持的 IDE;您可在此处了解详情。
Android Studio:
https://developer.android.google.cn/studio/
Android Studio 3.3:
https://developer.android.google.cn/studio/preview/
此处:
https://developer.android.google.cn/topic/arc/studio
Android App Bundle 和动态功能
自 2012 年以来,应用规模大幅增长达 5 倍。但更大规模的应用也存在不足之处:较低的安装转化率、较低的更新率和较高的卸载次数。而这便是我们打造 Android App Bundle 的原因,这种全新的发布格式仅可传送用户所需的代码和资源,以在其特定的设备上运行您的应用;较之通用 APK,应用平均可节省 35%。由于您无需使用不完整的解决方案(如多 APK),应用软件包也可在每次应用发布后为您省时省力。Android Studio 3.2 可使应用软件包支持完整的 IDE,同时,现有数千个应用软件包正在制作中,总计数十亿次安装,其中包括 YouTube、Google 地图、Google 照片和 Google 新闻等 Google 应用。
目前这种应用软件包可支持未压缩的原生库;由于无需额外的开发者工作,这种应用软件包现可将使用原生库的应用下载平均减少 8%,并可将 Android M(及更高版本)设备上的磁盘占用缩减 16%。
一旦切换至这种应用软件包,您也可着手将您的应用模块化。凭借动态功能模块,您可按需加载任何应用功能,而非仅限于安装期间。您无需保留那些仅在每个单个设备上使用一次的庞大功能;在应用发起请求时,您可对动态功能进行动态安装和卸载。
Android App Bundle:
https://developer.android.google.cn/platform/technology/app-bundle/
Android Studio 3.2:
https://android-developers.googleblog.com/2018/09/android-studio-32.html
动态功能模块:
https://developer.android.google.cn/studio/projects/dynamic-delivery#dynamic_feature_modules
应用内更新 API
我们收到反馈,您希望能有更多控制,从而确保用户运行您最新且最佳版本的应用。为满足此需求,我们即将发布一种应用内更新 API。我们正在与抢先体验的合作伙伴对此 API 进行测试,不久便可将其发布给所有开发者。
此 API 具有两个选项,第一个是进行关键更新的全屏体验,此种情况下,您希望用户可以等待应用立即应用更新。第二个选项是灵活更新,意味着用户可在更新下载完毕的同时继续使用该应用。您可以完整地定制更新流程,将其当作您应用中的一部分。
发现免安装应用
另外,我们也使免安装应用 (Google Play Instant) 更易为用户所采用。近期,我们可让您选择使用网址,让您能利用应用商店中现有的深层链接数据流量,并且如果可以的话,让用户可以即时体验您的应用。此外,我们还将免安装应用大小限制为 10MB,以便在应用商店和网页横额上使用“即时试用”按钮,从而使其可更易为用户所采用。
在 Android Studio 3.3 测试版中,您现在可以构建一个启动免安装应用的软件包。这意味着,您现在便可构建并部署单个 Android Studio 项目的免安装与安装体验,并将其纳入单个 Android 应用软件包中。您仅需为免安装应用和已安装应用上传一个工件。
在对所投入的领域进行塑造的过程中,作为开发者,您的反馈至关重要;从早期的想法、早期采用者计划与 Canary 版本、测试版乃至发布后的迭代,您已然参与到我们的工作方式之中。无论您是打算收看平台直播的 30 多场会议,还是参与社交网络活动,抑或是亲自前往山景城,我们都希望您可以加入此次盛会。我谨代表整个团队,向您经深思熟虑后所作的反馈与贡献致以真诚的谢意。我们忠心希望您能够享受此次 Android 开发者峰会。
Instant App:
https://developer.android.google.cn/topic/google-play-instant/
收看平台直播的 30 多场会议:
https://developer.android.google.cn/dev-summit/
推荐阅读