five

AndroidCompass

收藏
arXiv2021-03-17 更新2024-06-21 收录
下载链接:
https://doi.org/10.5281/zenodo.4428340
下载链接
链接失效反馈
官方服务:
资源简介:
AndroidCompass是由德国马格德堡大学创建的数据集,包含80,324条Android兼容性检查的代码变更记录。该数据集从F-Droid目录的2,399个项目版本历史中提取,旨在帮助研究人员和开发者理解和处理Android版本不兼容问题。数据集内容涉及多种Android版本和API级别的兼容性检查,通过分析这些数据,可以揭示开发者如何引入、改变和最终修复兼容性检查的模式,从而推动自动化支持修复策略的发展。

AndroidCompass is a dataset created by Otto von Guericke University Magdeburg in Germany, containing 80,324 code change records related to Android compatibility checks. This dataset is extracted from the version histories of 2,399 projects hosted on the F-Droid repository, with the goal of assisting researchers and developers in understanding and resolving Android version compatibility issues. The dataset covers compatibility checks across multiple Android versions and API levels. By analyzing these data, researchers can uncover the patterns through which developers introduce, modify, and ultimately fix compatibility checks, thereby advancing the development of automated support strategies for repair work.
提供机构:
马格德堡大学
创建时间:
2021-03-17
搜集汇总
数据集介绍
main_image_url
构建方式
在移动应用开发领域,Android系统的碎片化问题长期困扰着开发者,导致兼容性检查成为应用演进中的关键环节。AndroidCompass数据集的构建过程始于对F-Droid目录中2,399个开源Android项目的版本历史进行系统分析。研究团队首先通过Web爬虫提取GitHub仓库链接,并利用PyDriller工具筛选涉及“修复”、“问题”或“错误”关键词的提交。随后,基于手动评估的132个API误用修复提交,设计出专门的正则表达式(如Listing 2所示),用于自动检测代码中针对Android版本(VERSION.SDK_INT)的兼容性检查变更。该脚本最终从1,394个仓库的21,658次提交中提取出80,324条独立的兼容性检查变更记录,并对版本代码和比较运算符进行了标准化处理,确保了数据的一致性与可解析性。
特点
AndroidCompass的核心特点在于其聚焦于Android兼容性检查的历史演化数据,为研究版本碎片化问题提供了动态视角。数据集涵盖了从2009年至2020年间80,324条代码变更记录,每条记录均包含提交哈希、时间戳、文件路径、变更动作(添加或删除)、检查行内容、标准化版本代码及比较类型等元数据(详见表I)。与现有静态分析数据集相比,AndroidCompass通过细粒度的提交时间戳和纯文本过滤机制,避免了复杂的代码解析过程,提升了数据可访问性。此外,数据集中约97.7%的兼容性检查成功关联到具体的Android版本,揭示了如HONEYCOMB、LOLLIPOP等关键版本在开发中的频繁调整模式,为理解兼容性策略的长期演变提供了实证基础。
使用方法
该数据集主要服务于Android兼容性研究的多个维度,为学术与实践提供了丰富的数据支撑。研究者可利用AndroidCompass分析兼容性检查的引入、修改与删除模式,从而识别常见的修复策略与演化规律。在自动化工具开发方面,数据集可作为模式检测与程序自动修复技术的基准测试平台,例如通过聚类相似兼容性检查来发现潜在的设计缺陷或安全漏洞。使用过程中,用户可通过CSV文件中的元数据字段(如commit_hash和repo_url)追溯原始代码仓库,进行更深入的上下文分析。同时,数据集附带的脚本支持提取兼容性检查后的代码片段,便于结合控制流分析等方法,探索兼容性处理的实际影响与优化路径。
背景与挑战
背景概述
Android作为全球主流的移动操作系统,其碎片化问题长期困扰着开发者。面对多样化的硬件设备、定制化的Android变体以及频繁的API更新,开发者不得不通过兼容性检查来实现针对不同版本的工作区。为深入探究Android兼容性问题的演化规律,德国马格德堡大学的Sebastian Nielebock等人于2021年创建了AndroidCompass数据集。该数据集从F-Droid目录中的2,399个开源项目中,提取了80,324条兼容性检查代码的历史变更记录,覆盖1,394个应用程序。AndroidCompass旨在为研究者提供开发者处理API不兼容性的时间与方式数据,推动自动化修复技术、模式检测及基准测试等研究方向的发展,对移动软件工程领域具有重要的实证研究价值。
当前挑战
Android兼容性问题的核心挑战在于系统碎片化导致的API不一致性,开发者需在众多设备与版本间确保应用功能正常。具体挑战包括:准确识别前向与后向不兼容性,设计有效的版本检查逻辑,以及处理因API弃用或行为变更引发的功能异常。在数据集构建过程中,研究者面临从海量提交历史中自动提取兼容性检查的难题,需设计精确的正则表达式以匹配代码模式,并处理版本常量表示形式的多样性。此外,数据验证需克服误报与漏报问题,确保提取的80,324条变更记录具有高精度与可靠性,同时避免因分支合并等版本控制操作导致的数据重复或偏差。
常用场景
经典使用场景
在移动操作系统兼容性研究领域,AndroidCompass数据集为探索Android应用程序中版本兼容性检查的演化模式提供了关键数据支撑。该数据集通过提取F-Droid开源应用仓库中80,324条兼容性检查代码变更记录,构建了跨越1,394个项目的历时性分析框架。研究者可借助这些细粒度的提交时间戳和变更动作标记,系统追踪开发者在应对Android API级别更新时引入、修改或移除条件检查的具体轨迹,从而揭示兼容性策略的演进规律与模式特征。
实际应用
在实际工程实践中,AndroidCompass为移动应用开发团队提供了兼容性管理的参考范式。通过分析数据集中记录的兼容性检查变更模式,开发团队可借鉴历史经验优化自身代码中版本适配策略的制定。例如,数据集揭示的针对HONEYCOMB、LOLLIPOP等特定版本的高频修改现象,可警示开发者在类似API变更节点提前规划适配方案。此外,工具开发者可利用该数据集训练智能检测模型,为IDE插件或持续集成系统提供兼容性风险预警功能。
衍生相关工作
基于AndroidCompass的历时性数据特质,已催生多类延伸研究方向。在模式检测领域,研究者可借鉴数据集中的变更序列构建兼容性检查演化模式库,为自动化检测工具如FicFinder、CiD提供历时性验证基准。在程序自动修复方向,数据集中的修复记录可作为模板用于生成兼容性问题的补丁建议。此外,该数据集还为PIVOT等设备相关性研究提供了跨版本分析基础,并支撑了如协同程序修复等新型技术范式的评估验证。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作