Apprendre Java pour le développement Android Introduction à Java

Dans cette série de didacticiels, vous vous familiariserez avec Java, le langage de programmation utilisé pour développer des applications Android. Notre objectif est de préparer ceux qui sont déjà familiarisés avec un langage de programmation, tel que PHP ou Objective-C, à se familiariser avec le langage de programmation Java et à se plonger dans le développement d'applications Android. Dans ce tutoriel, vous obtiendrez une brève introduction aux principes fondamentaux de Java, notamment la programmation orientée objet, l'héritage, etc. Si vous débutez dans Java ou si vous souhaitez simplement améliorer les détails, ce didacticiel est fait pour vous.!

Commencer

En ce qui concerne les conditions préalables, nous supposerons que vous comprenez comment programmer (peut-être en PHP, Visual Basic ou C ++), mais que vous ne connaissez pas les spécificités de la programmation en langage Java. Nous n'allons pas vous apprendre à programmer; nous allons vous fournir des exemples clairs de constructions et de principes du langage Java couramment utilisés, tout en vous proposant des astuces et astuces spécifiques à Android..

Ce dont vous aurez besoin

Techniquement, vous n'avez besoin d'aucun outil pour compléter ce didacticiel, mais vous en aurez certainement besoin pour développer des applications Android..

Pour développer des applications Android (ou des applications Java, d'ailleurs), vous avez besoin d'un environnement de développement pour écrire et créer des applications. Eclipse est un environnement de développement (IDE) très populaire pour Java et l'IDE préféré pour le développement Android. Il est disponible gratuitement pour les systèmes d'exploitation Windows, Mac et Linux..

Pour des instructions complètes sur l'installation d'Eclipse (y compris les versions prises en charge) et le SDK Android, voir le site Web du développeur Android..

Qu'est-ce que 'java?

Les applications Android sont développées en langage Java. Pour le moment, c'est vraiment votre seule option pour les applications natives. Java est un langage de programmation très populaire développé par Sun Microsystems (propriété d'Oracle). Développé longtemps après le C et le C ++, Java intègre de nombreuses fonctionnalités puissantes de ces langages puissants tout en corrigeant certains de leurs inconvénients. Cependant, les langages de programmation ne sont aussi puissants que leurs bibliothèques. Ces bibliothèques existent pour aider les développeurs à créer des applications.

Certaines des principales fonctionnalités de base de Java sont:

  • C'est facile à apprendre et à comprendre
  • Il est conçu pour être indépendant de la plate-forme et sécurisé, en utilisant
    machines virtuelles
  • C'est orienté objet

Android s'appuie fortement sur ces fondamentaux Java. Le SDK Android comprend de nombreuses bibliothèques Java standard (bibliothèques de structures de données, bibliothèques mathématiques, bibliothèques graphiques, bibliothèques réseau et tout ce que vous pouvez souhaiter), ainsi que des bibliothèques Android spéciales qui vous aideront à développer d’impressionnantes applications Android..

Pourquoi Java est-il facile à apprendre??

Java est facile à apprendre pour diverses raisons. Les ressources Java disponibles pour vous aider à apprendre la langue, notamment les sites Web, les didacticiels, les livres et les cours, ne manquent certainement pas. Java est l’un des langages de programmation les plus discutés, enseignés et utilisés de la planète. Il est utilisé pour de nombreux types de projets de programmation, quelle que soit leur taille, des applications Web aux applications de bureau en passant par les applications mobiles..

Si vous venez d'un environnement de programmation traditionnel tel que C ou C ++, vous trouverez la syntaxe Java assez similaire. Sinon, rassurez-vous en choisissant l'une des langues les plus faciles à apprendre. Vous serez opérationnel en un rien de temps.

Enfin, Java est l’un des langages les plus lisibles par l’homme, c’est-à-dire qu’une personne qui ne connaît rien à la programmation peut souvent consulter du code Java et avoir au moins une idée de ce qu’elle fait. Prenons l'exemple suivant:

caractère char = 'a'; if (character == 'a') doQuelque chose ();  else doSomethingElse ();  

Si vous lisez simplement le code à voix haute, vous pouvez dire à peu près que cet extrait de code est en cours de réalisation. Il y a une seule lettre variable appelée caractère. Si la variable de caractère est égale à la lettre a, nous faisons quelque chose (appelez la méthode doSomething ()), sinon, vous faites autre chose (en appelant la méthode doSomethingElse ()).

Pourquoi l'indépendance de la plate-forme est-elle importante??

Avec de nombreux langages de programmation, vous devez utiliser un compilateur pour réduire votre code en un langage machine que le périphérique peut comprendre. Bien que cela soit bien, différents appareils utilisent différents langages informatiques. Cela signifie que vous devrez peut-être compiler vos applications pour chaque périphérique ou langage informatique. En d'autres termes, votre code n'est pas très portable. Ce n'est pas le cas avec Java. Les compilateurs Java convertissent votre code de fichiers source Java lisibles par l'homme en quelque chose appelé «code binaire» dans le monde Java. Celles-ci sont interprétées par une machine virtuelle Java, qui fonctionne comme un processeur physique peut fonctionner sur du code machine, pour exécuter le code compilé. Bien que cela puisse sembler inefficace, de nombreux efforts ont été déployés pour rendre ce processus très rapide et efficace. Ces efforts ont porté leurs fruits dans la mesure où les performances de Java sont généralement les secondes derrière C / C ++ pour les comparaisons de performances en langage commun.

Les applications Android s'exécutent sur une machine virtuelle spéciale appelée Dalvik VM. Bien que les détails de cette machine virtuelle importent peu au développeur moyen, il peut être utile de penser à la machine virtuelle Dalvik en tant que bulle dans laquelle votre application Android s'exécute, ce qui vous permet de ne pas avoir à vous soucier de savoir si le périphérique est un Motorola Droid, HTC Evo, ou le dernier grille-pain sous Android. Cela vous est égal tant que le périphérique est compatible avec Dalvik VM - et c'est le travail du fabricant du périphérique à mettre en œuvre, pas le vôtre..

Pourquoi Java Secure?

Prenons cette idée de bulle un peu plus loin. Étant donné que les applications Java s'exécutent dans la bulle, à savoir une machine virtuelle, elles sont isolées du matériel du périphérique sous-jacent. Par conséquent, une machine virtuelle peut encapsuler, contenir et gérer l'exécution du code de manière sécurisée par rapport aux langues qui fonctionnent directement dans le code machine. La plate-forme Android va encore plus loin. Chaque application Android s'exécute sur le système d'exploitation (basé sur Linux) sous un compte d'utilisateur différent et dans sa propre instance de la machine virtuelle Dalvik. Les applications Android sont étroitement surveillées par le système d’exploitation et arrêtées si elles ne jouent pas bien (par exemple, utiliser trop de puissance de traitement, devenir insensible, gaspiller des ressources, etc.). Il est donc important de développer des applications stables et réactives. Les applications peuvent communiquer entre elles en utilisant des protocoles bien définis.

Compiler votre code

Comme beaucoup de langages, Java est toujours un langage compilé même s'il ne compile pas jusqu'au code machine. Cela signifie que vous, le développeur, devez compiler vos projets Android et les empaqueter pour les déployer sur des appareils. L'environnement de développement Eclipse (utilisé avec le plug-in Android Development) rend cela assez simple. Dans Eclipse, la compilation automatique est souvent activée par défaut. Cela signifie que chaque fois que vous enregistrez un fichier de projet, Eclipse recompile les modifications apportées à votre package d'application. Vous voyez immédiatement les erreurs de compilation. Eclipse interprète également Java au fur et à mesure de la frappe. Il fournit une coloration et un formatage pratiques du code, ainsi que de nombreux types d'erreurs au fur et à mesure. Vous pouvez souvent cliquer sur l'erreur et faire en sorte qu'Eclipse corrige automatiquement une faute de frappe, ajoute une instruction d'importation ou fournisse un talon de méthode pour vous, évitant ainsi de nombreuses saisies..

Vous pouvez toujours compiler manuellement votre code si vous le souhaitez. Dans Eclipse, vous trouverez les paramètres de construction dans le menu du projet. Si l'option “Construire automatiquement” est activée, vous pouvez toujours choisir l'option “Nettoyer…” qui vous permettra de reconstruire intégralement tous les fichiers. Si «Construire automatiquement» est désactivé, les options du menu «Construire tout» et «Construire le projet» sont activées. "Construire tout" signifie construire tous les projets dans l'espace de travail. Vous pouvez avoir plusieurs projets dans un espace de travail Eclipse..

Le processus de construction, pour les projets Java normaux, génère un fichier avec l'extension JAR. - Java ARciboulette. Les applications Android prennent les fichiers JAR et les conditionnent pour un déploiement sur des périphériques UNEndroid PacKfichiers d'âge avec une extension .apk. Ces formats incluent non seulement votre code Java compilé, mais également toute autre ressource, telle que des chaînes, des images ou des fichiers audio, que votre application requiert pour s'exécuter, ainsi que le fichier Manifeste de l'application, AndroidManifest.xml. Le fichier Manifest Android est un fichier requis par toutes les applications Android, que vous utilisez pour définir les détails de la configuration de votre application..

Qu'est-ce qu'un langage de programmation orienté objet??

D'accord. Temps pour une vue très brève et 20 000 pieds de la programmation orientée objet (OOP). La POO est un style de programmation ou une technique qui repose sur la définition de structures de données appelées objets. Pour les débutants en programmation orientée objet, un objet peut être considéré comme un type de données personnalisé. Par exemple, vous pourriez avoir un objet Chien, qui représente le modèle d'un chien générique, avec un nom, une race et un sexe. Vous pouvez ensuite créer différentes instances de l'objet Chien pour représenter des chiens spécifiques. Chaque objet Dog doit être créé en appelant son constructeur (une méthode qui porte le même nom que l'objet lui-même et peut avoir ou non des paramètres pour définir les valeurs initiales). Par exemple, les objets Dog suivants utilisent un constructeur avec trois paramètres (nom, race, sexe):

Dog dog1 = new Dog ("Lassie", colley, femelle); Dog dog2 = nouveau chien ("Fifi", caniche, femelle); Dog dog3 = nouveau chien ("Asta", foxterrier, mâle); 

Alors, où cet objet Dog est-il défini? Eh bien, ici, nous devons commencer à définir certains des blocs de construction fondamentaux du langage de programmation Java. UNE classe fournit une définition pour un objet. Par conséquent, il existe une classe Dog quelque part, définie par vous ou dans une bibliothèque quelque part. De manière générale, une classe sera définie dans son propre fichier, le nom de fichier correspondant au nom de la classe (par exemple, Dog.java). Il existe des exceptions à cette règle, telles que les classes définies dans d'autres classes (lorsqu'une classe est déclarée dans une classe, elle est généralement définie pour être utilisée dans la classe parente uniquement en tant que classe auxiliaire, et classe intérieure).

Lorsque vous souhaitez référencer un objet depuis une autre classe, vous devez inclure un déclaration d'importation dans le haut de votre fichier de classe, comme si vous utilisiez une instruction #include dans un langage compilé comme C.

Une classe décrit généralement les données et le comportement d'un objet. Le comportement est défini en utilisant la classe les méthodes. Méthode est le terme commun pour désigner un sous-programme dans une langue POO. De nombreuses classes d'objets communes sont définies dans des bibliothèques de classes partagées, telles que les kits de développement logiciel (SDK), tandis que d'autres sont définies par vous, le développeur, à vos propres fins. Le logiciel est ensuite construit en utilisant et en manipulant des instances d'objet de différentes manières.

S'il vous plaît, réalisez qu'il s'agit d'une définition très générale de la programmation orientée objet. Des livres entiers sont écrits sur ce sujet. Si vous souhaitez en savoir plus sur la programmation orientée objet, voici quelques ressources à consulter:

Remarque: nous utilisons beaucoup de terminologies différentes dans ce tutoriel. Il existe de nombreuses façons de faire référence à un concept donné (par exemple, superclasse contre classe parent), ce qui est source de confusion pour les débutants de la programmation orientée objet. Différents développeurs utilisent différents termes et nous avons donc essayé de mentionner des synonymes le cas échéant. Décider quels termes vous utiliserez est un choix personnel.

Comprendre l'héritage

Voici un autre important Concept Java, vous rencontrez beaucoup: héritage. En termes simples, l'héritage signifie que les classes Java (et donc les objets) peuvent être organisées en hiérarchies avec des classes inférieures, plus spécifiques, dans la hiérarchie. héritant comportement et traits des classes supérieures, plus génériques.

Ce concept est mieux illustré par l'exemple. Supposons que nous développons une application Java pour simuler un aquarium. Cet aquarium contient des poissons. Par conséquent, nous pourrions définir une classe pour représenter un poisson. Cette classe, appelée Poisson, peut inclure des champs de données (également appelés attributs ou variables de membre de classe) décrivant un objet poisson: espèce, couleur et taille; ainsi que certains de ses comportements sous forme de méthodes (également appelées sous-routines ou fonctions dans les langages procéduraux), comme manger (), sleep () et makeBabyFish ().

Un type spécial de méthode, appelé un constructeur, est utilisé pour créer et initialiser un objet; les constructeurs portent le même nom que leur classe et peuvent inclure des paramètres. La classe Fish suivante a deux constructeurs: un pour créer un objet Fish générique et un autre pour construire un objet Fish spécifique avec des données initiales. Vous verrez également que la classe Fish a deux méthodes eat (): une pour manger quelque chose au hasard, et une autre pour manger un autre poisson, qui serait représentée par un autre exemple de la classe Fish:

classe publique Fish private String mSpecies; private String mColor; privé int mSize; Poisson () // poisson générique mSpecies = "inconnu"; mColor = "inconnu"; mSize = 0;  Poisson (espèce de chaîne, couleur de la chaîne, taille int) mSpecies = espèce; mCouleur = couleur; mSize = taille;  public void eat () // mange des algues; vide public eat (Fish fishToEat) // mange un autre poisson! ; public void sleep () // sleep; makeBabyFish (Fish fishSpouse, numBabies) // Donne à numBabies une valeur de poisson bébé avec l'épouse de Fish;  

Les classes peuvent être organisées en hiérarchies, où un Classe dérivée (ou sous-classe) comprend toutes les caractéristiques de son classe parent (ou super classe), mais les affine et les ajoute pour définir un objet plus spécifique en utilisant le mot-clef Ceci s'appelle l'héritage.

Par exemple, la classe Fish peut avoir deux sous-classes: FreshwaterFish et SaltwaterFish. Ces sous-classes auraient toutes les fonctionnalités de la classe Fish, mais pourraient personnaliser davantage les objets par le biais de nouveaux attributs et comportements ou de comportements modifiés à partir de la classe parent Fish. Par exemple, la classe FreshwaterFish peut inclure des informations sur le type d’environnement d’eau douce (par exemple, rivière, lac, étang ou flaque d’eau). De même, la classe SaltwaterFish peut personnaliser la méthode makeBabyFish () de sorte que le poisson mange son compagnon après la reproduction (comme défini dans la super classe) en utilisant le mécanisme de substitution, comme suit:

public class SaltwaterFish étend Fish @Override public void makeBabyFish (Fish fishSpouse, int numBabies) // appelle la méthode parent super.makeBabyFish (fishSpouse, numBabies); // mange mate eat (fishSpouse);  

Organiser le comportement des objets avec des interfaces

En Java, vous pouvez organiser les comportements des objets dans ce qu'on appelle des interfaces. Tandis qu'une classe définit un objet, une interface définit un comportement pouvant être appliqué à un objet. Par exemple, nous pourrions définir une interface Swimmer qui fournit un ensemble de méthodes communes à tous les objets pouvant nager, qu’il s’agisse de poissons, de loutres ou d’androïdes immergeables. L'interface Swimmer peut spécifier quatre méthodes: startSwimming (), stopSwimming (), dive () et surface ()..

interface publique Swimmer void startSwimming (); void stopSwimming (); plongée vide (); surface vide ();  

Une classe telle que Fish pourrait alors implémenter l'interface Swimmer (à l'aide du mot clé implements) et fournir les implémentations du comportement de nage:

public class Fish implémente Swimmer // fournit les implémentations des quatre méthodes dans l'interface Swimmer 

Organisation de classes et d'interfaces avec des packages

Les hiérarchies de classe, telles que nos classes de poisson, peuvent ensuite être organisées en paquets. Un paquet est simplement un ensemble de classes et d’interfaces regroupées. Les développeurs utilisent des espaces de noms pour nommer les packages de manière unique. Par exemple, nous pourrions utiliser com.mamlambo.aquarium ou com.ourclient.project.subproject comme nom de package pour garder une trace de nos classes relatives aux poissons..

Emballer

Hou la la! Vous venez de vous lancer dans un cours intensif sur le développement Java pour Android. Nous avons couvert une quantité assez importante de matériel ici, alors laissez les choses se débrouiller un peu avant de passer à la leçon suivante de cette série de tutoriels. Dans la leçon 2, nous nous concentrons sur les détails de la syntaxe Java..

Vous n'avez fait qu'effleurer le développement Java pour le développement Android. Découvrez tous les autres excellents tutoriels sur Mobiletuts + pour approfondir vos connaissances du développement Java et Android. Bonne chance!

à propos des auteurs

Les développeurs mobiles Lauren Darcey et Shane Conder ont co-écrit plusieurs livres sur le développement Android: un livre de programmation en profondeur intitulé Développement d'applications sans fil Android et Sams TeachYourself Développement d'applications Android en 24 heures. Lorsqu'ils n'écrivent pas, ils passent leur temps à développer des logiciels mobiles dans leur entreprise et à fournir des services de conseil. Vous pouvez les contacter par courrier électronique à l'adresse [email protected], via leur blog à l'adresse androidbook.blogspot.com et sur Twitter @androidwireless..

Besoin d'aide pour écrire des applications Android? Consultez nos derniers livres et ressources!

  • Développement d'applications sans fil Android, 2e édition>
  • Sams Teach Yourself Développement d'applications Android en 24 heures
  • Code Mamlambo à Code Canyon

Tutoriels connexes:

  • Apprendre Java pour le développement Android: Syntaxe Java
  • Introduction au développement du SDK Android
  • Début d'Android: Premiers pas avec FortuneCrunch
  • Configurations communes de périphériques virtuels Android
  • Lancement de cartes in-app
  • Activation des utilisateurs pour l'envoi de courrier électronique via l'application
  • Utilisation d'alertes, de toasts et de notifications
  • Création de formulaires utilisateur simples

Ressources utiles:

Si vous souhaitez vous initier au développement Android, un modèle d'application Android est un excellent point de départ. Découvrez la sélection sur Envato Market ou cherchez plus spécifiquement des articles Java.

Modèles d'applications Android sur Envato Market

Vous pouvez également trouver des développeurs Android sur Envato Studio pour vous aider dans tous les domaines, de la conception d'interface utilisateur à la création d'une application Android native..

Développeurs Android sur Envato Studio