





























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Cet article présente les différentes manières de développer des applications mobiles sur Android, telles que le développement natif, web et hybride. Il aborde les avantages et les inconvénients de chaque approche, ainsi que les outils et les ressources utiles pour chaque type d'application. En outre, il traite de la popularité croissante de la plateforme Android et de ses fonctionnalités intéressantes pour les développeurs.
Typology: Lecture notes
1 / 37
This page cannot be seen from the preview
Don't miss anything!






























PROGRAMMATION MOBILE
Plan
Développement Mobile
Société Système d’exploitation Langage de développement Plateforme de distribution Google Android Java , ( Kotlin: annoncé en 2017) Google Playstore Appel iOS Objective-C, Swift ( depuis 2014) App Store Microsoft Windows Phone C# Microsoft Store
Application web mobile? o Elle est visuellement moins adaptée qu’une application native, car le navigateur reste présent lors de l’exécution, comme le montre la figure ci-dessous :
Une application hybride combine des éléments des deux autres approches:
Android (date de sortie initiale 2008) arrive aux côtés d’autres systèmes d’exploitation pour mobiles, comme Windows Mobile et l’iOS. Bâtis sur des systèmes propriétaires, qui, dans certains cas: o Donnent la priorité aux applications natives au détriment de celles créées par des tiers o Limitent la communication entre les applications et les données natives du téléphone o Restreignent ou contrôlent la distribution d’applications tierces sur leurs plateformes.
Android offre un environnement de développement ouvert, construit sur un noyau Linux open-source o L’accès au matériel est permis à toutes les applications au travers d’une série de bibliothèques d’API; o L’interaction entre applications est entièrement supportée, bien que soigneusement contrôlée; o Toutes les applications ont les mêmes droits – utilisation des mêmes API et exécutées par le même moteur.
Sous la plupart de toutes les couches est Linux - y compris environ 115 Patch Linux 3.6. Il fournit des fonctions de base du système, telles que la gestion des processus, gestion de la mémoire, la gestion des périphériques (tels que caméra, clavier, écran). Pendant ce temps, le noyau Linux gère tout le bon travail, et beaucoup d'équipements tels que les pilotes de réseau, afin d'éviter un grand nombre d'interface matériel périphérique compatible inconvénients.
Cette couche se situe entre les librairies et le kernel linux, elle fournit les interfaces que doivent implémenter les drivers kernel. Cette couche sépare la plateforme logique des interfaces matérielles. Le but de cette couche est de faciliter le portage des librairies sur différents matériels. Particularité d'Android o Imposée par le fait que les applications Google Play doivent s'exécuter sur toutes les plateformes matérielles Android o Besoin d'abstraire le niveau matériel o Les entrées/sorties (e.g. Bluetooth ou caméra) possèdent des appels standard définis dans cette couche, en lien avec le driver associé.
Au dessus du kernel, il y a les librairies natives. Ces librairies sont écrites en C/C++. Elles fournissent les fonctionnalités de bas niveau d'Android. Bionic Libc o Android ne supporte pas la glibc, pour cela on a développé une librairie C (libc) nommé Bionic libc. Elle est optimisée pour les appareils mobiles et a été développé spécialement pour Android. o La plateforme Android à besoin de sa propre libc car il avait besoin d'une libc légère (la libc sera chargé dans chaque processus) et rapide (les appareils mobiles ne disposent de CPU puissant).
Le Surface Flinger permet de construire le rendu graphique, il manipule toutes les surfaces à afficher provenant du frame buffer. WebKit Est une bibliothèque logicielle permettant aux développeurs d'intégrer facilement un moteur de rendu de pages Web dans leurs logiciels. Media framework La librairie Media Framework est basée sur OpenCore de PacketVideo. Elle permet le support des standards audio/vidéo/images.