title: Share lots of data between android applications using internal storage?
body: <p>Background: we are porting an enterprise system to have android clients.  The architecture for windows and html is based around a core library that does the hard business logic but no user interaction at all, and we use programs or single page web apps to provide the user interface and simply call the core API library to actually do stuff.</p>
  
  <p>The "core" is implemented as a shared library on windows and built into each app. If we mirror this and use a java library, we need to share files using external storage, which is a not permitted as data needs to be reasonably secure. (Nb data is binary data, not Sql database, in case that is relevant)</p>
  
  <p>So we thought about using a bound service, and using intents, content provider etc, but it seems (from googling) we must then distribute the background service separately the user interface app, but this seems terrible experience for new users. However, a bound service seems ideal from all other angles.</p>
  
  <p>We also cannot guarantee which apps a user might download, we will have at least 10 individual apps all doing logically different things, but referencing similar data.</p>
  
  <p>In brief:</p>
  
  <ul>
  <li>lots of individual apps all wanting access to same data</li>
  <li>no control over which apps are downloaded</li>
  <li>using external data is not permitted as data should be semi secure</li>
  <li>using sqllite might not work as data is long binary chunks ( eg 3Mb plus ).  (Ref: <a href="https://stackoverflow.com/questions/19691171/how-to-share-data-across-a-group-of-applications-in-android">How to share data across a group of applications in Android</a> )</li>
  <li>some data files are big and do not want every app to download a private copy</li>
  <li>some data changes dynamically, say every 15min</li>
  <li>core business logic is big and complex, cannot be distributed in source form, lib/jar ok though.</li>
  <li>the windows solutions all use network IO to an application server, but we want to avoid as much network traffic as possible by storing data locally.</li>
  </ul>
  
  <p>How can we bundle a bound service in each and every user interface app we distribute? Or is there a different way to approach this whole design?</p>