是否有依赖可根据RecyclerView条目所用sampledata生成虚拟数据列表?
现有可用工具
- IntelliJ插件
Sample Data to POJO:适配全版本Android Studio,支持直接从布局文件的tools属性一键生成对应Java/Kotlin实体类,可自定义字段名映射规则,还能直接导出填充了对应sample数据的List集合,可直接用于UI测试。 - Android Studio Hedgehog(2023.1.1)及以上版本自带布局导出数据模型功能:右键布局文件选择「Generate」->「Data Class from Layout」,可自动识别tools属性关联的sample数据源,生成对应字段。
自研工具实现指导
1. 布局解析模块
读取目标RecyclerView的tools:listitem属性值,拿到对应item布局的XML文件路径,通过XML解析库遍历布局内所有控件的tools:前缀属性,记录控件ID、属性类型(text/src等)、关联的sample数据源标识(比如@tools:sample/full_names)。
2. 字段映射模块
预设基础映射规则:文本类sample数据源(如姓名、随机文本等)映射为String类型,图片类sample数据源(如头像、风景背景等)可根据需求映射为String(资源路径/URI)、Int(资源ID)或者Drawable类型;同时支持用户自定义控件ID和字段名的映射规则,保证生成的字段名符合项目命名规范。
3. 代码生成模块
集成JavaPoet(生成Java代码)或KotlinPoet(生成Kotlin代码)库,根据解析得到的字段列表自动生成实体类代码,可按需添加构造方法、get/set方法、toString等通用方法,Kotlin场景可直接生成data class。
4. 测试数据生成模块
调用Android Studio公开的Sample Data API获取对应数据源的真实预设值,循环填充到生成的实体类实例中,直接输出可使用的List集合;也可以自己内置和Android官方一致的sample数据集,脱离Android Studio环境也能生成测试数据。
如果需要集成到项目构建流程,可以把上述逻辑封装为Gradle插件,在构建阶段自动扫描所有带tools:listitem的RecyclerView,同步更新对应的实体类和测试数据集。
内容的提问来源于stack exchange,提问作者Malik Bilal

