Prise en charge de plusieurs fenêtres

Sous Android 7.0 et versions ultérieures, les appareils peuvent afficher plusieurs applications simultanément à l'aide de plusieurs fenêtres. Android prend en charge trois configurations multi-fenêtres :

  • L'écran partagé est l'implémentation multi-fenêtres 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'avoir plus de deux applications visibles sur leur écran.
  • L'image dans l'image (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.

Mise en œuvre

La prise en charge de plusieurs fenêtres est activée par défaut dans Android 7.0 et versions ultérieures. Pour le désactiver, définissez l'indicateur config_supportsMultiWindow sur false dans le fichier config.xml de votre appareil.

La multi-fenêtre est désactivée par défaut sur tous les appareils à faible RAM (appareils qui déclarent ActivityManager.isLowRam() ). Les périphériques à faible RAM ignorent la valeur de l'indicateur config_supportsMultiWindow .

Écran divisé

L'expérience par défaut de plusieurs fenêtres est le mode écran partagé, où 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, selon l'orientation de l'appareil.

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

Android 8.0 et versions ultérieures améliorent l'écran partagé en compressant le lanceur lorsque l'utilisateur appuie sur Accueil . Pour plus de détails sur la mise en œuvre, consultez Interactions en écran partagé .

Forme libre

Après avoir activé le mode multi-fenêtres 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, tels que les tablettes.

Pour prendre en charge le mode forme 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>
    

Image dans l'image

Après avoir activé le mode multi-fenêtres avec l'indicateur config_supportsMultiWindow , les fabricants d'appareils peuvent prendre en charge l'image dans l'image , 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 Television, d'autres types d'appareils peuvent prendre en charge cette fonctionnalité.

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

Pour plus de détails sur la mise en œuvre de PIP pour les appareils exécutant Android 8.0 et versions ultérieures, consultez la page Image dans l'image .

Interface utilisateur du système

Prend en charge toutes les interfaces utilisateur système standard conformément à la documentation du développeur multi-fenêtres .

applications

Pour prendre en charge le mode multi-fenêtres pour les applications préchargées, consultez la documentation du développeur Android .

Validation

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

Pour Android 7.0, les tests se trouvent dans /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts . Sous Android 8.0 et supérieur, les tests se trouvent dans /platform/cts/tests/framework/base/activitymanager/src/android/server/am .