Nouvelles

Développer pour Android 11 & 12 avec Delphi 11 Alexandria

Android 11 est livré sur la plupart des nouveaux téléphones, mais Android 12 a été déployé partout sur les appareils Pixel. Rejoignez ce webinaire pour voir ce qui a changé dans ces dernières versions d’Android et découvrez quelques bonnes pratiques pour le développement d’Android avec des conseils pour cibler les dernières versions du système d’exploitation le plus populaire.

Afficher ou télécharger Google Slides

Table des matières

Part de marché des systèmes d’exploitation pour ordinateurs de bureau, mobiles et tablettes dans le monde

android-01-2631846-2

https://gs.statcounter.com/os-market-share/desktop-mobile-tablet/worldwide/#monthly-200901-202201

Part de marché des fabricants de téléphones mobiles dans le monde (janvier 2020 – janvier 2022)

android-02-1282266-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Part de marché des fabricants de téléphones mobiles dans le monde (janvier 2022)

android-03-5514738-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Part de marché Android vs iOS dans le monde (janvier 2020 – janvier 2022)

android-04-9694559-2

https://gs.statcounter.com/vendor-market-share/mobile/worldwide/#monthly-202001-202202

Part de marché de la version mobile Android dans le monde (janvier 2020 – janvier 2022)

android-05-3367558-2

https://gs.statcounter.com/android-version-market-share/mobile/worldwide/#monthly-202001-202201

Version mobile Android – Part de marché dans le monde (janvier 2022)

android-06-3847722-2

Android 11 est le leader actuel ( les versions 9 à 11 représentent 76,4%)

  • Android 12 est sorti le 4 octobre 2021
  • Android 11 est sorti le 8 septembre 2020
  • Android 10 est sorti le 3 septembre 2019
  • Android 9 est sorti le 6 août 2018
  • Androïd 12 = API 31
  • Androïd 11 = API 30
  • Android 10 = API 29
  • Android 9 = API 28 (Tarte)

https://gs.statcounter.com/android-version-market-share/mobile/worldwide/#monthly-202001-202201

Exigences de sécurité et de performances d’Android Play

  • Chaque année, l’exigence de targetSdkVersion progressera. Dans l’année suivant chaque androïde
  • version, les nouvelles applications et les mises à jour d’applications devront cibler le niveau d’API mis à jour ou supérieur.
  • Novembre 2021 :
    • API cible niveau 30 (Android 11)
    • Publiez au format Android App Bundle.
  • Requis par Google Play Console
  • Voir le guide de migration de l’API pour les autres changements : developer.android.com/distribute/best-practices/develop/target-sdk

Changements Android dans Delphi 11

android-14-1711493-2

*** – link

docwiki.embarcadero.com/RADStudio/Alexandria/en/What%27s_New

Prise en charge d’Android 12 ?

android-07-6407549-2

Mise à niveau de projets Android existants

● Ouvrez une génération de projet Android avec une version plus ancienne.
● Accédez à la fenêtre ancrable Projets.
● Sélectionnez Android 32 bits comme plate-forme cible active.
● Cliquez avec le bouton droit sur le nœud Bibliothèques.
● Cliquez sur Rétablir les fichiers système par défaut.
● Personnalisez avec des bibliothèques tierces, etc.
● Répétez l’opération pour Android-64.

Mettre à jour vos outils Android

  • Delphi installe éventuellement Android SDK 25.2.5 et les mises à jour lors de l’installation
  • Ajoutez ADB à votre chemin :
    • C:UsersPublicDocumentsEmbarcaderoStudio22.0CatalogRepositoryAndroidSDK-2525-22.0.42600.6491platform-tools
  • Ajoutez SDKManager à votre chemin :
    • C:UsersPublicDocumentsEmbarcaderoStudio22.0CatalogRepositoryAndroidSDK-2525-22.0.42600.6491toolsbin
  • Cours:
    • adb kill-serveur
    • Gestionnaire de SDK —mise à jour
    • version adb
  • Si vous obtenez une erreur « .android/repositories.cfg n’a pas pu être chargé. »
    • Vérifiez que vous avez un dossier .android dans votre répertoire utilisateur
    • Créer un fichier repositories.cfg vide
  • Dernière version (à partir de février 2022)
    • Pont de débogage Android version 1.0.41
    • Version 32.0.0-8006631

Débogage sans fil

  • Ajouté dans Android 11 (API 30)
  • Entrez en mode développeur sur Android (appuyez sept fois sur « Build Number »)
  • Activer le débogage sans fil
    • Options pour les développeurs -> Débogage sans fil
    • Appuyez sur « Appairer l’appareil avec le code d’appairage »
    • Cochez « Toujours autoriser sur ce réseau », puis appuyez sur « Autoriser » lorsque vous y êtes invité.
  • À partir de Windows CMD
    • serveur de démarrage adb
    • paire adb [ip] : [port] (à partir de la boîte de dialogue de couplage)
    • [code d’association]
    • adb connect [ip] : [port] (à partir de l’écran de débogage sans fil)
  • Actualiser les appareils dans l’IDE

Format d’ensemble d’applications Android

Permet à Google Play d’utiliser le modèle de service d’application Dynamic Delivery pour générer des fichiers APK optimisés pour chaque appareil.

  • Projet > Options > Construction > Compilateur Delphi > Compilation
  • Générer le fichier Android App Bundle (arm + arm64)

Lors d’une génération réussie d’app bundle, l’IDE présente une boîte de dialogue contenant le chemin du fichier .aab.

Remarque : Vous ne pouvez pas exécuter ou déboguer un App Bundle. Pour déboguer l’application, vous devez utiliser le format de package .APK

docwiki.embarcadero.com/RADStudio/en/Submitting_Your_Android_App_to_Google_Play#Android_App_Bundle_Support

Nouveau modèle d’autorisation d’exécution Android

  • Introduit dans Android 6.0 (API 23) Marshmallow
    • La bibliothèque de support couvre les versions antérieures d’Android
  • Un nouveau modèle rationalise le processus de mise à jour automatique
    • Approbation des autorisations déclenchée à la première utilisation
    • Au lieu d’approuver toutes les autorisations lors de l’installation
  • Donne aux utilisateurs finaux plus de contrôle sur les autorisations
    • Les autorisations individuelles peuvent être accordées ou refusées par application, et modifiées ultérieurement
  • Géré via de nouvelles méthodes d’API Android checkSelfPermission() & requestPermissions()

Plus d’informations developer.android.com/training/permissions/requesting

Ancienne boîte de dialogue d’approbation des autorisations

  • Lors de l’installation, toutes les autorisations sont acceptées
  • L’utilisateur ne peut pas refuser les autorisations individuelles
  • Toutes les autorisations publiées dans le manifeste
  • Si les autorisations changent, le doit être approuvé avant la mise à jour

Nouvelle boîte de dialogue d’approbation d’autorisation

  • La première fois que vous demandez l’autorisation individuelle, l’utilisateur a la possibilité de refuser ou d’autoriser
  • Si l’utilisateur refuse une fois, il peut empêcher l’application de demander à nouveau
  • Il est important de savoir quand et comment vous demandez (plus à ce sujet plus tard)
  • Toutes les autorisations encore publiées dans le manifeste

Les utilisateurs disposent désormais d’un contrôle d’autorisation granulaire

android-10-7920934-2

Dangereuxvs.Normal Autorisations

  • L’utilisateur n’est pas invité àNormalautorisations
    • Exemples : Internet, Vibreur, Bluetooth, etc.
  • L’utilisateur doit approuverDangereuxautorisations
    • Généralement, ceux-ci impliquent la confidentialité ou un coût potentiel
    • Ils sont regroupés en groupes d’autorisation :
      • Calendrier, journal des appels, appareil photo, contacts, emplacement, microphone, téléphone, capteurs, SMS et stockage
    • L’utilisateur approuve un groupe entier
      • Par exemple, envoyer et recevoir des SMS
  • Le développeur doit toujours déclarer et demander toutes les autorisations du système d’exploitation dans le manifeste.

Plus d’informations developer.android.com/guide/topics/permissions/overview

Comment demander une autorisation – Delphi

android-09-5835008-2

Plus d’informations : docwiki.embarcadero.com/RADStudio/en/Android_Permission_Model

Le service des autorisations

Méthode IsPermissionGrantedIsPermissionGranted MethodIsPermissionGranted MethodIsPermissionGranted Method

  • Membre de System.Permissions.TPermissionsService
    • fonction IsPermissionGranted(const APermission : chaîne) : booléen ;
  • Découvrez si une autorisation est actuellement accordée à l’application
    • Ne présumez jamais qu’il est toujours accordé
  • S’il n’y a pas de service d’autorisations de plate-forme implémenté pour effectuer une vérification, il répond par défaut que toutes les autorisations sont accordées

Méthode IsEveryPermissionGrantedIsEveryPermissionGranted Method

Demander des autorisations

  • Membre de System.Permissions.TPermissionsService
    • procédure RequestPermissions(
    • const APermissions : TArray<string> ;
    • const AOnRequestPermissionsResult :
    • TRequestPermissionsResult[Événement|Proc] ;
    • AOnDisplayRationale : TDisplayRationale[Event|Proc] = nil );
  • Demander une ou plusieurs autorisations
  • Toutes les autorisations qui ne sont pas actuellement accordées seront demandées.
  • Auparavant, une justification peut être affichée à l’utilisateur lorsqu’une chaîne de justification a été définie pour l’autorisation en question demandant à nouveau une autorisation précédemment refusée une routine d’affichage de justification est transmise
  • docwiki:Bibliothèques/System.Permissions.TPermissionsService.RequestPermissions

TRequestPermissionsResult[Événement|Proc]

Quand demander des autorisations

android-11-5541305-2

Quand demander –CritiqueAutorisations

android-12-6122915-2

Quand demander –SecondaireAutorisations

android-13-5454135-2

Autres bonnes pratiques

Plus d’information

Prochaines étapes

Passez à Delphi 11 aujourd’hui embarcadero.com/products/delphi


Coding Boot Camp

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

À propos de l'auteur

Défenseur des développeurs en chef pour Embarcadero Technologies.

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

IN THE ARTICLES