El uso normal del ADB se realiza desde la línea de comandos,[14] aunque existen numerosas interfaces gráficas para controlarlo.Algunos de los comandos más usados son: El NDK permite instalar bibliotecas escritas en C, C++ y otros lenguajes, una vez compiladas para ARM, MIPS o código nativo x86.Los programas Java corriendo en la máquina virtual Dalvik (Dalvik VM) pueden llamar a clases nativas por medio de la funciónSystem.loadLibrary, que forma parte de las clases estándares Java en Android.[17][18] Se pueden compilar e instalar aplicaciones completas utilizando las herramientas de desarrollo tradicionales.[19] Sin embargo, según la documentación de Android, NDK no debe utilizarse para desarrollo simplemente porque el programador prefiera programar en C/C++, ya que la utilización del NDK aumenta la complejidad sin que la mayor parte de las aplicaciones obtengan ningún beneficio por ello.[20] El depurador ADB proporciona un shell root en el simulador de Android que permite cargar y ejecutar código nativo ARM, MIPS o x86.La biblioteca gráfica que utiliza Android para controlar el acceso a este dispositivo se llama Skia Graphics Library (SGL), disponible con licencia de código abierto.[23] NDK está basado en la línea de comandos, y, al contrario que el desarrollo con Eclipse, requiere la invocación manual de comandos para construir, cargar y depurar las aplicaciones.Hay herramientas de terceros que integran el NDK con Eclipse[24] y Visual Studio.[29] [[Hal Abelson]], director de proyecto en el MIT, dijo: "Sólo hemos podido hacerlo porque la arquitectura Android es tan abierta".Está basado en HyperCard, que gestiona el software como una pila de tarjetas en la que sólo una de ellas es visible en un momento dado y por tanto encaja bien en aplicaciones para teléfonos móviles, con una sola ventana disponible a la vez.HyperNext es un intérprete de un lenguaje similar al Inglés y tiene muchas funciones para crear aplicaciones Android.Kivy da la posibilidad de mantener una sola aplicación para numerosos sistemas operativos ("programar una vez, ejecutar en todas partes").Kivy tiene una herramienta incorporada para distribuir aplicaciones móviles llamada Buildozer, sólo disponible en Linux.Puede integrarse con la cámara y los sensores del dispositivo utilizando la librería Ketai.[39] Qt es una infraestructura multiplataforma para aplicaciones que puede abarcar a Android, Linux, iOS, Sailfish OS y Windows.RFO Basic ( un dialecto del Basic Dartmouth) es un intérprete libre en el dispositivo, que proporciona acceso a hardware, sensores, sonido, gráficos, multitactil, sistema de ficheros, SQLite, network sockets, FTP, HTTP, Bluetooth, HTML ÇGUI, encryption, SMS, teléfono, correo, texto a voz, reconocimiento de voz, GPS, funciones matemáticas, funciones de cadenas de caracteres, listas y otras utilidades esenciales.[43] Toda la funcionalidad de R3, incluyendo la interfaz gráfica, gráficos, acceso a red, acceso a ficheros, análisis sintáctico, y otras funciones principales son portables entre Android, Windows, Mac y Linux, sin cambios en el código fuente.El pequeño tamaño del intérprete ( 0,5 - 1,5 megabytes ) complementa el diseño utilitario de Saphir.WinDev Mobile es un entorno de desarrollo propietario, creado por PC SOFT y utilizado para crear interfaces gráficas de usuario en aplicaciones para teléfonos inteligentes y tabletas ( incluyendo Android ).Utiliza WLanguage como lenguaje de programación, disponible en inglés, francés y chino.Las 50 aplicaciones más prometedoras, seleccionadas el 12 de mayo del 2008, recibieron 25 000 dólares para soporte a su desarrollo.Sin embargo hacer "Rooting" permite instalar firmwares adaptados, aunque hay que desbloquear también el cargador de arranque (bootloader) del dispositivo.Sistemas modificados permiten a los usuarios de teléfonos antiguos utilizar aplicaciones sólo disponibles en versiones nuevas.Los paquetes de firmware se actualizan con frecuencia, incorporan funciones a Android que no se distribuyen oficialmente dentro del firmware autorizado por un operador, y suelen tener menos limitaciones.Cyanogen ha cumplido los deseos de Google y continúa distribuyendo sus modificaciones sin código propietario, proporcionando un método para copiar las aplicaciones con licencia Google durante la instalación y recuperarlas al finalizar la misma.Hay instrucciones detalladas de actualización para aquellos que todavía utilicen versiones anteriores.
Google Sooner, el primer celular con Android, sin embargo nunca salió al mercado, por lo cual se considera al HTC Dream como primer celular con Android.