美文网首页
SharePreference相关

SharePreference相关

作者: Infinity_空 | 来源:发表于2021-12-26 17:35 被阅读0次

    SharePreference是一个轻量级的存储类,一般用来保存应用的配置参数。其本质是通过一个XML文件存储键值对(key-value)

    1. SP的提交一般有两个api,一个是commit,一个是apply。

      • commit会阻塞当前线程,有返回值,可以根据commit返回的结果,做一些异常处理操作
      • apply是会启动Runnable做异步提交,没有返回值。
    2. 如果SP太大时,可能会导致一些问题:

      1. 初始化时,SP会读取xml文件,可能会阻塞主线程,使页面卡顿、掉帧。
      2. 解析SP的时候,会产生大量的临时对象,导致频繁GC
      3. SP的key-value会全部存在于内存中,占用大量的内存
    3. 使用建议:

      1. 不要存放过多过大的key-value
      2. 如果有很多的key-value,需要进行分类存储,避免读取过多无用的key-value
      3. 读取频繁的key-value和较少使用的key-value也分开存储。
      4. 提交时,尽量进行批量提交
    4. SP通过在读写时,给map加入同一把锁,所以它是线程安全的,但是它不是进程安全的,在多进程读写时,会造成数据丢失,或者是无法读取最新最近的数据。

    5. SP的替代方案:

      1. Google的替代方案:DataStore(有待发展)
      2. 微信替代方案:MMKV(主流)

    相关文章

      网友评论

          本文标题:SharePreference相关

          本文链接:https://www.haomeiwen.com/subject/hevyqrtx.html