Does SharedPreferences name need to be unique?
That's correct, the SharedPreferences are stored in your app's private folder (to be exact, in /data/data/your package name/shared_prefs).
You can give them whatever name you want.
SharedPreferences
represent the preferences which can be shared between different components of your application. The SharedPreferences
you create in your application is never exposed with other applications.
Whether you use PreferenceManager.getDefaultSharedPreferences()
or Context.getSharedPreferences("file_name", Context.MODE_PRIVATE);
both are particular to your application only.
Note - SharedPreferences
or Preferences
is not exposed to other applications.
Although you assumption is right that the SharedPreferences are not shared between apps and thus names cannot clash, it's a good practice (besides of put a specific name to your shared preferences file) to add the package of your application as a prefix. This is useful if you have different flavours and you don't want to overwrite your preferences among them, especially when you're testing an app and don't want to screw up the original values of the shared preferences files.