今年的 I/O 应用大幅修改了现有功能并添加了若干新特性。在这篇文章中,我们将着重围绕其中几项主要变更进行说明。

Google I/O 2019

https://play.google.com/store/apps/details?id=com.google.samples.apps.iosched
源代码
https://github.com/google/iosched

21195-0aha70wauoag.png

手势导航

Android Q 引入了完全手势导航选项,允许用户通过手势动作返回上一级界面和主屏。为了支持手势导航支持,应用开发者需要做到以下两点:

将应用内容扩展到屏幕边缘
处理存在冲突的应用手势

Google I/O 2019 应用是首批完全支持手势导航的应用之一。更多内容,请阅读《手势导航: 实现边到边的全屏体验》系列连载,或请前往 Github 查看团队在 Google I/O 应用库中提交的相关代码,了解如何将应用内容扩展到屏幕边缘。

 深色主题背景

Android Q 引入的另一项新特性是系统深色主题背景,它既可全局应用于 Android 系统界面,也可应用于设备上运行的应用。对于开发者而言,深色主题背景具备诸多优势,其中包括: 降低电耗;改善弱视以及对强光敏感的用户的可视性等。

 日程界面优化

在 2018 年,大会日程的 UI 设计采用了标签界面,一个标签代表一个会议日,用户可通过竖屏滑动来查看不同的日程安排。今年的 I/O 应用更改了原先的 UI 设计,从而解决了若干可用性及性能问题。以 UI 流畅性为例,应用在日程表 UI 出现后就同时渲染所有标签内的 view,造成严重的 UI 卡顿问题,且延迟现象在低端设备上尤为明显。

新的日程 UI 采用单流开发,允许应用仅渲染可视内容,用户只需触击 UI 顶部的日期选项便可跳转至相应页面,并查看当天的议程安排。如果您想了解我们对日程表 UI 作出了哪些更改,请前往 Github 查看相关代码 (将日程显示为单个列表,显示日期标识)。

导航组件

我们利用导航组件把今年的 I/O 应用简化为一个单 Activity 应用,这种方法具备下述优点:
开发者可以在导航编辑器中一眼看到所有界面过渡,大幅简化了不同界面的启动活动。
移除了向上/返回导航操作的样板代码
使用 Safe Args Gradle 插件在各个 Fragment 之间传递静态类型的参数

导航组件
https://developer.android.google.cn/guide/navigation

使用 Room 实现全文搜索

我们为今年的大会应用添加了一个搜索功能,方便用户快速查找有关演讲、讲师和 codelab 的信息。在实现过程中,我们使用了 Room Jectpack 组件中的全文搜索特性。一旦从服务器获取最新的大会数据,我们就会对 Room 表格内的有关数据进行更新,每个 Room 表格都有对应的 FTS 映射表格。当用户在搜索框中输入要查找的内容后,检索项便会被用于查询演讲名称等数据。查询结果将立即显示在屏幕上,因此,如果搜索字段发生任何字符更改,服务器会马上返回更新后的结果。接着,用户便可以点击某个词条,导航至对应页面并获取详细内容。如果您对全文搜索有兴趣,欢迎查看我们的代码 (使用 Room 添加搜索功能,在搜索结果中包含分享人信息,在搜索结果中包含 codelab 信息,添加 Room 迁移路径)。

除了以上关键变更以外,我们还对许多细节部分进行了优化与改进。比如说,我们添加了新的主屏 UI 和 Codelab UI,前者允许应用在大会期间向用户显示与时间相关的信息,后者则提供了更多 I/O 大会上与 codelab 有关的内容以及详细的参与方法。

华为 EMUI 官方发文称,方舟编译器开源准备就绪,“8 月 31 日 show you the code!”

  今年 4 月 11 日,华为消费者业务 CEO 余承东宣布,华为正式发布华为方舟编译器,这一编译器能改善安卓应用编译效率,从原先的边解释边执行转变为全程机器码高效运行程序。
80549-3s621fmjsdr.png

  华为方舟编译器作为一款全新的安卓应用编译器能显著提高手机的运行速度,根据华为官方数据,方舟编译器能够提升 24% 的系统操作流畅度,提升 44% 的系统响应能力,还能提升 60% 的三方应用操作流畅度。

  华为官方介绍,方舟编译器是首家完全替代语言虚拟机的静态编译器,完全不需要解释器。兼顾 Java 开发效率和C语言运行效率的编译器。相比现有的编译机制:

  1、方舟编译器是一种静态的编译方式,而现有的安卓系统,运行一个应用程序首先启动虚拟机,然后读入应用程序代码,逐条解释执行。会占用较多的处理资源,影响程序执行的效率。当然,也有包括 AOT 或 JIT 等提前或运行时的编译技术,把部分程序转换成机器码直接在 CPU 上执行。但是,仍旧无法做到 100% 做到摆脱虚拟机的执行,这也是当前安卓阵营不如 IOS 阵营的关键。

  2、华为方舟编译器的静态编译方式可将语言里的动态特性直接翻译成机器码,手机安装应用程序后可全速运行程序,彻底消除虚拟机的弊病,带来效率上的极大提升。

  3、方舟编译器是在开发环境部署的编译器,而现有编译过程,主要发生在手机上,带来额外的资源消耗。

《Android Studio 3.5 Beta 现已发布》
https://android-developers.googleblog.com/2019/05/android-studio-35-beta.html
Android Studio 版本说明
https://developer.android.google.cn/studio/releases#3-5-0

69549-rz8r08s8bk.png

自动推荐内存设置

在 Android Studio 3.5 中,IDE 会识别出一个应用项目在 RAM 容量更高的机器上何时需要更多的 RAM,并在通知开发者增加内存堆大小;或者您也可以在 Appearance & Behavior → Memory Settings 下自行调整设置。

用户界面冻结

在 Project Marble 计划开发期间,我们在产品分析数据中发现 IDE 中的 XML 代码编辑速度明显较慢。我们基于这个数据点优化了 XML 输入,使得 Android Studio 3.5 的性能表现有了极大的提升。从以下两张图中您可以发现,得益于输入延迟的改进,使用 XML 编辑数据绑定表达式的速度明显加快了。

构建速度

为了提高 Android Studio 3.5 的构建速度,我们采取了许多措施,其中最为重要的一项变更是为顶级注释处理器添加增量构建支持,这些处理器包括 Glide、AndroidX data binding、Dagger、Realm 和 Kotlin (KAPT)。增量支持能够显著提高构建速度。更多内容,请阅读《在 Android Studio 中加快构建速度》。

顶级注释处理器
https://developer.android.google.cn/studio/build/optimize-your-build.html#annotation_processors

磁盘 I/O 文件访问速度

Android Studio 的许多用户都在使用微软旗下的 Windows 系统。我们发现与其他平台相比,Windows 的磁盘 I/O 文件访问耗时明显更久。深度分析数据后,我们发现在一些杀毒程序在默认设置下,并未将 Android Studio 的构建输出文件夹 (build output folder) 排除在扫描范围之外。在 Android Studio 3.5 中,一旦系统监测到这个情况,Studio 将通过弹窗引导您进行最优设置。

系统健康

内存设置
内存使用报告
减少异常
用户界面冻结
构建速度
IDE 速度
Lint 代码分析
I/O 文件访问
模拟器 CPU 使用

特性优化

Apply Changes
Gradle 同步
项目更新
布局编辑器
数据绑定
应用部署
C++ 改进
Intellij 2019 平台升级
动态特性支持之条件交付
模拟器对可折叠设备及 Google Pixel 设备的支持
Chrome OS 支持

请前往下载页面,获取 Android Studio 3.5。如果您当前正在使用旧版本的 Android Studio,请直接进行升级操作即可。
下载页面
https://developer.android.google.cn/studio

如需使用上述 Android 模拟器特性,请确保您正在运行通过 Android Studio SDK 管理器下载的 Android 模拟器 v29.1.9 或更高版本。

备案服务号可以将需要备案的网站与搭建该网站的云服务器关联起来。在阿里云备案平台申请备案时,每个网站都需要一个备案服务号。备案服务号申请参考:备案服务号申请与说明

78101-twpb8r68p7.png

注意事项
仅指定类型的阿里云服务器可提供备案服务号,用于备案申请。支持提供备案服务号的服务器类型及可提供的备案服务号数量见支持备案的云服务及备案网站数量表格。
如果您购买服务器的账号与申请备案的账号为同一个阿里云账号,您可在申请备案过程中直接选择您需要进行备案的服务器,无需手动申请备案服务号。直接选择云服务器或手动申请备案服务号进行备案,每台服务器可备案的网站数量不变。
如果您购买服务器的账号与申请备案的账号不是同一个阿里云账号,您在申请备案前,建议先使用购买服务器的账号登录阿里云控制台,参考 操作步骤章节申请完成备案服务号,用于后续申请备案过程中填写。
成功备案一个网站需使用一个服务器的备案服务号,此备案服务号即为已使用的状态,无法再给其他网站备案使用。如果后续网站注销或备案取消接入,此备案服务号还是处于已使用的状态,无法用于其他网站的备案。

https://help.aliyun.com/knowledge_detail/64289.html?spm=a3c00.7621333.245543.1.458eEBnEEBnE7Q

注意点:

域名持有者信息与备案主体信息保持一致,包括:姓名、证件类型、证件号码。
域名必须已完成实名认证。
域名需在有效期内。

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。