Home | History | Annotate | Download | only in ui
      1 page.title=Dukungan Multi-Jendela
      2 page.metaDescription=Dukungan baru di Android N untuk menampilkan lebih dari satu aplikasi sekaligus.
      3 page.keywords="multi-window", "android N", "split screen", "free-form"
      4 
      5 @jd:body
      6 
      7 <div id="tb-wrapper">
      8   <div id="tb">
      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}images/android-7.0/mw-splitscreen.png" alt="" width="650" srcset="{@docRoot}images/android-7.0/mw-splitscreen.png 1x,
     73     {@docRoot}images/android-7.0/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>&lt;activity&gt;</code> Anda atau simpul
    179   <code>&lt;application&gt;</code> untuk mengaktifkan atau menonaktifkan tampilan
    180    multi-jendela:
    181 </p>
    182 
    183 <pre>
    184 android: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>&lt;activity&gt;</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>
    209 android:supportsPictureInPicture=["true" | "false"]
    210 </pre>
    211 
    212 <h3 id="layout">Atribut layout</h3>
    213 
    214 <p>
    215   Dengan Android N, elemen manifes <code>&lt;layout&gt;</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 &lt;activity android:name=".MyActivity"&gt;
    266     &lt;layout android:defaultHeight="500dp"
    267           android:defaultWidth="600dp"
    268           android:gravity="top|end"
    269           android:minimalHeight="450dp"
    270           android:minimalWidth="300dp" /&gt;
    271 &lt;/activity&gt;
    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