Dependency Facade: The Coupling and Conflicts between Android Framework and Its Customization

Wuxia Jin, Yitong Dai, Jianguo Zheng, YunHuan Qu, Ming Fan, Zhenyu Huang, Dezhi Huang, Ting Liu
{"title":"Dependency Facade: The Coupling and Conflicts between Android Framework and Its Customization","authors":"Wuxia Jin, Yitong Dai, Jianguo Zheng, YunHuan Qu, Ming Fan, Zhenyu Huang, Dezhi Huang, Ting Liu","doi":"10.1109/ICSE48619.2023.00144","DOIUrl":null,"url":null,"abstract":"Mobile device vendors develop their customized Android OS (termed downstream) based on Google Android (termed upstream) to support new features. During daily independent development, the downstream also periodically merges changes of a new release from the upstream into its development branches, keeping in sync with the upstream. Due to a large number of commits to be merged, heavy code conflicts would be reported if auto-merge operations failed. Prior work has studied conflicts in this scenario. However, it is still unclear about the coupling between the downstream and the upstream (We term this coupling as the dependency facade), as well as how merge conflicts are related to this coupling. To address this issue, we first propose the DepFCD to reveal the dependency facade from three aspects, including interface-level dependencies that indicate a clear design boundary, intrusion-level dependencies which blur the boundary, and dependency constraints imposed by the upstream non-SDK restrictions. We then empirically investigate these three aspects (RQ1, RQ2, RQ3) and merge conflicts (RQ4) on the dependency facade. To support the study, we collect four open-source downstream projects and one industrial project, with 15 downstream and 15 corresponding upstream versions. Our study reveals interesting observations and suggests earlier mitigation of merge conflicts through a well-managed dependency facade. Our study will benefit the research about the coupling between upstream and downstream as well as the downstream maintenance practice.","PeriodicalId":376379,"journal":{"name":"2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)","volume":"9 7","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSE48619.2023.00144","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

Abstract

Mobile device vendors develop their customized Android OS (termed downstream) based on Google Android (termed upstream) to support new features. During daily independent development, the downstream also periodically merges changes of a new release from the upstream into its development branches, keeping in sync with the upstream. Due to a large number of commits to be merged, heavy code conflicts would be reported if auto-merge operations failed. Prior work has studied conflicts in this scenario. However, it is still unclear about the coupling between the downstream and the upstream (We term this coupling as the dependency facade), as well as how merge conflicts are related to this coupling. To address this issue, we first propose the DepFCD to reveal the dependency facade from three aspects, including interface-level dependencies that indicate a clear design boundary, intrusion-level dependencies which blur the boundary, and dependency constraints imposed by the upstream non-SDK restrictions. We then empirically investigate these three aspects (RQ1, RQ2, RQ3) and merge conflicts (RQ4) on the dependency facade. To support the study, we collect four open-source downstream projects and one industrial project, with 15 downstream and 15 corresponding upstream versions. Our study reveals interesting observations and suggests earlier mitigation of merge conflicts through a well-managed dependency facade. Our study will benefit the research about the coupling between upstream and downstream as well as the downstream maintenance practice.
依赖外观:Android框架和自定义之间的耦合和冲突
移动设备供应商基于Google Android(称为上游)开发他们定制的Android操作系统(称为下游)来支持新功能。在日常的独立开发过程中,下游也会周期性地将来自上游的新版本的变更合并到它的开发分支中,与上游保持同步。由于要合并大量的提交,如果自动合并操作失败,将报告严重的代码冲突。先前的工作研究了这种情况下的冲突。然而,下游和上游之间的耦合(我们将这种耦合称为依赖外观)以及合并冲突如何与这种耦合相关仍然不清楚。为了解决这个问题,我们首先提出了DepFCD,从三个方面揭示依赖外观,包括接口级依赖,表明明确的设计边界,模糊边界的入侵级依赖,以及上游非sdk限制施加的依赖约束。然后我们根据经验研究这三个方面(RQ1, RQ2, RQ3),并合并依赖facade上的冲突(RQ4)。为了支持研究,我们收集了4个开源下游项目和1个产业项目,15个下游和15个相应的上游版本。我们的研究揭示了有趣的观察结果,并建议通过管理良好的依赖关系facade来早期缓解合并冲突。本文的研究对上游与下游的耦合研究以及下游的维护实践具有借鉴意义。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信