How many Android devices do I need for thorough testing?
<p>I am working on an Android app that I want to run on all Android devices without any problems, but I'm having a hard time trying to determine how many device configurations and how many hardware devices I should have for testing.</p>

<p>There are several features that I am using which are not supported in the emulator, as mentioned at the bottom of <a href="http://developer.android.com/guide/developing/devices/emulator.html" rel="nofollow">Using the Android Emulator</a> in the Dev Guide:</p>

<blockquote>
  <p>Emulator Limitations</p>
  
  <p>In this release, the limitations of the emulator include:</p>
  
  <ul>
  <li>No support for placing or receiving actual phone calls. You can
  simulate phone calls (placed and received) through the emulator
  console, however.</li>
  <li>No support for USB connections No support for camera/video capture
  (input).</li>
  <li>No support for device-attached headphones No support for
  determining connected state</li>
  <li>No support for determining battery charge level and AC charging
  state</li>
  <li>No support for determining SD card insert/eject</li>
  <li>No support for Bluetooth</li>
  </ul>
</blockquote>

<p>The <a href="http://developer.android.com/guide/market/publishing/multiple-apks.html" rel="nofollow">Multiple APK Support</a> page states:</p>

<blockquote>
  <p>...we encourage you to develop and publish a single APK that supports as many device configurations as possible...</p>
  
  <p>Android Market allows you to publish multiple APKs under the same
  application listing. Android Market then supplies each APK to the
  appropriate devices based on configuration support you've declared in
  the manifest file of each APK.</p>
</blockquote>

<p>I would assume that it's not necessary to cover every single permutation of all the available feature sets, but it's not clear to me how many device configurations would be considered sufficient to cover all the devices available.</p>

<p>If I wanted to confirm on hardware that my app is almost guaranteed to work on every device, how many phones and how many tablets would I need?  Also, are there any special considerations I need to make for manufacturer- or carrier-specific modifications?</p>
