Qual é a(s) linguagem(s) de programação necessária(s) para o desenvolvimento de aplicações Android?
A maioria das aplicações para Android disponíveis na loja Google Play são escritas em Java. Todas as ferramentas são gratuitas e podem ser baixadas do Android Developers .Google decidiu pelo Java porque eles queriam que os aplicativos tivessem como alvo uma camada de abstração ao invés de hardware físico (JavaVM que no Android vai para Dalvik ou ART dependendo da versão do Android). Isto foi feito para que o sistema operacional Android pudesse ser compilado para diferentes CPUs dando aos fornecedores de aparelhos escolha de hardware e manter a compatibilidade independentemente da plataforma. No entanto, os desenvolvedores Android também têm a opção de direcionar o NDK (Native Development Kit) e escrever aplicativos Android em C/C++. Por que você gostaria de fazer isso? Desempenho! Embora a última tecnologia VM seja muito boa para otimizar o desempenho, ela's ainda não't lhe dá uma verdadeira velocidade nativa. Essa é uma grande parte do motivo pelo qual o iOS tinha uma vantagem tão grande sobre o Android há alguns anos atrás em termos de aplicativos de edição e composição de áudio e vídeo de alta qualidade. À medida que os processadores se tornaram mais poderosos, a diferença foi diminuindo. Devido à falta de compatibilidade entre plataformas, o Android NDK é normalmente utilizado apenas por fornecedores de aparelhos para os seus dispositivos (por exemplo, os aplicativos exclusivos da Samsung na sua nota 5).
Como outros disseram C# também é uma opção através de ferramentas de terceiros, como Xamarin ou Unity. Veja:
Mobile App Development & App Creation Software
Unity - Game Engine
Artigos semelhantes
- Qual é a linguagem de programação mais fácil de aprender para o desenvolvimento de aplicações nativas para Android?
- Que linguagem de programação é necessária para construir um aplicativo como o Swiggy?
- Que linguagem é necessária para o desenvolvimento de jogos na Unidade?
- Qual é a melhor linguagem de programação para o desenvolvimento de aplicações móveis híbridas?