summaryrefslogtreecommitdiff
path: root/docs/html-intl/intl/in/preview/features/multi-window.jd
blob: f879dc5ad0ac8933c64b7c569879f9ff7ace95f2 (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=Dukungan Multi-Jendela
page.metaDescription=Dukungan baru di Android N untuk menampilkan lebih dari satu aplikasi sekaligus.
page.keywords="multi-window", "android N", "split screen", "free-form"

@jd:body

<div id="qv-wrapper">
  <div id="qv">
    <h2>Dalam dokumen ini</h2>
      <ol>
        <li><a href="#overview">Ikhtisar</a></li>
        <li><a href="#lifecycle">Daur Hidup Multi-Jendela</a></li>
        <li><a href="#configuring">Mengonfigurasi Aplikasi Anda untuk Mode
              Multi-Jendela</a></li>
        <li><a href="#running">Menjalankan Aplikasi Anda dalam Mode Multi-Jendela</a></li>
        <li><a href="#testing">Menguji Dukungan Multi-Jendela Aplikasi Anda</a></li>
      </ol>
    <h2>Lihat Juga</h2>
      <ol>
        <li><a class="external-link" href="https://github.com/googlesamples/android-MultiWindowPlayground">Aplikasi contoh Multi-Window
          Playground</a></li>
      </ol>
  </div>
</div>

<p>
  Android N menambahkan dukungan untuk menampilkan lebih dari satu aplikasi
  sekaligus. Pada perangkat genggam, dua aplikasi bisa berjalan berdampingan atau
  atas-bawah dalam mode <em>layar terbagi</em>. Pada perangkat TV, aplikasi bisa
  menggunakan mode <em>gambar-dalam-gambar</em> untuk melanjutkan pemutaran video selagi pengguna
  berinteraksi dengan aplikasi lain.
</p>

<p>
  Jika Anda membangun aplikasi Anda dengan N Preview SDK, Anda bisa mengonfigurasi cara aplikasi
  menangani tampilan multi-jendela. Misalnya, Anda bisa menetapkan dimensi
  minimum yang diizinkan aktivitas Anda. Anda juga bisa menonaktifkan tampilan multi-jendela untuk
   aplikasi, sehingga memastikan sistem hanya menampilkan aplikasi Anda dalam mode
  layar penuh.
</p>

<h2 id="overview">Ikhtisar</h2>

<p>
  Android N memungkinkan beberapa aplikasi berbagi layar sekaligus. Misalnya,
  pengguna bisa membagi layar, melihat halaman web di sisi kiri
  sambil menulis email di sisi kanan. Pengalaman pengguna bergantung pada
  perangkat:
</p>

<ul>
  <li>Perangkat genggam yang menjalankan Android N menawarkan mode
  layar terbagi. Di mode ini, sistem mengisi layar dengan dua aplikasi, menampilkannya secara
  berdampingan atau atas-bawah. Pengguna bisa menyeret garis pembagi
   yang memisahkan keduanya untuk membuat satu aplikasi lebih besar dan yang lainnya lebih kecil.
  </li>

  <li>Pada Nexus Player yang menjalankan Android N, aplikasi bisa menempatkan diri
  dalam <a href="picture-in-picture.html">mode gambar-dalam-gambar</a>, yang memungkinkannya
  untuk terus menampilkan konten selagi pengguna melihat-lihat atau berinteraksi dengan
   aplikasi lain.
  </li>

  <li>Produsen perangkat berukuran lebih besar bisa memilih untuk mengaktifkan mode
 bentuk bebas, di mana pengguna bisa bebas mengubah ukuran setiap aktivitas. Jika
  produsen mengaktifkan fitur ini, perangkat akan menawarkan mode bentuk bebas sebagai tambahan
  untuk mode layar terbagi.
  </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>Gambar 1.</strong> Dua aplikasi berjalan berdampingan dalam mode layar terbagi.
</p>

<p>
  Pengguna bisa beralih ke mode multi-jendela dengan cara berikut:
</p>

<ul>
  <li>Jika pengguna membuka <a href="{@docRoot}guide/components/recents.html">layar
  Overview</a> dan menekan lama pada
  judul aktivitas, mereka bisa menyeret aktivitas itu ke bagian yang disorot pada layar
  untuk menempatkan aktivitas dalam mode multi-jendela.
  </li>

  <li>Jika pengguna menekan lama pada tombol Overview, perangkat akan menempatkan
   aktivitas saat ini dalam mode multi-jendela, dan membuka layar Overview guna
  memungkinkan pengguna memilih aktivitas lain untuk berbagi layar.
  </li>
</ul>

<p>
  Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">menyeret dan
  meletakkan</a> data dari aktivitas satu ke aktivitas lain sewaktu aktivitas berbagi
  layar. (Sebelumnya, pengguna hanya bisa menyeret dan meletakkan data dalam aktivitas
  tunggal.)
</p>

<h2 id="lifecycle">Daur Hidup Multi-Jendela</h2>

<p>
  Mode multi-jendela tidak mengubah <a href="{@docRoot}training/basics/activity-lifecycle/index.html">daur hidup
  aktivitas</a>.
</p>

<p>
  Dalam mode multi-jendela, hanya aktivitas yang paling sering digunakan pengguna
  yang akan aktif pada waktu tertentu. Aktivitas ini dianggap <em>teratas</em>.
  Semua aktivitas lainnya dalam keadaan berhenti sementara, sekalipun terlihat.
  Akan tetapi, sistem memberikan aktivitas, yang berhenti-sementara-namun-terlihat ini, prioritas lebih tinggi
   daripada aktivitas yang tidak terlihat. Jika pengguna berinteraksi dengan salah satu
  aktivitas yang berhenti sementara, aktivitas tersebut akan dilanjutkan kembali, dan aktivitas
  teratas sebelumnya akan dihentikan sementara.
</p>

<p class="note">
  <strong>Catatan:</strong> Dalam mode multi-jendela, aplikasi bisa berada dalam keadaan berhenti sementara
  dan masih terlihat oleh pengguna. Sebuah aplikasi mungkin perlu melanjutkan aktivitasnya
   bahkan saat berhenti sementara. Misalnya, aplikasi pemutar video yang ada dalam
   mode berhenti sementara namun terlihat harus tetap menampilkan videonya. Karena alasan
  ini, kami menyarankan aktivitas yang memutar video<em>tidak</em> menghentikan sementara video
   dalam handler {@link android.app.Activity#onPause onPause()} mereka.
  Sebagai gantinya, aktivitas itu harus menghentikan sementara video di {@link android.app.Activity#onStop
  onStop()}, dan melanjutkan pemutaran di {@link android.app.Activity#onStart
  onStart()}.
</p>

<p>
  Bila pengguna menempatkan aplikasi dalam mode multi-jendela, sistem akan memberi tahu
   aktivitas tersebut mengenai perubahan konfigurasi, sebagaimana ditetapkan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
  Runtime</a>. Pada dasarnya, perubahan ini memiliki implikasi siklus hidup aktivitas yang sama
   seperti saat sistem memberi tahu aplikasi bahwa perangkat telah beralih
   dari mode potret ke mode lanskap, kecuali dimensi perangkat
   telah berubah sebagai ganti bertukar posisi. Seperti yang dibahas di <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
  Runtime</a>, aktivitas Anda bisa menangani perubahan konfigurasi itu sendiri, atau
   mengizinkan sistem memusnahkan aktivitas dan membuatnya kembali dengan dimensi
  baru.
</p>

<p>
  Jika pengguna mengubah ukuran jendela dan membuat dimensinya jadi lebih besar, sistem
   akan mengubah ukuran aktivitas untuk menyesuaikan dengan tindakan pengguna dan mengeluarkan <a href="{@docRoot}guide/topics/resources/runtime-changes.html">perubahan runtime</a>
  sebagaimana diperlukan. Jika aplikasi tertinggal dari gambar di bidang yang baru saja diekspos,
  sistem untuk sementara akan mengisi bidang tersebut dengan warna yang ditetapkan oleh atribut {@link
  android.R.attr#windowBackground windowBackground} atau dengan atribut gaya
  <code>windowBackgroundFallback</code> secara default.
</p>

<h2 id="configuring">Mengonfigurasi Aplikasi Anda untuk Mode Multi-Jendela</h2>

<p>
  Jika aplikasi Anda menargetkan Android N, Anda bisa mengonfigurasi bagaimana dan
  apakah aktivitas aplikasi Anda mendukung tampilan multi-jendela. Anda bisa mengatur
  atribut dalam manifes untuk mengontrol ukuran dan layoutnya.
  Pengaturan atribut aktivitas root berlaku untuk semua aktivitas
   dalam tumpukan tugasnya.
</p>

<p class="note">
  <strong>Catatan:</strong> Jika Anda membangun aplikasi multi-orientasi dengan versi
  SDK lebih rendah dari Android N, dan pengguna menggunakan aplikasi
   dalam mode multi-jendela, sistem akan mengubah ukuran aplikasi secara paksa. Sistem akan menampilkan kotak
  dialog yang memperingatkan pengguna bahwa aplikasi mungkin berperilaku tidak terduga. Sistem
   <em>tidak</em> mengubah ukuran aplikasi yang berorientasi tetap; jika
  pengguna berusaha membuka  aplikasi berorientasi tetap saat mode multi-jendela,
  aplikasi akan menggunakan seluruh layar.
</p>

<h4 id="resizeableActivity">android:resizeableActivity</h4>
<p>
  Atur atribut ini dalam manifes <code>&lt;activity&gt;</code> Anda atau simpul
  <code>&lt;application&gt;</code> untuk mengaktifkan atau menonaktifkan tampilan
   multi-jendela:
</p>

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

<p>
  Jika atribut ini diatur ke true, aktivitas bisa dijalankan di
  mode layar terbagi dan mode bentuk bebas. Jika atribut ini diatur ke false, aktivitas
  tidak akan mendukung mode multi-jendela. Jika nilai ini false, dan pengguna
  berusaha memulai aktivitas dalam mode multi-jendela, aktivitas akan menggunakan
   layar penuh.
</p>

<p>
  Jika aplikasi Anda menargetkan Android N, namun Anda tidak menetapkan nilai
  untuk atribut ini, nilai atribut default adalah true.
</p>

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

<p>
  Atur atribut ini dalam simpul <code>&lt;activity&gt;</code> manifes Anda untuk
  menunjukkan apakah aktivitas mendukung tampilan gambar-dalam-gambar. Atribut ini
  diabaikan jika <code>android:resizeableActivity</code> bernilai false.
</p>

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

<h3 id="layout">Atribut layout</h3>

<p>
  Dengan Android N, elemen manifes <code>&lt;layout&gt;</code>
  mendukung beberapa atribut yang memengaruhi cara aktivitas berperilaku dalam
  mode multi-jendela:
</p>

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

  <dd>
    Lebar default aktivitas saat dijalankan dalam mode bentuk bebas.
  </dd>

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

  <dd>
    Tinggi default aktivitas saat dijalankan dalam mode bentuk bebas.
  </dd>

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

  <dd>
    Penempatan awal dari aktivitas saat dibuka dalam mode bentuk bebas. Lihat referensi
    {@link android.view.Gravity} untuk mengetahui nilai yang cocok.
  </dd>

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

  <dd>
    Tinggi dan lebar minimum untuk aktivitas dalam mode layar terbagi
    dan mode bentuk bebas. Jika pengguna memindahkan pembagi dalam mode layar terbagi
    untuk membuat aktivitas lebih kecil dari minimum yang ditetapkan, sistem akan memangkas
   aktivitas sesuai dengan ukuran yang diminta pengguna.
  </dd>
</dl>

<p>
  Misalnya, kode berikut menampilkan cara menetapkan ukuran dan lokasi default
  aktivitas, dan ukuran minimumnya, bila aktivitas ditampilkan dalam
   mode bentuk bebas:
</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">Menjalankan Aplikasi Anda dalam Mode Multi-Jendela</h2>

<p>
  Android N menawarkan fungsionalitas baru untuk mendukung aplikasi yang bisa berjalan
  dalam mode multi-jendela.
</p>

<h3 id="disabled-features">Fitur yang dinonaktifkan dalam mode multi-jendela</h3>

<p>
  Fitur tertentu akan dinonaktifkan atau diabaikan bila perangkat berada dalam mode
  multi-jendela, karena dianggap tidak logis bagi suatu aktivitas yang mungkin berbagi
  layar perangkat dengan aktivitas atau aplikasi lainnya. Fitur tersebut meliputi:

<ul>
  <li>Beberapa opsi penyesuaian di <a href="{@docRoot}training/system-ui/index.html">System UI</a>
  dinonaktifkan; misalnya, aplikasi tidak bisa menyembunyikan baris status
  jika tidak berjalan dalam mode layar penuh.
  </li>

  <li>Sistem akan mengabaikan perubahan pada atribut <code><a href=
  "{@docRoot}guide/topics/manifest/activity-element.html#screen"
  >android:screenOrientation</a></code>.
  </li>
</ul>

<h3 id="change-notification">Pemberitahuan perubahan multi-jendela dan melakukan query</h3>

<p>
  Metode baru berikut telah ditambahkan ke kelas {@link android.app.Activity}
  untuk mendukung tampilan multi-jendela. Untuk mengetahui detail tentang setiap metode, lihat
  <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N Preview SDK</a>.
</p>

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

  <dd>
    Panggil untuk mengetahui apakah aktivitas berada dalam mode multi-jendela.
  </dd>

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

  <dd>
    Panggil untuk mengetahui apakah aktivitas berada dalam mode gambar-dalam-gambar.

    <p class="note">
      <strong>Catatan:</strong> Mode gambar-dalam-gambar adalah kasus khusus pada
      mode multi-jendela. Jika <code>myActivity.inPictureInPicture()</code>
     mengembalikan nilai true, maka <code>myActivity.inMultiWindow()</code> juga mengembalikan nilai
      true.
    </p>
  </dd>

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

  <dd>
    Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari
    mode multi-jendela. Sistem akan meneruskan metode sebuah nilai true jika
   aktivitas tersebut memasuki mode multi-jendela, dan nilai false jika aktivitas
     tersebut meninggalkan mode multi-jendela.
  </dd>

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

  <dd>
    Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari
    mode gambar-dalam-gambar. Sistem akan meneruskan metode sebuah nilai true jika
   aktivitas tersebut memasuki mode gambar-dalam-gambar, dan nilai false jika aktivitas
     tersebut meninggalkan mode gambar-dalam-gambar.
  </dd>
</dl>

<p>
  Ada juga versi {@link android.app.Fragment} untuk setiap
  metode ini, misalnya <code>Fragment.inMultiWindow()</code>.
</p>

<h3 id="entering-pip">Memasuki mode gambar-dalam-gambar</h3>

<p>
  Untuk menempatkan aktivitas dalam mode gambar-dalam-gambar, panggil metode baru
  <code>Activity.enterPictureInPicture()</code>. Metode ini tidak berpengaruh jika
   perangkat tidak mendukung mode gambar-dalam-gambar. Untuk informasi selengkapnya,
   lihat dokumentasi <a href="picture-in-picture.html">Gambar-dalam-Gambar</a>.
</p>

<h3 id="launch">Meluncurkan Aktivitas Baru dalam Mode Multi-Jendela</h3>

<p>
  Bila meluncurkan aktivitas baru, Anda bisa memberi petunjuk pada sistem bahwa aktivitas
  baru harus ditampilkan bersebelahan dengan aktivitas yang sedang aktif, jika memungkinkan. Caranya,
  gunakan flag
  <code>Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT</code>. Meneruskan
  flag ini akan meminta perilaku berikut:
</p>

<ul>
  <li>Jika perangkat berada dalam mode layar terbagi, sistem akan berupaya membuat
  aktivitas baru di sebelah aktivitas yang meluncurkannya, sehingga kedua aktivitas tersebut
  berbagi layar. Tidak ada jaminan sistem mampu melakukannya, namun sistem akan
  membuat aktivitas bersebelahan jika memungkinkan.
  </li>

  <li>Jika perangkat tidak berada dalam mode layar terbagi, flag ini tidak akan berpengaruh.
  </li>
</ul>

<p>
  Jika perangkat berada dalam mode bentuk bebas dan Anda meluncurkan aktivitas baru, Anda bisa
  menetapkan dimensi dan lokasi layar aktivitas baru dengan memanggil
  <code>ActivityOptions.setLaunchBounds()</code>. Metode ini tidak berpengaruh jika
  perangkat tidak berada dalam mode multi-jendela.
</p>

<p class="note">
  <strong>Catatan:</strong> Jika Anda meluncurkan aktivitas dalam tumpukan tugas, aktivitas
  tersebut akan menggantikan aktivitas pada layar, dengan mewarisi semua
   properti multi-jendelanya. Jika Anda ingin meluncurkan aktivitas baru sebagai jendela
  terpisah dalam mode multi-jendela, Anda harus meluncurkannya dalam tumpukan tugas baru.
</p>

<h3 id="dnd">Mendukung seret dan letakkan</h3>

<p>
  Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">menyeret dan
  meletakkan</a> data dari satu aktivitas ke aktivitas yang lain selagi kedua aktivitas
  berbagi layar. (Sebelumnya, pengguna hanya bisa menyeret dan meletakkan data dalam
   aktivitas tunggal.) Karena alasan ini, Anda mungkin perlu menambahkan fungsionalitas
  seret dan letakkan ke aplikasi Anda jika aplikasi Anda saat ini belum mendukungnya.
</p>

<p>
  N Preview SDK menambahkan paket <a href="{@docRoot}reference/android/view/package-summary.html"><code>android.view</code></a>
  untuk mendukung seret dan letakkan lintas-aplikasi. Untuk mengetahui detail tentang kelas dan metode
  berikut, lihat <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N
  Preview SDK</a>.
</p>

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

  <dd>
    Objek token bertanggung jawab menetapkan izin yang diberikan kepada aplikasi
    yang menerima peletakan tersebut.
  </dd>

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

  <dd>
    Alias baru untuk {@link android.view.View#startDrag View.startDrag()}. Untuk
    mengaktifkan seret dan letakkan lintas-aktivitas, teruskan flag baru
    <code>View.DRAG_FLAG_GLOBAL</code>. Jika Anda perlu memberikan izin URI ke
    aktivitas penerima, teruskan flag baru,
    <code>View.DRAG_FLAG_GLOBAL_URI_READ</code> atau
    <code>View.DRAG_FLAG_GLOBAL_URI_WRITE</code>, sebagaimana mestinya.
  </dd>

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

  <dd>
    Membatalkan operasi seret yang sedang berlangsung. Hanya bisa dipanggil oleh
    aplikasi yang menghasilkan operasi seret.
  </dd>

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

  <dd>
    Menggantikan bayangan penyeretan untuk operasi seret yang sedang berlangsung. Hanya
    bisa dipanggil oleh aplikasi yang menghasilkan operasi seret.
  </dd>

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

  <dd>
    Meminta izin untuk URI konten yang diteruskan dengan {@link
    android.content.ClipData} yang terdapat dalam {@link android.view.DragEvent}.
  </dd>
</dl>

<h2 id="testing">Menguji Dukungan Multi-Jendela Aplikasi Anda</h2>

<p>
  Baik Anda memperbarui aplikasi untuk Android N maupun tidak, Anda harus
  memverifikasi caranya bertindak dalam mode multi-jendela jika pengguna mencoba meluncurkannya
  dalam mode multi-jendela pada perangkat yang menjalankan Android N.
</p>

<h3 id="configuring">Mengonfigurasi Perangkat Pengujian</h3>

<p>
  Jika Anda menginstal Android N pada perangkat, mode
  layar terbagi secara otomatis didukung.
</p>

<h3 id="test-non-n">Jika aplikasi Anda tidak dibangun dengan N Preview SDK</h3>

<p>
  Jika Anda tidak membangun aplikasi dengan N Preview SDK dan pengguna berupaya menggunakan
  aplikasi dalam mode multi-jendela, sistem secara paksa akan mengubah ukuran aplikasi kecuali jika aplikasi
  mendeklarasikan orientasi tetap.
</p>

<p>
  Jika aplikasi Anda tidak mendeklarasikan orientasi tetap, Anda harus meluncurkan aplikasi
  pada perangkat yang menjalankan Android N dan berupaya menempatkan aplikasi tersebut dalam
  mode layar terbagi. Pastikan pengalaman pengguna
  bisa diterima bila aplikasi secara paksa diubah ukurannya.
</p>

<p>
  Jika aplikasi mendeklarasikan orientasi tetap, Anda harus berupaya menempatkan aplikasi dalam
  mode multi-jendela. Periksa apakah Anda melakukannya, aplikasi tetap berada dalam
  mode layar penuh.
</p>

<h3 id="test-mw">Jika Anda mendukung mode multi-jendela</h3>

<p>
  Jika Anda membuat aplikasi Anda dengan N Preview SDK dan belum menonaktifkan
  dukungan multi-jendela, periksa perilaku berikut dalam mode layar terbagi
   dan mode bentuk bebas.
</p>

<ul>
  <li>Luncurkan aplikasi dalam mode layar penuh, kemudian beralih ke mode multi-jendela dengan
   menekan lama pada tombol Overview. Periksa apakah aplikasi berpindah dengan benar.
  </li>

  <li>Jalankan aplikasi secara langsung dalam mode multi-jendela, dan pastikan aplikasi
  diluncurkan dengan benar. Anda bisa meluncurkan aplikasi dalam mode multi-jendela dengan menekan
  tombol Overview, kemudian menekan lama baris judul pada aplikasi Anda dan menyeretnya
  ke salah satu area yang disorot di layar.
  </li>

  <li>Ubah ukuran aplikasi Anda dalam mode layar terbagi dengan menyeret garis pembagi.
  Periksa apakah aplikasi mengubah ukuran tanpa crash, dan apakah elemen UI yang diperlukan
  terlihat.
  </li>

  <li>Jika Anda telah menetapkan dimensi minimum aplikasi, cobalah untuk mengubah ukuran
  aplikasi di bawah dimensi tersebut. Periksa apakah Anda tidak bisa mengubah ukuran aplikasi menjadi
  lebih kecil dari minimum yang ditetapkan.
  </li>

  <li>Melalui semua tes, periksa apakah kinerja aplikasi Anda bisa diterima. Misalnya,
  periksa apakah tidak ada jeda yang terlalu lama untuk memperbarui UI setelah
  aplikasi diubah ukurannya.
  </li>
</ul>

<h4 id="test-checklist">Daftar periksa pengujian</h4>

<p>
  Untuk memeriksa kinerja aplikasi Anda dalam mode multi-jendela, cobalah operasi
  berikut. Anda harus mencoba semua operasi ini dalam mode layar terbagi dan
   dan mode multi-jendela, kecuali jika dinyatakan berbeda.
</p>

<ul>
  <li>Masuki dan tinggalkan mode multi-jendela.
  </li>

  <li>Beralih dari aplikasi Anda ke aplikasi lain, dan periksa apakah aplikasi berperilaku
   sebagaimana mestinya saat terlihat namun tidak aktif. Misalnya, jika aplikasi Anda
   sedang memutar video, periksa apakah video terus diputar selagi pengguna
  berinteraksi dengan aplikasi lain.
  </li>

  <li>Dalam mode layar terbagi, cobalah menggeser garis pembagi untuk membuat aplikasi
  Anda menjadi lebih besar dan lebih kecil. Coba operasi ini dalam konfigurasi berdampingan dan
  atas-bawah. Periksa apakah aplikasi tidak crash,
  fungsionalitas penting bisa terlihat, dan operasi mengubah ukuran tidak memakan waktu terlalu
  lama.
  </li>

  <li>Lakukan beberapa operasi ubah ukuran berturut-turut dalam waktu cepat. Periksa apakah
  aplikasi Anda tidak crash atau mengalami kebocoran memori. Untuk informasi tentang memeriksa penggunaan memori
  aplikasi Anda, lihat <a href="{@docRoot}tools/debugging/debugging-memory.html">
  Menyelidiki Penggunaan RAM Anda</a>.
  </li>

  <li>Gunakan aplikasi secara normal di sejumlah konfigurasi jendela yang berbeda, dan
  periksa apakah aplikasi berperilaku sebagaimana mestinya. Periksa apakah teks terbaca, dan apakah
  elemen UI tidak terlalu kecil untuk interaksi.
  </li>
</ul>

<h3 id="test-disabled-mw">Jika Anda telah menonaktifkan dukungan multi-jendela</h3>

<p>
  Jika Anda menonaktifkan dukungan multi-jendela dengan mengatur
  <code>android:resizableActivity="false"</code>, Anda harus menjalankan aplikasi pada
  perangkat yang menjalankan Android N dan berusaha menempatkan aplikasi dalam
  mode bentuk bebas dan mode layar terbagi. Periksa apakah Anda melakukannya, aplikasi tetap berada dalam
  mode layar penuh.
</p>