首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >让 Android Q 强制重启的 Project Mainline,到底是什么?

让 Android Q 强制重启的 Project Mainline,到底是什么?

作者头像
Android技术干货分享
发布于 2019-05-30 06:45:19
发布于 2019-05-30 06:45:19
2.3K0
举报
文章被收录于专栏:Android技术分享Android技术分享

一. 序

最新的 Android 版本 Q,已经发布了 Android Q Beta 3,虽然没有正式发布,但是不少用户已经加入了测试计划,抢先体验 Android Q 的新功能。

近期不少体验用户反馈,自己的设备升级到 Beta 3 之后,会出现触不及防的强制重启。谷歌方面已经确认,是运行了 Project Mainline 这个在 Android Q 中新加入的功能导致。谷歌在确认的同时也表示,这些问题会在之后的测试版本中修复,不会出现在正式版中。

那什么是 Project Mainline(后文简称 P-M) 呢?它是干什么的?又解决了什么问题?

二. Project Mainline

2.1 P-M 解决什么问题?

Android 能有今天的发展,得益于它系统源码的开源,又正是因为它的开源,导致碎片化严重。以至于在谷歌高速迭代 Android 系统版本的过程中,不少用户在吐槽,Q 来了,O 还没用上呢。

而碎片化又会导致各种问题,例如安全,隐私等问题。往往在系统中暴露出来一个问题,Android 团队修复它,还需要等待漫长的时间,才能最终由厂商同步到用户端。

中间环节太多,必然导致更新的缓慢,往往一个安全更新要经过半年甚至一年才能最终被厂商升级到用户端,同时这些步骤中,还有一些是有时间重叠的。

上图表示了谷歌和芯片制造商以及手机厂商之间的更新时间,这各个阶段之间的任何重叠,都可能导致更新的失效。这就导致对于手机厂商而言,使用较旧的但是更稳定的 Android 版本,是更安全的做法。

为了解决这些问题,从 Android P 开始加入的 Project Treble 计划,它就是现在 Android Q 中 Project Mainline 的基础。通过 P-M 的支持,简化并加快了 Android 生态系统的升级更新。

上图为 Project Treble 的计划理想更新时间,在 Android Q 中,谷歌发现与系统级的更新相比,以“模块”为粒度的更新,是一种更有效的方式,这就引入了 Project Mainline 计划。

P-M 可以通过 Google Play,使用一种类似更新应用程序的方式,更新系统的核心组件。这类更新可以无需等待手机制造厂商的 OTA 更新,直接触达用户,同时这些 Mainline 组件,也是开源的。初期提供的 Mainlin 组件,涉及到安全、隐私、一致性三个方面。

到现在应该都知道 Project Mainline 的作用了吧?

简单来说,Android 的碎片化导致更新困难,而一些重要的功能又迫切的需要及时更新到用户侧,例如安全类、隐私类等,谷歌开启了 Project Mainline 计划。Project Mainline 计划将系统中,重要的“模块”封装成一个个 Mainline 组件,通过 Google Play 的支持,使用一种类似更新应用的方式,在需要的时候,直接更新到用户端,以此来解决碎片化所带来的各种问题

Proejct Mainline 让你手里的设备更安全并且兼容性更强了。

2.2 P-M 更新了那些东西?

初期 Project Mainline 支持的模块,主要涉及到安全、隐私和一致性三个方向。但是这种更新方式是通用的,后期不排除可能会携带一些常规更新。

Project Mainline 包含的更新方向:

  • 安全性:可以对关键的安全漏洞,提供更快的安全修复程序。例如媒体组件漏洞(占最近修补漏洞的近 40%)。
  • 隐私:隐私一直是 Android 关心的焦点,并且在版本更新中,一直投入大量的精力来更好的保护用户数据并提高隐私标准。最主要的表现是对权限系统进行更新升级,更好的保护用户数据。
  • 一致性:一致性主要影响设备稳定性、兼容性和开发人员使用 API 的一致性问题。

在 Android Q 中上,初始支持的组件包含:

  • 安全性:媒体编解码器、媒体框架组件、DNS 解析器、Conscrypt。
  • 隐私:文档 UI、权限控制器、ExtServices。
  • 一致性:时区数据、ANGLE、模块元数据、网络组件、登录组件、网络权限配置。

分模块的好处就可以做到“手疼医手,脚疼医脚,哪里不对点哪里了”,让每次更新更轻量级。

2.3 P-M 是如何运作的?

前面提到 P-M 主要是通过 Google Play,以一种类似更新应用的方式去更新这些 Mainline 组件,那它到底是如何运作的?

Mainline 组件最终以 APK 或者 APEX 文件的形式交付。APK 我们很熟悉,而 APEX 是谷歌开发的一种新的文件格式,类似于 APK。但是其根本区别在与,APEX 在系统启动过程中,加载的更早。

因此,以前需要成为完整操作系统更新一部分的重要安全性和性能的更新,现在可以像更新应用一样轻松的下载和安装。

为了确保 Mainline 更细不会破坏原有的功能,还为此增加了保护机制和增加的测试流程,以确保每次更新都是经过全面测试以及完善的后备方案。

三. 小结时刻

Project Mainline 的本意是为了让更新更快触达用户,以提高安全性、隐私和一致性等问题。虽然现在 Android Q Beta 3 中可能会导致强制重启,但是问题已经暴露出来,后续解决它就很简单了。

可能 P-M 的工程师觉得有更新,立即重启一下就可以生效了,就给用户强制重启了,当然这也可能单纯的就是一个 Bug。理论上如果不是很重要的组件更新,可能和重启应用一样简单,就不需要对系统进行重启,但是一些重要的组件更新,可能就需要重启系统来确保它生效。

不过话说回来,再严重的问题,都已经运行在用户端设备上这么久了,也不差这一天两天的。参考 iOS 系统更新的策略就挺好的,立即更新或者在半夜空闲时更新。

这种单模块的更新,可能会让开发人员和测试人员更迷惑,以前兼容性的问题,只需要问清楚手机型号和系统版本,就可以针对性的做适配。现在好了,还需要弄清楚对应的 Mainline 模块的版本号,也许有些问题已经被谷歌偷偷的修复了,但是在用户侧还没有及时更新。这时开发人员还是蛮尴尬的,你说我改还是不改?

你觉得呢?欢迎在留言区讨论!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.05.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Project Mainline in Android 的碎片化管理
Android 的碎片化问题一直是业界的诟病。 Google已经做了很多尝试来解决这个问题。比如Project Treble旨在帮助制造芯片制造商,快速的更新软件,并且获得了巨大的成功。如 Android Pie的更新率是Android Oreo的2.5倍,并且安全补丁程序更新增加了84%。但是,其更新仍然依赖于手机厂商/芯片提供上,特别是和这些厂商无关的Android OS 也是如此。为了解决这个问题,Goolgle 提出了Project Mainline。
用户9732312
2022/05/13
1.1K0
Project Mainline in Android 的碎片化管理
Android技术架构演进与未来
众所周知,Android是谷歌开发的一款基于Linux的开源操作系统,每年迭代一次大版本升级。 小米、华为、OPPO、VIVO、三星等各大厂商对Android原生系统进行二次开发衍生出具有各家特色的系统(比如MIUI),为手机、电视、平板电脑、手表等数十亿设备提供平台支持,使得Android作为全球最受欢迎的移动操作系统。Android诞生至今已有10余年,这一路走来Android遇到哪些问题?大版本升级朝着什么方向演进?Android的未来如何?
刘盼
2019/05/17
1.2K0
Android技术架构演进与未来
Android Q AMA: Everything we learned from Google
如果您曾经使用过中国品牌的智能手机,那么您可能已经处理了令人讨厌的“电池优化”功能,这些功能会在后台杀死所有您喜欢的应用程序。对于那些希望某些应用程序因某种原因在后台继续运行的用户而言,这种行为不仅令人烦恼,而且对于那些不了解不是应用程序错误的用户的糟糕评论的开发人员来说也很烦人。虽然谷歌仍然没有完全解决这个问题(他们通过声称这种行为可能已经违反了Android兼容性定义文档的要求而挥之不去),该公司正采取行动反对一项“节省电池”的行为改变一些原始设备制造商。 “为了帮助解决这个问题,我们在Android Q中添加了一个CTS测试,以确保应用程序不会在从最近被刷新时被杀死。
用户9732312
2022/05/13
9090
提示Android Q Beta 3 亮相 Google I/O'19
I/O'19 期间 Android 达成了两项里程碑的成就: 其一,迎来第 10 个主版本;其二,全球活跃设备数量突破 25 亿台。
Android 开发者
2019/05/15
1.1K0
加速 Android 新版本的广泛使用,我们来聊聊 Project Treble
作者:Iliyan Malchev,Project Treble 项目负责人 Android P Beta (点击可直接跳转至相关文章) 已正式发布。 随着 Android 的持续发展,每个新版本的 OS (操作系统) 都会带来新的功能、新的用户体验以及更棒的安全性能。这些新版本能够尽快应用在移动设备上是非常重要的。 在上周刚刚过去的 Google I/O 上,我们宣布除了 Pixel 和 Pixel 2 手机之外,包括 Sony Xperia XZ2、小米 MIX 2S、诺基亚 7 Plus、Opp
Android 开发者
2018/05/31
6010
安全专家说Android 8.0和iPhone X一样安全,这是真的吗?
Android 这两年的甜点代号越来越腻味,上个月 Android 8.0,以代号 Oreo(奥利奥)的方式问世了,奥利奥感觉比牛轧糖、棉花糖之类的都要甜。可能许多普通消费用户并不关心 Android 的大版本号迭代,因为“痛点创新”新功能出现的机会不多,或者大部分新特性是针对开发者的。不过实际上就安全方面的更新,这次可是前所未有的。 用卡巴斯基 ThreatPost 博客的话来说,Oreo 安全特性超越所有近期的操作系统更新,极富价值。Android Oreo(以下简称 O)引入的安全特性包括有 Proj
FB客服
2018/02/27
9810
安全专家说Android 8.0和iPhone X一样安全,这是真的吗?
持续提高 Android 应用的安全性与性能
每年,Google Play 助力数十亿的 App 进行安装或者更新。我们一直致力于提升 App 安全性和性能,确保每个用户都能够获取最佳体验,探索和安装自己喜欢的 App 和游戏。 今天,我们想要和各位 Android 开发者简单说明一下三项变更,它们背后的原因,以及它们如何让 Android 设备运行得更加安全和流畅。 从 2018 下半年开始,Google Play 要求新 App 和 App 更新包将目标 SDK 版本(Target SDK Version)设定为最新版。针对新发布 App,此项变更
Android 开发者
2018/05/31
1.1K0
欢迎体验 Android 10!
经过一年多的开发和长达数月的早期使用者测试,Android 10 终于准备好和您见面了!
Android 开发者
2019/09/05
1.5K0
欢迎体验 Android 10!
Android Q Beta 正式发布 | 精于形,安于内
移动行业在 2019 年创新不断,随着 5G 时代的到来与折叠屏技术的成熟,智能设备正在迈向未来新时代,而 Android 更是处在颠覆创新的风口浪尖。通过与生态圈伙伴们的深度合作,我们从软件到硬件不断进行突破和创新,力求为全球亿万用户打造最新的体验与功能。
Android 开发者
2019/03/20
1.4K0
Android Q Beta 正式发布 | 精于形,安于内
Project Treble 项目的最新动态
在 11 月初举办的 2018 Android 开发者峰会上,我们现场展示了能运行在不同品牌设备上的通用系统映像 (GSI),让在场观众体验了一把 Project Treble 项目带来的精彩功能。我们在分享中特别强调: 开发者现在已经可以获取 Android 9 Pie 的 GSI 文件,并在任何与 Treble 兼容的设备上,针对 Android 9 Pie 对应用进行开发和测试。
Android 开发者
2018/12/25
7040
聚焦 Android 11 : 隐私和安全
上期 #11WeeksOfAndroid 系列文章中内容我们介绍了 联系人和身份,本期我们将聚焦 隐私和安全 。我们将为大家陆续带来 #11WeeksOfAndroid 内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容。
Android 开发者
2020/10/16
1.5K0
聚焦 Android 11 : 隐私和安全
Android 13来了,它真的平庸又鸡肋吗?
虽然不久前 Android 12L beta 版才亮相,但这并不会阻挡谷歌探索移动系统新方向的脚步。上周,谷歌正式发布了 Android 13 的第一个开发者预览版,根据官方释出的时间表,Android 13 将在今年下半年内完成市场首秀。
深度学习与Python
2022/03/23
5530
Android 13来了,它真的平庸又鸡肋吗?
Android Q 开发者常见问题 | FAQ・第二期
Q: 为应用添加 64 位架构支持会带来 APK 的体积增大,但 Google Play 只允许上传最大 100MB 的 APK,这种情况应该如何解决?
Android 开发者
2024/01/26
3520
Android Q 开发者常见问题 | FAQ・第二期
一群极其注重隐私的人士,开发了一款超级安全的Android系统
根据国外媒体报道,Tor项目的开发人员已经设计出了一种安全的Android手机原型,这个基于Tor网络的Android手机使用了CopperheadOS、Orbot和orWall,而开发人员设计这个原型的目的就是为了帮助用户保护自己的隐私信息,并且防止用户感染移动端的恶意软件。 近期,Tor项目的开发人员已经研发出了一种基于Tor网络的原型机。众所周知,广大用户对Android操作系统的安全性一直都非常地担忧,而很多人因此会认为谷歌公司和各大Android智能手机制造商并没有认真对待Andro
FB客服
2018/02/09
1.7K0
一群极其注重隐私的人士,开发了一款超级安全的Android系统
Android 安全更新的发展与沿革
此前,我们在 Google I/O 2018 开发者大会上举办了一场名为《Android 安全新亮点》的主题演讲,简要介绍了谷歌在 Android 安全更新方面的最新工作进展。 Android 9 Pie 现已正式发布,借此机会,我们希望给大家呈现一份更加详尽的安全更新报告,内容主要涉及以下三个话题:
Android 开发者
2018/09/30
6840
Android 安全更新的发展与沿革
Android 系统架构及HAL层概述
apex_payload.img是由dm-verity支持的ext4文件系统映像。各种原生常规文件包含在apex_payload.img文件中
wizzie
2022/09/28
11.9K0
Android 系统架构及HAL层概述
Android O新特性之Treble介绍
Android 8.0 版本最重要的一个新特性是Project Treble。这是 Android 操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。Project Treble 适用于搭载 Android 8.0 及后续版本的所有新设备(目前这种新的架构已经在Google的Pixel手机的开发者预览版中投入使用)。 Project Treble的目标是? 通过Android操作系统框架与供应商设备专业底层软件分离,解决Android版本更
安智客
2018/02/24
1.9K0
Android O新特性之Treble介绍
Android Q 正式版发布!
再过几周,Android Q 正式版就要与大家见面啦!目前,团队正在对平台进行最后的优化与调试。我们向各位开发者发布最后一个 Beta 测试版: Android Q Beta 6。
Android 开发者
2019/08/14
1.4K0
Android 10正式版发布,看看都有哪些新特性
谷歌在今年3月推出了Android 10.0的首个测试版,昨天,Android 10.0的正式版正式向外发布,而最先尝到新版本的自然是亲儿子Pixel手机。
xiangzhihong
2022/11/30
2.2K0
Android Treble架构及HIDL添加示例
Treble(完整写法Project Treble),是谷歌在Android O开始定义的一个技术框架,服务于Android版本的升级。
wizzie
2022/09/28
3K0
Android Treble架构及HIDL添加示例
相关推荐
Project Mainline in Android 的碎片化管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档