本节将在上一小节整体实现框架的基础上,具体分析下实现层两种数据初始化方式的实现细节。
一、利用Provider方式的数据初始化
Android系统架构为了使一些重要的公用数据能够方便地在各个应用之间进行交互,提供了Content Provider来封装数据访问和存储的具体实现。利用Content Provider进行数据初始化的方式可分为以下四个步骤:
1)获取要初始化应用资源唯一标识符。
图4 资源唯一标识符
初始化数据的第一步当然是找到被初始化的应用标识符,android系统中的每一个Content Provider都有一个唯一的名字,它是其它应用和该Provider交互的一种便捷途径。上图是一个Provider的通用表达,其中A表示标准前缀,B表示URI,C是具体路径,D是URI中的某个数据ID(如果存在的话)。
2)准备数据源,并制定数据生成规则。
图5 准备初始化数据和制定数据生成规则
在获取到被初始化应用的资源标识符后,根据应用数据结构的表间依赖和表内字段准备一定格式和数量的源数据,然后结合应用本身的表现制定数据的生成规则。
3)清理已有杂乱数据。
在初始化数据之前,为了避免“脏数据”带来的被测应用数据场景和实际用户数据场景之间的偏差,在开始初始化数据之前,工具会首先清理已有杂乱数据。
4)生成数据,并利用Content Provider初始化应用数据。
图6 初始化应用数据