6.2.2 利用文件进行数据共享的优缺点

通过文件可以实现多个组件对象间的数据共享和传输,它不需要将数据从一个组件依次传递到另一个组件,从而简化了整个流程。

但该策略还是有很多缺点和局限性的。

❑读写操作的开销大

不论是在何种设备上,外存储设备的读写速度都比内存的差多个数量级,当读写数据较大时,时间和内存的开销都会增加,甚至会出现明显的线程拥塞,影响应用与用户的交互。

❑开发成本可能较高

Intent对象的序列化操作,都是系统自行完成的;而通过文件系统进行存储通常需要自定义序列化的逻辑,从而增加了开发的负担。比如,同样是传递一份帐号和密码数据,基于Intent对象进行传递只需要调用Intent.setExtra函数即可,而用文件存储,则需要开发者自行实现数据的读写和序列化。

同时,由于外存储设备的读写速度较慢,系统往往需要通过多线程模式来进行异步操作,这就使得数据一致性的维护变得格外复杂。

❑存在一定的局限性

在Android设备中,扩展外存储设备可能并不存在,这就给跨应用数据分享的实现带来了风险。同时,任何组件对象都可以对存放在扩展外存储设备中的文件进行读写操作,这就使得数据的安全性大大降低。

综上所述,基于文件的数据共享策略,是一种“入门级”的共享数据解决方案。它特别适合于有持久化需求的小数据共享,最典型的,就是应用的设置数据。而如果数据规模较大,或者是处理逻辑相对复杂,就需要考虑全局的数据共享策略。