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

使用索引

异步线程


备注

参考资料:

单词音标: