summaryrefslogtreecommitdiff
path: root/docs/html-intl/intl/ko/preview/features/multi-window.jd
blob: 78abcd1338b0580de5f12087dcdd9ecf4486086d (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">다중 창
플레이그라운드 샘플 앱</a></li>
      </ol>
  </div>
</div>

<p>
  Android N에서는 동시에 둘 이상의 앱을 표시하도록
지원합니다. 핸드헬드 기기에서 두 개의 앱을 <em>화면 분할</em> 모드에서
나란히 또는 상하로 실행할 수 있습니다. TV 기기에서 앱이
<em>PIP</em> 모드를 사용하는 경우 사용자가 다른 앱과 상호작용하는
동안에 계속 동영상을 재생할 수 있습니다.
</p>

<p>
  N Preview SDK로 앱을 빌드하는 경우, 앱이 다중 창
표시를 처리하는 방식을 구성할 수 있습니다. 예를 들어, 액티비티의
최소 허용 치수를 지정할 수 있습니다. 또한 앱에
대해 다중 창 표시를 비활성화할 수도 있으며, 이 경우 시스템은 앱을 전체 화면 모드에서만
표시합니다.
</p>

<h2 id="overview">개요</h2>

<p>
  Android N에서는 여러 앱이 동시에 화면을 공유할 수 있습니다. 예를 들어, 사용자가 화면을 분할하여 왼쪽에서는 웹페이지를
보면서 오른쪽에서는 이메일을 작성할
수 있습니다. 사용자 경험은 기기에 따라
달라집니다.
</p>

<ul>
  <li>Android N에서 실행되는 핸드헬드 기기는 화면 분할
모드를 제공합니다. 이 모드에서 시스템은 화면을 두 개의 앱으로 채우고, 이
앱을 나란히 또는 상하로 표시합니다. 사용자가 두 앱을 구분하는 분할선을 끌어서 한 앱을 다른 앱보다
더 크게 만들 수 있습니다.
  </li>

  <li>Android N을 실행하는 Nexus Player에서, 앱이
<a href="picture-in-picture.html">PIP 모드</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> 화면 분할 모드에서 나란히 실행 중인 두 앱.
</p>

<p>
  사용자가 다음과 같이 다중 창 모드로 전환할 수 있습니다.
</p>

<ul>
  <li>사용자가 <a href="{@docRoot}guide/components/recents.html">Overview
화면</a>을 열고 액티비티 제목을 길게 누르면,
이 액티비티를 화면의 강조 표시된 부분으로 끌어서 
다중 창 모드에 둘 수 있습니다.
  </li>

  <li>사용자가 Overview 버튼을 길게 누르면, 기기가 현재 액티비티를
다중 창 모드에 두고 Overview 화면을 열며, 이 화면에서 사용자는 화면을
공유하기 위한 또 다른 액티비티를 선택할 수 있습니다.
  </li>
</ul>

<p>
  사용자는 여러 액티비티가 화면을 공유하는 동안 한 액티비티에서
또 다른 액티비티로 데이터를 <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> 노드에 설정하여
액티비티가 PIP 표시를 지원하는지 여부를 나타냅니다. <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 Preview SDK 참조</a>를 참조하세요.
</p>

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

  <dd>
    액티비티가 다중 창 모드에 있는지를 알아내려면 호출합니다.
  </dd>

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

  <dd>
    액티비티가 PIP 모드에 있는지를 알아내려면 호출합니다.

    <p class="note">
      <strong>참고:</strong> PIP 모드는 다중 창 모드의 특별한
케이스입니다. <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>
    시스템은 액티비티가 PIP 모드로 들어가거나
이 모드에서 나올 때마다 이 메서드를 호출합니다. 시스템은 액티비티가 PIP 모드로 들어갈 때는
true 값을 메서드에 전달하고, 액티비티가 PIP에서 나올 때는
false를 전달합니다.
  </dd>
</dl>

<p>
  또한 이들 각 메서드의 {@link android.app.Fragment} 버전이
있습니다(예: <code>Fragment.inMultiWindow()</code>).
</p>

<h3 id="entering-pip">PIP 모드로 들어가기</h3>

<p>
  액티비티를 PIP 모드에 두려면, 새로운 메서드인
<code>Activity.enterPictureInPicture()</code>를 호출합니다. 기기가 PIP 모드를 지원하지 않으면 이 메서드는
영향이 없습니다. 자세한 내용은
<a href="picture-in-picture.html">PIP</a> 문서를 참조하세요.
</p>

<h3 id="launch">다중 창 모드에서 새 액티비티 시작</h3>

<p>
  새 액티비티를 시작하는 경우, 가능하면 이 새 액티비티가 현재
액티비티에 인접하여 표시되어야 함을 시스템에게 알려줄 수 있습니다. 이를 위해
, 플래그
<code>Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT</code>를 사용합니다. 이 플래그를 전달하면
다음과 같은 동작이 요청됩니다.
</p>

<ul>
  <li>기기가 화면 분할 모드에 있는 경우,
시스템은 시작한 액티비티 옆에 새 액티비티를 만들려고 시도하므로, 두 액티비티가
화면을 공유합니다. 시스템이 이 작업을 수행할 수 있다고
보장되지는 않지만, 가능하면 액티비티를 인접하게 만듭니다.
  </li>

  <li>기기가 화면 분할 모드에 있으면, 이 플래그가 영향을 미치지 않습니다.
  </li>
</ul>

<p>
  기기가 자유형식 모드에 있고 새 액티비티를 시작 중인 경우,
<code>ActivityOptions.setLaunchBounds()</code>를 호출하여 이 새 액티비티의 치수와 화면 위치를
지정할 수 있습니다. 기기가 다중 창 모드에 있지 않으면, 이 메서드가 영향을
미치지 않습니다.
</p>

<p class="note">
  <strong>참고:</strong> 작업 스택 내에서 액티비티를 시작하는 경우,
이 액티비티는 화면상의 액티비티를 대체하여, 모든 다중 창 속성을
상속합니다. 새 액티비티를 다중 창 모드에서 별도 창으로 시작하려면,
새 작업 스택에서 액티비티를 시작해야 합니다.
</p>

<h3 id="dnd">끌어서 놓기 지원</h3>

<p>
  사용자는 두
액티비티가 화면을 공유하는 동안 한 액티비티에서 다른 액티비티로 데이터를 <a href="{@docRoot}guide/topics/ui/drag-drop.html">끌어서 놓을</a>
수 있습니다. (이전에는, 사용자가 단일 액티비티 내에서만 데이터를 끌어서
놓을 수 있었습니다.) 이러한 이유로, 앱이 현재 지원하지 않는 경우에는 끌어서 놓기
기능을 앱에 추가하는 것이 좋습니다.
</p>

<p>
  N Preview 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 Preview
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 Preview SDK로 작성되지 않은 경우</h3>

<p>
  앱을 N Preview SDK로 작성하지 않았는데 사용자가
앱을 다중 창 모드에서 사용하려고 시도하는 경우, 이 앱이 고정 방향을 선언하지
않으면 시스템이 앱의 크기를 강제로 조정합니다.
</p>

<p>
  앱이 고정 방향을 선언하지 않은 경우, Android N이
실행 중인 기기에서 앱을 시작해야 하며, 앱을 화면 분할 모드에
두도록 시도해야 합니다. 앱의 크기를 강제로 조정하는 경우 사용자 경험이
적절한지 확인하세요.
</p>

<p>
  앱이 고정 방향을 선언하는 경우, 앱을 다중 창 모드에
두도록 시도해야 합니다. 이 때 앱이 전체 화면 모드에 남아있는지
확인하세요.
</p>

<h3 id="test-mw">다중 창 모드를 지원하는 경우</h3>

<p>
  N Preview SDK로 앱을 작성했는데 다중 창 지원을 비활성화하지
않은 경우, 화면 분할 및 자유형식 모드에서 다음과
같은 동작을 확인하세요.
</p>

<ul>
  <li>앱을 전체 화면 모드에서 시작한 다음, Overview 버튼을 길게 눌러서
다중 창 모드로 전환합니다. 앱이 적절히 전환되는지 확인합니다.
  </li>

  <li>앱을 다중 창 모드에서 직접 시작하고, 이 앱이 적절히
시작되는지 확인합니다. 다중 창 모드에서 앱을 시작하려면, Overview 버튼을
누르고 앱의 제목 표시줄을 길게 누른 다음 화면의 강조 표시된 영역 중
하나로 제목 표시줄을 끌어서 놓습니다.
  </li>

  <li>분할선을 끌어서 화면 분할 모드에서 앱의 크기를 조정합니다.
  작동 중단 없이 앱 크기가 조정되는지 확인하고, 필요한
UI 요소가 표시되는지 확인합니다.
  </li>

  <li>앱에 최소 치수를 지정한 경우, 이 치수 아래로 앱 크기를
조정해 봅니다. 지정된 최소값보다 더 작게 앱 크기를 조정할 수
없는지 확인합니다.
  </li>

  <li>모든 테스트를 통해 앱의 성능이 적절한지 확인합니다. 예를 들어,
앱 크기를 조정한 후에, 업데이트하기에 지연이
너무 길지 않은지 확인합니다.
  </li>
</ul>

<h4 id="test-checklist">테스트 검사 목록</h4>

<p>
  다중 창 모드에서 앱의 성능을 확인하려면, 다음
작업을 시도해 보세요. 별다른 설명이 없는 한, 화면 분할 및 다중 창 모드
에서 모두 이들 작업을 시도해야 합니다.
</p>

<ul>
  <li>다중 창 모드에 들어갔다 나갑니다.
  </li>

  <li>자신의 앱에서 다른 앱으로 전환하고, 앱이 표시는 되지만
활성화되지 않은 동안에 적절히 동작하는지 확인합니다. 예를 들어, 앱이 동영상을 재생 중인 경우, 사용자가
다른 앱과 상호작용하는 동안에 이 동영상이 계속 재생되는지
확인합니다.
  </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>