You are previewing Android 4: Développement d'applications avancées.
O'Reilly logo
Android 4: Développement d'applications avancées

Book Description

Écrit par une figure majeure de l'univers Android, cet ouvrage incontournable vous explique en détail comment tirer parti des pleines potentialités d'Android pour créer des applications originales et élaborées.

Extrêmement complet, fondé sur les dernières nouveautés du SDK Android 4, ce livre passe en revue la plateforme de développement et vous apporte l'incomparable savoir-faire de son auteur au travers de nombreux exemples. Les développeurs expérimentés apprendront à exploiter toutes les nouvelles fonctionnalités permises par la dernière version majeure d'Android, tandis que les plus novices trouveront les concepts fondamentaux expliqués de façon complète et progressive au fil des chapitres.

Avec Android 4, Développement d’applications avancées vous pourrez vous initier ou approfondir vos connaissances, et surtout mettre en pratique le développement d’applications qui exploitent l’ensemble des possibilités de la plateforme la plus répandue au monde :

  • Découvrez les composants des applications, leur cycle de vie, et leurs concepts fondamentaux (Activities, Intents, Broadcast, Services, Content providers)

  • Apprenez les bonnes pratiques de design (expérience utilisateur, optimisation) sur Android, l’utilisation de ses API, pour mettre au point des interfaces conviviales, interactives et confortables sur smartphones, tablettes et TV

  • Intégrez la géolocalisation dans vos applications

  • Étendez l’exploitation des composants, avec des possibilités enrichies et plus puissantes : bluetooth, réseaux, accéléromètre, appareil photo et son nouvel outil de reconnaissance faciale, mais aussi accélération matérielle (par la puce graphique), capteur NFC

  • Tirez parti des API et des nouveaux éléments d’interaction : copier-coller avancé, drag-and-drop

  • Mettez en place des services d’arrière-plan, des notifications, faites communiquer l’appareil avec le Cloud

  • Créez des widgets et des fonds d’écran animés, mettez au point des applications économes en batterie

  • Monétisez plus facilement vos biens virtuels, mises à jour ou options grâce au nouveau système In-App billing, ainsi qu’au système de vérifi cation de licences

  • Apprenez à publier, commercialiser et promouvoir vos applications

L’auteur développe ses exemples sous Eclipse, environnement préconisé pour le développement Android, via le plugin ADT (Android Developer Tool).

Table of Contents

  1. Coverpage
  2. Titlepage
  3. Copyright
  4. Table des matières
  5. À propos de l'auteur
  6. Préface à l'édition française
  7. Introduction
  8. 1. Hello, Android
    1. Un peu d'histoire
    2. Un passé pas si ancien
    3. Le futur
    4. Ce que n'est pas Android
    5. Android : une plateforme ouverte pour le développement sur mobiles
    6. Les applications Android natives
    7. Les caractéristiques du SDK Android
      1. Accès au matériel, notamment l'appareil photo, le GPS et les capteurs
      2. Transferts de données par Wi-Fi, Bluetooth et NFC
      3. Services natifs Google Maps, géocodage et géolocalisation
      4. Services d'arrière-plan
      5. Base de données SQLite pour le stockage et l'extraction de données
      6. Données partagées et communication interapplications
      7. Utilisation des widgets et de Live Wallpaper pour améliorer l'écran d'accueil
      8. Support multimédia étendu et graphiques 2D/3D
      9. Mémoire optimisée et gestion des processus
    8. Introduction à l'Open Handset Alliance
    9. Sur quels matériels Android fonctionne-t-il ?
    10. Pourquoi développer pour des mobiles ?
      1. Pourquoi développer pour Android ?
      2. Facteurs influant sur l'adoption d'Android
      3. Qu'a-t-il que les autres n'ont pas ?
      4. Changer le paysage du développement pour mobiles
    11. Introduction au framework de développement
      1. Ce qui est inclus
      2. La machine virtuelle Dalvik
      3. L'architecture d'une application Android
      4. Les bibliothèques Android
  9. 2. Bien démarrer
    1. Développer sur Android
      1. Ce dont vous avez besoin pour commencer
      2. Créer votre première application Android
      3. Les types d'applications Android
    2. Développer pour appareils mobiles et dispositifs embarqués
      1. Considérations de conception imposées par le matériel
      2. Prendre en compte l'environnement de l'utilisateur
      3. Développer pour Android
    3. Outils de développement Android
      1. Android Virtual Device Manager
      2. L'émulateur Android
      3. DDMS (Dalvik Debug Monitor Service)
      4. ADB (Android Debug Bridge)
      5. Les outils Hierarchy Viewer et Lint
      6. Monkey et Monkey Runner
  10. 3. Créer des applications et des activités
    1. Les composants d'une application Android
    2. Introduction au manifeste d'une application
    3. Étude du manifeste d'une application
    4. L'éditeur de manifeste
    5. Externalisation des ressources
      1. Création des ressources
      2. Utilisation des ressources
      3. Utilisation des ressources dans d'autres ressources
      4. Création de ressources pour différents matériels et langues
      5. Changements de configuration à l'exécution
    6. Cycle de vie d'une application Android
    7. Priorités des applications et états des processus
    8. Introduction à la classe Application d'Android
      1. Étendre et utiliser la classe Application
      2. Redéfinition des événements du cycle de vie d'une application
    9. Les activités Android de plus près
      1. Création d'une activité
      2. Cycle de vie d'une activité
      3. Classes activités d'Android
  11. 4. Créer des interfaces utilisateur
    1. Fondements de la conception d'interface sous Android
    2. Fondements des interfaces utilisateur sous Android
      1. Affecter des interfaces utilisateur aux activités
    3. Introduction aux layouts
      1. Définir les layouts
      2. Utiliser des layouts pour créer des interfaces utilisateur indépendantes du matériel
      3. Optimiser les layouts
    4. Exemple de liste de tâches
    5. Introduction aux fragments
      1. Créer de nouveaux fragments
      2. Le cycle de vie des fragments
      3. Événements du cycle de vie spécifiques aux fragments
      4. États d'un fragment
      5. Introduction au gestionnaire de fragments
      6. Interfaces entre les fragments et les activités
      7. Fragments sans interface utilisateur
      8. Classes fragments d'Android
      9. Utilisation des fragments pour la liste de tâches
    6. La boîte à outils des widgets
    7. Créer de nouvelles Views
      1. Modifier des vues existantes
      2. Créer des contrôles composites
      3. Créer des contrôles composites simples à l'aide des layouts
      4. Créer des vues personnalisées
      5. Utiliser des contrôles personnalisés
    8. Introduction aux adaptateurs
      1. Introduction à quelques adaptateurs natifs
      2. Personnaliser un ArrayAdapter
      3. Utiliser les adaptateurs pour lier des données à une vue
  12. 5. Intentions et récepteurs de diffusion
    1. Introduction aux intentions
      1. Utiliser les intentions pour lancer des activités
      2. Introduction à Linkify
      3. Utiliser des intentions pour diffuser des événements
    2. Introduction au gestionnaire de diffusion locale
    3. Introduction aux intentions en attente
    4. Création des filtres d'intentions et des récepteurs de diffusion
      1. Utiliser les filtres d'intentions pour répondre à des intentions implicites
      2. Utiliser les filtres d'intentions pour les plugins et l'évolutivité
      3. Surveiller l'état du terminal à l'aide des intentions diffusées
      4. Gestion des récepteurs du manifeste pendant l'exécution
  13. 6. Utiliser les ressources Internet
    1. Télécharger et analyser des ressources Internet
      1. Se connecter à une ressource Internet
      2. Analyser des documents XML avec le parser XML Pull
    2. Créer une application affichant une liste des tremblements de terre
    3. Utilisation du gestionnaire de téléchargements
      1. Télécharger des fichiers
      2. Personnaliser les notifications du gestionnaire de téléchargements
      3. Préciser un emplacement pour les téléchargements
      4. Annuler et supprimer les téléchargements
      5. Interroger le gestionnaire de téléchargements
    4. Utilisation des services Internet
    5. Connexion à Google App Engine
    6. Conseils pour télécharger des données sans vider la batterie
  14. 7. Fichiers, sauvegarde de l'état et préférences
    1. Sauvegarder les données de base d'une application
    2. Créer et sauvegarder des préférences partagées
    3. Récupérer des préférences partagées
    4. Créer une activité pour les paramètres de l'application tremblements de terre
    5. Introduction au framework de préférences et à l'activité des préférences
      1. Définir un layout d'écran de préférences en XML
      2. Introduction aux fragments de préférences
      3. Définition de la hiérarchie des fragments de préférences à l'aide des en-têtes de préférences
      4. Introduction aux activités de préférences
      5. Compatibilité ascendante et écrans de préférences
      6. Retrouver et utiliser les préférences partagées configurées par les écrans de préférences
    6. Créer une activité de préférences standard pour l'application tremblements de terre
    7. Sauvegarder l'état d'une instance d'application
      1. Sauvegarder l'état de l'activité avec les préférences partagées
      2. Sauvegarder et restaurer l'état d'une instance d'activité avec les gestionnaires du cycle de vie
      3. Sauvegarder et restaurer l'état d'une instance de fragment en utilisant les gestionnaires du cycle de vie
    8. Inclusion de fichiers statiques comme ressources
    9. Utilisation du système de fichiers
      1. Outils de gestion des fichiers
      2. Utilisation de dossiers spécifiques à l'application pour stocker des fichiers
      3. Créer des fichiers privés à l'application
      4. Utiliser le cache de l'application
      5. Stocker des fichiers lisibles par tous
  15. 8. Bases de données et fournisseurs de contenu
    1. Introduction aux bases de données Android
      1. Fournisseurs de contenu
    2. Introduction à SQLite
    3. Curseurs et Content Values
    4. Utiliser des bases de données SQLite
      1. Introduction à SQLite OpenHelper
      2. Ouvrir et créer des bases de données sans SQLite OpenHelper
      3. Considérations sur la conception d'une base de données Android
      4. Interroger une base de données
      5. Extraire les résultats d'un curseur
      6. Ajouter, mettre à jour et supprimer des lignes
    5. Créer des fournisseurs de contenu
      1. Enregistrer les fournisseurs de contenu
      2. Publier l'URI de votre fournisseur de contenu
      3. Créer la base de données du fournisseur de contenu
      4. Implémenter les requêtes au fournisseur de contenu
      5. Stocker des fichiers dans un fournisseur de contenu
      6. Squelette d'implémentation d'un fournisseur de contenu
    6. Utiliser les fournisseurs de contenu
      1. Introduction aux résolveurs de contenu
      2. Effectuer des requêtes
      3. Faire des requêtes asynchrones avec un chargeur de curseur
      4. Ajouter, mettre à jour et supprimer du contenu
      5. Accéder à des fichiers stockés dans des fournisseurs de contenu
      6. Création d'une base de données et d'un fournisseur de contenu pour la liste de tâches
    7. Ajouter une fonctionnalité de recherche à vos applications
      1. Permettre de rechercher dans votre fournisseur de contenu
      2. Créer une activité de recherche pour votre application
      3. Faire de votre activité de recherche le fournisseur de recherche par défaut pour votre application
      4. Utiliser le widget de recherche
      5. Supporter les suggestions de recherche d'un fournisseur de contenu
      6. Afficher les résultats de la recherche dans la boîte de recherche rapide
    8. Créer un fournisseur de tremblements de terre avec la fonctionnalité de recherche
      1. Créer le fournisseur de contenu
      2. Utiliser le fournisseur de tremblements de terre
      3. Rechercher dans le fournisseur de tremblements de terre
    9. Fournisseurs de contenu Android natifs
      1. Utiliser le fournisseur de contenu MediaStore
      2. Utiliser le fournisseur de contenu ContactsContract
      3. Utiliser le fournisseur de contenu Calendar
  16. 9. Traitements en arrière-plan
    1. Introduction aux services
      1. Créer et contrôler des services
      2. Lier des services à des activités
    2. Utiliser les threads en arrière-plan
      1. Utiliser AsyncTask pour exécuter des tâches asynchrones
      2. Introduction à IntentService
      3. Introduction aux chargeurs
      4. Créer manuellement un thread et le synchroniser avec le thread de l'interface utilisateur
    3. Utiliser des alarmes
      1. Mettre en place des alarmes répétitives
      2. Utiliser les alarmes répétitives pour mettre à jour l'application tremblements de terre
    4. Utiliser un IntentService pour simplifier le service de mise à jour des tremblements de terre
  17. 10. Améliorer le confort de l'utilisateur
    1. Introduction à la barre d'action
      1. Personnaliser la barre d'action
      2. Personnaliser la barre d'action pour contrôler le comportement de la navigation dans l'application
      3. Introduction aux actions de la barre d'action
    2. Ajouter une barre d'action à l'application tremblements de terre
    3. Créer et utiliser des menus et des éléments de la barre d'action
      1. Introduction au système des menus Android
      2. Créer un menu
      3. Indiquer les actions de la barre d'action
      4. Options des entrées de menu
      5. Ajouter des vues d'action et des fournisseurs d'action
      6. Ajouter des entrées de menu à partir de fragments
      7. Définir des hiérarchies de menus en XML
      8. Mettre à jour dynamiquement les entrées de menu
      9. Gérer les sélections dans les menus
      10. Sous-menus et menus contextuels
    4. Rafraîchir le suivi des tremblements de terre
    5. Passer en plein écran
    6. Introduction aux dialogues
      1. Créer un dialogue
      2. Gérer et afficher des dialogues avec des fragments dialogues
      3. Gérer et afficher des dialogues au moyen des gestionnaires d'événements de l'activité
      4. Utiliser des activités comme dialogues
    7. Portons un toast
      1. Personnaliser les toasts
      2. Utiliser des toasts dans des threads
    8. Introduction aux notifications
    9. Introduction au gestionnaire de notifications
      1. Créer des notifications
      2. Configurer et personnaliser l'interface utilisateur du tiroir de notification
      3. Notifications continues et insistantes
      4. Déclencher, modifier et annuler des notifications
    10. Ajouter des notifications et des dialogues à l'application tremblements de terre
  18. 11. Techniques avancées pour le confort de l'utilisateur
    1. Concevoir pour toutes les tailles et toutes les densités d'écran
      1. Indépendance par rapport à la résolution
      2. Reconnaître différentes tailles d'écran et optimiser en conséquence
      3. Créer des ressources graphiques adaptables
      4. Créer des interfaces utilisateur optimisées, adaptables et dynamiques
      5. Tester, encore tester, toujours tester
    2. Garantir l'accessibilité
      1. Navigation sans écran tactile
      2. Fournir une description textuelle de chaque vue
    3. Introduction à la synthèse vocale
    4. Utiliser la reconnaissance vocale
      1. Utiliser la reconnaissance vocale pour les entrées
      2. Utiliser la reconnaissance vocale pour les recherches
    5. Contrôler la vibration du terminal
    6. Utiliser les animations
      1. Animations de propriétés
    7. Améliorer vos vues
      1. Utilisation avancée du canevas
      2. Accélération matérielle
      3. Introduction aux SurfaceView
      4. Créer des contrôles interactifs
    8. Ressources drawables avancées
      1. Drawables composés
    9. Copier, coller et le bloc-notes
      1. Copier des données dans le bloc-notes
      2. Coller des données du bloc-notes
  19. 12. Capteurs
    1. Utilisation des capteurs et du gestionnaire de capteurs
      1. Capteurs supportés
      2. Introduction aux capteurs virtuels
      3. Trouver les capteurs
      4. Surveiller les capteurs
      5. Interpréter les valeurs des capteurs
      6. Déterminer l'orientation naturelle d'un appareil
      7. Introduction aux accéléromètres
      8. Détecter les changements d'accélération
      9. Déterminer votre orientation
      10. Créer une boussole et un horizon artificiel
      11. Introduction au gyroscope
    2. Introduction aux capteurs environnementaux
      1. Utiliser le baromètre
      2. Créer une station météorologique
  20. 13. Cartes, géocodage et services de géolocalisation
    1. Utiliser les services de géolocalisation
      1. Utiliser l'émulateur avec les services de géolocalisation
    2. Mettre à jour les positions dans l'émulateur
      1. Configurer l'émulateur pour tester les services de géolocalisation
    3. Sélectionner un fournisseur de localisation
      1. Trouver les fournisseurs de localisation disponibles
      2. Trouver des fournisseurs de localisation à l'aide de critères
      3. Déterminer les possibilités d'un fournisseur de localisation
    4. Déterminer votre position
      1. Confidentialité de la localisation
      2. Trouver le dernier emplacement connu
      3. Exemple “Où suis-je ?”
      4. Rafraîchir la position courante
      5. Mettre à jour votre position dans “Où suis-je ?”
      6. Demander une mise à jour unique de la position
    5. Conseils pour les mises à jour de la position
      1. Surveiller l'état et la disponibilité des fournisseurs de localisation
    6. Utiliser les alertes de proximité
    7. Utiliser le géocodeur
      1. Géocodage inverse
      2. Géocodage avant
      3. Géocoder “Où suis-je ?”
    8. Créer des activités géographiques
      1. Introduction à MapView et MapActivity
      2. Obtenir votre clé d'API
      3. Créer une activité géographique
      4. Cartes et fragments
      5. Configurer et utiliser les MapView
      6. Utiliser le MapController
      7. Cartographier “Où suis-je ?”
      8. Créer et utiliser les couches
      9. Présentation de MyLocationOverlay
      10. Introduction à ItemizedOverlay et à OverlayItems
      11. Épingler des vues à une carte et à des positions
    9. Cartographier l'application tremblements de terre
  21. 14. Investir l'écran d'accueil
    1. Introduction aux widgets de l'écran d'accueil
    2. Créer des AppWidget
      1. Créer le layout du widget
      2. Définir les paramètres de votre widget
      3. Créer le récepteur de diffusion de votre widget et l'ajouter au manifeste de l'application
      4. Introduction au gestionnaire de widgets et aux RemoteViews
      5. Rafraîchir vos widgets
      6. Créer et utiliser une activité de configuration de widget
    3. Créer un widget pour l'application tremblements de terre
    4. Introduction aux widgets collections
      1. Créer des layouts de widgets collections
      2. Créer le service de vues distantes
      3. Créer une fabrique de vues distantes
      4. Remplir les widgets collections avec un service de vues distantes
      5. Ajouter de l'interactivité aux éléments d'un widget collection
      6. Lier les widgets collections aux fournisseurs de contenu
      7. Rafraîchir vos widgets collections
      8. Créer un widget collection pour les tremblements de terre
    5. Introduction aux Live Folders
      1. Créer des Live Folders
      2. Créer un Live Folder pour l'application tremblements de terre
    6. Ajouter des fonctions de recherche à vos applications avec la boîte de recherche rapide
      1. Remonter les résultats d'une recherche dans la boîte de recherche rapide
      2. Ajouter les résultats de la recherche des tremblements de terre à la boîte de recherche rapide
    7. Créer un fond d'écran animé (Live Wallpaper)
      1. Créer une ressource de définition d'un fond animé
      2. Créer un service de fond d'écran
      3. Créer un moteur de service de fond d'écran
  22. 15. Audio, vidéo et utilisation de l'appareil photo
    1. Lire des fichiers audio et vidéo
      1. Introduction au MediaPlayer
      2. Préparer la lecture d'un fichier audio
      3. Préparer la lecture d'une vidéo
      4. Contrôler la lecture du MediaPlayer
      5. Gérer la restitution de la lecture
      6. Répondre au contrôle de volume
      7. Répondre aux contrôles de lecture
      8. Demander et gérer le focus audio
      9. Mettre en pause la lecture lorsque la sortie change
      10. Introduction au client de contrôle distant
    2. Manipuler des fichiers audio bruts
      1. Enregistrer du son à l'aide d'AudioRecord
      2. Lire un son avec Audio Track
    3. Créer un SoundPool
    4. Utiliser des effets audio
    5. Utiliser l'appareil photo
      1. Utiliser les intentions pour prendre des photos
      2. Contrôler directement l'appareil photo
      3. Lire et écrire les informations JPEG EXIF d'une image
    6. Enregistrer de la vidéo
      1. Utiliser les intentions pour enregistrer une vidéo
      2. Utiliser le MediaRecorder
    7. Utiliser des effets visuels
    8. Ajouter un média au MediaStore
      1. Utiliser le MediaScanner
      2. Insérer manuellement un média
  23. 16. Bluetooth, NFC, réseaux et Wi-Fi
    1. Utiliser Bluetooth
      1. Gérer l'adaptateur Bluetooth local
      2. Pouvoir être découvert et découverte de périphériques
      3. Communications Bluetooth
    2. Gérer les connexions réseau et Internet
      1. Introduction au ConnectivityManager
      2. Utiliser les préférences de l'utilisateur pour le transfert de données en arrière-plan
      3. Trouver et surveiller la connexion réseau
    3. Gérer le Wi-Fi
      1. Surveiller la connectivité Wi-Fi
      2. Surveiller les détails de la connexion Wi-Fi active
      3. Rechercher des points d'accès Wi-Fi
      4. Gérer les configurations Wi-Fi
      5. Créer des configurations Wi-Fi
    4. Transférer des données avec Wi-Fi Direct
      1. Initialiser le framework Wi-Fi Direct
      2. Activer Wi-Fi Direct et surveiller son état
      3. Rechercher des pairs
      4. Se connecter aux pairs
      5. Transférer des données entre pairs
    5. Communication NFC
      1. Lire les étiquettes NFC
      2. Utiliser le système de répartition au premier plan
      3. Introduction à Android Beam
  24. 17. Téléphonie et SMS
    1. Support matériel de la téléphonie
      1. Indiquer que la téléphonie est une fonctionnalité matérielle requise
      2. Tester la présence du matériel de téléphonie
    2. Utiliser la téléphonie
      1. Lancer des appels téléphoniques
      2. Remplacer le composeur natif
      3. Accéder à l'état du téléphone et aux propriétés de la téléphonie
      4. Surveiller les changements d'état du téléphone avec un PhoneStateListener
      5. Surveiller les appels entrants
    3. Introduction aux SMS et MMS
      1. Utiliser les SMS et les MMS dans votre application
      2. Envoyer des SMS et des MMS depuis votre application à l'aide d'intentions
      3. Envoyer des SMS avec le gestionnaire de SMS
      4. Écouter les SMS entrants
      5. Exemple de répondeur d'urgence
      6. Automatiser le répondeur d'urgence
    4. Introduction à SIP et à la VOIP
  25. 18. Développement Android avancé
    1. Android et paranoïa
      1. Sécurité du noyau Linux
      2. Introduction aux permissions
      3. Déclarer et mettre en œuvre les permissions
      4. Mettre en œuvre les permissions pour les intentions
    2. Introduction à la messagerie Cloud to Device
      1. Limites de C2DM
      2. S'inscrire pour utiliser C2DM
      3. Inscrire les terminaux auprès d'un serveur C2DM
      4. Envoyer des messages C2DM aux terminaux
      5. Recevoir des messages C2DM
    3. Implémenter la protection contre la copie avec la bibliothèque de vérification des licences (LVL)
      1. Installer la bibliothèque de vérification des licences
      2. Trouver votre clé publique de vérification de licence
      3. Configurer votre politique de validation de licence
      4. Effectuer les vérifications de licence
    4. Introduction à la facturation depuis les applications (In-App Billing)
      1. Restrictions sur l'utilisation de la facturation In-App
      2. Installer la bibliothèque de facturation In-App
      3. Trouver votre clé publique et définir les éléments achetables
      4. Lancer des transactions de facturation In-App
      5. Gérer les réponses aux demandes de facturation In-App
    5. Utiliser les Wake Locks
    6. Utiliser AIDL pour les IPC entre services
      1. Implémenter une interface AIDL
    7. Gérer la disponibilité sur des versions et des matériels différents
      1. Indiquer le matériel requis
      2. Confirmer la disponibilité du matériel
      3. Construire des applications compatibles avec l'existant
    8. Optimiser les performances de l'interface utilisateur avec le mode strict
  26. 19. Vendre, promouvoir et distribuer des applications
    1. Signer et publier les applications
      1. Signer les applications avec l'assistant Export Android Application
    2. Distribuer les applications
      1. Introduction à Google Play
      2. Débuter avec Google Play
      3. Publier les applications
      4. Rapports dans la console du développeur
      5. Accéder aux rapports d'erreurs de l'application
    3. Gagner de l'argent avec vos applications
    4. Stratégies de marketing, de promotion et de distribution
      1. Stratégies de lancement d'une application
      2. Promotion avec Google Play
      3. Internationalisation
    5. Analyses et suivis
      1. Utiliser Google Analytics pour les applications mobiles
      2. Suivi des liens avec Google Analytics
  27. Index