From 1594b3f7215e5f8b7f2f3d9a1b8673fd23bdd31c Mon Sep 17 00:00:00 2001 From: Andrew Solovay Date: Wed, 24 Feb 2016 15:11:07 -0800 Subject: [PATCH] docs: New doc for N Preview Multi-Window feature. See first comment for doc stage location. bug: 26558855 Change-Id: I1c5f1838c4fa359c346bd996e90ed2f383ba1d57 --- docs/html/preview/features/multi-window.jd | 505 ++++++++++++++++++++ docs/html/preview/images/mw-splitscreen.png | Bin 0 -> 28437 bytes 2 files changed, 505 insertions(+) create mode 100644 docs/html/preview/features/multi-window.jd create mode 100644 docs/html/preview/images/mw-splitscreen.png diff --git a/docs/html/preview/features/multi-window.jd b/docs/html/preview/features/multi-window.jd new file mode 100644 index 0000000000000..6c5a5cb2aaf9b --- /dev/null +++ b/docs/html/preview/features/multi-window.jd @@ -0,0 +1,505 @@ +page.title=N Developer Preview Multi-Window Support +page.metaDescription=New support in the N Developer Preview for showing more than one app at a time. +page.keywords="multi-window", "android N", "split screen", "free-form" + +@jd:body + +
+ +
+ +

+ The N Developer Preview adds support for displaying more than one app at the + same time. On handheld devices, two apps can run side-by-side or + one-above-the-other in split-screen mode. On TV devices, apps can + use picture-in-picture mode to continue video playback while users + are interacting with another app. +

+ +

+ If you build your app with the N Preview SDK, you can configure how your app + handles multi-window display. For example, you can specify your activity's + minimum allowable dimensions, preventing users from making the activity + window smaller than that size. You can also disable multi-window display for + your app, ensuring that the system only shows your app in full-screen + mode. +

+ +

Overview

+ +

+ The N Developer Preview allows several apps to share the screen at once. For + example, a user could split the screen, viewing a web page on the left side + while composing an email on the right side. The user experience depends on + the device: +

+ + + + +

+ Figure 1. Two apps running side-by-side in split-screen mode. +

+ +

+ The user can switch into multi-window mode in the following ways: +

+ + + +

Multi-Window Lifecycle

+ +

+ Multi-window mode does not change the activity + lifecycle. +

+ +

+ In multi-window mode, only the activity the user has most recently interacted + with is active at a given time. This activity is considered topmost. + All other activities are in the paused state, even if they are visible. + However, the system gives these paused-but-visible activities higher priority + than activities that are not visible. If the user interacts with one of the + paused activities, that activity is resumed, and the previously topmost + activity is paused. +

+ +

+ Note: In multi-window mode, an app can be in the paused + state and still be visible to the user. An app might need to continue its + activities even while paused. For example, a video-playing app that is in + paused mode but is visible should continue showing its video. +

+ +

+ When the user puts an app into multi-window mode, the system notifies the + activity of a configuration change, as specified in Handling Runtime + Changes. Essentially, this change has the same activity-lifecycle + implications as when the system notifies the app that the device has switched + from portrait to landscape mode, except that the device dimensions are + changed instead of just being swapped. As discussed in Handling Runtime + Changes, your activity can handle the configuration change itself, or it + can allow the system to destroy the activity and recreate it with the new + dimensions. +

+ +

+ If the user is resizes a window and makes it larger in either dimension, + the system fills in the expanded + area with the color specified by the {@link android.R.attr#windowBackground + windowBackground} attribute, or by the default + windowBackgroundFallback style attribute. When the user finishes + resizing the window, the activity is redrawn with its new dimensions, as + described in Handling Runtime + Changes. +

+ +

Configuring Your App for Multi-Window Mode

+ +

+ If your app targets the N Developer Preview, you can configure how and + whether your app's activities support multi-window display. You can set + attributes in your manifest to control both size and layout. + A root activity's attribute settings apply to all activities + within its task stack. +

+ +

+ Note: If you build a multi-orientation app with a version of the + SDK earlier than the N Developer Preview, and the user uses the app in + multi-window mode, the system forcibly resizes the app. The system presents a + dialog box warning the user that the app may behave unexpectedly. The system + does not resize fixed-orientation apps; if + the user attempts to open a fixed-orientation app under multi-window mode, + the app takes over the whole screen. +

+ +

android:resizeableActivity

+

+ Set this attribute in your manifest's <activity> or + <application> node to enable or disable multi-window + display: +

+ +
+android:resizableActivity=["true" | "false"]
+
+ +

+ If this attribute is set to true, the activity can be launched in + split-screen and freeform modes. If the attribute is set to false, the + activity does not support multi-window mode. If this value is false, and the + user attempts to launch the activity in multi-window mode, the activity takes + over the full screen. +

+ +

+ If your app targets the N Developer Preview, but you do not specify a value + for this attribute, the attribute's value defaults to true. +

+ +

android:supportsPictureInPicture

+ +

+ Set this attribute in your manifest's <activity> node to + indicate whether the activity supports picture-in-picture display. +

+ +
+android:supportsPictureInPicture=["true" | "false"]
+
+ +

Layout attributes

+ +

+ With the N Developer Preview, the <layout> manifest element + supports several attributes that affect how an activity behaves in + multi-window mode: +

+ +
+
+ android:defaultWidth +
+ +
+ Default width of the activity when launched in freeform mode. +
+ +
+ android:defaultHeight +
+ +
+ Default height of the activity when launched in freeform mode. +
+ +
+ android:gravity +
+ +
+ Initial placement of the activity when launched in freeform mode. See the + {@link android.view.Gravity} reference for suitable values. +
+ +
+ android:minimalSize +
+ +
+ Minimum height and minimum width for the activity in both split-screen + and freeform modes. The system does not permit the user to resize the + activity below the specified size in either dimension. +
+
+ +

+ For example, the following code shows how to specify an activity's default + size and location, and its minimum size, when the activity is displayed in + freeform mode: +

+ +
+<activity android:name=".MyActivity">
+    <layout android:defaultHeight="500dp"
+          android:defaultWidth="600dp"
+          android:gravity="top|end"
+          android:minimalSize="450dp" />
+</activity>
+
+ +

Running Your App in Multi-Window Mode

+ +

+ The N Developer Preview offers new functionality to support apps that can run + in multi-window mode. +

+ +

Disabled features in multi-window mode

+ +

+ Certain features are disabled or ignored when a device is in multi-window + mode, because they don’t make sense for an activity which may be sharing the + device screen with other activities or apps. Such features include: + +

+ +

Multi-window change notification and querying

+ +

+ The following new methods have been added to the {@link android.app.Activity} + class to support multi-window display. For details on each method, see the + + N Preview SDK Reference. +

+ +
+
+ Activity.inMultiWindow() +
+ +
+ Call to find out if the activity is in multi-window mode. +
+ +
+ Activity.inPictureInPicture() +
+ +
+ Call to find out if the activity is in picture-in-picture mode. + +

+ Note: Picture-in-Picture mode is a special case of + multi-window mode. If myActivity.inPictureInPicture() + returns true, then myActivity.inMultiWindow() also returns + true. +

+
+ +
+ Activity.onMultiWindowChanged() +
+ +
+ The system calls this method whenever the activity goes into or out of + multi-window mode. The system passes the method a value of true if the + activity is entering multi-window mode, and false if the activity is + leaving multi-window mode. +
+ +
+ Activity.onPictureInPictureChanged() +
+ +
+ The system calls this method whenever the activity goes into or out of + picture-in-picture mode. The system passes the method a value of true if + the activity is entering picture-in-picture mode, and false if the activity + is leaving picture-in-picture mode. +
+
+ +

+ There are also {@link android.app.Fragment} versions of each of these + methods, for example Fragment.inMultiWindow(). +

+ +

Entering Picture-in-Picture Mode

+ +

+ To put an activity in picture-in-picture mode, call the new method + Activity.enterPictureInPicture(). This method has no effect if + the device does not support picture-in-picture mode. For more information, + see + Picture-in-Picture Mode. +

+ +

Launch New Activities in Multi-Window Mode

+ +

+ When you launch a new activity, you can hint to the system that the new + activity should be displayed adjacent to the current one, if possible. To do + this, use the flag + Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT. Passing + this flag requests the following behavior: +

+ + + +

+ If a device is in freeform mode and you are launching a new activity, you can + specify the new activity's dimensions and screen location by calling + ActivityOptions.setLaunchBounds(). This method has no effect if + the device is not in multi-window mode. +

+ +

+ Note: If you launch an activity within a task stack, the + activity replaces the activity on the screen, inheriting all of its + multi-window properties. If you want to launch the new activity as a separate + window in multi-window mode, you must launch it in a new task stack. +

+ +

Testing Your App's Multi-Window Support

+ +

+ Whether or not you update your app for the N Developer Preview, you should + verify how it behaves in multi-window mode in case a user tries to launch it + in multiwindow mode on a device running the N Developer Preview. +

+ +

Configuring a Test Device

+ +

+ If you install the N Developer Preview on a device, split-screen mode is + automatically supported. +

+ +

If your app was not built with the N Preview SDK

+ +

+ If you did not build your app with the N Preview SDK and the user attempts to use + the app in multi-window mode, the system forcibly resizes the app unless the app + declares a fixed orientation. +

+ +

+ If your app does not declare a fixed orientation, you should launch your app + on a device running the N Developer Preview and attempt to put the app in + split-screen mode. Verify that the user experience is + acceptable when the app is forcibly resized. +

+ +

+ If the app declares a fixed orientation, you should attempt to put the app in + multi-window mode. Verify that when you do so, the app remains + in full-screen mode. +

+ +

If you support multi-window mode

+ +

+ If you built your app with the N Preview SDK and have not disabled + multi-window support, verify the following behavior under both split-screen + and freeform modes. +

+ + + +

Testing checklist

+ +

+ To verify your app's performance in multi-window mode, try the following + operations. You should try these operations in both split-screen and + multi-window mode, except where otherwise noted. +

+ + + +

If you have disabled multi-window support

+ +

+ If you disabled multi-window support by setting + android:resizableActivity="false", you should launch your app on + a device running the N Developer Preview and attempt to put the app in + freeform and split-screen modes. Verify that when you do so, the app remains + in full-screen mode. +

diff --git a/docs/html/preview/images/mw-splitscreen.png b/docs/html/preview/images/mw-splitscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..cbbd4a882271f6ed1681658064db40908c382907 GIT binary patch literal 28437 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 Ae*gdg literal 0 HcmV?d00001