安卓仍将开源,开发工作转内部(安卓开源有什么好处)
xsobi 2025-04-07 20:43 9 浏览
近日关于谷歌将停止维护安卓开源项目的消息传出,引起广泛关注。据外媒Android Authority报道,谷歌明确,安卓操作系统仍将开源,继续公布源代码,只是开发工作从下周开始将完全转到内部进行,相关更改的源代码只有在谷歌发布包含这些更改的新分支时才会发布。
目前,谷歌会在公开的安卓开源项目(Android Open Source Project,简称AOSP)上分享部分开发工作,但未来,这些工作将全部在内部完成。谷歌强调推行这一私有化举措的目的是为了简化安卓操作系统的开发流程,而不是阻碍外部开发人员,这也是谷歌在每次发布版本后仍将继续向AOSP发布源代码的原因。
安卓开源项目(AOSP)是谷歌在Apache 2.0许可证下发布的操作系统。Apache 2.0是一种软件许可证,允许任何人使用、分发或修改并分发基于AOSP的操作系统,无需支付任何许可费用或公开源代码,这种宽松的许可结构促进了AOSP的广泛采用。
众多OEM厂商利用这一点,通过修改代码来打造自己的定制版本,设计自己的外观和体验。此外,那些密切关注安卓开源项目的人,经常会在谷歌对AOSP进行公开更改时发现即将推出的功能的线索。
与其他许多开源项目一样,AOSP接受第三方开发者的代码贡献。谷歌自行开展大部分AOSP开发工作,对哪些代码可以合并到AOSP以及何时发布新版本源代码拥有最终决定权。为了平衡AOSP的开放性与其产品开发策略,谷歌维护了两个主要的安卓分支:公开的AOSP分支和内部开发分支。AOSP分支对所有人开放,而谷歌的内部分支则仅限于与谷歌签订了谷歌移动服务(GMS)许可协议的公司访问。
经过16年的发展,如今谷歌要对其开发安卓开源版本的方式进行重大调整,为了简化安卓操作系统的开发,谷歌将不再保留两个“主要”分支。由于谷歌在其内部分支中开发了安卓的大部分内容,公开的AOSP分支通常远远落后于内部可用的版本。这种差异在比较纯净的AOSP构建版本与谷歌最新基于内部分支构建的安卓16测试版的功能和API可用性时尤为明显。尽管转向主干开发模式减少了这种差异,但它仍然存在,并继续给谷歌带来挑战。
这种差异迫使谷歌花费时间和精力在公开的AOSP分支和其内部分支之间合并补丁。由于这两个分支的差异很大,合并冲突经常出现。例如,有一个补丁用于为导航栏和键盘启用屏幕放大功能。该补丁引入了一个新的无障碍设置,该设置被放置在无障碍设置列表的末尾。这就会导致合并冲突,因为AOSP和谷歌内部分支中的列表长度是不同的。虽然解决这个具体问题的方法很简单,但许多其他AOSP补丁在集成到谷歌内部分支时会引发类似的合并冲突。
很可能存在无数类似这种合并冲突的例子,这就是谷歌要摒弃目前这种双线并行的安卓开发策略,转而将所有开发工作转移到内部的原因。谷歌将继续发布新安卓版本的源代码和安卓的Linux内核分支的源代码,将要改变的是特定安卓组件公开源代码发布的频率。目前,像构建系统、更新引擎、蓝牙堆栈、虚拟化框架和SELinux配置等一些组件是AOSP优先的,这意味着它们完全是在公开环境下开发的。从下周开始,所有安卓开发工作都将在谷歌的内部分支中进行,相关更改的源代码只有在谷歌发布包含这些更改的新分支时才会发布。
这一变化对普通用户的影响微乎其微。尽管它简化了谷歌的安卓操作系统开发流程,可能会对新版本的开发速度和漏洞减少产生一定影响,但总体效果可能难以察觉。
对大多数开发者的影响也很小。应用开发者不受影响,因为这仅涉及平台开发。平台开发者,包括那些开发自定义ROM的人,也大多不会察觉到变化,因为他们通常基于特定的标签或发布分支开展工作,而不是基于主AOSP分支。
真正受到影响的是那些喜欢阅读或为安卓开源项目(AOSP)贡献代码的外部开发者,这一变化减少了他们对谷歌开发工作的了解。如果没有谷歌移动服务(GMS)许可,参与安卓操作系统开发将变得更加困难,因为可用的代码将始终滞后数周甚至数月。这一变化也将使一些开发者更难跟上安卓平台的新变化,因为他们将无法再跟踪AOSP中的代码更改。
相关推荐
- 我把家搬进了NAS?家庭资产数字化革命,现在连袜子都有编号了!
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:羊刀仙家里东西一多,总有一种“我记得我有这个,但我不知道放哪了”的错觉。...
- Mega Run第3关通关攻略-跳上高空(mega运动)
-
错过火炮等于失败,这是MegaRun在上一关中给玩家的一点小挑战,那在后面的关卡中,这中挑战会给你造成什么困难呢?具体请看MegaRun第3关通关攻略-跳上高空。MegaRun第3关在一开始我...
- Axure高保真教程:中继器表格自动合计模板
-
编辑导语:合计作为日常使用频率比较高的一个功能,但在Axure里面传统的表格如果做合计是很麻烦的,遇到数据多的时候很耗费时间,那么该如何优化,提高工作效率?本文以中继器表格为核心,教大家如何制作一个自...
- 多角色登录原型(分角色登录)
-
编辑导读:多角色登录是很多系统都需要具备的功能,例如在招聘网站里,登录的角色包括、求职者、招聘企业的hr、猎头、内部员工等等。本文作者分享了如何在Axure里面制作多角色登录的原型模板,希望对你有帮助...
- 利用Axure+js创建可配置地图页面(axure地址选择)
-
编辑导语:如何利用Axure实现自定义地图展示?本篇文章里,作者结合Axure与高德地图,对如何在Axure中设置相应参数、进而预览时实现自定义地图展示效果的操作流程进行了示范和总结,一起来看一下。本...
- 纬地智能模板的一些基础与概念(纬地智能模板的一些基础与概念是什么)
-
对于公路及相关土木工程的勘测设计工作,虽然基础的理论和方法是基本相同的,但是受到各国家、地区文化、制图习惯等方面因素的影响,不同地域公路勘测设计的习惯和表达方式有着很大的差异,当然语言方面的不同和差...
- WPF界面开发第三方控件入门指南——菜单项
-
点击“了解更多”获取工具DevExpressWPFSubscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强...
- 鸿蒙开发:自定义一个搜索模版(鸿蒙系统怎么添加百度搜索条)
-
前言代码案例基于Api13。...
- 简单介绍一下前端各框架中的模板标签
-
在各大前端框架、小程序中,此类标签的作用主要是用来帮助我们包裹多个元素。在浏览器实际渲染中会将其移除只渲染其包裹的DOM元素,所以说不会增加额外的DOM节点...
- 法媒:简单的几个步骤让你的运动鞋更加炫酷
-
【环球网综合报道】有没有觉得自己的运动鞋样式单调,希望它变得更加炫酷?法媒《ELLE》推荐了一种简单易行的装饰方法,让您的运动鞋更加时尚。制作前,您需要准备一张细毡子、一张闪光热胶合布、胶水、两个银夹...
- Blazor 代码隐藏(blazor 操作dom)
-
Razor组件通常是在单个.razor文件中创作的,这样就存在页面中包含html代码和后台代码(@code标记指定的代码)。如下...
- DevExpress WPF入门指南:DXBars, DXRibbon中使用MVVM的两种方式
-
你也可以下载Universal安装包或者到DevExpress中文网查看更多示例和教程哦本文档介绍在DXBars,DXRibbon和GalleryControl这三个控件中使用MVVM框架的...
- 干货,Uploadfive插件上传,Python接收存储
-
在Web开发工作中,经常遇到上传需求,上传照片,文件等,网上的上传插件有很多,我使用的是一款H5上传插件Uploadfive,与之对应的是Uploadify,后者是基于Flash的,不过现在越来越多的...
- 用DevExpress实现基于HTML&CSS的桌面应用程序的UI(二)
-
DevExpressWinForm拥有180+组件和UI库,能为WindowsForms...
- 一周热门
- 最近发表
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- dedecms模版 (53)
- c 视频教程下载 (33)
- listview排序 (33)
- characterencodingfilter (33)
- getmonth (34)
- label换行 (33)
- android studio 3 0 (34)
- html转js (35)
- 索引的作用 (33)
- checkedlistbox (34)
- xmlhttp (35)
- mysql更改密码 (34)
- 权限777 (33)
- htmlposition (33)
- 学校网站模板 (34)
- textarea换行 (34)
- 轮播 (34)
- asp net三层架构 (38)
- bash (34)