

Le développement de logiciels Android est le processus par lequel des applications sont créées pour les appareils exécutant le système d'exploitation Android . Google déclare que « les applications Android peuvent être écrites en utilisant les langages Kotlin , Java et C++ » en utilisant le kit de développement logiciel (SDK) Android, tandis que l'utilisation d'autres langages est également possible. Tous les langages de machine virtuelle non Java (JVM), tels que Go , JavaScript , C , C++ ou l'assembleur , ont besoin de l'aide du code du langage JVM, qui peut être fourni par des outils, probablement avec un support API restreint. Certains langages et outils de programmation permettent la prise en charge d'applications multiplateformes (c'est-à-dire pour Android et iOS ). Les outils tiers, les environnements de développement et la prise en charge des langages ont également continué d'évoluer et de s'étendre depuis la sortie du SDK initial en 2008. Le mécanisme officiel de distribution des applications Android aux utilisateurs finaux est Google Play ; il permet également la publication progressive des applications par étapes, ainsi que la distribution de versions d'applications préliminaires aux testeurs.
Outils de développement officiels
Le kit de développement logiciel (SDK) Android comprend un ensemble complet d'outils de développement. Les outils de la plateforme Android SDK sont un sous-ensemble téléchargeable séparément du SDK complet, composé d'outils de ligne de commande tels que adbet fastboot. Android Debug Bridge (ADB) est un outil permettant d'exécuter des commandes sur un appareil Android connecté. Fastboot est un protocole utilisé pour flasher les systèmes de fichiers. Le code écrit en C / C++ peut être compilé en code natif ARM ou x86 (ou leurs variantes 64 bits) à l'aide du kit de développement natif Android (NDK).
Kit de développement d'accessoires ouvert Android
La plateforme Android 3.1 (également rétroportée vers Android 2.3.4) introduit la prise en charge d'Android Open Accessory, qui permet au matériel USB externe (un accessoire USB Android) d'interagir avec un appareil Android dans un mode « accessoire » spécial. Lorsqu'un appareil Android est en mode accessoire, l'accessoire connecté agit comme l'hôte USB (alimente le bus et énumère les appareils) et l'appareil Android agit comme le périphérique USB. Les accessoires USB Android sont spécifiquement conçus pour se connecter aux appareils Android et adhèrent à un protocole simple (protocole d'accessoire Android) qui leur permet de détecter les appareils Android qui prennent en charge le mode accessoire.
Développement de matériel externe
Les outils de développement destinés à aider un appareil Android à interagir avec l'électronique externe incluent IOIO , Android Open Accessory Development Kit , Microbridge, Triggertrap , etc.
Émulateurs Android
- BlueStacks
- Genymotion
- LeapDroid
- Inventeur d'applications du MIT
- Android Studio
- Android x86
- Sous-système Windows pour Android
Défi pour développeurs Android
L'Android Developer Challenge était un concours visant à trouver l'application la plus innovante pour Android. Google a offert des prix d'un montant total de 10 millions de dollars américains , répartis entre ADC I et ADC II. ADC I a accepté les candidatures du 2 janvier au 14 avril 2008. Les 50 candidatures les plus prometteuses, annoncées le 12 mai 2008, ont chacune reçu une récompense de 25 000 dollars pour poursuivre le développement. Il s'est terminé début septembre avec l'annonce de dix équipes qui ont reçu 275 000 dollars chacune et de dix équipes qui ont reçu 100 000 dollars chacune.
L'ADC II a été annoncé le 27 mai 2009. Le premier tour de l'ADC II s'est terminé le 6 octobre 2009. Les gagnants du premier tour de l'ADC II, comprenant les 200 meilleures applications, ont été annoncés le 5 novembre 2009. Le vote pour le deuxième tour a également été ouvert le même jour et s'est terminé le 25 novembre. Google a annoncé les grands gagnants de l'ADC II le 30 novembre, SweetDreams, What the Doodle!? et WaveSecure étant désignés grands gagnants du défi.
Distributions communautaires
Il existe une communauté de passionnés de l'open source qui créent et partagent des distributions basées sur Android (c'est-à -dire des micrologiciels ) avec un certain nombre de personnalisations et de fonctionnalités supplémentaires, telles que la prise en charge audio sans perte FLAC et la possibilité de stocker des applications téléchargées sur la carte microSD . Cela implique généralement de rooter l'appareil. Le rootage permet aux utilisateurs d'accéder à la racine du système d'exploitation, ce qui permet un contrôle total du téléphone. Le rootage présente également plusieurs inconvénients, notamment un risque accru de piratage, des risques élevés de bris , une perte de garantie, des risques accrus d'attaque de virus, etc. Il est également possible d'installer un micrologiciel personnalisé, bien que le chargeur de démarrage de l'appareil doive également être déverrouillé. Le micrologiciel personnalisé permet aux utilisateurs de téléphones plus anciens d'utiliser des applications disponibles uniquement sur les versions plus récentes.
Ces packages de micrologiciels sont mis à jour fréquemment, intègrent des éléments de fonctionnalités Android qui n'ont pas encore été officiellement publiés dans un micrologiciel approuvé par l'opérateur et ont tendance à avoir moins de limitations. CyanogenMod et OMFGB sont des exemples de tels micrologiciels.
Le 24 septembre 2009, Google a envoyé une lettre de cessation et d'abstention au moddeur Cyanogen, citant des problèmes avec la redistribution des applications Google à code source fermé dans le firmware personnalisé. Même si la plupart des systèmes d'exploitation Android sont open source, les téléphones sont livrés avec des applications Google à code source fermé pour des fonctionnalités telles que Google Play et la navigation GPS. Google a affirmé que ces applications ne peuvent être fournies que par des canaux de distribution approuvés par des distributeurs agréés. Cyanogen s'est conformé à la licence de Google et a continué à distribuer son mod sans le logiciel propriétaire. Il a fourni une méthode pour sauvegarder les applications Google sous licence pendant le processus d'installation du mod et les restaurer une fois le processus terminé.
Normes Java
Les obstacles au développement incluent le fait qu'Android n'utilise pas les normes Java établies, c'est-à-dire Java SE et ME . Cela empêche la compatibilité entre les applications Java écrites pour ces plates-formes et celles écrites pour la plate-forme Android. Android réutilise la syntaxe et la sémantique du langage Java, mais il ne fournit pas les bibliothèques de classes complètes et les API fournies avec Java SE ou ME. Cependant, il existe sur le marché de nombreux outils de sociétés telles que Myriad Group et UpOnTek qui fournissent des services de conversion de Java ME vers Android.
Android fournit ses propres classes d'interface utilisateur graphique et ne fournit pas Java AWT, Swing ou JavaFX. Il ne prend pas en charge l'API Java Beans complète.
Historique et part de marché
Android a été créé par l' Open Handset Alliance , dirigée par Google. Les premiers retours sur le développement d'applications pour la plateforme Android ont été mitigés. Les problèmes cités incluent des bugs, un manque de documentation, une infrastructure d'assurance qualité inadéquate et l'absence de système public de suivi des problèmes. (Google a annoncé un outil de suivi des problèmes le 18 janvier 2008.) En décembre 2007, le fondateur de la startup mobile MergeLab, Adam MacBeth, a déclaré : « Les fonctionnalités ne sont pas là, sont mal documentées ou ne fonctionnent tout simplement pas... Ce n'est clairement pas prêt pour le grand public. » Malgré cela, les applications ciblées sur Android ont commencé à apparaître la semaine suivant l'annonce de la plateforme. La première application disponible au public était le jeu Snake .
Une version préliminaire du SDK Android a été publiée le 12 novembre 2007. Le 15 juillet 2008, l'équipe du défi des développeurs Android a envoyé par erreur un e-mail à tous les participants du défi des développeurs Android annonçant qu'une nouvelle version du SDK était disponible dans une zone de téléchargement « privée ». L'e-mail était destiné aux gagnants de la première manche du défi des développeurs Android. La révélation que Google fournissait de nouvelles versions du SDK à certains développeurs et pas à d'autres (et gardait cet arrangement privé) a suscité une frustration largement rapportée au sein de la communauté des développeurs Android à l'époque.
Le 18 août 2008, la version bêta du SDK Android 0.9 a été publiée. Cette version proposait une API mise à jour et étendue, des outils de développement améliorés et une conception mise à jour pour l'écran d'accueil. Des instructions détaillées pour la mise à niveau sont disponibles pour ceux qui travaillent déjà avec une version antérieure. Le 23 septembre 2008, le SDK Android 1.0 (version 1) a été publié. Selon les notes de publication, il comprenait « principalement des correctifs de bogues, bien que certaines fonctionnalités plus petites aient été ajoutées ». Il comprenait également plusieurs modifications de l'API par rapport à la version 0.9. Plusieurs versions ont été publiées depuis son développement.
Le 5 décembre 2008, Google a annoncé le premier Android Dev Phone , un appareil débloqué par carte SIM et par matériel conçu pour les développeurs avancés. Il s'agissait d'une version modifiée du téléphone Dream de HTC. Alors que les développeurs peuvent utiliser des appareils grand public classiques pour tester et utiliser leurs applications, certains développeurs peuvent choisir un appareil dédié débloqué ou sans contrat.
En juillet 2013 , plus d'un million d'applications ont été développées pour Android, avec plus de 25 milliards de téléchargements. Une étude de juin 2011 a indiqué que plus de 67 % des développeurs mobiles utilisaient la plateforme, au moment de la publication. Les expéditions de smartphones Android devraient dépasser 1,2 milliard d'unités en 2018 avec une part de marché de 85 %.