title: Android APIs and CPU Architectures
body: <p>I'm building my native components from the command line (and <em>not</em> from <code>Android.mk</code>). I'm trying to determine the intersection of CPU architectures with API levels. I know:</p>
  
  <ul>
  <li><code>armeabi</code> is ARMv5TE</li>
  <li><code>armeabi-v7a</code> is ARMv7-A</li>
  </ul>
  
  <p>I'm trying to determine the minimum API level required for <code>armeabi</code> (ARMv5TE) and <code>armeabi-v7a</code> (ARMv7-A). I need the minimum API level to select the proper <code>sysroot</code>. For example, I can select:</p>
  
  <ul>
  <li><code>/opt/android-ndk-r9/platforms/android-19/arch-arm</code></li>
  </ul>
  
  <p>or</p>
  
  <ul>
  <li><code>/opt/android-ndk-r9/platforms/android-9/arch-arm</code></li>
  </ul>
  
  <p>What are the intersections of API levels with <code>armeabi</code> and <code>armeabi-v7a</code>?</p>
  
  <hr>
  
  <p>According to the NDK's <code>docs/CPU-MIPS.html</code> and <code>CPU-X86.html</code>, MIPS and X86 minimum API level is 9. But I can't find a similar document for ARM.</p>
  
  <hr>
  
  <p>According to the NDK's <code>docs/NEON.html</code>, ARMv7-a made its debut in NDK R3 which is dated March 2010. That puts ARMv7-a around API 8 from May 2010.</p>