- Wuxia Jin, Yitong Dai, Jianguo Zheng, et al, "Dependency Facade: The Coupling and Conflicts between Android Framework and Its Customization". IEEE/ACM International Conference on Software Engineering (ICSE), 2023 (CCF A会议)
摘要中文版:
移动设备供应商基于谷歌维护的安卓开源项目(称为上游)开发定制化的安卓操作系统(称为下游),以支持新功能。在日常独立开发过程中,下游还会定期将来自上游的新版本的变更合并到其开发分支中,保持与上游的同步。由于需要合并大量提交,当自动合并操作失败时,通常会报大量的代码冲突。先前的研究已经探讨了这种场景下的冲突问题。然而,关于下游和上游之间的耦合关系(我们称之为耦合面),以及合并冲突与这种耦合关系之间的关系,仍然不清楚。针对这一问题,我们首先提出了DepFCD从三个方面揭示耦合面,包括表示明确设计边界的接口级依赖、模糊边界的侵入级依赖以及上游非SDK限制施加的依赖约束。然后,我们对这三个方面(RQ1、RQ2、RQ3)以及合并冲突(RQ4)进行了实证研究。为了支持研究,我们收集了4个开源下游项目和1个工业项目,涵盖了15个下游版本和15个相应的上游版本。我们的研究揭示了有趣的观察结果,并建议通过良好地管理耦合面来提前缓解合并冲突。本研究将有助于上下游之间耦合问题的研究,以及下游维护实践的改进。
- Wuxia Jin, Jiaowei Shang, Jianguo Zheng, Mengjie Zheng, Zhenyu Huang, Ming Fan, Ting Liu. The Design Smells Breaking the Boundary between Android Variants and AOSP. ICSE 2025 (CCF A会议)
摘要中文版:
手机供应商基于安卓开源项目(AOSP)定制其安卓版本,以增强系统功能。在独立开发的同时,安卓版本需要定期与上游的AOSP进行同步,并合并来自AOSP的代码变更。供应商们在维护其版本和解决合并冲突方面投入了大量的精力。本文使用重复出现的不良模式来刻画破坏定制安卓和AOSP之间设计边界的设计异味。这些设计异味表现为跨边界的依赖问题,妨碍了Android版本的可维护性,并阻碍了其与AOSP的协同演化。我们提出了DroidDS,旨在自动检测这些设计异味。我们收集了22个安卓版本及其对应的22个AOSP版本,涵盖了4个开源项目和1个工业项目。我们的研究结果表明:涉及设计异味的文件比其他文件消耗更高的维护成本;这些问题文件不仅仅是代码规模大、复杂度高和面向对象异味相关的文件;这些问题文件已经涉及到超过一半的因重新应用AOSP变更到安卓版本时引发的代码冲突;大部分设计问题是可以缓解的。从业者可以使用我们的DroidDS工具定位并确定解决安卓版本中的设计问题的优先级,重构这些问题将有助于保持不同版本与AOSP之间的健康耦合,潜在地提高可维护性并减少冲突风险。




