Prise en charge du mode multifenêtre

Sous Android 7.0 et versions ultérieures, les appareils peuvent afficher plusieurs applications simultanément à l'aide du mode multifenêtre. Android est compatible avec trois configurations multifenêtre:

  • L'écran partagé est l'implémentation multifenêtre par défaut, qui fournit deux volets d'activité dans lesquels les utilisateurs peuvent placer des applications.
  • Freeform permet aux utilisateurs de redimensionner dynamiquement les volets d'activité et d'afficher plus de deux applications à l'écran.
  • Le mode Picture-in-picture (PIP) permet aux appareils Android de lire du contenu vidéo dans une petite fenêtre pendant que l'utilisateur interagit avec d'autres applications.

Implémentation

La prise en charge du mode multifenêtre est activée par défaut sous Android 7.0 ou version ultérieure. Pour le désactiver, définissez l'indicateur config_supportsMultiWindow sur false dans le fichier config.xml de votre appareil.

La multifenêtre est désactivée par défaut sur tous les appareils à faible RAM (appareils qui déclarent ActivityManager.isLowRam()). Les appareils à faible RAM ignorent la valeur du flag config_supportsMultiWindow.

Écran partagé

L'expérience multifenêtre par défaut est le mode Écran partagé, dans lequel l'interface utilisateur du système est divisée au milieu de l'appareil en mode portrait ou paysage. Les utilisateurs peuvent redimensionner la fenêtre en faisant glisser la ligne de séparation d'un côté à l'autre ou de haut en bas, en fonction de l'orientation de l'appareil.

Après avoir activé l'écran partagé, les fabricants d'appareils peuvent choisir d'activer le mode libre ou PIP.

Android 8.0 et versions ultérieures améliorent l'écran partagé en comprimant le lanceur d'applications lorsque l'utilisateur appuie sur Accueil. Pour en savoir plus sur l'implémentation, consultez la section Interactions en mode écran partagé.

Freeform

Après avoir activé le mode multifenêtre avec l'indicateur config_supportsMultiWindow, les fabricants d'appareils peuvent autoriser le fenêtrage de forme libre. Ce mode est particulièrement utile sur les appareils plus grands, comme les tablettes.

Pour prendre en charge le mode de dessin libre, activez la fonctionnalité système PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT dans /android/frameworks/base/core/java/android/content/pm/PackageManager.java et définissez config_freeformWindowManagement sur true dans config.xml..

    <bool name="config_freeformWindowManagement">true</bool>
    

Picture-in-picture

Après avoir activé le mode multifenêtre avec l'indicateur config_supportsMultiWindow, les fabricants d'appareils peuvent prendre en charge le mode Picture-in-picture, qui permet aux utilisateurs de regarder des vidéos tout en parcourant d'autres activités. Bien que cette fonctionnalité soit destinée aux appareils Android TV, d'autres types d'appareils peuvent être compatibles.

Pour prendre en charge le PIP, activez la fonctionnalité système PackageManager#FEATURE_PICTURE_IN_PICTURE dans /android/frameworks/base/core/java/android/content/pm/PackageManager.java.

Pour en savoir plus sur l'implémentation du mode Picture-in-picture sur les appareils équipés d'Android 8.0 ou version ultérieure,consultez la page Picture-in-picture.

UI du système

Prise en charge de toutes les UI système standards conformément à la documentation destinée aux développeurs sur le mode multifenêtre.

Applis

Pour prendre en charge le mode multifenêtre pour les applications préchargées, consultez la documentation destinée aux développeurs Android.

Validation

Pour valider votre implémentation du multifenêtre, exécutez les tests CTS associés et suivez les instructions de test pour le multifenêtre.

Pour Android 7.0, les tests se trouvent dans /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts. Sur Android 8.0 et versions ultérieures, les tests se trouvent dans /platform/cts/tests/framework/base/activitymanager/src/android/server/am.