Android 11采访:谷歌人回答了我们迫切的问题

2020-09-20 20:43:07

我们在Ars这里建立了一点传统。每年在Google I/O上,我们都会举行一次座谈,直接从制造Android的人那里了解更多关于Android的信息。当然,今年几乎所有的重大活动都因为冠状病毒大流行而被取消,没有什么是真正正常的,Google I/O也从未发生过。

不过,我们仍然可以通过互联网进行采访!因此,尽管它发生在比往年晚一些的年份,我们仍然能够与Android总部一些最重要的谷歌员工进行年度聊天:Android工程副总裁戴夫·伯克(Dave Burke),以及Android首席工程师、“高音计划”(Project Treble)负责人伊利安·马尔切夫(Iliyan Malchev)。

我们准备了一些关于Android 11更神秘的角落的问题,这实际上导致了很多关于未来的有趣的讨论。你将了解到即将重写的蓝牙协议栈,其中有很多关于模块性和易于更新的讨论(比如,有一天,计划有望让你像下载应用程序更新一样容易地更新Linux内核和开发人员API)。

这次采访是在Android 11发布的前几天进行的,Android 11于9月8日最终定稿。像往常一样,为了清晰起见,这篇文章只做了轻微的编辑,我会用斜体字包括任何需要的背景。考虑到当我们都进入Google Meet视频聊天时一切都很奇怪,COVID显然是第一个话题。

戴夫·伯克:很好。像每个人一样,当我们在家中切换工作时,至少可以说是有点争先恐后。我们有很多开发人员生产力方面的问题要解决。许多人使用高性能的工作站来构建操作系统,手机通过USB连接,我们想要找到一种方法,让他们仍然可以使用工作站,但可以闪存到连接到笔记本电脑的手机上。因此,我们做了大量的基础设施工作,让每个人都能正常运行。这实际上很管用。我印象很深刻。

Google Meet的效果也很好。我记得几年前我在想,哇,谷歌在视频会议方面投入了大量资金,为什么不使用一些商业化的东西呢?但现在我很高兴谷歌建立了自己的产品。我们很多人现在都使用会议室,所以我们有很多虚拟的、松弛的频道,如果你想这么叫的话。这真是太棒了!

我的意思是,这显然也很艰难,没有走廊谈话这样的事情。我想说,一开始,我们看到生产率下降了7%到11%左右。然后,随着人们的适应,它似乎有所恢复。我们确实将时间表推迟了大约一个月,只是因为我们需要适应人们的过渡。这个行业也需要时间来适应,但是的,它大部分都在发挥作用。当然,我想我们都会很高兴回到工作岗位上。

伊利扬·马尔切夫:我认为进入COVID后最大的担忧是,ISP的基础设施能否承受媒体消费的巨大增长?它似乎在很大程度上是站得住脚的。

伯克:我一直在做的另一件事是与苹果公司的曝光通知,所以这件事非常紧张。我们正在建设能力,以检测你是否接近新冠肺炎检测呈阳性的人。我们在这方面做得很快,所以这是一份令人兴奋的额外第二份工作。

啊,是的,Android的COVID曝光通知会在你附近的智能手机上显示出来。这方面的API已经在Google Play服务中提供,并基本上推广到所有20亿Google Play Android设备上。完整的操作系统更新可能取决于您的设备制造商,但Play服务更新会影响每一部安装了Play Store的手机,所以基本上中国以外的所有Android手机都会更新。

目前COVID跟踪的问题是,各个卫生组织需要开发插入此API的应用程序,而在美国,这通常是您所在的州政府。各州并没有真正有能力的应用程序开发人员随叫随到(你们当地的机动车管理局网站会像我的网站一样糟糕吗?)。到目前为止,只有6个州有COVID应用程序。听起来谷歌下一步要尝试解决这个问题是自己开发应用程序,所以各州只需要提供一个配置文件就可以启动和运行。

Mainline项目,也就是Google Play系统更新,是Android一段时间以来最大的变化之一。该功能在Android 10中首次亮相,它是Android模块化的重要一步。Mainline增加了一种新的APEX&34;文件类型,旨在打包核心系统组件,以便通过Play Store轻松更新。以前,Play Store只提供APK文件,由于这些文件是在考虑到第三方应用程序的情况下构建的,因此存在各种安全和功能限制,这些限制不适用于核心系统组件。APEX文件只能来自Google或您的OEM,因此这些文件在引导过程中提供了更多的功能和更早的启动。APEX文件可以做一些事情,比如更新应用程序框架,这是使用应用程序永远做不到的。

Mainline还致力于让OEM加入进来,谷歌接管了更多Android的基本代码--以前OEM可以定制的代码。谷歌不得不与所有的原始设备制造商(我想象这些会议看起来就像银河参议院)坐下来,问道,你真的需要定制DNS解析器的工作方式吗?当所有的答案都出来时,它就变成了一个主线模块,每个人都同意提供相同的代码段。当存在定制问题时,谷歌和OEM正在合作,将代码上游转化为每个人都可以使用的模块。

那是Android 10。对于Android 11,我们得到的关于Mainline的最后一条消息是谷歌在2月份发布的第一篇开发者预览版博客文章,上面说Mainline有12个新模块。它并没有提供比这更多的细节。

ARS:你的博客文章说Android 11有12个新的顶峰模块,但它们到底是什么?

伯克:是的,有一大堆。我这里有一个列表:所以statsd,这是我们用于收集统计数据的守护进程,这是有意义的,因为您需要统一的遥测。Wi-Fi系留是一个新模块。NNAPI,也就是神经网络API,这又是一个随着我们学习更多机器学习技术而迅速变化的领域。ADBD.。手机广播。这里有一些Wi-Fi模块。SDK扩展的东西。哦,还有媒体提供商,它是作用域存储的基础,所以我们希望它是可更新的。

我认为现在总共有21个模块,我认为可能比实际模块更重要的是为使它们成为可能而投入到基础设施中的工作。我们有非常先进的发布管理。我们有短期遥测,也有长期遥测。我们有A-B能力。我们在回滚中获得了文件系统快照。当然,另一个部分只是让开发人员学习如何在不断更新的模块中编写代码,这只是一种文化上的改变。我对我们已经奠定的基础比具体的模块更多感到兴奋,因为还会有更多的基础。

ARS:说到更多内容,我想问一下SDK扩展模块,这听起来很重要。这有我想象的那么有趣吗?您想通过Play Store提供新的API级别吗?

好的,我来解释一下这个问题:Android版本对你我来说都是由它们的版本号来标识的,但是Android内部却用一个可以互换称为SDK级别或API级别的数字来标识应用程序。因此,Android 11中的所有新功能、权限和安全限制都适用于API级别为30的应用程序。";在过去,API级别总是随着Android的每次发布而上升+1(即使是较小的0.1版本,这也是为什么我们处于级别30)。

关于SDK模块的猜测是,Google将能够向开发人员提供整个新的SDK级别,包括新功能,而不必推出整个操作系统更新。这对Android来说绝对是不可思议的,因为完整的操作系统更新的发行性如此之差,用户基础如此之小,以至于当没有人能运行新的API时,开发人员不愿支持它们。Google Play上的API级别就像Play Services的推出,在那里,一个新功能几乎可以在一夜之间达到20亿台设备。这听起来也很难相信,因为一个新的开发者API可以攻击操作系统的任何部分。你怎么可能通过一个模块来更新它呢?

伯克:我认为可更新操作系统模块的整个概念是一个相当深刻的转变,所以这一切都很有趣。但是,是的,我们在Android 11(我们称之为Android R)中有能力创建新的系统API并将其部署到主线模块中。在S[Android S将是版本12],我们将计划能够真正在Mainline模块中提供新的公共API,所以我们实际上只是扩大了什么是模块,什么是可更新的广度。在S[Android S将是12版],我们将计划在Mainline模块中真正交付新的公共API,所以我们实际上只是扩大了什么是模块,什么是可更新的广度。

ARS:这将会比完整的操作系统更新更有限,对吗?与在线旅行社相比,这能起到多大的作用呢?这听起来很棒,但也相当难。

伯克:是的,我想现在还早。你说得对。可更新模块的挑战在于模块会更新,但您不能假设它周围的一切都会更新。因此,您必须小心,并且在这些接口之间有稳定的内部API或边界。

所以,是的,我们还在工作。我想你真正想要的是API只连接到另一个可更新的模块,否则就没有什么意义了。我们正在建设能力,然后我们将看看我们将把它用来做什么。