SharedPreferences
es aparentemente implementado internamente como un archivo XML que es serializado y deserializado en su totalidad en la actualización. Y es una tienda de Key-Value sin índice. Así que utilízalo solo para datos simples asociados con tu aplicación. Más de 50 claves y probablemente ya has exagerado.
ContentProvider
está diseñado para compartir datos entre aplicaciones. Has dicho explícitamente que no quieres hacer eso.
SQLiteDatabase
está destinado a aplicaciones individuales para almacenar datos, y proporciona una gran flexibilidad para almacenar e indexar datos de diferentes maneras. Personalmente lo uso para almacenar registros en una de mis aplicaciones. Yo recomendaría esa ruta.
Otra opción es iniciar sesión en archivos de texto comunes almacenados en el almacenamiento de archivos.
+1 me ayudó también – Joset