summaryrefslogtreecommitdiff
path: root/docs/html-intl/intl/ja/preview/features/multi-window.jd
blob: 2d54178940221e27ccf8572dec406c8d8e7fb3be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
page.title=マルチ ウィンドウのサポート
page.metaDescription=複数のアプリを同時に表示するための Android N の新しいサポート。
page.keywords="multi-window", "android N", "split screen", "free-form"

@jd:body

<div id="qv-wrapper">
  <div id="qv">
    <h2>このドキュメントの内容</h2>
      <ol>
        <li><a href="#overview">概要</a></li>
        <li><a href="#lifecycle">マルチ ウィンドウ ライフサイクル</a></li>
        <li><a href="#configuring">マルチ ウィンドウ モード向けアプリを構成する</a>
</li>
        <li><a href="#running">マルチ ウィンドウ モードでアプリを実行する</a></li>
        <li><a href="#testing">アプリのマルチ ウィンドウ サポートをテストする</a></li>
      </ol>
    <h2>関連ドキュメント</h2>
      <ol>
        <li><a class="external-link" href="https://github.com/googlesamples/android-MultiWindowPlayground">マルチ ウィンドウ Playground のサンプルアプリ</a>
</li>
      </ol>
  </div>
</div>

<p>
  Android N には、複数のアプリを同時に表示するためのサポートが追加されています。
ハンドヘルド端末で、分割画面モードにして、2 つのアプリを並べて実行したり、重ねて表示したりできます。<em></em>
TV デバイスで、アプリがピクチャ イン ピクチャ モードでビデオを再生しているときに、ユーザーは別のアプリを操作できます。<em></em>


</p>

<p>
  N Preview SDK でアプリをビルドする場合、アプリがマルチ ウィンドウ ディスプレイを処理をする方法を設定できます。
たとえば、アクティビティの最小許容ディメンションを指定できます。
また、アプリに対してマルチ ウィンドウ ディスプレイを無効にし、アプリを全画面モードのみで表示することもできます。


</p>

<h2 id="overview">概要</h2>

<p>
  Android N では、複数のアプリが画面を同時に共有できます。たとえば、ユーザーは画面を分割し、ウェブページを左側の画面に表示しながら、右側の画面でメールを作成することができます。

ユーザー エクスペリエンスは端末によって異なります。

</p>

<ul>
  <li>Android N を実行しているハンドヘルド端末は、分割画面モードに対応しています。
このモードでは、画面で 2 つのアプリが実行され、これらのアプリを並べて、または重ねて表示できます。
ユーザーは、2 つのアプリを分離している分割線をドラッグして、1 つのアプリを拡大し、もう 1 つのアプリを縮小することができます。

  </li>

  <li>Android N を実行している Nexus Player で、アプリを<a href="picture-in-picture.html">ピクチャ イン ピクチャ モード</a>にすると、アプリにコンテンツを表示したまま、ユーザーは他のアプリをブラウジングまたは操作することができます。



  </li>

  <li>より大きい画面の端末のメーカーは、ユーザーが各アクティビティのサイズを自由に変更できるフリーフォーム モードを有効にすることもできます。
メーカーがこの機能を有効にした場合、端末では、分割画面モードに加えて、フリーフォーム モードが利用できます。


  </li>
</ul>

<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x,
    {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" />
<p class="img-caption">
  <strong>図 1.</strong> 分割画面モードで並べて実行されている 2 つのアプリ。
</p>

<p>
  ユーザーは、次の方法でマルチ ウィンドウ モードに切り替えることができます。
</p>

<ul>
  <li>ユーザーは<a href="{@docRoot}guide/components/recents.html">オーバービュー画面</a>を開いているときに、アクティビティのタイトルを長押ししてから、そのアクティビティを画面の強調表示された部分にドラッグすることにより、アクティビティをマルチ ウィンドウ モードにすることができます。



  </li>

  <li>ユーザーがオーバービュー ボタンを長押しすると、現在のアクティビティがマルチ ウィンドウ モードになり、オーバービュー画面が開くので、ユーザーは、画面で共有する別のアクティビティを選択できるようになります。


  </li>
</ul>

<p>
  ユーザーは、複数のアクティビティが画面を共有しているときに、データを 1 つのアクティビティから別のアクティビティに<a href="{@docRoot}guide/topics/ui/drag-drop.html">ドラッグ アンド ドロップ</a>できます

(以前は、単一のアクティビティ内でのみデータをドラッグ アンド ドロップできました)。

</p>

<h2 id="lifecycle">マルチ ウィンドウ ライフサイクル</h2>

<p>
  マルチ ウィンドウ モードは、<a href="{@docRoot}training/basics/activity-lifecycle/index.html">アクティビティのライフサイクル</a>を変更しません。

</p>

<p>
  マルチ ウィンドウ モードでは、ユーザーが直前に操作したアクティビティのみが任意の時点でアクティブになります。
このアクティビティは、トップ レベルにあると見なされます。<em></em>
  他のすべてのアクティビティは、表示されていても一時停止状態になっています。
  ただし、一時停止状態ではあるが、表示されているこれらのアクティビティには、表示されていないアクティビティよりも高い優先度が付与されます。
ユーザーが一時停止状態のアクティビティのいずれかを操作した場合、そのアクティビティが再開され、前のトップ レベルのアクティビティが一時停止します。


</p>

<p class="note">
  <strong>注:</strong> マルチ ウィンドウ モードでは、アプリが一時停止状態になっても、そのアプリを表示したままにすることができます。
アプリは、一時停止していても、アクティビティを続行する必用がある場合があります。
たとえば、一時停止モードになっているが、表示されているビデオ再生アプリは、ビデオの表示を継続する必要があります。
そのため、ビデオを再生するアクティビティが {@link android.app.Activity#onPause onPause()} ハンドラでビデオを一時停止しないようにすることをお勧めします。

<em></em>
  その代わり、これらのアクティビティは {@link android.app.Activity#onStop
  onStop()} でビデオを一時停止し、{@link android.app.Activity#onStart
  onStart()} でビデオの再生を再開する必要があります。
</p>

<p>
  <a href="{@docRoot}guide/topics/resources/runtime-changes.html">実行時の変更の処理</a>で指定したように、ユーザーがアプリをマルチ ウィンドウ モードにすると、アクティビティに構成の変更が通知されます。

基本的に、この構成の変更は、端末が縦表示から横表示に切り替えられたことをアプリに通知する場合と同じ影響(端末のディメンションが変更された場合を除いて)をアクティビティのライフサイクルに及ぼします。


<a href="{@docRoot}guide/topics/resources/runtime-changes.html">実行時の変更の処理</a>で説明したように、アクティビティは構成の変更を処理することができます。または、システムによってアクティビティを破棄し、新しいディメンションでアクティビティを再作成することもできます。



</p>

<p>
  ユーザーがウィンドウのサイズを変更して、高さや幅を拡大した場合、ユーザー アクションに一致するようにアクティビティのサイズが変更され、必要に応じて、<a href="{@docRoot}guide/topics/resources/runtime-changes.html">実行時の変更</a>が発行されます。

アプリで新しく表示された領域を描画するまでに時間がかかる場合、{@link
  android.R.attr#windowBackground windowBackground} 属性またはデフォルトの 
<code>windowBackgroundFallback</code> システム属性によって指定された色でこれらの領域が一時的に塗りつぶされます。

</p>

<h2 id="configuring">マルチ ウィンドウ モード向けアプリを構成する</h2>

<p>
  アプリが Android N をターゲットにしている場合は、アプリのアクティビティがマルチ ウィンドウ ディスプレイをサポートする方法や、このサポートを行うかどうかを決めることができます。
サイズとレイアウトを制御するための属性をマニフェストに設定できます。

  ルート アクティビティ属性の設定は、タスクスタック内のすべてのアクティビティに適用されます。

</p>

<p class="note">
  <strong>注</strong>: Android N より前の SDK バージョンでマルチ オリエンテーション アプリをビルドして、そのアプリをマルチ ウィンドウ モードで使用する場合は、アプリのサイズが強制的に変更されます。

アプリに予想外の動作が発生する場合があることをユーザーに警告するダイアログ ボックスが表示されます。
システムは、向きが固定されたアプリのサイズを変更しません。ユーザーがマルチ ウィンドウ モードで向きが固定されたアプリを開こうとすると、そのアプリが全画面で表示されます。<em></em>



</p>

<h4 id="resizeableActivity">android:resizeableActivity</h4>
<p>
  マルチ ウィンドウ ディスプレイを有効または無効にするには、この属性をマニフェストの <code>&lt;activity&gt;</code> ノードまたは 
<code>&lt;application&gt;</code> ノードに設定します。

</p>

<pre>
android:resizeableActivity=["true" | "false"]
</pre>

<p>
  この属性が true に設定されている場合、アクティビティを分割画面モードまたはフリーフォーム モードで起動できます。
この属性が false に設定されている場合、アクティビティはマルチ ウィンドウ モードをサポートしません。
この値が false のとき、ユーザーがアクティビティをマルチ ウィンドウ モードで起動しようとすると、アクティビティが全画面で表示されます。


</p>

<p>
  アプリが Android N をターゲットにしているが、この属性の値が指定されていない場合、属性の値がデフォルトの true になります。

</p>

<h4 id="supportsPictureInPicture">android:supportsPictureInPicture</h4>

<p>
  この属性をマニフェストの <code>&lt;activity&gt;</code> ノードに設定すると、アクティビティがピクチャ イン ピクチャ ディスプレイをサポートするかどうかを示すことができます。
<code>android:resizeableActivity</code> が false の場合、この属性は無視されます。

</p>

<pre>
android:supportsPictureInPicture=["true" | "false"]
</pre>

<h3 id="layout">レイアウト属性</h3>

<p>
  Android N では、<code>&lt;layout&gt;</code> マニフェスト要素により、マルチ ウィンドウ モードでのアクティビティの動作に影響を及ぼすいくつかの属性がサポートされています。


</p>

<dl>
  <dt>
    <code>android:defaultWidth</code>
  </dt>

  <dd>
    フリーフォーム モードで起動されたときのアクティビティのデフォルトの幅です。
  </dd>

  <dt>
    <code>android:defaultHeight</code>
  </dt>

  <dd>
    フリーフォーム モードで起動されたときのアクティビティのデフォルトの高さです。
  </dd>

  <dt>
    <code>android:gravity</code>
  </dt>

  <dd>
    フリーフォーム モードで起動されたときのアクティビティの初期配置です。適切な値については、
{@link android.view.Gravity} のリファレンスをご覧ください。
  </dd>

  <dt>
    <code>android:minimalSize</code>
  </dt>

  <dd>
    分割画面モードおよびフリーフォーム モードでのアクティビティの最小の高さと幅です。
ユーザーが分割画面モードの分割線を移動して、アクティビティを指定された最小ディメンションよりも小さくすると、アクティビティはユーザーがリクエストしたサイズにトリミングされます。


  </dd>
</dl>

<p>
  たとえば、次のコードは、アクティビティがフリーフォーム モードで表示されているときに、アクティビティのデフォルトのサイズと位置、およびその最小サイズを指定する方法を示しています。


</p>

<pre>
&lt;activity android:name=".MyActivity"&gt;
    &lt;layout android:defaultHeight="500dp"
          android:defaultWidth="600dp"
          android:gravity="top|end"
          android:minimalSize="450dp" /&gt;
&lt;/activity&gt;
</pre>

<h2 id="running">マルチ ウィンドウ モードでアプリを実行する</h2>

<p>
  Android N では、マルチ ウィンドウ モードで実行できるアプリをサポートするための新しい機能が導入されています。

</p>

<h3 id="disabled-features">マルチ ウィンドウ モードで無効になる機能</h3>

<p>
  端末がマルチ ウィンドウ モードになっている場合、特定の機能は、端末の画面を他のアクティビティやアプリと共有する場合があるアクティビティに対して機能しないため、これらの機能は無効なるか、無視されます。

これらの機能には、次のものが含まれます。

<ul>
  <li><a href="{@docRoot}training/system-ui/index.html">システム UI</a> の一部のカスタマイズ オプションは無効になります。たとえば、アプリが全画面モードで実行されていない場合、アプリのステータスバーを非表示にできません。


  </li>

  <li>システムは、<code><a href=
  "{@docRoot}guide/topics/manifest/activity-element.html#screen"
  >android:screenOrientation</a></code> 属性に加えられた変更を無視します。
  </li>
</ul>

<h3 id="change-notification">マルチ ウィンドウの変更通知とクエリ</h3>

<p>
  マルチ ウィンドウ ディスプレイをサポートするために、次の新しいメソッドが {@link android.app.Activity} クラスに追加されています。
各メソッドの詳細については、<a href="{@docRoot}preview/setup-sdk.html#docs-dl">N プレビュー SDK リファレンス</a>をご覧ください。

</p>

<dl>
  <dt>
    <code>Activity.inMultiWindow()</code>
  </dt>

  <dd>
    アクティビティがマルチ ウィンドウ モードで実行されているかどうかを判別するために呼び出します。
  </dd>

  <dt>
    <code>Activity.inPictureInPicture()</code>
  </dt>

  <dd>
    アクティビティがピクチャ イン ピクチャ モードで実行されているかどうかを判別するために呼び出します。

    <p class="note">
      <strong>注</strong>: ピクチャ イン ピクチャ モードは、マルチ ウィンドウ モードの特別な形態です。
<code>myActivity.inPictureInPicture()</code> が true を返す場合は、<code>myActivity.inMultiWindow()</code> も true を返します。


    </p>
  </dd>

  <dt>
    <code>Activity.onMultiWindowChanged()</code>
  </dt>

  <dd>
    アクティビティがマルチ ウィンドウ モードになるか、マルチ ウィンドウ モードではなくなると、常にこのメソッドが呼び出されます。
アクティビティがマルチ ウィンドウ モードになると、このメソッドに true 値が渡され、アクティビティがマルチ ウィンドウ モードではなくなると、このメソッドに false 値が渡されます。


  </dd>

  <dt>
    <code>Activity.onPictureInPictureChanged()</code>
  </dt>

  <dd>
    アクティビティがピクチャ イン ピクチャ モードになるか、ピクチャ イン ピクチャ モードではなくなると、常にこのメソッドが呼び出されます。
アクティビティがピクチャ イン ピクチャ モードになると、このメソッドに true 値が渡され、アクティビティがピクチャ イン ピクチャ モードではなくなると、このメソッドに false 値が渡されます。


  </dd>
</dl>

<p>
  また、これらの各メソッドの {@link android.app.Fragment} バージョンがあります。たとえば、<code>Fragment.inMultiWindow()</code> です。

</p>

<h3 id="entering-pip">ピクチャ イン ピクチャ モードにする</h3>

<p>
  アクティビティをピクチャ イン ピクチャ モードにするには、新しいメソッド 
<code>Activity.enterPictureInPicture()</code> を呼び出します。端末がピクチャ イン ピクチャ モードをサポートしない場合、このメソッドの効果はありません。
詳細については、<a href="picture-in-picture.html">ピクチャ イン ピクチャ</a>に関するドキュメントをご覧ください。

</p>

<h3 id="launch">マルチ ウィンドウ モードで新しいアクティビティを起動する</h3>

<p>
  新しいアクティビティを起動するときに、可能であれば、新しいアクティビティを現在のアクティビティの隣に表示する必用があるかどうかをシステムに示すことができます。
そうするには、フラグ 
<code>Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT</code> を使用します。
このフラグを渡すと、次の動作がリクエストされます。

</p>

<ul>
  <li>端末が分割画面モードになっている場合、システムは、起動しているアクティビティの隣に新しいアクティビティを作成しようとするので、これらの 2 つのアクティビティが画面を共有します。

システムでは、この操作の実行が保証されるわけではありませんが、可能であれば、アクティビティが並べて表示されます。

  </li>

  <li>端末が分割画面モードではない場合、このフラグの効果はありません。
  </li>
</ul>

<p>
  端末がフリーフォーム モードになっている場合、新しいアクティビティを起動するときに、
<code>ActivityOptions.setLaunchBounds()</code> を呼び出すことにより、新しいアクティビティのディメンションと画面上での位置を指定することができます。
端末がマルチ ウィンドウ モードではない場合、このメソッドの効果はありません。

</p>

<p class="note">
  <strong>注</strong>: タスクスタック内でアクティビティを起動すると、画面上のアクティビティが起動したアクティビティに置き換えられ、すべてのマルチ ウィンドウ プロパティが継承されます。

マルチ ウィンドウ モードで新しいアクティビティを別個の画面として起動する場合は、新しいアクティビティを新しいタスクスタックで起動する必要があります。

</p>

<h3 id="dnd">ドラッグ アンド ドロップのサポート</h3>

<p>
  ユーザーは、2 つのアクティビティが画面を共有しているときに、データを 1 つのアクティビティから別のアクティビティに<a href="{@docRoot}guide/topics/ui/drag-drop.html">ドラッグ アンド ドロップ</a>できます

(以前は、単一のアクティビティ内でのみデータをドラッグ アンド ドロップできました)。
そのため、アプリがドラッグ アンド ドロップをサポートしていない場合は、ドラッグ アンド ドロップ機能をアプリに追加する必要があります。

</p>

<p>
  N プレビュー SDK では、異なるアプリ間のドラッグ アンド ドロップをサポートするために、<a href="{@docRoot}reference/android/view/package-summary.html"><code>android.view</code></a> パッケージが拡張されています。
次のクラスとメソッドの詳細については、<a href="{@docRoot}preview/setup-sdk.html#docs-dl">N プレビュー SDK リファレンス</a>をご覧ください。


</p>

<dl>
  <dt>
    <code>android.view.DropPermissions</code>
  </dt>

  <dd>
    ドロップを受け取るアプリに付与されるパーミッションの指定を処理するトークン オブジェクトです。

  </dd>

  <dt>
    <code>View.startDragAndDrop()</code>
  </dt>

  <dd>
    {@link android.view.View#startDrag View.startDrag()} の新しいエイリアスです。異なるアクティビティ間のドラッグ アンド ドロップを有効にするには、新しいフラグ 
<code>View.DRAG_FLAG_GLOBAL</code> を渡します。
URI パーミッションを受け取る側のアクティビティに付与する必要がある場合、必要に応じて、新しいフラグ 
<code>View.DRAG_FLAG_GLOBAL_URI_READ</code> または 
<code>View.DRAG_FLAG_GLOBAL_URI_WRITE</code> を渡します。

  </dd>

  <dt>
    <code>View.cancelDragAndDrop()</code>
  </dt>

  <dd>
    実行中のドラッグ操作をキャンセルします。ドラッグ操作を開始したアプリだけが呼び出せます。

  </dd>

  <dt>
    <code>View.updateDragShadow()</code>
  </dt>

  <dd>
    実行中のドラッグ操作のドラッグ シャドウを置き換えます。ドラッグ操作を開始したアプリだけが呼び出せます。

  </dd>

  <dt>
    <code>Activity.requestDropPermissions()</code>
  </dt>

  <dd>
    {@link android.view.DragEvent} に含まれる {@link
    android.content.ClipData} で渡されるコンテンツ URI のパーミッションをリクエストします。
  </dd>
</dl>

<h2 id="testing">アプリのマルチ ウィンドウ サポートをテストする</h2>

<p>
  ユーザーが Android N を実行している端末をマルチ ウィンドウ モードにしてアプリの起動を試みる場合に備えて、Android N 向けにアプリをアップデートするかどうかに関係なく、アプリがマルチ ウィンドウ モードでどのように動作するかを確認する必要があります。


</p>

<h3 id="configuring">テスト端末の構成</h3>

<p>
  Android N を端末にインストールすると、分割画面モードが自動的にサポートされます。

</p>

<h3 id="test-non-n">アプリが N プレビュー SDK でビルドされていない場合</h3>

<p>
  アプリが N プレビュー SDK でビルドされていないときに、ユーザーがマルチ ウィンドウ モードでそのアプリを使用しようとすると、アプリが向きの固定を宣言しない限り、アプリのサイズが強制的に変更されます。


</p>

<p>
  アプリが向きの固定を宣言しない場合、Android N を実行している端末でアプリを起動し、アプリを分割画面モードにすることを試みる必要があります。

アプリのサイズが強制的に変更されたときに、ユーザー エクスペリエンスが許容範囲内にあることを確認してください。

</p>

<p>
  アプリが向きの固定を宣言する場合、アプリをマルチ ウィンドウ モードにすることを試みる必要があります。
アプリをマルチ ウィンドウ モードにすることを試みたとき、アプリが全画面モードのままであることを確認してください。

</p>

<h3 id="test-mw">マルチ ウィンドウ モードをサポートする場合</h3>

<p>
  アプリが N プレビュー SDK でビルドされていて、マルチ ウィンドウ モードが無効になっていない場合、分割画面モードとフリーフォーム モードの両方で次の動作を確認してください。


</p>

<ul>
  <li>アプリを全画面モードで起動してから、オーバービュー ボタンを長押しして、マルチ ウィンドウ モードに切り替えます。
モードが適切に切り替わることを確認します。
  </li>

  <li>アプリをマルチ ウィンドウ モードで直接起動し、アプリが適切に起動することを確認します。
オーバービュー ボタンを押すと、アプリをマルチ ウィンドウ モードで起動できます。次に、アプリのタイトルバーを長押しし、アプリを画面上の強調表示された領域のいずれかにドラッグします。


  </li>

  <li>分割画面モードで分割線をドラッグして、アプリのサイズを変更します。
  アプリがクラッシュせずに、アプリのサイズが変更され、必要な UI 要素が表示されることを確認します。

  </li>

  <li>アプリの最小ディメンションを指定している場合、アプリのサイズをそれらのディメンション以下にすることを試みてください。
アプリのサイズを指定最小ディメンションよりも小さくできないことを確認してください。

  </li>

  <li>すべてのテストを通じて、アプリのパフォーマンスが許容範囲内にあることを確認してください。たとえば、アプリのサイズを変更した後、UI の更新に大きな遅延がないことを確認してください。


  </li>
</ul>

<h4 id="test-checklist">チェックリストのテスト</h4>

<p>
  アプリのパフォーマンスをマルチ ウィンドウ モードで確認するには、以下の操作を試みてください。
特に記載のない限り、分割画面モードとマルチ ウィンドウ モードの両方でこれらの操作を試みる必要があります。

</p>

<ul>
  <li>マルチ ウィンドウ モードを有効にしてから無効にします。
  </li>

  <li>1 つのアプリから別のアプリに切り替えたとき、最初のアプリの動作が適切であり、表示されているが、アクティブになっていないことを確認します。
たとえば、アプリがビデオを再生している場合、ユーザーが別のアプリを操作しているときに、アプリでビデオの再生が継続していることを確認します。


  </li>

  <li>分割画面モードで分割線を移動して、アプリの拡大および縮小を試みてください。
アプリを並べて表示しているときと重ねて表示しているときの両方でこれらの操作を試みてください。
アプリがクラッシュせず、基本的な機能が表示され、サイズ変更の操作に時間がかかり過ぎないことを確認します。


  </li>

  <li>続けざまにサイズ変更の操作を行います。アプリがクラッシュしたり、メモリリークが発生したりしないことを確認します。
アプリのメモリリークをチェックする方法の詳細については、<a href="{@docRoot}tools/debugging/debugging-memory.html">RAM の使用状況を調査する</a>をご覧ください。


  </li>

  <li>さまざまなウィンドウ構成でアプリを通常の方法で使用し、アプリが適切に動作することを確認します。
テキストが読み取り可能であり、UI 要素が操作に支障をきたすほど小さくないことを確認します。

  </li>
</ul>

<h3 id="test-disabled-mw">マルチ ウィンドウのサポートを無効にしている場合</h3>

<p>
  
<code>android:resizableActivity="false"</code> を設定して、マルチ ウィンドウのサポートを無効にした場合は、Android N を実行している端末でアプリを起動し、アプリをフリーフォーム モードおよび分割画面モードにすることを試みる必要があります。

アプリをマルチ ウィンドウ モードにすることを試みたとき、アプリが全画面モードのままであることを確認してください。

</p>