¿Qué significa API para android? ¿Qué software/apps necesito para hacer una programación API? ¿Hay algún sitio web para el tutorial?

Esto es un poco confuso, y en tu pregunta te estás refiriendo a dos tipos diferentes de APIs.

La API de Android se refiere a la colección de varios módulos de software que conforman el SDK completo de Android. En palabras más sencillas la API de Android o el SDK de Android o simplemente Android se refiere básicamente a lo mismo. Ya que el software que escribes tú mismo interactúa con el software de Android para hacer varias cosas, por lo que la parte de Android es como una API.

La otra API a la que te refieres es donde el término API se utiliza más comúnmente, especialmente cuando se desarrollan sitios web. Es el conjunto de comandos que se envían a un servidor y luego se obtiene alguna respuesta de él. El envío de comandos al servidor se denomina 'solicitud' y la respuesta de éste se llama 'respuesta'. Esta solicitud/respuesta entre el navegador web y el servidor es el uso más común de una API y su programación está en alza, ya que hoy en día la mayoría de los servicios online que utilizamos dependen de varias llamadas a la API de diferentes servidores. Al enviar una solicitud al servidor, el remitente le pide al servidor que haga algo, como comprobar el tiempo, por ejemplo, y la respuesta podría ser la previsión para hoy de su ciudad. De esta manera no tienes que escribir tu propio programa para la previsión del tiempo y puedes simplemente utilizar la API de este servicio de previsión del tiempo para obtener la información meteorológica para utilizarla en tu sitio web o cualquier otra aplicación.

En el caso de Android, utilizas su API de Mapas como ejemplo para obtener la ubicación de tu dispositivo, o cualquier otra coordenada que le proporciones.

Para programar una API de servicio web, necesitas conocer algunos lenguajes de programación del lado del servidor como PHP, .Net, Java, C#. Esto se llama la programación del backend. Luego se necesita algún conocimiento de programación front-end para lo cual el lenguaje utilizado es JavaScript. Tenga en cuenta que JavaScript no está ni remotamente relacionado con Java sólo porque su nombre tiene Java en él. Es como si Cat no estuviera relacionado con Caterpillar sólo porque tiene Cat en su nombre.

Para programar para las APIs de Android, necesitas saber Java.