参考:
一.Android中提供哪些数据持久存储的方法?
- 技术点:数据持久化
思路:分条解释每种数据持久存储的特点
技术点:数据持久化(文件存储)
- 思路:大致介绍核心类和核心方法
和 Java中实现I/O的程序是一样的,Context类中提供了openFileInput()和openFileOutput()方法来打开数据文件里的文件IO流;
三.SharePreferences适用情形?使用中需要注意什么?
技术点:数据持久化(SharePreferences存储)
SharePreferences是一种轻型的数据存储方式,适用于存储一些简单的配置信息,如int、string、boolean、float和long。由于系统对SharedPreferences的读/写有一定的缓存策略,即在内存中有一份该文件的缓存,因此在多进程模式下,其读/写会变得不可靠,甚至丢失数据。
四.了解SQLite中的事务处理吗?是如何做的?
-
五.使用SQLite做批量操作有什么好的方法吗?
-
六.如果现在要删除SQLite中表的一个字段如何做?
技术点:数据持久化(SQLite)
参考回答:SQLite数据库只允许增加表字段而不允许修改和删除表字段,只能采取复制表思想,即创建一个新表保留原表想要的字段、再将原表删除;
七.使用SQLite时会有哪些优化操作?
技术点:数据持久化(SQLite)
- 思路:列举可优化点
- 参考回答:
- 使用事务做批量操作:具体操作见上
- 及时关闭Cursor,避免内存泄漏
- 耗时操作异步化:数据库的操作属于本地IO,通常比较耗时,建议将这些耗时操作放入异步线程中处理
- ContentValues的容量调整:ContentValues内部采用HashMap来存储Key-Value数据,ContentValues初始容量为8,扩容时翻倍。因此建议对ContentValues填入的内容进行估量,设置合理的初始化容量,减少不必要的内部扩容操作
- 使用索引加快检索速度:对于查询操作量级较大、业务对要求查询要求较高的推荐使用索引