Développement d'Applications Android

Que vous soyez un ingénieur en téléphonie mobile expérimenté, un développeur Web ou Web ou un novice en programmation complète, Android représente une opportunité passionnante d’écrire des applications pour un public de plus de deux milliards d’utilisateurs d’appareils Android. Vous connaissez probablement déjà Android, le logiciel le plus courant pour les téléphones mobiles. Sinon, et si vous avez acheté ce livre dans l’espoir que le développement d’Android vous aiderait à créer une armée imparable de guerriers robots sans émotion dans une quête incessante pour nettoyer le monde du fléau de l’humanité, vous devriez reconsidérer cet achat de livre (et vos choix de vie .)

Depuis lors, Android s'est étendu au-delà des téléphones mobiles pour fournir une plate-forme de développement pour une gamme de plus en plus large de matériel, y compris les tablettes, les téléviseurs, les montres, les voitures et les appareils Internet-of-Things (IoT).

Android est une pile logicielle open source qui comprend un système d'exploitation, un middleware et des applications clés pour les appareils mobiles et intégrés.

               De manière cruciale, pour nous en tant que développeurs, il inclut également un riche ensemble de bibliothèques d’API qui permettent d’écrire des applications qui peuvent façonner l’apparence et la fonction des appareils Android sur lesquels ils sont exécutés.

Sous Android, les applications système, groupées et tierces sont écrites avec les mêmes API et exécutées au même moment. Ces API comprennent l'accès au matériel, l'enregistrement vidéo, les services de localisation, la prise en charge des services d'arrière-plan, les cartes, les notifications, les capteurs, les bases de données relationnelles, la communication interapplication, Bluetooth, NFC et les graphiques 2D et 3D.

Ce livre explique comment utiliser ces API pour créer vos propres applications Android. Dans ce chapitre, vous apprendrez quelques lignes directrices pour le développement de matériel mobile et intégré, ainsi que certaines fonctionnalités de la plate-forme disponibles pour les développeurs Android.

Android possède des API puissantes, un écosystème d'utilisateurs énorme et varié, une excellente documentation, une communauté de développeurs florissante et ne génère aucun coût de développement ni de distribution. Au fur et à mesure que l'écosystème d'appareils Android continue de croître, vous avez la possibilité de créer des applications innovantes pour les utilisateurs, quelle que soit votre expérience de développement.

UN PEU DE FOND

Dans les jours précédant Instagram, Snapchat et Pokémon Go, lorsque Google fondait ses yeux sur ses fondateurs et que les dinosaures parcouraient la planète, les téléphones portables étaient exactement cela: des téléphones portables assez petits pour tenir dans une mallette, dotés de piles pouvant durer jusqu'à plusieurs heures. Ils ont toutefois offert la liberté de téléphoner sans être physiquement connectés à une ligne terrestre.Au cours des 10 années écoulées depuis le lancement du premier appareil Android, les téléphones intelligents sont devenus omniprésents et indispensables. Les progrès matériels ont rendu les appareils plus puissants, avec des écrans plus grands et plus lumineux et du matériel de pointe, y compris des accéléromètres, des scanneurs d'empreintes digitales et des caméras à ultra haute résolution.Ces mêmes progrès ont récemment entraîné une prolifération de facteurs de forme supplémentaires pour les appareils Android, notamment une grande variété de téléphones intelligents, de tablettes, de montres et de téléviseurs.Ces innovations matérielles offrent un terrain fertile pour le développement de logiciels, offrant de nombreuses opportunités pour créer de nouvelles applications innovantes.

Le passé pas si lointain

Au tout début du développement d'applications téléphoniques natives, les développeurs, qui codaient généralement en C ou C ++ de bas niveau, devaient comprendre le matériel spécifique pour lequel ils étaient codés, généralement un seul périphérique ou éventuellement une gamme de périphériques d'un seul fabricant. La complexité inhérente à cette approche signifiait que les applications écrites pour ces périphériques étaient souvent en retard sur leurs homologues matériels. À mesure que la technologie matérielle et l'accès à Internet mobile ont progressé, cette approche fermée est devenue obsolète.La prochaine avancée significative dans le développement d'applications pour téléphones mobiles a été l'introduction de MIDlets hébergés sur Java. Les MIDlets ont été exécutés sur une machine virtuelle Java (JVM), un processus qui synthétisait le matériel sous-jacent et permettait aux développeurs de créer des applications exécutées sur de nombreux périphériques prenant en charge l'exécution de Java.Malheureusement, cette commodité s'est faite au prix d'un accès plus fortement restreint au matériel de l'appareil. De même, il était considéré normal que les applications tierces reçoivent des droits d'accès et d'exécution matériels différents de ceux accordés aux applications natives écrites par les fabricants de téléphones, les MIDlets n'en recevant souvent que peu.L’introduction des MIDlets Java a élargi le public des développeurs, mais l’absence d’accès matériel de bas niveau et d’exécution en mode bac à sable signifie que la plupart des applications mobiles sont des programmes de bureau classiques ou des sites Web conçus pour le rendu sur un écran plus petit, sans tirer parti des avantages inhérents. mobilité de la plate-forme portable.

Vivre dans le futur

Lors de son introduction, Android faisait partie d'une nouvelle vague de systèmes d'exploitation mobiles modernes spécialement conçus pour prendre en charge le développement d'applications sur un matériel mobile de plus en plus puissant.Android propose une plate-forme de développement ouverte reposant sur un noyau Linux open source. L'accès au matériel est disponible pour toutes les applications via une série de bibliothèques d'API. L'interaction des applications, tout en étant contrôlée avec soin, est entièrement prise en charge.Sous Android, toutes les applications ont la même valeur. Les applications Android natives et tierces sont écrites avec les mêmes API et sont exécutées au même moment. Les utilisateurs peuvent remplacer la plupart des applications système par une solution de rechange par un développeur tiers; en effet, même les numéroteurs et les écrans d'accueil peuvent être remplacés.