title: Android ARMv6/v7 and VFP/NEON
body: <p>I would like to understand more the CPU used on Android phones. The reason is that we are building the C library which has the certain CPU/math processor architecture flags we can set.</p>
  
  <ol>
  <li><p>So far we have found that all Android devices CPUs are ARM design and are either <strong>ARMv6</strong> (older devices, low ends, Huawei, ZTE, small SE) or <strong>ARMv7</strong> (Honeycomb tablets and all more expensive devices, almost all with resolution WVGA and higher)I have checked ~20 devices and all have processor of that type. Is that correct? Are there some others?</p></li>
  <li><p>Now when it comes to the multimedia and mathematical operations I think two units are important – the <strong>VFP</strong> for floating point arithmetic and the SIMD - <strong>NEON</strong>. After testing the above mentioned group of devices I have found that VFP support is in almost all devices, while NEON not. Any comments to that?</p></li>
  <li><p>I do not know what exactly is the ARMv6 and ARMv7 difference (besides the speed in general). Now we are building a multimedia C library, which has couple of flags for building. My question is how to target the largest number of devices on one side and how to allow the users of the better devices to use their hardware. My proposal is to prepare 3 distinct builds: ARMv6/VFP, ARMv7/VFP and ARMv7/VFP/NEON. Other proposals?</p></li>
  <li><p>The <strong>ARMv6/VFP</strong> I think should run on all configurations, except devices, which are missing the VFP (e.g. the old HTC Wildfire) – but those will remain unsupported.</p></li>
  </ol>
  
  <p>Is this a good approach? Any comments are welcomed.</p>
  
  <p>Regards,
  STeN </p>