Try   HackMD

2021-02-17 | Android | Introduction

tags: kotlin android gobelins

Android

  • Système d'exploitation open source, public
  • Utilisé par plusieurs fabriquants (Samsung, Huawei, Google, Motorola)
  • Plusieurs gammes possibles (50€ -> 2000€)

Playstore

  • Distribuer les applications android
  • Utilisé par google pour maintenir les app
  • Avoir un compte pour publier des applications (25$) -> Licence à vie pour publier des applications en nombre illimité
  • Mettre à jour les applications des utilisateurs
  • Possibilité de payer des couts supplémentaire pour le marketing

Android SDK

  • Kit de développement pour faciliter le dev
  • Librairie haut/bas niveau
  • Différents outils pour faciliter le dev (émulateurs, logcat)
  • Exemples de code (Nouvelles fonctionnalités)

Android Studio

  • Basé sur IntelIJ
  • IDE officiel de Android
  • Configuration prête (SDK, outils, émulateurs, compilation, debugage, publication)

Architecture

  1. Basé sur Linux (kernel, noyau linux) -> gérer le hardware/driver du téléphone (écran, caméra, BLE, mémoire)
  2. Librairies bas niveau (C, C++) -> base de données
  3. Librairies hauts niveau (Java, Kotlin) -> Faire les actions visibles sur le téléphone (classes et méthode déjà créées)

Les lib de bas niveau peuvent être utilisés pour le développement avec le hardware

Les lib de hauts niveau proposent des méthodes que l'on peut utiliser aisément (qui utilisent les lib bas niveau). Elle permettent de gérer les interfaces, d'accéder à la position de l'utilisateur (sans avoir à tout redévelopper)
Permet de récupérer des données avec une simple méthode déjà développée

Applications

  • Système : fourni de base par le système d'exploitataion (appel, géolocalisation, contact, sms) (via Google ou surcouche fabriquant)
  • Utilisateurs : proposer des services supplémentaires

Environnement d'exécution (ou Sandbox)

  • Les applications sont isolées dans leur propre environnement
  • Garantie la sécurité des utilisateurs et du système d'exploitation
  • Une app = des ressources dédiées (pas accessibles pas une autre application)
  • Gestion des données d'une application
  • Chaque application va ouvrir une nouvelle session linux

Contraintes du dév mobile

  • Plusieurs résolutions d'écrans
  • Ressources limités (mémoire vive/morte, batterie, processeur)
  • Sécurité (données des utilisateurs)
  • Evolution (gérer la rétro compatibilité des versions, des configurations) -> 1 version par an

Développement - Prérequis

  • POO
  • Java et Kotlin
  • XML

Déploiement d'une application

  • Nom du package unique (pour créer et mettre à jour)
  • Certificat unique pour valider la mise à jour et certifier que l'on en est bien l'auteur -> Clé à protéger et à conserver
  • Version minimum du téléphone -> couvrir un maximum de téléphones (donc prendre une petite version)