O site para desenvolvedores do Android tem tudo de que você precisa para começar a desenvolver o Android.
Você precisa do SDK para desenvolver aplicativos Java; O Eclipse é geralmente recomendado, mas não obrigatório como um IDE.
Você precisa do NDK para desenvolver aplicativos nativos em C ou C ++.
O SDK e o NDK são independentes. Você não precisa de outras ferramentas de desenvolvimento.
Se você quer aprender desenvolvimento para Android, não precisa de um quadro: o SDK vem com um emulador. Se você estiver interessado em programação de baixo nível, você precisa de uma placa. Você precisará de uma imagem do Android para acompanhá-la. O Google não fornece uma imagem Android universal: você precisa de um com os drivers corretos para sua placa. Normalmente, você pode obtê-lo do fabricante ou de uma comunidade criada em torno desse fabricante.
Para programação de baixo nível, você pode estar melhor com um Linux simples do que com o Android. O Ubuntu fornece uma toolchain de compilação cruzada para o ARM: gcc-arm-linux-gnueabi e amigos. Outros toolchains existem .