To satisfy varying customer needs, device vendors and OS providers often rely on the open-source nature of the Android OS and offer customized versions of the Android OS. When a new version of the Android OS is released, device vendors and OS providers need to merge the changes from the Android OS into their customizations to account for its bug fixes, security patches, and new features. Because developers of customized OSs might have made changes to code locations that were also modified by the developers of the Android OS, the merge task can be characterized by conflicts, which can be time-consuming and error-prone to resolve. To provide more insight into this critical aspect of the Android ecosystem, we present an empirical study that investigates how eight open-source customizations of the Android OS merge the changes from the Android OS into their projects. The study analyzes how often the developers from the customized OSs merge changes from the Android OS, how often the developers experience textual merge conflicts, and the characteristics of these conflicts. Furthermore, to analyze the effect of the conflicts, the study also analyzes how the conflicts can affect a randomly selected sample of 1,000 apps. After analyzing 1,148 merge operations, we identified that developers perform these operations for 9.7\% of the released versions of the Android OS, developers will encounter at least one conflict in 41.3\% of the merge operations, 58.1\% of the conflicts required developers to change the customized OSs, and 64.4\% of the apps considered use at least one method affected by a conflict. In addition to detailing our results, the paper also discusses the implications of our findings and provides insights for researchers and practitioners working with Android and its customizations.
翻译:为了满足客户的不同需要,设备供应商和操作系统供应商往往依赖安卓操作系统的开放源码性质,提供安卓操作系统的定制版本。当安卓操作系统的新版本发布后,设备供应商和操作系统供应商需要将安卓操作系统的8个开放源码定制合并到其定制中,以考虑到其错误修正、安全补丁和新特点。由于定制操作系统的开发商可能对代码位置的修改也由安卓操作系统的开发商修改,合并任务的特点可以是冲突,这些冲突可能耗时且容易出错解决。为了更深入了解安卓操作系统的这一关键方面,我们提出了一项实验性研究,调查安卓操作系统的8个开放源定制如何将安卓操作系统的变化合并到其项目中。 这项研究分析了定制操作的开发商如何经常将ANDroid操作系统的变化合并,开发商如何经常经历文字化的冲突增加冲突,4 以及这些冲突的特性。 此外,为了分析冲突的影响,研究还分析了安卓操作的这一冲突对1 000个交易的最小的细节, 并且分析我们所选择的模型分析了这些冲突的模拟操作 。