Quali sono i linguaggi di programmazione necessari per lo sviluppo di applicazioni Android?
Quasi tutte le applicazioni Android disponibili nel Google Play store sono scritte in Java. Tutti gli strumenti sono gratuiti e possono essere scaricati da Android Developers. Google ha deciso per Java perché voleva che le applicazioni puntassero a un livello di astrazione invece che all'hardware fisico (JavaVM che su Android sta per Dalvik o ART a seconda della versione di Android). Questo è stato fatto in modo che il sistema operativo Android potesse essere compilato per diverse CPU dando ai venditori di cellulari la scelta dell'hardware e mantenere la compatibilità indipendentemente dalla piattaforma. Tuttavia, gli sviluppatori Android hanno anche la possibilità di puntare all'NDK (Native Development Kit) e scrivere applicazioni Android in C/C++. Perché vorresti fare questo? Per le prestazioni! Anche se l'ultima tecnologia VM è molto buona nell'ottimizzare le prestazioni, non ti dà ancora la vera velocità nativa. Questa è una grande parte del motivo per cui iOS aveva un enorme vantaggio su Android qualche anno fa in termini di app di editing e composizione audio e video di alta qualità. Poiché i processori sono diventati più potenti, il divario si è ridotto. A causa della mancanza di compatibilità multipiattaforma, Android NDK è di solito utilizzato solo dai venditori di cellulari per i loro dispositivi (ad esempio quelle app esclusive di Samsung sul vostro Note 5).
Come altri hanno detto C# è anche un'opzione attraverso strumenti di terze parti come Xamarin o Unity. Vedi:
Sviluppo di app mobili e software per la creazione di app
Unity - Motore di gioco
Articoli simili
- Quali linguaggi di programmazione dovrei imparare per progettare applicazioni per Google play?
- In quali linguaggi di programmazione sono scritte la maggior parte delle applicazioni?
- Quali linguaggi di programmazione sono front-end e quali sono back-end?
- Quali sono i vantaggi e gli svantaggi dello sviluppo di applicazioni basate sul web rispetto allo sviluppo di applicazioni desktop?