1page.title=Dukungan Multi-Jendela 2page.metaDescription=Dukungan baru di Android N untuk menampilkan lebih dari satu aplikasi sekaligus. 3page.keywords="multi-window", "android N", "split screen", "free-form" 4 5@jd:body 6 7<div id="qv-wrapper"> 8 <div id="qv"> 9 <h2>Dalam dokumen ini</h2> 10 <ol> 11 <li><a href="#overview">Ringkasan</a></li> 12 <li><a href="#lifecycle">Daur Hidup Multi-Jendela</a></li> 13 <li><a href="#configuring">Mengonfigurasi Aplikasi Anda untuk Mode 14 Multi-Jendela</a></li> 15 <li><a href="#running">Menjalankan Aplikasi Anda dalam Mode Multi-Jendela</a></li> 16 <li><a href="#testing">Menguji Dukungan Multi-Jendela Aplikasi Anda</a></li> 17 </ol> 18 <h2>Lihat Juga</h2> 19 <ol> 20 <li><a class="external-link" href="https://github.com/googlesamples/android-MultiWindowPlayground">Aplikasi contoh Playground 21 Multi-Jendela</a></li> 22 <li><a class="external-link" href="https://medium.com/google-developers/5-tips-for-preparing-for-multi-window-in-android-n-7bed803dda64">Lima Tip untuk Mempersiapkan Multi-Jendela di Android N</a></li> 23 </ol> 24 </div> 25</div> 26 27<p> 28 Android N menambahkan dukungan untuk menampilkan lebih dari satu aplikasi 29 sekaligus. Pada perangkat genggam, dua aplikasi bisa berjalan berdampingan atau 30 atas-bawah dalam mode <em>layar terbagi</em>. Pada perangkat TV, aplikasi bisa 31 menggunakan mode <em>gambar-dalam-gambar</em> untuk melanjutkan pemutaran video selagi pengguna 32 berinteraksi dengan aplikasi lain. 33</p> 34 35<p> 36 Jika Anda membangun aplikasi Anda dengan N Preview SDK, Anda bisa mengonfigurasi cara aplikasi 37 menangani tampilan multi-jendela. Misalnya, Anda bisa menetapkan dimensi 38 minimum yang diizinkan aktivitas Anda. Anda juga bisa menonaktifkan tampilan multi-jendela untuk 39 aplikasi, sehingga memastikan sistem hanya menampilkan aplikasi Anda dalam mode 40 layar penuh. 41</p> 42 43<h2 id="overview">Ringkasan</h2> 44 45<p> 46 Android N memungkinkan beberapa aplikasi berbagi layar sekaligus. Misalnya, 47 pengguna bisa membagi layar, melihat halaman web di sisi kiri 48 sambil menulis email di sisi kanan. Pengalaman pengguna bergantung pada 49 perangkat: 50</p> 51 52<ul> 53 <li>Perangkat genggam yang menjalankan Android N menawarkan mode 54 layar terbagi. Di mode ini, sistem mengisi layar dengan dua aplikasi, menampilkannya secara 55 berdampingan atau atas-bawah. Pengguna bisa menyeret garis pembagi 56 yang memisahkan keduanya untuk membuat satu aplikasi lebih besar dan yang lainnya lebih kecil. 57 </li> 58 59 <li>Pada Nexus Player yang menjalankan Android N, aplikasi bisa menempatkan diri 60 dalam <a href="picture-in-picture.html">mode gambar-dalam-gambar</a>, yang memungkinkannya 61 untuk terus menampilkan materi selagi pengguna menjelajahi atau berinteraksi dengan 62 aplikasi lain. 63 </li> 64 65 <li>Produsen perangkat berukuran lebih besar bisa memilih untuk mengaktifkan mode 66 bentuk bebas, di mana pengguna bisa bebas mengubah ukuran setiap aktivitas. Jika 67 produsen mengaktifkan fitur ini, perangkat akan menawarkan mode bentuk bebas sebagai tambahan 68 untuk mode layar terbagi. 69 </li> 70</ul> 71 72<img src="{@docRoot}preview/images/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}preview/images/mw-splitscreen.png 1x, 73 {@docRoot}preview/images/mw-splitscreen_2x.png 2x," id="img-split-screen" /> 74<p class="img-caption"> 75 <strong>Gambar 1.</strong> Dua aplikasi berjalan berdampingan dalam mode layar terbagi. 76</p> 77 78<p> 79 Pengguna bisa beralih ke mode multi-jendela dengan cara berikut: 80</p> 81 82<ul> 83 <li>Jika pengguna membuka <a href="{@docRoot}guide/components/recents.html">layar 84 Ringkasan</a> dan menekan lama pada 85 judul aktivitas, mereka bisa menyeret aktivitas itu ke bagian yang disorot pada layar 86 untuk menempatkan aktivitas dalam mode multi-jendela. 87 </li> 88 89 <li>Jika pengguna menekan lama pada tombol Ringkasan, perangkat akan menempatkan 90 aktivitas saat ini dalam mode multi-jendela, dan membuka layar Ringkasan guna 91 memungkinkan pengguna memilih aktivitas lain untuk berbagi layar. 92 </li> 93</ul> 94 95<p> 96 Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">seret dan 97 lepas</a> data dari aktivitas satu ke aktivitas lain sewaktu aktivitas berbagi 98 layar. (Sebelumnya, pengguna hanya bisa menyeret dan melepas data dalam aktivitas 99 tunggal.) 100</p> 101 102<h2 id="lifecycle">Daur Hidup Multi-Jendela</h2> 103 104<p> 105 Mode multi-jendela tidak mengubah <a href="{@docRoot}training/basics/activity-lifecycle/index.html">daur hidup 106 aktivitas</a>. 107</p> 108 109<p> 110 Dalam mode multi-jendela, hanya aktivitas yang paling sering digunakan pengguna 111 yang akan aktif pada waktu tertentu. Aktivitas ini dianggap <em>teratas</em>. 112 Semua aktivitas lainnya dalam keadaan berhenti sementara, sekalipun terlihat. 113 Akan tetapi, sistem memberikan aktivitas, yang berhenti-sementara-namun-terlihat ini, prioritas lebih tinggi 114 daripada aktivitas yang tidak terlihat. Jika pengguna berinteraksi dengan salah satu 115 aktivitas yang berhenti sementara, aktivitas tersebut akan dilanjutkan kembali, dan aktivitas 116 teratas sebelumnya akan dihentikan sementara. 117</p> 118 119<p class="note"> 120 <strong>Catatan:</strong> Dalam mode multi-jendela, aplikasi bisa berada dalam keadaan berhenti sementara 121 dan masih terlihat oleh pengguna. Sebuah aplikasi mungkin perlu melanjutkan aktivitasnya 122 bahkan saat berhenti sementara. Misalnya, aplikasi pemutar video yang ada dalam 123 mode berhenti sementara namun terlihat harus tetap menampilkan videonya. Karena alasan 124 ini, kami menyarankan aktivitas yang memutar video <em>tidak</em> menghentikan sementara video 125 dalam handler {@link android.app.Activity#onPause onPause()} mereka. 126 Sebagai gantinya, aktivitas itu harus menghentikan sementara video di {@link android.app.Activity#onStop 127 onStop()}, dan melanjutkan pemutaran di {@link android.app.Activity#onStart 128 onStart()}. 129</p> 130 131<p> 132 Bila pengguna menempatkan aplikasi dalam mode multi-jendela, sistem akan memberi tahu 133 aktivitas tersebut mengenai perubahan konfigurasi, sebagaimana ditetapkan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan 134 Waktu Proses</a>. Hal ini juga terjadi ketika pengguna mengubah skala aplikasi, atau menempatkan kembali aplikasi 135 ke mode layar penuh. 136 Pada dasarnya, perubahan ini memiliki implikasi daur hidup aktivitas yang sama 137 seperti saat sistem memberi tahu aplikasi bahwa perangkat telah beralih 138 dari mode potret ke mode lanskap, kecuali dimensi perangkat 139 telah berubah sebagai ganti bertukar posisi. Seperti yang dibahas di <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan 140 Waktu Proses</a>, aktivitas Anda bisa menangani perubahan konfigurasi itu sendiri, atau 141 mengizinkan sistem memusnahkan aktivitas dan membuatnya kembali dengan dimensi 142 baru. 143</p> 144 145<p> 146 Jika pengguna mengubah ukuran jendela dan membuat dimensinya lebih besar, sistem 147 akan mengubah ukuran aktivitas untuk menyesuaikan dengan tindakan pengguna dan mengeluarkan <a href="{@docRoot}guide/topics/resources/runtime-changes.html">perubahan waktu proses</a> 148 bila diperlukan. Jika aplikasi tertinggal dibandingkan gambar di area yang baru diekspos, 149 sistem untuk sementara mengisi area tersebut dengan warna yang ditetapkan oleh atribut {@link 150 android.R.attr#windowBackground windowBackground} atau dengan atribut gaya 151 <code>windowBackgroundFallback</code> secara default. 152</p> 153 154<h2 id="configuring">Mengonfigurasi Aplikasi Anda untuk Mode Multi-Jendela</h2> 155 156<p> 157 Jika aplikasi Anda menargetkan Android N, Anda bisa mengonfigurasi bagaimana dan 158 apakah aktivitas aplikasi Anda mendukung tampilan multi-jendela. Anda bisa menyetel 159 atribut dalam manifes untuk mengontrol ukuran dan layoutnya. 160 Setelan atribut aktivitas root berlaku pada semua aktivitas 161 dalam tumpukan tugasnya. Misalnya, jika aktivitas root memiliki 162 <code>android:resizeableActivity</code> yang disetel ke true, maka semua aktivitas 163 dalam tumpukan tugas bisa diubah ukurannya. 164</p> 165 166<p class="note"> 167 <strong>Catatan:</strong> Jika Anda membangun aplikasi multi-orientasi dengan versi 168 SDK lebih rendah dari Android N, dan pengguna menggunakan aplikasi 169 dalam mode multi-jendela, sistem akan mengubah ukuran aplikasi secara paksa. Sistem akan menampilkan kotak 170 dialog yang memperingatkan pengguna bahwa aplikasi mungkin berperilaku tidak terduga. Sistem 171 <em>tidak</em> mengubah ukuran aplikasi yang berorientasi tetap; jika 172 pengguna berusaha membuka aplikasi berorientasi tetap saat mode multi-jendela, 173 aplikasi akan menggunakan seluruh layar. 174</p> 175 176<h4 id="resizeableActivity">android:resizeableActivity</h4> 177<p> 178 Setel atribut ini dalam manifes <code><activity></code> Anda atau simpul 179 <code><application></code> untuk mengaktifkan atau menonaktifkan tampilan 180 multi-jendela: 181</p> 182 183<pre> 184android:resizeableActivity=["true" | "false"] 185</pre> 186 187<p> 188 Jika atribut ini disetel ke true, aktivitas bisa dijalankan di 189 mode layar terbagi dan mode bentuk bebas. Jika atribut ini disetel ke false, aktivitas 190 tidak akan mendukung mode multi-jendela. Jika nilai ini false, dan pengguna 191 berusaha memulai aktivitas dalam mode multi-jendela, aktivitas akan menggunakan 192 layar penuh. 193</p> 194 195<p> 196 Jika aplikasi Anda menargetkan Android N, namun Anda tidak menetapkan nilai 197 untuk atribut ini, nilai atribut default adalah true. 198</p> 199 200<h4 id="supportsPictureInPicture">android:supportsPictureInPicture</h4> 201 202<p> 203 Setel atribut ini dalam simpul <code><activity></code> manifes Anda untuk 204 menunjukkan apakah aktivitas mendukung tampilan gambar-dalam-gambar. Atribut ini 205 diabaikan jika <code>android:resizeableActivity</code> bernilai false. 206</p> 207 208<pre> 209android:supportsPictureInPicture=["true" | "false"] 210</pre> 211 212<h3 id="layout">Atribut layout</h3> 213 214<p> 215 Dengan Android N, elemen manifes <code><layout></code> 216 mendukung beberapa atribut yang memengaruhi cara aktivitas berperilaku dalam 217 mode multi-jendela: 218</p> 219 220<dl> 221 <dt> 222 <code>android:defaultWidth</code> 223 </dt> 224 225 <dd> 226 Lebar default aktivitas saat dijalankan dalam mode bentuk bebas. 227 </dd> 228 229 <dt> 230 <code>android:defaultHeight</code> 231 </dt> 232 233 <dd> 234 Tinggi default aktivitas saat dijalankan dalam mode bentuk bebas. 235 </dd> 236 237 <dt> 238 <code>android:gravity</code> 239 </dt> 240 241 <dd> 242 Penempatan awal dari aktivitas saat dibuka dalam mode bentuk bebas. Lihat referensi 243 {@link android.view.Gravity} untuk mengetahui nilai yang cocok. 244 </dd> 245 246 <dt> 247 <code>android:minimalHeight</code>, <code>android:minimalWidth</code> 248 </dt> 249 250 <dd> 251 Tinggi dan lebar minimum untuk aktivitas dalam mode layar terbagi 252 dan mode bentuk bebas. Jika pengguna memindahkan pembagi dalam mode layar terbagi 253 untuk membuat aktivitas lebih kecil dari minimum yang ditetapkan, sistem akan memangkas 254 aktivitas sesuai dengan ukuran yang diminta pengguna. 255 </dd> 256</dl> 257 258<p> 259 Misalnya, kode berikut menampilkan cara menetapkan ukuran dan lokasi default 260 aktivitas, dan ukuran minimumnya, bila aktivitas ditampilkan dalam 261 mode bentuk bebas: 262</p> 263 264<pre> 265<activity android:name=".MyActivity"> 266 <layout android:defaultHeight="500dp" 267 android:defaultWidth="600dp" 268 android:gravity="top|end" 269 android:minimalHeight="450dp" 270 android:minimalWidth="300dp" /> 271</activity> 272</pre> 273 274<h2 id="running">Menjalankan Aplikasi Anda dalam Mode Multi-Jendela</h2> 275 276<p> 277 Android N menawarkan fungsionalitas baru untuk mendukung aplikasi yang bisa berjalan 278 dalam mode multi-jendela. 279</p> 280 281<h3 id="disabled-features">Fitur yang dinonaktifkan dalam mode multi-jendela</h3> 282 283<p> 284 Fitur tertentu akan dinonaktifkan atau diabaikan bila perangkat berada dalam mode 285 multi-jendela, karena dianggap tidak logis bagi suatu aktivitas yang mungkin berbagi 286 layar perangkat dengan aktivitas atau aplikasi lainnya. Fitur tersebut meliputi: 287 288<ul> 289 <li>Beberapa opsi penyesuaian di <a href="{@docRoot}training/system-ui/index.html">System UI</a> 290 dinonaktifkan; misalnya, aplikasi tidak bisa menyembunyikan bilah status 291 jika tidak berjalan dalam mode layar penuh. 292 </li> 293 294 <li>Sistem akan mengabaikan perubahan pada atribut <code><a href= 295 "{@docRoot}guide/topics/manifest/activity-element.html#screen" 296 >android:screenOrientation</a></code>. 297 </li> 298</ul> 299 300<h3 id="change-notification">Pemberitahuan perubahan multi-jendela dan melakukan kueri</h3> 301 302<p> 303 Metode baru berikut telah ditambahkan ke kelas {@link android.app.Activity} 304 untuk mendukung tampilan multi-jendela. Untuk mengetahui detail tentang setiap 305 metode, lihat <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N 306 Preview SDK</a>. 307</p> 308 309<dl> 310 <dt> 311 <code>Activity.isInMultiWindowMode()</code> 312 </dt> 313 314 <dd> 315 Panggil untuk mengetahui apakah aktivitas berada dalam mode multi-jendela. 316 </dd> 317 318 <dt> 319 <code>Activity.isInPictureInPictureMode()</code> 320 </dt> 321 322 <dd> 323 Panggil untuk mengetahui apakah aktivitas berada dalam mode gambar-dalam-gambar. 324 325 <p class="note"> 326 <strong>Catatan:</strong> Mode gambar-dalam-gambar adalah kasus khusus pada 327 mode multi-jendela. Jika <code>myActivity.isInPictureInPictureMode()</code> 328 mengembalikan nilai true, maka <code>myActivity.isInMultiWindowMode()</code> juga 329 mengembalikan nilai true. 330 </p> 331 </dd> 332 333 <dt> 334 <code>Activity.onMultiWindowModeChanged()</code> 335 </dt> 336 337 <dd> 338 Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari 339 mode multi-jendela. Sistem akan meneruskan ke metode sebuah nilai true jika 340 aktivitas tersebut memasuki mode multi-jendela, dan nilai false jika aktivitas 341 tersebut meninggalkan mode multi-jendela. 342 </dd> 343 344 <dt> 345 <code>Activity.onPictureInPictureModeChanged()</code> 346 </dt> 347 348 <dd> 349 Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari 350 mode gambar-dalam-gambar. Sistem akan meneruskan ke metode sebuah nilai true jika 351 aktivitas tersebut memasuki mode gambar-dalam-gambar, dan nilai false jika aktivitas 352 tersebut meninggalkan mode gambar-dalam-gambar. 353 </dd> 354</dl> 355 356<p> 357 Ada juga versi {@link android.app.Fragment} untuk setiap 358 metode ini, misalnya <code>Fragment.isInMultiWindowMode()</code>. 359</p> 360 361<h3 id="entering-pip">Memasuki mode gambar-dalam-gambar</h3> 362 363<p> 364 Untuk menempatkan aktivitas dalam mode gambar-dalam-gambar, panggil metode baru 365 <code>Activity.enterPictureInPictureMode()</code>. Metode ini tidak berpengaruh jika 366 perangkat tidak mendukung mode gambar-dalam-gambar. Untuk informasi selengkapnya, 367 lihat dokumentasi <a href="picture-in-picture.html">Gambar-dalam-Gambar</a>. 368</p> 369 370<h3 id="launch">Meluncurkan Aktivitas Baru dalam Mode Multi-Jendela</h3> 371 372<p> 373 Bila meluncurkan aktivitas baru, Anda bisa memberi petunjuk pada sistem bahwa aktivitas 374 baru harus ditampilkan bersebelahan dengan aktivitas yang sedang aktif, jika memungkinkan. Caranya, 375 gunakan flag 376 <code>Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT</code>. Meneruskan 377 flag ini akan meminta perilaku berikut: 378</p> 379 380<ul> 381 <li>Jika perangkat berada dalam mode layar terbagi, sistem akan berupaya membuat 382 aktivitas baru di sebelah aktivitas yang meluncurkannya, sehingga kedua aktivitas tersebut 383 berbagi layar. Tidak ada jaminan sistem mampu melakukannya, namun sistem akan 384 membuat aktivitas bersebelahan jika memungkinkan. 385 </li> 386 387 <li>Jika perangkat tidak berada dalam mode layar terbagi, flag ini tidak akan berpengaruh. 388 </li> 389</ul> 390 391<p> 392 Jika perangkat dalam mode bentuk bebas dan Anda menjalankan aktivitas baru, Anda bisa 393 menetapkan dimensi aktivitas baru dan lokasi layar dengan memanggil 394 <code>ActivityOptions.setLaunchBounds()</code>. Metode ini tidak berpengaruh jika 395 perangkat tidak berada dalam mode multi-jendela. 396</p> 397 398<p class="note"> 399 <strong>Catatan:</strong> Jika Anda meluncurkan aktivitas dalam tumpukan tugas, aktivitas 400 tersebut akan menggantikan aktivitas pada layar, dengan mewarisi semua 401 properti multi-jendelanya. Jika Anda ingin meluncurkan aktivitas baru sebagai jendela 402 terpisah dalam mode multi-jendela, Anda harus meluncurkannya dalam tumpukan tugas baru. 403</p> 404 405<h3 id="dnd">Mendukung seret dan lepas</h3> 406 407<p> 408 Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">menyeret dan 409 melepas</a> data dari satu aktivitas ke aktivitas yang lain selagi kedua aktivitas 410 berbagi layar. (Sebelumnya, pengguna hanya bisa menyeret dan melepas data dalam 411 aktivitas tunggal.) Karena alasan ini, Anda mungkin perlu menambahkan fungsionalitas 412 seret dan lepas ke aplikasi jika aplikasi saat ini belum mendukungnya. 413</p> 414 415<p> 416 N Preview SDK menambahkan paket <a href="{@docRoot}reference/android/view/package-summary.html"><code>android.view</code></a> 417 untuk mendukung seret dan lepas lintas-aplikasi. Untuk mengetahui detail tentang kelas dan metode 418 berikut, lihat <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N 419 Preview SDK</a>. 420</p> 421 422<dl> 423 <dt> 424 <code>android.view.DropPermissions</code> 425 </dt> 426 427 <dd> 428 Objek token bertanggung jawab menetapkan izin yang diberikan kepada aplikasi 429 yang menerima pelepasan tersebut. 430 </dd> 431 432 <dt> 433 <code>View.startDragAndDrop()</code> 434 </dt> 435 436 <dd> 437 Alias baru untuk {@link android.view.View#startDrag View.startDrag()}. Untuk 438 mengaktifkan seret dan lepas lintas-aktivitas, teruskan flag baru 439 <code>View.DRAG_FLAG_GLOBAL</code>. Jika Anda perlu memberikan izin URI ke 440 aktivitas penerima, teruskan flag baru, 441 <code>View.DRAG_FLAG_GLOBAL_URI_READ</code> atau 442 <code>View.DRAG_FLAG_GLOBAL_URI_WRITE</code>, sebagaimana mestinya. 443 </dd> 444 445 <dt> 446 <code>View.cancelDragAndDrop()</code> 447 </dt> 448 449 <dd> 450 Membatalkan operasi seret yang sedang berlangsung. Hanya bisa dipanggil oleh 451 aplikasi yang menghasilkan operasi seret. 452 </dd> 453 454 <dt> 455 <code>View.updateDragShadow()</code> 456 </dt> 457 458 <dd> 459 Menggantikan bayangan penyeretan untuk operasi seret yang sedang berlangsung. Hanya 460 bisa dipanggil oleh aplikasi yang menghasilkan operasi seret. 461 </dd> 462 463 <dt> 464 <code>Activity.requestDropPermissions()</code> 465 </dt> 466 467 <dd> 468 Meminta izin untuk URI materi yang diteruskan dengan {@link 469 android.content.ClipData} yang terdapat dalam {@link android.view.DragEvent}. 470 </dd> 471</dl> 472 473<h2 id="testing">Menguji Dukungan Multi-Jendela Aplikasi Anda</h2> 474 475<p> 476 Apakah Anda memperbarui aplikasi untuk Android N atau tidak, Anda harus 477 verifikasi bagaimana perilakunya di mode multi-jendela saat pengguna mencoba untuk menjalankannya 478 dalam mode multi-jendela pada perangkat yang menjalankan Android N. 479</p> 480 481<h3 id="configuring">Mengonfigurasi Perangkat Pengujian</h3> 482 483<p> 484 Jika Anda pasang Android N pada perangkat, mode 485 layar terbagi secara otomatis didukung. 486</p> 487 488<h3 id="test-non-n">Jika aplikasi Anda tidak dibangun dengan N Preview SDK</h3> 489 490<p> 491 Jika Anda tidak membangun aplikasi dengan N Preview SDK dan pengguna berupaya menggunakan 492 aplikasi dalam mode multi-jendela, sistem secara paksa akan mengubah ukuran aplikasi kecuali jika aplikasi 493 mendeklarasikan orientasi tetap. 494</p> 495 496<p> 497 Jika aplikasi Anda tidak mendeklarasikan orientasi tetap, Anda harus meluncurkan aplikasi 498 pada perangkat yang menjalankan Android N dan berupaya menempatkan aplikasi tersebut dalam 499 mode layar terbagi. Verifikasi pengalaman pengguna 500 bisa diterima bila aplikasi secara paksa diubah ukurannya. 501</p> 502 503<p> 504 Jika aplikasi mendeklarasikan orientasi tetap, Anda harus berupaya menempatkan aplikasi dalam 505 mode multi-jendela. Verifikasi apakah saat Anda melakukannya, aplikasi tetap berada dalam 506 mode layar penuh. 507</p> 508 509<h3 id="test-mw">Jika Anda mendukung mode multi-jendela</h3> 510 511<p> 512 Jika Anda membuat aplikasi Anda dengan N Preview SDK dan belum menonaktifkan 513 dukungan multi-jendela, verifikasi perilaku berikut dalam mode layar terbagi 514 dan mode bentuk bebas. 515</p> 516 517<ul> 518 <li>Luncurkan aplikasi dalam mode layar penuh, kemudian beralih ke mode multi-jendela dengan 519 menekan lama pada tombol Ringkasan. Verifikasi apakah aplikasi beralih dengan benar. 520 </li> 521 522 <li>Jalankan aplikasi secara langsung dalam mode multi-jendela, dan verifikasi aplikasi 523 diluncurkan dengan benar. Anda bisa meluncurkan aplikasi dalam mode multi-jendela dengan menekan 524 tombol Ringkasan, kemudian menekan lama baris judul pada aplikasi Anda dan menyeretnya 525 ke salah satu area yang disorot di layar. 526 </li> 527 528 <li>Ubah ukuran aplikasi Anda dalam mode layar terbagi dengan menyeret garis pembagi. 529 Verifikasi apakah aplikasi mengubah ukuran tanpa mogok, dan apakah elemen UI yang diperlukan 530 terlihat. 531 </li> 532 533 <li>Jika Anda telah menetapkan dimensi minimum aplikasi, cobalah untuk mengubah ukuran 534 aplikasi di bawah dimensi tersebut. Verifikasi apakah Anda tidak bisa mengubah ukuran aplikasi menjadi 535 lebih kecil dari minimum yang ditetapkan. 536 </li> 537 538 <li>Melalui semua pengujian, verifikasi apakah kinerja aplikasi Anda bisa diterima. Misalnya, 539 verifikasi apakah tidak ada jeda yang terlalu lama untuk memperbarui UI setelah 540 aplikasi diubah ukurannya. 541 </li> 542</ul> 543 544<h4 id="test-checklist">Daftar periksa pengujian</h4> 545 546<p> 547 Untuk verifikasi kinerja aplikasi Anda dalam mode multi-jendela, cobalah operasi 548 berikut. Anda harus mencoba semua operasi ini dalam mode layar terbagi dan 549 dan mode multi-jendela, kecuali jika dinyatakan berbeda. 550</p> 551 552<ul> 553 <li>Masuki dan tinggalkan mode multi-jendela. 554 </li> 555 556 <li>Beralih dari aplikasi Anda ke aplikasi lain, dan verifikasi apakah aplikasi berperilaku 557 sebagaimana mestinya saat terlihat namun tidak aktif. Misalnya, jika aplikasi Anda 558 sedang memutar video, verifikasi apakah video terus diputar selagi pengguna 559 berinteraksi dengan aplikasi lain. 560 </li> 561 562 <li>Dalam mode layar terbagi, cobalah menggeser garis pembagi untuk membuat aplikasi 563 Anda menjadi lebih besar dan lebih kecil. Coba operasi ini dalam konfigurasi berdampingan dan 564 atas-bawah. Verifikasi apakah aplikasi tidak mogok, 565 fungsionalitas penting bisa terlihat, dan operasi mengubah ukuran tidak memakan waktu terlalu 566 lama. 567 </li> 568 569 <li>Lakukan beberapa operasi ubah ukuran berturut-turut dalam waktu cepat. Verifikasi apakah 570 aplikasi Anda tidak mogok atau mengalami kebocoran memori. Untuk informasi tentang memeriksa penggunaan memori 571 aplikasi Anda, lihat <a href="{@docRoot}tools/debugging/debugging-memory.html"> 572 Menyelidiki Penggunaan RAM Anda</a>. 573 </li> 574 575 <li>Gunakan aplikasi secara normal di sejumlah konfigurasi jendela yang berbeda, dan 576 verifikasi apakah aplikasi berperilaku sebagaimana mestinya. Verifikasi apakah teks terbaca, dan apakah 577 elemen UI tidak terlalu kecil untuk interaksi. 578 </li> 579</ul> 580 581<h3 id="test-disabled-mw">Jika Anda telah menonaktifkan dukungan multi-jendela</h3> 582 583<p> 584 Jika Anda menonaktifkan dukungan multi-jendela dengan menyetel 585 <code>android:resizableActivity="false"</code>, Anda harus menjalankan aplikasi pada 586 perangkat yang menjalankan Android N dan berusaha menempatkan aplikasi dalam 587 mode bentuk bebas dan mode layar terbagi. Verifikasi apakah saat Anda melakukannya, aplikasi tetap berada dalam 588 mode layar penuh. 589</p> 590