Shared Preferences - max length of a single value

By Romain Guy From the Question Asked Here,

Whatever the maximum length of a Java string is. So something like Integer.MAX_VALUE chars.

I suppose while SharedPreference is an XML file stored with One Tag if you store only One Pair/Object. So there is no limit to write String in that if you think like you are writing in a file..(Theoretically)

But Actually what happens is that, while you are assigning value to SharedPreference using put/get function at that time you Reading/Writting value in String Object..so the limit becomes to store value at one time equal to Size limit of String Object of Java.

So while writting the code: Limit of SharedPreference String Size = Java String Object Size Limit(Practically)


Shared preference is stored in /data/data/[package_name]/shared_prefs/[app name].xml, I think there's no limit as per android architecture.


When I trying to save the max length string into the SharedPreferences in my device, it throw a Memory Exception when SharedPreferences data exceed 1.42 MB.

So if you have more than 1.42 MB data size to save its better to save use SQLite database.

According to developer.android.com:

If you have a relatively small collection of key-values that you'd like to save, you should use the SharedPreferences APIs.