Shared preferences allow storing and retrieving key-value pairs of primitive data types. They are best for storing app settings and user preferences that don't require a complex database. To use shared preferences, call getSharedPreferences() to get a preferences object, get the editor to modify preferences, call methods like putString() to save data, and commit changes. Data can then be retrieved by calling methods like getString() with the correct key.