Este artigo lança alguma luz sobre a situação. O link mais pertinente nesse artigo é esse . Então você tem uma base de instalação massiva com muitos programadores que conhecem o idioma e é amplamente ensinado nas universidades. C ++ foi retirado do currículo da minha escola, Java ainda está aqui. Java possui Java ME, que possui uma base de instalação massiva em outros celulares. O Pantec Ease que tenho no meu bolso agora tem uma xícara de café no canto da tela. Alguém quer adivinhar o que é isso?
Esta resposta no Stack Overflow cobre muito bem também.
Resumo da resposta do SO:
java é uma linguagem conhecida, os desenvolvedores a conhecem e não precisam aprender
é mais difícil atirar em si mesmo com java do que com código c, c ++, pois ele não tem aritmética de ponteiro
ele roda em uma vm, portanto, não é necessário recompilá-lo para todos os telefones existentes e fácil de proteger
grande número de ferramentas de desenvolvimento para java (veja primeiro)
vários telefones celulares já usavam o java me, então o java era conhecido na indústria
a diferença de velocidade não é um problema para a maioria dos aplicativos, se você deveria codificar na montagem