Sviluppo di software Android: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Attività per i nuovi utenti Suggerito: aggiungi collegamenti |
Recupero di 3 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(2 versioni intermedie di 2 utenti non mostrate) | |||
Riga 65:
Le [[Libreria (software)|librerie]] scritte in [[C (linguaggio)|C]] e [[C++]] possono essere compilate su supporti [[Architettura ARM|ARM]], [[Architettura MIPS|MIPS]] o [[Architettura x86|x86]] ed implementate utilizzando l'Android Native Development Kit (NDK). Le [[Classe (informatica)|classi]] possono essere chiamate tramite comandi Java (che può essere implementato sulla [[Dalvik virtual machine|Dalvik VM]]) usando il comando <code>System.loadLibrary</code>, il quale rappresenta una parte delle classi standard di Android Java.<ref>{{cita web|url=https://davanum.wordpress.com/2007/12/09/android-invoke-jni-based-methods-bridging-cc-and-java/|titolo=Android – Invoke JNI Based Methods (Bridging C/C++ And Java)|lingua=en|data=9 dicembre 2007|accesso=24 agosto 2016}}</ref><ref>{{cita web|url=https://developer.android.com/reference/java/lang/System.html|titolo=java.lang.System|lingua=en|data=|accesso=24 agosto 2016}}</ref>
Applicazioni complete possono essere create, compilate ed installate utilizzando gli strumenti di sviluppo tradizionali.<ref>{{cita web|url=http://benno.id.au/blog/2007/11/13/android-native-apps|titolo=Native C applications for Android|lingua=en|data=13 novembre 2007|accesso=24 agosto 2016|dataarchivio=13 settembre 2009|urlarchivio=https://web.archive.org/web/20090913233211/http://benno.id.au/blog/2007/11/13/android-native-apps|urlmorto=sì}}</ref> Tuttavia, in base alla documentazione Android, NDK non dovrebbe essere utilizzato esclusivamente per lo sviluppo solo perché lo sviluppatore preferisce programmare in C o C ++, infatti l'uso di NDK aumenta la complessità della programmazione e la maggior parte delle applicazioni non trarrebbero beneficio dal suo assiduo utilizzo.<ref>{{cita web|url=https://developer.android.com/ndk/index.html|titolo=Android NDK|lingua=en|data=|accesso=24 agosto 2016}}</ref>
Il debugger ADB fornisce una [[Shell (informatica)|shell]] root tramite l'emulatore Android che permette al codice scritto sui supporti ARM, MIPS o x86 di essere caricato ed eseguito. Il codice può essere compilato con [[GNU Compiler Collection|GCC]] o con il [[compilatore]] Intel C++ su un PC standard.<ref>{{cita web|url=https://software.intel.com/en-us/c-compilers/inde|titolo=Intel C++ Compiler 14.0 for Android|lingua=en|data=|accesso=24 agosto 2016}}</ref> L'esecuzione di codice nativo è complicato dal fatto che Android fa uso di una libreria C non standard (libc, nota come Bionic). La libreria grafica che Android utilizza per controllare l'accesso a questo dispositivo si chiama Skia Graphics Library (SGL) ed è stata rilasciata sotto una [[licenza open source]].<ref>{{cita web|url=https://src.chromium.org/viewvc/chrome/trunk/src/skia/|titolo=Skia source|lingua=en|data=|accesso=24 agosto 2016}}</ref> Skia dispone di ''[[front-end e back-end]]'' sia per [[Windows API|Win32]] sia per [[Unix]], consentendo lo sviluppo di applicazioni multipiattaforma, ed è il [[motore grafico]] alla base del [[browser]] [[web]] [[Google Chrome]].<ref>{{cita web|url=http://www.atoker.com/blog/2008/09/06/skia-graphics-library-in-chrome-first-impressions/|titolo=Skia graphics library in Chrome: first impressions|lingua=en|data=6 settembre 2008|accesso=24 agosto 2016}}</ref>
A differenza dello sviluppo in Java, basato su un IDE come Eclipse, l'NDK si basa su strumenti da riga di comando e necessita che questi vengano richiamati manualmente per costruire, implementare ed eseguire le applicazioni. Alcuni strumenti consentono di integrare l'NDK in Eclipse<ref>{{cita web|url=https://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/|titolo=Using Eclipse for Android C/C++ Development|lingua=en|data=23 gennaio 2011|accesso=24 agosto 2016}}</ref> e in Visual Studio.<ref>{{cita web|url=http://visualgdb.com/tutorials/android/|titolo=Using Visual Studio to Develop Native Android Code|lingua=en|data=30 aprile 2015|accesso=24 agosto 2016}}</ref>
Riga 131:
Esiste una comunità di appassionati che costruiscono e condividono [[firmware]] open-source basati su Android che presentano una serie di personalizzazioni e funzioni aggiuntive, ad esempio il supporto audio [[Free Lossless Audio Codec|FLAC]] e la possibilità di memorizzare le applicazioni scaricate sulla scheda [[MicroSD]].<ref>{{cita web|url=https://forum.xda-developers.com/htc-dream-g1/development|titolo=Dream android development|lingua=en|data=|accesso=25 agosto 2016}}</ref> Solitamente questa procedura richiede lo sblocco del [[boot loader]] e il [[rooting]] del dispositivo che consente l'accesso degli utenti al sistema operativo ed averne quindi il pieno controllo. Nonostante presenti alcuni svantaggi, il rooting permette di installare firmware personalizzati (ad esempio [[CyanogenMod]] e OMFGB), i quali permettono ai proprietari di dispositivi più datati di utilizzare le app disponibili solo sulle versioni più recenti.<ref>{{cita web|url=http://www.redmondpie.com/android-2.1-from-motorola-droid-ported-to-g1-9140291/|titolo=Android 2.1 from Motorola Droid Ported to G1|lingua=en|data=30 dicembre 2009|accesso=25 agosto 2016}}</ref>
Il 24 settembre 2009 Google ha pubblicato una lettera di [[diffida]]<ref>{{cita web|url=http://androidandme.com/2009/09/news/cyanogenmod-in-trouble/|titolo=CyanogenMod in trouble?|lingua=en|data=24 settembre 2009|accesso=25 agosto 2016}}</ref> nei confronti dei [[Modding|modder]] di Cyanogen, citando problemi con la ri-distribuzione delle applicazioni [[Software proprietario|closed source]] di Google<ref>{{cita web|url=https://android-developers.blogspot.it/2009/09/note-on-google-apps-for-android.html|titolo=A Note on Google Apps for Android|lingua=en|data=25 settembre 2009|accesso=25 agosto 2016}}</ref> all'interno dei firmware personalizzati. Nonostante la maggior parte del sistema operativo Android sia open source, i telefoni vengono confezionati in modalità closed source per favorire l'operabilità di applicazioni come [[Google Play]] e la navigazione GPS. Google ha affermato che queste applicazioni possono essere fornite solo attraverso i canali di distribuzione approvati ed ufficiali. Cyanogen ha rispettato la volontà di Google e sta continuando a distribuire i suoi mod senza l'uso del software proprietario.
== Standard Java ==
Gli ostacoli nello sviluppo includono il fatto che Android non usa gli standard Java stabiliti, cioè [[Java Platform, Standard Edition|Java SE]] e [[Java Platform, Micro Edition|Java ME]]. Ciò impedisce la compatibilità tra le applicazioni Java scritte per quelle piattaforme e quelle scritte per la piattaforma Android. Quest'ultimo utilizza solo la sintassi e la semantica del linguaggio Java, ma non fornisce le librerie e le API in bundle con Java SE o ME. Tuttavia, sul mercato ci sono numerosi strumenti, prodotti da aziende come Myriad Group e UpOnTek, che forniscono servizi di conversione da Java SE ad Android.<ref>{{cita web|url=http://www.realwire.com/releases/myriads-new-j2android-converter-fuels-android-applications-gold-rush|titolo=Myriad's New J2Android Converter Fuels Android Applications Gold Rush|lingua=en|data=19 marzo 2010|accesso=25 agosto 2016}}</ref><ref>{{cita web|url=http://www.javaworld.com/article/2073306/j2android-hopes-you-don-t-know-that-android-is-java-based.html|titolo=J2Android hopes you don't know that Android is Java-based|lingua=en|data=22 marzo 2010|accesso=25 agosto 2016|dataarchivio=27 agosto 2016|urlarchivio=https://web.archive.org/web/20160827062249/http://www.javaworld.com/article/2073306/j2android-hopes-you-don-t-know-that-android-is-java-based.html|urlmorto=sì}}</ref><ref>{{cita web|url=http://www.javaworld.com/article/2073324/myriad-cto--j2android-moves-midlets-to--beautiful--android-framework.html|titolo=Myriad CTO: J2Android moves MIDlets to "beautiful" Android framework|lingua=en|data=31 marzo 2010|accesso=25 agosto 2016|dataarchivio=27 agosto 2016|urlarchivio=https://web.archive.org/web/20160827062206/http://www.javaworld.com/article/2073324/myriad-cto--j2android-moves-midlets-to--beautiful--android-framework.html|urlmorto=sì}}</ref>
== Storia e impatto sul mercato ==
Riga 145:
Il 18 agosto 2008 fu rilasciato l'Android SDK 0.9 beta, che presentò una libreria API aggiornata ed estesa, miglioramento degli strumenti di sviluppo e un design aggiornato per la schermata Home. Istruzioni dettagliate per l'aggiornamento furono messe a disposizione di coloro che già stavano lavorando con una versione precedente.<ref>{{cita web|url=https://code.google.com/android/intro/upgrading.html|titolo=Upgrading the SDK|lingua=en|data=|accesso=25 agosto 2016|urlmorto=sì|urlarchivio=https://web.archive.org/web/20080913131056/http://code.google.com/android/intro/upgrading.html|dataarchivio=13 settembre 2008}}</ref> Il 23 settembre 2008 fu rilasciato l'SDK 1.0 (Release 1).<ref>{{cita web|url=https://developer.android.com/sdk/older_releases.html|titolo=SDK Archives|lingua=en|data=|accesso=25 agosto 2016}}</ref> che, secondo le note di rilascio, includeva "principalmente correzioni di bug, anche se sono state aggiunte alcune caratteristiche minori". Sono state incluse anche diverse modifiche API rispetto alla versione 0.9.
A partire dal luglio 2013 sono state sviluppate più di un milione di applicazioni<ref>{{cita web|url=https://mashable.com/2013/07/24/google-play-1-million/#O7OWLhTX5PqT|titolo=Google Play Hits 1 Million Apps|lingua=en|data=24 luglio 2013|accesso=25 agosto 2016}}</ref> con oltre 25 miliardi di [[download]].<ref>{{cita web|url=http://www.androlib.com/appstats.aspx|titolo=Android App Stats|lingua=en|data=|accesso=25 agosto 2016|dataarchivio=2 gennaio 2011|urlarchivio=https://web.archive.org/web/20110102122636/http://www.androlib.com/appstats.aspx|urlmorto=sì}}</ref><ref>{{cita web|url=https://techcrunch.com/2011/04/14/google-3-billion-android-apps-installed-up-50-percent-from-last-quarter/|titolo=Google: 3 Billion Android Apps Installed; Downloads Up 50 Percent From Last Quarter|lingua=en|data=14 aprile 2011|accesso=25 agosto 2016}}</ref> Una ricerca effettuata a giugno 2011 ha indicato che oltre il 67% degli sviluppatori utilizzavano la piattaforma al momento della pubblicazione .<ref>{{cita web|url=https://www.visionmobile.com/blog/2011/06/developer-economics-2011-winners-and-losers-in-the-platform-race|titolo=Developer Economics 2011|lingua=en|data=8 giugno 2011|accesso=25 agosto 2016|urlarchivio=https://web.archive.org/web/20160829022036/https://www.visionmobile.com/blog/2011/06/developer-economics-2011-winners-and-losers-in-the-platform-race|dataarchivio=29 agosto 2016|urlmorto=sì}}</ref> Nel 2012, con circa 105 milioni di dispositivi venduti, Android rappresentava il 68% nel mercato della telefonia mobile.
== Note ==
|