title: Proper way to abstract Realm in Android apps
body: <p>I'm trying out Realm.io in an Android app, though, to stay on the safe side, I would like to abstract the DB layer so that, in case of need, I can switch back to a standard SQLite based DB without rewriting most of the app.</p>
  
  <p>I'm however finding it difficult to properly abstract Realm due to it's particular nature:</p>
  
  <ul>
  <li>When tied to a realm, RealmObjects are proxies so I cannot pass them around as they were POJOs.</li>
  <li>All Realm instances need to be properly opened and closed for every thread they are used in.</li>
  </ul>
  
  <p>I've resorted to using the recent Realm.copyFromRealm() API instead of passing around RealmObjects tied to a Realm to get around these limitations but this way I think I'm loosing all the benefits of using realm (am I?).</p>
  
  <p>Any suggestions?</p>