title: Sharing and persisting data between multiple Android applications
body: <p>I'm developing a group of complex Android applications that need to share common state and configuration settings. </p>
  
  <p>For example, see this picture explaining my scenario:</p>
  
  <p><img src="https://i.stack.imgur.com/RxrRm.png" alt="enter image description here"></p>
  
  <p>I want that APP 1, APP 2 and APP 3 be able to access (read/write) data to the common storage area. <strong>Additionally, I need uninstall protection</strong> i.e. I don't want the data to be removed when the user uninstalls any of the apps. </p>
  
  <p>I've already read about SQLite databases, ContentProviders and writing on Internal and External storage, but each of the above mentioned methods have disadvantages as listed below:</p>
  
  <ul>
  <li>SQLite database: DB is deleted on app uninstall and is private to each app</li>
  <li>ContentProvider: The data is removed when the app with the ContentProvider is removed</li>
  <li>Internal storage: Is private to each app and data is deleted on app uninstall (<a href="http://developer.android.com/training/basics/data-storage/files.html#InternalVsExternalStorage" rel="noreferrer">http://developer.android.com/training/basics/data-storage/files.html#InternalVsExternalStorage</a>)</li>
  <li>External storage: Is unreliable (user may remove SD card)</li>
  <li>Store on server: Not possible, user may not have reliable internet connection  </li>
  </ul>
  
  <p><strong>EDIT:</strong></p>
  
  <p>I don't want any dependencies on Google Play Services because I will be distributing the apps via Play Store and as 3rd party downloads.  </p>
  
  <p>Please help me out. </p>