Android性能优化之SharedPreferences

本文深入探讨了SharedPreferences的创建过程,强调了其作为轻量级存储的限制,尤其是不当使用可能导致的问题。从源码角度,分析了SharedPreferences的创建、put和get操作,指出apply并不总是安全的,尤其是在大量任务提交时。建议避免存储大键值对,避免频繁edit,以及提前初始化以减少等待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 存储优化系列专题

SharedPreferences 系列

Android 之不要滥用 SharedPreferences

Android 之不要滥用 SharedPreferences(2)— 数据丢失

ContentProvider 系列(待更)

Android 存储选项之 ContentProvider 启动过程源码分析

《Android 存储选项之 ContentProvider 深入分析》

对象序列化系列

Android 对象序列化之你不知道的 Serializable

Android 对象序列化之 Parcelable 取代 Serializable ?

Android 对象序列化之追求完美的 Serial

数据序列化系列(待更)

《Android 数据序列化之 JSON》

《Android 数据序列化之 Protocol Buffer 使用》

《Android 数据序列化之 Protocol Buffer 源码分析》

SQLite 存储系列

Android 存储选项之 SQLiteDatabase 创建过程源码分析

Android 存储选项之 SQLiteDatabase 源码分析

数据库连接池 SQLiteConnectionPool 源码分析

SQLiteDatabase 启用事务源码分析

SQLite 数据库 WAL 模式工作原理简介

SQLite 数据库锁机制与事务简介

SQLite 数据库优化那些事儿


前言

本文不是与大家一起探讨SharedPreferences的基本使用,而是结合源码的角度揭秘对SharedPreference使用不当引发的严重后果以及该如何正确使用。

SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了string,set,int,long,float,boolean六种数据类型。最终数据是以xml形式进行存储。在应用中通常做一些简单数据的持久化缓存。SharedPreferences作为一个轻量级存储,所以就限制了它的使用场景,如果对它使用不当将会带来严重的后果。

一、从源码的角度出发

1、SharedPreferences的创建过程

后面统一简称:Sp

通过Context的getSharedPreferences方法得到Sp对象。

这里实际调用了ContextImpl的getSharedPreferences()。

从源码可以看到:首先在sSharedPrefs中获取Sp对象,那这个sSharedPrefs是个什么东西?</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值