1.ContentProvider功能
作为四大组件之一,ContentProvider主要负责存储和共享数据。与文件存储、 SharedPreferences存储、SQLite数据库存储这几种数据存储方法不同的是,后者保存下的数据只能被该应用程序使用,而前者可以让不同应用程序之间进行数据共享,它还可以选择只对哪一部分数据进行共享,从而保证程序中的隐私数据不会有泄漏风险。
2.Android中提供哪些数据持久存储的方法?
Android平台实现数据存储的常见几种方式:
File 文件存储:写入和读取文件的方法和 Java中实现I/O的程序一样。
SharedPreferences存储:一种轻型的数据存储方式,常用来存储一些简单的配置信息,本质是 基于XML文件存储key-value键值对数据。
SQLite数据库存储:一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,在存
储大量复杂的关系型数据的时可以使用。
ContentProvider:四大组件之一,用于数据的存储和共享,不仅可以让不同应用程序之间进行 数据共享,还可以选择只对哪一部分数据进行共享,可保证程序中的隐私数据不会有泄漏风险。
3.SharePreferences适用情形?使用中需要注意什么?
SharePreferences是一种轻型的数据存储方式,适用于存储一些简单的配置信息,如int、 string、boolean、float和long。由于系统对SharedPreferences的读/写有一定的缓存策略,即在内存中有一份该文件的缓存,因此在多进程模式下,其读/写会变得不可靠,甚至丢失数据。
4.使用SQLite时会有哪些优化操作?
及时关闭Cursor,避免内存泄漏
耗时操作异步化:数据库的操作属于本地IO,通常比较耗时,建议将这些耗时操作放入异步线
程中处理。
ContentValues的容量调整:ContentValues内部采用HashMap来存储Key-Value数据, ContentValues初始容量为8,扩容时翻倍。因此建议对ContentValues填入的内容进行估量,设置合理的初始化容量,减少不必要的内部扩容操作
使用索引加快检索速度:对于查询操作量级较大、业务对要求查询要求较高的推荐使用索引