title: Create Custom Keyboard in Android
body: <p>I'd like to write an custom keyboard which should work on all devices that are running Android 4.0 and up. So first I searched the net but didn't found anything about that. So how can I create an app which replaces the stock keyboard of Android?</p>
  
  <p>What I'd like to know:</p>
  
  <ol>
  <li>Is there a good tutorial out there? Do you guys have sample code?</li>
  <li>Do I need root to do this?</li>
  <li>What's the structure behind it? (Is it just a regular Activity with a Service??)</li>
  <li>Is it possible to read out the Inputbox within the keyboard?</li>
  </ol>