Android 存储优化

主要为 sp,File,SQLite 存储方式。
SharedPreferences:
性能问题:
- 当 SharePreferences 文件还没有被加载内存时,调用 getSharedPreferences 方法会初始化文件并读入内存,这容易导致耗时更长
- Editor 的 commit 或者 apply 方法每次执行时,同步写入磁盘耗时较长。
优化建议:
- 使用 apply 异步写入
- SharedPreferences 类中的 commitToMember() 方法会锁定 SharedPreferences 对象,Put 和 getEditor 方法会锁定 Editor 对象,在写入磁盘时更会锁定一个写入锁,因此要避免频繁的读写 SharedPreferences ,减少无畏的调用。
- 对于 SharedPreferences 的批量操作,最好先获取一个 editor ,进行批量操作,然后调用 apply 方法。这样会比 commit 方法性能高
SQLite:
使用事务
- beginTransaction
- setTransactionSuccessful
- endTransaction
使用索引
异步线程
备注
参考资料: