La programmation pour Android
Techniques et outils pour réaliser une application Android, sur le bureau ou directement sur le mobile.
Android était une startup spécialisé dans la création de logiciels pour mobiles et avait 8 employés en 2005. Leur première idée avait été de se tourner vers Samsung pour obtenir un financement, mais la réunion s'est mal passée. L'équipe de la startup est allé à Séoul faire une démonstration d'Android, qui était un système différent faisant fonctionner des applications, devant un panel d'ingénieurs et dirigeants de la firme coréenne qui se sont montrés peu convaincus. Quand l'équipe a quitté la salle, l'assemblée à éclaté de rire!
Quelques semaines plus tard, Android était racheté par Google pour 50 millions de dollars. Et on ne rit plus chez Samsung, qui représente maintenant 80% des ventes de mobiles équipés de ce système.
Entre 2008, année de lancement d'Android et 2013, le système à rapporté à Google 31 milliards de dollars et réalisé 22 milliards de bénéfices. Ces chiffres ont été révélés par un des avocats d'Oracle lors du procès qui a opposé la firme à Google. Cet avocat a fait lui-même l'objet d'un procès pour avoir révélé des données confidentielles.
Google a fédéré une quantité d'acteurs du mobile autour de son initiative dans une entité dénommée Open Handset Alliance dont le logo est affiché à droite. Elle comprend des opérateurs comme Telfonica, Telecom Italia, des fabricants de téléphone dont LG, Motorola, Samsung, des fondeurs de composants: Intel, Nvidia, Texas Instruments et des acteurs du Net comme eBay.
Une plateforme ouverte
Android, outre le système d'exploitation est une interface utilisateur
et une plateforme dotée de base d'applications créés
par Google. Etant ouverte, elle permettra aux programmeurs indépendants
de créer des logiciels pour mobiles.
Le principal avantage sur les systèmes actuels tel que Windows Mobile,
et que l'accès au matériel sera total, alors qu'il était
limité jusqu'ici. Un SDK est déjà disponible pour les
développeurs.
Les applications fournies par Google sont notamment Gmail, Google Mobile (moteur
de recherche), Agenda, Google Documents, Youtube, Maps...
Renderscript est une API de rendu 3D utilisant le processeur graphique et disponible sous Android 3.0 destiné au tablettes.
Cependant il est prévu dans un proche avenir de fusionner Android 2 et 3, donc on devrait pouvoir l'utiliser aussi un jour sur les smartphones.
Cette interface qui fait partie du SDK se programme dans un langage proche du C, compilé en code intermédiaire.
Dalvik est la machine virtuelle qui interprète le code objet venant de la compilation d'un source Java (ou autre langage).
Pour faire face aux inconvénients pouvant éventuellement découler du procès intenté par Oracle contre Google, concernant Dalvik, la machine virtuelle d'Android, qui a le défaut de ne pas avoir été produite par eux, la fondation Fosdem a lancé le projet d'une version d'Android basée entièrement sur du code sous licence GNU, GNUDroid. Ce projet décrit dans une conférence applelée IcedRobot ne semble pas avoir abouti et est resté gelé. Il a été suivi de CryanogenMod auquel a succédé LinageOS.
En fait, il existe une version totalement open source d'Android, AOSP, offerte par Google et utilisable par tous. Elle a été utilisée par Nokia pour ses smarphones X et X+ en 2014.
Voir le diagramme montrant comment est construit Android et la description du système du point de vue de sa programmation.
Outils de programmation pour Android
Le nouvelle version du SDK pour Android 3.0 contient toujours un émulateur permettant de tester les applications sur un mobile virtuel. Elle se destine autant aux tablettes qu'aux smartphones et supporte des écrans plus grands. Pour ce faire, l'interface utilisateur à été entièrement repensées.
De nouveaux composants sont ajoutés à la bibliothèque. Les applications ont été réécrites pour une utilisation plus intuitive.
Le support de d'URL de listes M3U devrait permettre de regarder la télévision sur une tablette avec un logiciel comme VLC.
- Terminal IDE. Ligne de commande et outils de développement Java et C pour Android. Cela permet de travailler directement sur le mobile. Git est inclut dans l'IDE.
- Android Studio. Kit de développement avec IDE et emulateur. Voir aussi le NDK. Pour programmer en C++ et produire du code natif.
- App Inventor. Abandonné par Google mais maintenu par le MIT, qui en est le créateur, cet outil permet de générer automatiquement une application.
Autres outils
- Mono for Android. Programmer en C# avec Dalvik comme backend.
- Distribution des versions. Basée sur les versions d'Android qui se sont connectée à la boutique Google Play, permet de savoir quelles fonctions implémenter dans une application. On doit aussi savoir quelle version les supportent.
Documents
- Android et Nexus One. Android vs iPhone.
- Open Handset Alliance. Le comité Android.
- Première vidéo de démonstration.