title: Android bound service and AIDL service
body: <p>I read about <a href="http://developer.android.com/guide/components/bound-services.html" rel="nofollow">bound service</a> and <a href="http://developer.android.com/guide/components/aidl.html" rel="nofollow">AIDL based service</a> on Android developer guide</p>
  
  <p>Both seem to allow other components to bind to and perform Interprocess communication</p>
  
  <blockquote>
    <p>Bound service allows components (such as activities) to bind to the
    service, send requests, receive responses, and even perform
    interprocess communication (IPC).</p>
    
    <p>AIDL (Android Interface Definition Language) is similar to other IDLs
    you might have worked with. It allows you to define the programming
    interface that both the client and service agree upon in order to
    communicate with each other using interprocess communication (IPC).</p>
  </blockquote>
  
  <p>So what is the difference ?</p>