summaryrefslogtreecommitdiff
path: root/docs/html-intl/intl/in
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html-intl/intl/in')
-rw-r--r--docs/html-intl/intl/in/preview/api-overview.jd676
-rw-r--r--docs/html-intl/intl/in/preview/behavior-changes.jd480
-rw-r--r--docs/html-intl/intl/in/preview/download.jd541
-rw-r--r--docs/html-intl/intl/in/preview/features/background-optimization.jd388
-rw-r--r--docs/html-intl/intl/in/preview/features/direct-boot.jd180
-rw-r--r--docs/html-intl/intl/in/preview/features/icu4j-framework.jd158
-rw-r--r--docs/html-intl/intl/in/preview/features/multi-window.jd582
-rw-r--r--docs/html-intl/intl/in/preview/features/multilingual-support.jd214
-rw-r--r--docs/html-intl/intl/in/preview/features/notification-updates.jd328
-rw-r--r--docs/html-intl/intl/in/preview/features/picture-in-picture.jd186
-rw-r--r--docs/html-intl/intl/in/preview/features/scoped-folder-access.jd124
-rw-r--r--docs/html-intl/intl/in/preview/features/security-config.jd744
-rw-r--r--docs/html-intl/intl/in/preview/features/tv-recording-api.jd120
-rw-r--r--docs/html-intl/intl/in/preview/index.jd120
-rw-r--r--docs/html-intl/intl/in/preview/j8-jack.jd183
-rw-r--r--docs/html-intl/intl/in/preview/overview.jd440
-rw-r--r--docs/html-intl/intl/in/preview/samples.jd85
-rw-r--r--docs/html-intl/intl/in/preview/setup-sdk.jd226
18 files changed, 5775 insertions, 0 deletions
diff --git a/docs/html-intl/intl/in/preview/api-overview.jd b/docs/html-intl/intl/in/preview/api-overview.jd
new file mode 100644
index 000000000000..26c539c7b542
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/api-overview.jd
@@ -0,0 +1,676 @@
+page.title=Android N untuk Pengembang
+meta.tags="preview", "androidn"
+page.tags="preview", "developer preview"
+page.image=images/cards/card-n-apis_2x.png
+@jd:body
+
+
+
+
+<div id="qv-wrapper">
+<div id="qv">
+ <h2>Fitur-fitur utama untuk pengembang</h2>
+ <ol>
+ <ul style="list-style-type:none;">
+ <li><a href="#multi-window_support">Dukungan multi-jendela</a></li>
+ <li><a href="#notification_enhancements">Pemberitahuan</a></li>
+ <li><a href="#jit_aot">Kompilasi JIT/AOT</a></li>
+ <li><a href="#quick_path_to_app_install">Jalur cepat untuk menginstal aplikasi</a></li>
+ <li><a href="#doze_on_the_go">Doze di perjalanan</a></li>
+ <li><a href="#background_optimizations">Optimisasi latar belakang</a></li>
+ <li><a href="#data_saver">Data Saver</a></li>
+ <li><a href="#tile_api">Quick Settings Tile API</a></li>
+ <li><a href="#number-blocking">Pemblokiran nomor</a></li>
+ <li><a href="#call_screening">Penyaringan panggilan</a></li>
+ <li><a href="#multi-locale_languages">Lokal dan bahasa</a></li>
+ <li><a href="#icu4">ICU4J API di Android</a></li>
+ <li><a href="#gles_32">OpenGL ES 3.2 API</a></li>
+ <li><a href="#android_tv_recording">Perekaman Android TV</a></li>
+ <li><a href="#android_for_work">Android for Work</a></li>
+ <li><a href="#accessibility_enhancements">Aksesibilitas</a></li>
+ <li><a href="#direct_boot">Direct Boot</a></li>
+ <li><a href="#key_attestation">Pengesahan Kunci</a></li>
+ <li><a href="#network_security_config">Network Security Config</a></li>
+ <li><a href="#default_trusted_ca">CA Tepercaya Default</a></li>
+ <li><a href="apk_signature_v2">APK Signature Scheme v2</a></li>
+ <li><a href="#scoped_directory_access">Scoped Directory Access</a></li>
+ </ol>
+</div>
+</div>
+
+
+
+<p>Android N masih dalam pengembangan aktif, namun Anda bisa mencobanya
+sekarang sebagai bagian dari N Developer Preview. Bagian-bagian di bawah ini akan menyoroti sebagian dari
+fitur baru untuk pengembang. </p>
+
+<p>
+ Pastikan memeriksa <a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a> untuk mengetahui selengkapnya tentang
+ bagian-bagian perubahan platform yang bisa memengaruhi aplikasi Anda, lihatlah
+ panduan pengembang untuk mengetahui selengkapnya tentang fitur-fitur utama, dan unduh <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API</a> untuk mengetahui detail tentang
+ API baru.
+</p>
+
+<h2 id="multi-window_support">Dukungan multi-jendela</h2>
+
+
+<p>Di Android N, kami memperkenalkan fitur multitasking baru yang banyak diminta
+ke dalam platform &mdash; dukungan multi-jendela. </p>
+
+ <p>Pengguna sekarang bisa membuka dua aplikasi sekaligus di layar. </p>
+ <ul>
+ <li>Pada ponsel dan tablet
+yang menjalankan Android N, pengguna bisa menjalankan dua aplikasi secara berdampingan atau
+satu aplikasi di atas yang lain dalam mode layar terbagi. Pengguna bisa mengubah ukuran aplikasi dengan menyeret
+pembagi di antara keduanya. </li>
+
+<li>Pada perangkat Android TV, aplikasi bisa menempatkan dirinya sendiri dalam <a href="{@docRoot}preview/features/picture-in-picture.html">mode
+gambar-dalam-gambar</a>, sehingga aplikasi bisa terus menampilkan konten sementara pengguna menjelajahi atau
+berinteraksi dengan aplikasi lain. Lihat di bawah ini untuk informasi selengkapnya. </li>
+ </ul>
+
+<div class="col-4of10">
+<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
+<p class="img-caption">
+ <strong>Gambar 1.</strong> Aplikasi yang dijalankan dalam mode layar terbagi.
+</p>
+ </div>
+
+<p>Terutama pada tablet dan perangkat yang berlayar lebih besar lainnya, dukungan multi-jendela
+memberi cara baru untuk memikat pengguna. Anda bahkan bisa mengaktifkan fitur seret-dan-letakkan dalam
+aplikasi Anda untuk memudahkan pengguna menyeret konten ke dan dari aplikasi Anda &mdash; cara yang bagus
+untuk menyempurnakan pengalaman pengguna. </p>
+
+<p>Tidak sulit menambahkan dukungan multi-jendela ke aplikasi Anda dan mengonfigurasi cara
+menangani tampilan multi-jendela. Misalnya, Anda bisa menetapkan dimensi
+minimum aktivitas, sehingga mencegah pengguna mengubah ukuran aktivitas di bawah
+ukuran itu. Anda juga bisa menonaktifkan tampilan multi-jendela untuk aplikasi Anda, yang
+ akan memastikan sistem hanya menampilkan aplikasi dalam mode layar penuh.</p>
+
+<p>
+ Untuk informasi selengkapnya, lihat dokumentasi pengembang <a href="{@docRoot}preview/features/multi-window.html">Dukungan Multi-Jendela</a>.
+
+</p>
+
+<h2 id="notification_enhancements">Penyempurnaan pemberitahuan</h2>
+
+<p>Di Android N kami telah mengubah desain pemberitahuan agar lebih mudah dan lebih cepat
+digunakan. Beberapa perubahan tersebut antara lain:</p>
+
+<ul>
+ <li>
+ <strong>Pembaruan template</strong>: Kami telah memperbarui template pemberitahuan untuk
+ lebih menekankan citra pahlawan dan avatar. Pengembang akan dapat
+ memanfaatkan template baru dengan penyesuaian kode yang minimal.
+ </li>
+
+ <li>
+ <strong>Bundel pemberitahuan</strong>: Sistem bisa mengelompokkan pesan,
+ misalnya menurut topik pesan, dan menampilkan kelompok tersebut. Pengguna bisa
+ mengambil tindakan, misalnya Dismiss atau Archive, atas kelompok pesan tersebut. Jika Anda telah
+ mengimplementasikan pemberitahuan untuk Android Wear, Anda tentu sudah terbiasa dengan
+ model ini.
+ </li>
+
+ <li>
+ <strong>Balasan langsung</strong>: Untuk aplikasi komunikasi real-time, sistem
+ Android mendukung balasan inline sehingga pengguna bisa membalas
+ SMS atau pesan teks secara langsung dari dalam antarmuka pemberitahuan.
+ </li>
+
+ <li>
+ <strong>Tampilan custom</strong>: Dua API baru memungkinkan Anda memanfaatkan dekorasi sistem,
+ misalnya header pemberitahuan dan tindakan, saat menggunakan tampilan
+ custom dalam pemberitahuan.
+ </li>
+</ul>
+
+<div class="col-4of12">
+ <img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
+</div>
+
+<div class="col-4of12">
+ <img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
+</div>
+
+<div class="col-4of12">
+ <img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
+</div>
+
+
+<p class="img-caption">
+ <strong>Gambar 2.</strong> Bundel pemberitahuan dan balasan langsung.
+</p>
+
+<p>Untuk mengetahui cara mengimplementasikan fitur-fitur baru ini, lihat panduan
+<a href="{@docRoot}preview/features/notification-updates.html">Pemberitahuan</a>.
+</p>
+
+
+
+<h2 id="jit_aot">Kompilasi JIT/AOT yang dipandu profil</h2>
+
+<p>Di Android N, kami telah menambahkan compiler Just in Time (JIT) dengan pembuatan profil kode ke
+ART, yang memungkinkannya terus meningkatkan kinerja aplikasi Android saat
+dijalankan. Compiler JIT melengkapi compiler Ahead of Time (AOT) pada ART
+dan membantu memperbaiki kinerja runtime, menghemat ruang penyimpanan, dan mempercepat
+pembaruan aplikasi serta pembaruan sistem.</p>
+
+<p>Kompilasi yang dipandu profil memungkinkan ART mengelola kompilasi AOT/JIT untuk setiap aplikasi
+sesuai dengan penggunaan sebenarnya, serta kondisi pada perangkat. Misalnya,
+ART menyimpan profil setiap metode terbaik aplikasi dan bisa melakukan kompilasi lebih awal
+serta menyimpan sementara metode-metode tersebut di cache untuk mendapatkan kinerja terbaik. Hal ini membuat bagian lain dari aplikasi
+dibiarkan tidak dikompilasi hingga benar-benar digunakan.</p>
+
+<p>Di samping meningkatkan kinerja bagian-bagian penting aplikasi, kompilasi yang dipandu profil
+membantu mengurangi footprint RAM keseluruhan aplikasi, termasuk biner
+terkait. Fitur ini terutama penting pada perangkat dengan memori minim.</p>
+
+<p>ART mengelola kompilasi yang dipandu profil dengan cara yang meminimalkan dampak terhadap baterai perangkat.
+ART melakukan prakompilasi hanya bila perangkat sedang diam dan
+mengisi daya, sehingga menghemat waktu dan baterai dengan melakukan pekerjaan tersebut di awal.</p>
+
+<h2 id="quick_path_to_app_install">Jalur cepat untuk menginstal aplikasi</h2>
+
+<p>Salah satu manfaat paling nyata dari compiler JIT pada ART adalah kecepatan instalasi aplikasi
+dan pembaruan sistem. Bahkan aplikasi besar yang tadinya perlu beberapa menit untuk
+dioptimalkan dan diinstal di Android 6.0 sekarang bisa diinstal hanya dalam hitungan
+detik. Pembaruan sistem juga lebih cepat, karena tidak ada lagi langkah pengoptimalan. </p>
+
+<h2 id="doze_on_the_go">Doze di perjalanan...</h2>
+
+<p>Android 6.0 memperkenalkan Doze, yaitu mode sistem yang menghemat baterai dengan menangguhkan
+aktivitas CPU dan jaringan di aplikasi bila perangkat sedang diam, misalnya saat
+diletakkan di atas meja atau dalam laci. </p>
+
+<p>Sekarang di Android N, Doze jauh lebih maju dan menghemat baterai saat di perjalanan.
+Setiap kali layar mati selama jangka waktu tertentu dan perangkat tidak terhubung ke sumber daya,
+Doze akan menerapkan subset pembatasan CPU dan jaringan yang sudah familier pada aplikasi.
+Ini berarti pengguna bisa menghemat daya baterai meskipun saat membawa perangkat mereka di
+saku.</p>
+
+
+<img src="/preview/images/doze-diagram-1.png" alt="" id="figure1" />
+<p class="img-caption">
+ <strong>Gambar 3.</strong> Doze sekarang menerapkan
+ pembatasan untuk meningkatkan daya tahan baterai bahkan saat perangkat sedang tidak diam.
+</p>
+
+
+<p>Tidak lama setelah layar mati saat perangkat menggunakan daya baterai, Doze
+akan membatasi akses jaringan serta menangguhkan pekerjaan dan sinkronisasi. Selama jeda
+pemeliharaan singkat, aplikasi diizinkan mengakses jaringan dan menjalankan semua
+pekerjaan/sinkronisasi yang ditangguhkan. Menyalakan layar atau menghubungkan perangkat ke listrik akan
+menutup Doze di perangkat.</p>
+
+<p>Bila perangkat dalam kondisi diam lagi, dengan layar mati dan menggunakan daya baterai selama
+jangka waktu tertentu, Doze akan menerapkkan pembatasan CPU dan jaringan pada {@link
+android.os.PowerManager.WakeLock}, alarm {@link android.app.AlarmManager}, dan
+pemindaian GPS/Wi-Fi.</p>
+
+<p>Praktik terbaik untuk menyesuaikan aplikasi Anda dengan Doze adalah sama, baik
+perangkat sedang bergerak maupun diam, jadi jika Anda sudah memperbarui aplikasi untuk
+menjalankan Doze dengan lancar, berarti Anda sudah siap. Jika belum, mulailah <a href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">menyesuaikan
+aplikasi Anda dengan Doze</a> sekarang juga.</p>
+
+<h2 id="background_optimizations">Project Svelte: Optimisasi Latar Belakang</h2>
+
+<p>Project Svelte merupakan upaya berkelanjutan untuk meminimalkan penggunaan RAM oleh sistem dan aplikasi
+di semua jenis perangkat Android dalam ekosistem. Di Android N, Project
+Svelte berfokus pada optimisasi cara aplikasi berjalan di latar belakang. </p>
+
+<p>Pemrosesan latar belakang adalah bagian sangat penting pada sebagian besar aplikasi. Bila ditangani dengan benar, pemrosesan
+ini bisa membuat pengalaman pengguna jadi mengagumkan &mdash; segera, cepat, dan sesuai konteks.
+Bila tidak ditangani dengan benar, pemrosesan latar belakang bisa menguras RAM (dan
+baterai) dengan percuma serta memengaruhi kinerja sistem untuk aplikasi lainnya. </p>
+
+<p>Sejak Android 5.0, {@link android.app.job.JobScheduler} telah menjadi
+cara yang disukai untuk melakukan pekerjaan latar belakang dengan cara yang baik
+bagi pengguna. Aplikasi bisa menjadwalkan pekerjaan sekaligus memungkinkan sistem mengoptimalkan berdasarkan
+kondisi memori, daya, dan konektivitas. JobScheduler menawarkan kontrol serta
+kemudahan, dan kami ingin semua aplikasi menggunakannya. </p>
+
+<p>
+ Opsi baik lainnya adalah <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
+ <code>GCMNetworkManager</code></a>, bagian dari Google Play Services, yang
+ menawarkan penjadwalan pekerjaan serupa dengan kompatibilitas pada semua versi lama
+ Android.
+</p>
+
+<p>Kami terus memperluas <code>JobScheduler</code> dan
+<code>GCMNetworkManager</code> untuk memenuhi lebih banyak
+ kasus penggunaan Anda &mdash; misalnya, di Android N Anda sekarang bisa menjadwalkan pekerjaan
+latar belakang berdasarkan perubahan di Penyedia Konten. Pada saat yang sama kami mulai
+menghilangkan beberapa pola lama yang bisa mengurangi kinerja sistem,
+terutama pada perangkat yang minim memori.</p>
+
+<p>Di Android N kami menghilangkan tiga siaran implisit yang umum digunakan &mdash;
+ {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE}, dan {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO} &mdash; karena ketiganya bisa mengaktifkan
+proses latar belakang pada beberapa aplikasi sekaligus serta menguras memori dan baterai. Jika
+aplikasi Anda menerimanya, manfaatkan N Developer Preview untuk
+ beralih ke <code>JobScheduler</code> dan API terkait sebagai gantinya. </p>
+
+<p>
+ Lihat dokumentasi <a href="{@docRoot}preview/features/background-optimization.html">Optimisasi
+ Latar Belakang</a> untuk mengetahui detailnya.
+</p>
+
+
+<h2 id="data_saver">Data Saver</h2>
+
+<div class="col-5of12" style="margin-right:1.5em;">
+<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
+
+<p class="img-caption" style="padding-right:2em;">
+ <strong>Gambar 4.</strong> Data Saver di Settings.
+</p>
+ </div>
+
+<p>Selama penggunaan perangkat seluler, biaya paket data seluler biasanya
+melebihi harga perangkat itu sendiri. Bagi banyak pengguna, adalah sumber daya
+mahal yang ingin mereka hemat. </p>
+
+<p>Android N memperkenalkan mode Data Saver, layanan sistem baru yang membantu mengurangi
+penggunaan data seluler oleh aplikasi, baik sedang roaming, mendekati siklus akhir penagihan,
+atau sedang menggunakan paket data prabayar yang kecil. Data Saver memberi pengguna kemampuan mengontrol cara aplikasi
+menggunakan data seluler dan memungkinkan pengembang untuk memberikan layanan yang efisien bila Data
+Saver sedang aktif. </p>
+
+<p>Bila pengguna mengaktifkan Data Saver di <strong>Settings</strong> dan perangkat
+dalam jaringan berkuota data, sistem akan memblokir penggunaan data latar belakang dan memberi tahu aplikasi
+untuk menghemat penggunaan data latar depan &mdash; misalnya dengan membatasi
+laju bit untuk streaming, mengurangi kualitas gambar, menangguhkan precaching optimistik,
+dan seterusnya. Pengguna bisa memasukkan aplikasi tertentu ke daftar putih untuk memungkinkan penggunaan data berkuota di latar belakang
+meskipun saat Data Saver diaktifkan.</p>
+
+<p>Android N menambah {@link android.net.ConnectivityManager} untuk menyediakan
+cara bagi aplikasi untuk <a href="{@docRoot}preview/features/data-saver.html#status">mengambil
+preferensi Data Saver</a> pengguna dan <a href="{@docRoot}preview/features/data-saver.html#monitor-changes">memantau
+perubahan preferensi</a>. Semua aplikasi harus memeriksa apakah pengguna telah mengaktifkan Data
+Saver dan melakukan upaya untuk membatasi penggunaan data di latar depan dan latar belakang.</p>
+
+
+<h2 id="tile_api">Quick Settings Tile API</h2>
+
+
+<div style="float:right;max-width:320px">
+<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
+
+<p class="img-caption" style="padding-left:2em;">
+ <strong>Gambar 5.</strong> Petak Quick Settings dalam bayangan pemberitahuan.
+</p>
+
+
+ </div><p>Quick Settings adalah cara populer dan mudah untuk mengekspos pengaturan dan tindakan utama,
+langsung dari bayangan pemberitahuan. Di Android N, kami telah memperluas lingkup
+Quick Settings untuk membuatnya lebih berguna dan praktis lagi. </p>
+
+<p>Kami telah menambahkan ruang lebih banyak untuk petak Quick Settings tambahan, yang bisa
+diakses pengguna di semua bagian area halaman tampilan bernomor dengan mengusap ke kiri atau kanan. Kami juga menyediakan pengguna
+kontrol untuk mengatur letak dan petak Quick Settings apa yang akan
+ditampilkan &mdash; pengguna bisa menambahkan atau memindahkan petak dengan menyeret dan meletakkannya. </p>
+
+<p>Bagi pengembang, Android N juga menambahkan API baru yang memungkinkan Anda mendefinisikan
+ petak Quick Settings agar pengguna bisa dengan mudah mengakses kontrol kunci dan tindakan dalam aplikasi Anda.</p>
+
+<p>
+ Petak Quick Settings dicadangkan untuk kontrol atau tindakan yang
+ mendesak atau sering digunakan, dan tidak boleh digunakan sebagai pintasan untuk
+ membuka aplikasi.
+</p>
+
+<p>
+ Setelah mendefinisikan petak, Anda bisa menyediakannya kepada pengguna, yang bisa mereka tambahkan
+ ke Quick Settings cukup dengan menyeret dan meletakkannya.
+</p>
+
+<p>
+ Untuk informasi tentang pembuatan petak aplikasi, lihat
+ <code>android.service.quicksettings.Tile</code> dalam <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API</a> yang bisa diunduh.
+</p>
+
+
+
+<h2 id="number-blocking">Pemblokiran nomor</h2>
+
+<p>Android N sekarang mendukung pemblokiran nomor di platform dan menyediakan
+API kerangka kerja agar penyedia layanan bisa mengelola daftar nomor blokir. Aplikasi
+SMS default, aplikasi telepon default, dan aplikasi penyedia layanan bisa membaca dari dan
+menulis ke daftar nomor blokir. Daftar ini tidak dapat diakses oleh aplikasi lain.</p>
+
+<p>Dengan membuat pemblokiran nomor sebagai fitur standar pada platformnya, Android menyediakan
+cara konsisten bagi aplikasi untuk mendukung pemblokiran nomor di berbagai
+perangkat. Manfaat lain yang bisa diperoleh aplikasi antara lain:</p>
+
+<ul>
+ <li> Nomor yang diblokir untuk panggilan juga akan diblokir untuk SMS
+ <li> Nomor yang diblokir tetap disimpan saat pengaturan ulang dan pada berbagai perangkat melalui fitur Backup &amp;
+Restore.
+ <li> Beberapa aplikasi sekaligus bisa menggunakan daftar nomor blokir yang sama.
+</ul>
+
+<p>Selain itu, dengan integrasi aplikasi operator melalui Android berarti operator bisa
+membaca daftar nomor blokir pada perangkat dan melakukan pemblokiran di sisi layanan
+bagi pengguna tersebut untuk menghentikan panggilan dan SMS yang tidak diinginkan
+agar tidak sampai ke pengguna lewat media apa pun, misalnya VOIP-endpoint atau meneruskan panggilan telepon.</p>
+
+<p>
+ Untuk informasi selengkapnya, lihat <code>android.provider.BlockedNumberContract</code>
+ dalam <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
+ API</a> yang bisa diunduh.
+</p>
+
+<h2 id="call_screening">Penyaringan panggilan</h2>
+
+<p>
+ Android N memungkinkan aplikasi telepon default untuk menyaring panggilan masuk. Aplikasi
+ telepon melakukannya dengan mengimplementasikan <code>CallScreeningService</code> baru,
+ yang memungkinkan aplikasi telepon untuk melakukan sejumlah tindakan berdasarkan
+ {@link android.telecom.Call.Details Call.Details} panggilan masuk, misalnya:
+</p>
+
+<ul>
+ <li> Menolak panggilan masuk
+ <li> Tidak mengizinkan panggilan tersebut disimpan ke catatan panggilan
+ <li> Tidak menampilkan pemberitahuan untuk panggilan tersebut kepada pengguna
+</ul>
+
+<p>
+ Untuk informasi selengkapnya, lihat <code>android.telecom.CallScreeningService</code>
+ dalam <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
+ API</a> yang bisa diunduh.
+</p>
+
+
+<h2 id="multi-locale_languages">Dukungan multilokal, lebih banyak bahasa yang didukung</h2>
+
+
+<p>Android N sekarang memungkinkan pengguna memilih <strong>multiple locales</strong> dalam Settings,
+untuk mendukung kasus penggunaan dua-bahasa secara lebih baik. Aplikasi bisa menggunakan
+API baru untuk mendapatkan lokal pilihan pengguna kemudian menawarkan pengalaman pengguna
+yang lebih canggih untuk pengguna multilokal &mdash; seperti menampilkan hasil pencarian dalam
+beberapa bahasa dan tidak menawarkan untuk menerjemahkan halaman web dalam bahasa
+yang sudah diketahui pengguna.</p>
+
+<p>Bersama dukungan multi-lokal, Android N juga memperluas ragam bahasa
+yang tersedia untuk pengguna. Masing-masing ditawarkan lebih dari 25 varian untuk bahasa yang umum
+digunakan seperti Inggris, Spanyol, Prancis, dan Arab. Juga ditambahkan dukungan
+parsial untuk lebih dari 100 bahasa baru.</p>
+
+<p>Aplikasi bisa mendapatkan daftar lokal yang diatur oleh pengguna dengan memanggil <code>LocaleList.GetDefault()</code>. Untuk mendukung jumlah lokal yang diperluas, Android N sedang mengubah cara
+mengatasi masalah sumber daya. Pastikan Anda menguji dan memverifikasi bahwa aplikasi Anda
+berfungsi seperti yang diharapkan dengan logika resolusi sumber daya baru.</p>
+
+<p>Untuk mempelajari tentang perilaku resolusi sumber daya baru dan praktik terbaik yang
+harus Anda ikuti, lihat <a href="{@docRoot}preview/features/multilingual-support.html">Dukungan Multibahasa</a>.</p>
+
+<h2 id="icu4">ICU4J API di Android</h2>
+
+<p>
+ Android N saat ini menawarkan subset <a href="http://site.icu-project.org/">ICU4J</a> API dalam kerangka kerja Android pada
+ paket <code>android.icu</code>. Migrasinya mudah, dan kebanyakan hanya
+ perlu mengubah namespace <code>com.java.icu</code> menjadi
+ <code>android.icu</code>. Jika Anda sudah menggunakan bundel ICU4J dalam aplikasi
+ Anda, beralih ke <code>android.icu</code> API yang disediakan dalam kerangka kerja
+ Android bisa menghasilkan penghematan besar dalam ukuran APK.
+</p>
+
+<p>
+ Untuk mengetahui selengkapnya tentang Android ICU4J API, lihat <a href="{@docRoot}preview/features/icu4j-framework.html">Dukungan ICU4J</a>.
+</p>
+
+
+
+<h2 id="gles_32">OpenGL&trade; ES 3.2 API</h2>
+
+<p>Android N menambahkan antarmuka kerangka kerja dan dukungan platform untuk OpenGL ES 3.2, termasuk:</p>
+
+<ul>
+ <li> Semua ekstensi dari <a class="external-link" href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">Android Extension Pack</a></a> (AEP) kecuali untuk <code>EXT_texture_sRGB_decode</code>.
+ <li> Floating-point framebuffer untuk HDR dan shading yang ditangguhkan.
+ <li> Panggilan draw BaseVertex agar batching dan streaming jadi lebih baik.
+ <li> Kontrol akses buffer yang tangguh untuk mengurangi overhead WebGL.
+</ul>
+
+<p>Kerangka kerja API untuk OpenGL ES 3.2 pada Android N dilengkapi dengan kelas
+<code>GLES32</code>. Saat menggunakan OpenGL ES 3.2, pastikan Anda
+ mendeklarasikan persyaratan dalam file manifes, dengan tag <code>&lt;uses-feature&gt;</code> dan
+atribut <code>android:glEsVersion</code>. </p>
+
+<p>Untuk informasi tentang menggunakan OpenGL ES, termasuk cara memeriksa versi
+OpenGL ES yang didukung perangkat saat runtime, lihat <a href="{@docRoot}guide/topics/graphics/opengl.html">Panduan API OpenGL ES</a>.</p>
+
+
+<h2 id="android_tv_recording">Perekaman Android TV</h2>
+
+<p>Android N menambahkan kemampuan untuk merekam dan memutar kembali konten dari layanan input
+Android TV melalui API perekaman baru. Karena dibangun dengan API perekaman yang sudah
+ada, layanan input TV bisa mengontrol data saluran apa yang bisa direkam, cara menyimpan
+sesi rekaman, dan mengelola interaksi pengguna dengan konten rekaman. </p>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}preview/features/tv-recording-api.html">API Perekaman Android TV</a>.</p>
+
+
+<h2 id="android_for_work">Android for Work</h2>
+
+<p>Android for Work menambahkan berbagai fitur dan API baru untuk perangkat yang menjalankan Android N.
+Beberapa fitur unggulannya ada di bawah ini &mdash; untuk mengetahui daftar lengkap pembaruan Android for Work
+yang terkait dengan Android N, lihat Perubahan Android for Work.</p>
+
+<h3 id="work_profile_security_challenge">Pertanyaan keamanan profil pekerjaan </h3>
+
+<p>
+ Pemilik profil bisa menetapkan pertanyaan keamanan terpisah untuk aplikasi yang berjalan dalam
+ profil pekerjaan. Pertanyaan pekerjaan ditampilkan bila pengguna berusaha membuka
+ aplikasi pekerjaan. Jawaban pertanyaan keamanan yang benar akan membuka
+ profil pekerjaan dan mendekripsinya jika diperlukan. Untuk pemilik profil,
+ <code>ACTION_SET_NEW_PASSWORD</code> akan meminta pengguna untuk menetapkan pertanyaan
+ pekerjaan, dan <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> meminta
+ pengguna untuk menetapkan kunci perangkat.
+</p>
+
+<p>
+ Pemilik profil bisa mengatur kebijakan kata sandi yang berbeda untuk pertanyaan pekerjaan
+ (seperti berapa lama PIN diperlukan, atau apakah sidik jari bisa digunakan
+ untuk membuka kunci profil) menggunakan <code>setPasswordQuality()</code>,
+ <code>setPasswordMinimumLength()</code> dan metode terkait. Pemilik
+ profil juga bisa menetapkan kunci perangkat menggunakan instance <code>DevicePolicyManager</code>
+ yang dikembalikan oleh metode <code>getParentProfileInstance()</code> baru.
+ Selain itu, pemilik profil bisa menyesuaikan layar kredensial untuk
+ pertanyaan pekerjaan dengan metode <code>setOrganizationColor()</code> dan
+ <code>setOrganizationName()</code> baru.
+</p>
+<h3 id="turn_off_work">Menonaktifkan pekerjaan </h3>
+
+<p>Pada perangkat dengan profil pekerjaan, pengguna bisa berganti-ganti mode pekerjaan. Bila mode pekerjaan
+dinonaktifkan maka pengguna yang dikelola untuk sementara akan dinonaktifkan, sehingga menonaktifkan aplikasi profil
+pekerjaan, sinkronisasi latar belakang, dan pemberitahuan. Ini termasuk aplikasi pemilik
+profil. Bila mode pekerjaan dinonaktifkan, sistem akan menampilkan ikon status menetap
+untuk mengingatkan pengguna bahwa mereka tidak bisa membuka aplikasi pekerjaan. Launcher
+akan menunjukkan bahwa aplikasi dan widget pekerjaan tidak bisa diakses. </p>
+
+<h3 id="always_on_vpn">Always on VPN </h3>
+
+<p>Pemilik perangkat dan pemilik profil bisa memastikan bahwa aplikasi pekerjaan selalu terhubung
+melalui VPN yang ditetapkan. Sistem secara otomatis akan memulai VPN itu setelah booting
+perangkat.</p>
+
+<p>
+ Metode <code>DevicePolicyManager</code> baru adalah
+ <code>setAlwaysOnVpnPackage()</code> dan
+ <code>getAlwaysOnVpnPackage()</code>.
+</p>
+
+<p>Karena layanan VPN bisa diikat langsung oleh sistem tanpa interaksi
+aplikasi, klien VPN perlu menangani titik masuk baru untuk Always on VPN. Seperti
+sebelumnya, layanan ditunjukkan ke sistem melalui
+tindakan pencocokan filter intent <code>android.net.VpnService</code>. </p>
+
+<p>
+ Pengguna bisa secara manual mengatur klien Always on VPN yang mengimplementasikan
+ metode <code>VPNService</code> dalam pengguna utama dengan menggunakan
+ <strong>Settings&gt;More&gt;Vpn</strong>.
+</p>
+
+<h2 id="accessibility_enhancements">Penyempurnaan aksesibilitas</h2>
+
+<p>Android N saat ini menawarkan Vision Settings langsung di layar Welcome untuk
+penyiapan perangkat baru. Ini sangat memudahkan pengguna untuk menemukan dan mengonfigurasi
+fitur aksesibilitas pada perangkat mereka, termasuk gerakan untuk memperbesar, ukuran
+font, ukuran layar, dan TalkBack. </p>
+
+<p>Dengan fitur aksesibilitas yang penempatannya semakin jelas, pengguna Anda
+kemungkinan besar akan mencoba aplikasi dengan fitur-fitur yang diaktifkan itu. Pastikan Anda menguji aplikasi
+lebih dini dengan mengaktifkan dahulu pengaturan fitur ini. Anda bisa mengaktifkannya dari Settings &gt;
+Accessibility.</p>
+
+<p>Di Android N, layanan aksesibilitas sekarang bisa membantu pengguna yang mengalami gangguan
+motorik untuk menyentuh layar. API baru memungkinkan membangun layanan dengan
+fitur-fitur seperti pelacakan wajah, pelacakan mata, pemindaian titik, dan seterusnya, untuk
+memenuhi kebutuhan para pengguna tersebut.</p>
+
+<p>Untuk informasi selengkapnya, lihat <code>android.accessibilityservice.GestureDescription</code>
+ dalam <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API</a> yang bisa diunduh.</p>
+
+
+<h2 id="direct_boot">Direct Boot</h2>
+
+<p>Direct Boot memperbaiki waktu startup perangkat dan memungkinkan aplikasi
+yang telah didaftarkan memiliki fungsionalitas terbatas bahkan setelah reboot tak terduga.
+Misalnya, jika perangkat yang direnkripsi melakukan reboot selagi pengguna tidur,
+alarm terdaftar, pesan dan panggilan masuk sekarang bisa terus memberi tahu
+pengguna seperti biasa. Ini juga berarti layanan aksesibilitas bisa segera
+ tersedia setelah restart.</p>
+
+<p>Boot langsung memanfaatkan enkripsi berbasis file di Android N
+untuk mengaktifkan kebijakan enkripsi yang halus bagi sistem dan data aplikasi.
+Sistem akan menggunakan penyimpanan yang dienkripsi dengan perangkat untuk data sistem terpilih dan data
+aplikasi yang terdaftar secara eksplisit. Secara default, penyimpanan yang dienkripsi dengan kredensial digunakan untuk semua
+ data sistem lainnya, data pengguna, aplikasi, dan data aplikasi. </p>
+
+<p>Saat boot, sistem dimulai dalam mode terbatas dengan akses
+ke data yang dienkripsi dengan perangkat saja, dan tanpa akses umum ke aplikasi atau data.
+Jika Anda memiliki komponen yang ingin Anda jalankan dalam mode ini, Anda bisa mendaftarkannya
+dengan mengatur flag dalam manifes. Setelah restart, sistem akan mengaktifkan
+komponen terdaftar dengan menyiarkan intent <code>LOCKED_BOOT_COMPLETED</code>.
+Sistem akan memastikan data aplikasi yang dienkripsi dengan perangkat tersedia
+sebelum membuka kunci. Semua data lainnya tidak tersedia sebelum Pengguna mengonfirmasi kredensial
+ layar kunci mereka untuk mendekripsinya. </p>
+
+Untuk informasi selengkapnya, lihat <a href="{@docRoot}preview/features/direct-boot.html">Direct Boot</a>.</p>
+</p>
+
+
+<h2 id="key_attestation">Pengesahan Kunci</h2>
+
+<p>Keystore yang didukung perangkat keras menyediakan metode yang jauh lebih aman untuk membuat, menyimpan,
+dan menggunakan kunci kriptografi pada perangkat Android. Keystore itu melindungi kunci dari
+kernel Linux, potensi kerentanan Android, dan ekstraksi
+dari perangkat yang di-root.</p>
+
+<p>Agar lebih mudah dan lebih aman dalam menggunakan keystore yang didukung perangkat keras,
+Android N memperkenalkan Pengesahan Kunci. Aplikasi dan perangkat-nonaktif bisa menggunakan Pengesahan
+Kunci untuk menentukan apakah pasangan kunci RSA atau EC
+didukung perangkat keras, apa properti dari pasangan kunci, dan batasan
+ apa yang diterapkan terhadap penggunaan dan validitasnya. </p>
+
+<p>Aplikasi dan layanan perangkat-nonaktif bisa meminta informasi tentang pasangan kunci
+melalui sertifikat pengesahan X.509 yang harus ditandatangani dengan kunci
+pengesahan yang valid. Kunci pengesahan adalah kunci penandatangan ECDSA yang
+telah diinjeksikan ke dalam keystore yang didukung perangkat keras pada perangkat saat di pabriknya.
+Karena itu, sertifikat pengesahan yang ditandatangani oleh kunci pengesahan yang
+valid akan mengonfirmasi keberadaan keystore yang didukung perangkat keras, bersama
+ detail pasangan kunci dalam keystore itu.</p>
+
+<p>Untuk memastikan perangkat ini menggunakan citra Android resmi yang
+aman dari pabrik, Pengesahan Kunci mengharuskan <a class="external-link" href="https://source.android.com/security/verifiedboot/verified-boot.html#bootloader_requirements">bootloader</a> perangkat
+menyediakan informasi berikut kepada <a class="external-link" href="https://source.android.com/security/trusty/index.html">Trusted
+Execution Environment (TEE)</a>:</p>
+
+<ul>
+<li>Versi OS dan level patch yang diinstal pada perangkat</li>
+<li>Kunci publik <a href="https://source.android.com/security/verifiedboot/index.html" class="external-link">Verified Boot</a> dan status kunci</li>
+ </ul>
+
+<p>Untuk informasi selengkapnya tentang fitur keystore yang didukung perangkat keras,
+lihat panduan untuk <a href="https://source.android.com/security/keystore/" class="external-link">Keystore yang Didukung Perangkat Keras</a>.</p>
+
+<p>Selain Pengesahan Kunci, Android N juga memperkenalkan
+ kunci yang terikat sidik jari yang tidak dipanggil saat pendaftaran sidik jari.</p>
+
+<h2 id="network_security_config">Network Security Config</h2>
+
+<p>Di Android N, aplikasi bisa menyesuaikan perilaku koneksi aman mereka
+(HTTPS, TLS) secara aman, tanpa modifikasi kode, dengan menggunakan
+<em>Network Security Config</em> deklaratif sebagai ganti menggunakan API programatik
+konvensional yang rawan kesalahan (misalnya X509TrustManager).</p>
+
+ <p>Fitur yang didukung:</p>
+<ul>
+<li><b>Trust-anchor custom.</b> Memungkinkan aplikasi menyesuaikan Certificate
+Authorities (CA) mana yang dipercaya untuk koneksi aman. Misalnya,
+mempercayai sertifikat bertanda tangan sendiri tertentu atau serangkaian CA publik terbatas.
+</li>
+<li><b>Pengesampingan hanya-runut.</b> Memungkinkan pengembang aplikasi merunut
+koneksi aman aplikasi mereka secara aman tanpa menambah risiko terhadap basis yang sudah
+diinstal.
+</li>
+<li><b>Keluar dari lalu lintas cleartext.</b> Memungkinkan aplikasi melindungi dirinya sendiri dari
+penggunaan lalu lintas cleartext yang tidak disengaja.</li>
+<li><b>Penyematan sertifikat.</b> Sebuah fitur canggih yang memungkinkan aplikasi
+ membatasi kunci server mana yang dipercaya untuk koneksi aman.</li>
+</ul>
+
+<p>Untuk informasi selengkapnya, lihat <a href="{@docRoot}preview/features/security-config.html">Network Security
+Config</a>.</p>
+
+<h2 id="default_trusted_ca">Certificate Authority Tepercaya Default</h2>
+
+<p>Secara default, aplikasi yang menargetkan Android N hanya mempercayai sertifikat yang disediakan sistem
+dan tidak lagi mempercayai Certificate Authorities (CA) yang ditambahkan pengguna. Aplikasi yang menargetkan Android
+N dan ingin mempercayai CA yang ditambahkan pengguna harus menggunakan
+<a href="{@docRoot}preview/features/security-config.html">Network Security Config</a> untuk
+menetapkan cara mempercayai CA pengguna.</p>
+
+<h2 id="apk_signature_v2">APK Signature Scheme v2</h2>
+
+<p>Kelas PackageManager sekarang mendukung verifikasi aplikasi menggunakan
+APK Signature Scheme v2. APK Signature Scheme v2 adalah skema tanda tangan seluruh file
+yang secara signifikan meningkatkan kecepatan verifikasi dan memperkuat jaminan
+ integritas dengan mendeteksi setiap perubahan tidak sah terhadap file APK.</p>
+
+<p>Untuk menjaga kompatibilitas mundur, APK harus ditandatangani dengan Signature Scheme
+v1 (skema tanda tangan JAR) sebelum ditandatangani dengan Signature Scheme v2.
+Dengan Signature Scheme v2, verifikasi akan gagal jika Anda menandatangani APK dengan
+ sertifikat tambahan setelah menandatangani dengan Signature Scheme v2. </p>
+
+<p>Dukungan APK Signature Scheme v2 akan tersedia nanti dalam N Developer
+Preview.</p>
+
+<h2 id="scoped_directory_access">Scoped Directory Access</h2>
+
+<p>Di Android N, aplikasi bisa menggunakan API baru untuk meminta akses ke direktori <a href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">penyimpanan
+eksternal</a> tertentu, termasuk direktori di media lepas-pasang seperti kartu
+SD. API baru ini sangat menyederhanakan cara aplikasi Anda mengakses direktori
+penyimpanan eksternal standar, seperti direktori <code>Pictures</code>. Aplikasi
+seperti aplikasi foto bisa menggunakan API ini sebagai ganti menggunakan
+<code>READ_EXTERNAL_STORAGE</code>, yang memberikan akses ke semua direktori
+penyimpanan, atau Storage Access Framework, yang membuat pengguna mengarah ke
+direktori tersebut.</p>
+
+<p>Selain itu, API baru ini menyederhanakan langkah-langkah yang diambil pengguna untuk memberikan akses
+penyimpanan eksternal ke aplikasi Anda. Bila Anda menggunakan API baru, sistem akan menggunakan UI izin
+sederhana yang memperinci dengan jelas direktori apa yang aksesnya diminta
+oleh aplikasi.</p>
+
+<p>Untuk informasi selengkapnya, lihat dokumentasi pengembang
+<a href="{@docRoot}preview/features/scoped-folder-access.html">Scoped
+Directory Access</a>.</p>
+
+
+
+
+
+
diff --git a/docs/html-intl/intl/in/preview/behavior-changes.jd b/docs/html-intl/intl/in/preview/behavior-changes.jd
new file mode 100644
index 000000000000..40be38b8add2
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/behavior-changes.jd
@@ -0,0 +1,480 @@
+page.title=Perubahan Perilaku
+page.keywords=preview,sdk,compatibility
+meta.tags="preview", "kompatibilitas"
+page.tags="preview", "developer preview"
+page.image=images/cards/card-n-changes_2x.png
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>Dalam dokumen ini</h2>
+
+<ol>
+ <li><a href="#perf">Peningkatan Kinerja</a>
+ <ol>
+ <li><a href="#doze">Doze</a></li>
+ <li><a href="#bg-opt">Optimisasi Latar Belakang</a></li>
+ </ol>
+ </li>
+ <li><a href="#perm">Perubahan Izin</a></li>
+ <li><a href="#accessibility">Peningkatan Aksesibilitas</a>
+ <ol>
+ <li><a href="#screen-zoom">Zoom Layar</a></li>
+ <li><a href="#vision-settings">Vision Settings di Setup Wizard</a></li>
+ </ol>
+ </li>
+ <li><a href="#ndk">Menautkan Aplikasi NDK ke Pustaka Platform</a></li>
+ <li><a href="#afw">Android for Work</a></li>
+</ol>
+
+<h2>Lihat Juga</h2>
+<ol>
+ <li><a href="{@docRoot}preview/api-overview.html">
+ Ikhtisar Android N API</a></li>
+</ol>
+
+</div>
+</div>
+
+
+<p>
+ Selain fitur dan kemampuan baru, Android N
+ juga menyertakan berbagai perubahan perilaku sistem dan API. Dokumen ini
+ menyoroti beberapa perubahan utama yang harus dipahami dan diperhitungkan
+ dalam aplikasi Anda.
+</p>
+
+<p>
+ Jika Anda sebelumnya telah mempublikasikan aplikasi untuk Android, ketahuilah bahwa aplikasi Anda
+ mungkin akan terpengaruh oleh perubahan dalam platform ini.
+</p>
+
+
+<h2 id="perf">Peningkatan Kinerja</h2>
+
+<p>
+ Android N berisi perubahan perilaku sistem yang bertujuan meningkatkan daya tahan
+ baterai perangkat, penggunaan RAM, dan kinerja aplikasi. Perubahan-perubahan ini bisa memengaruhi
+ ketersediaan sumber daya sistem dan pemberitahuan sistem bagi aplikasi. Anda
+ harus meninjau perubahan ini dan mengevaluasi cara menyesuaikan aplikasi Anda terhadap perubahan
+ tersebut.
+</p>
+
+<h3 id="doze">Doze</h3>
+
+<p>
+ Diperkenalkan dalam Android 6.0 (API level 23), Doze meningkatkan daya tahan baterai dengan
+ menangguhkan aktivitas CPU dan jaringan bila pengguna mencabut steker perangkat,
+ diam, dan layar dinonaktifkan. Android N
+ menyempurnakan Doze lebih jauh dengan menerapkan subset CPU dan pembatasan jaringan
+ bila perangkat dicabut stekernya dan layar dinonaktifkan, namun tidak harus
+ diam, misalnya, bila handset dibawa bepergian di saku pengguna.
+</p>
+
+
+<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
+<p class="img-caption">
+ <strong>Gambar 1.</strong> Ilustrasi tentang cara Doze menerapkan pembatasan
+ aktivitas sistem tingkat pertama untuk meningkatkan daya tahan baterai.
+</p>
+
+<p>
+ Bila perangkat sedang menggunakan daya baterai, dan layar telah nonaktif selama jangka waktu
+ tertentu, perangkat akan memasuki Doze dan menerapkan pembatasan subset pertama: Perangkat
+ akan menutup akses jaringan aplikasi, serta menangguhkan pekerjaan dan sinkronisasi. Jika perangkat
+ sedang diam selama jangka waktu tertentu setelah memasuki Doze, sistem akan menerapkan pembatasan
+ Doze lainnya terhadap alarm {@link android.os.PowerManager.WakeLock},
+ {@link android.app.AlarmManager}, GPS, dan pemindaian Wi-Fi. Tidak peduli
+ apakah sebagian atau semua pembatasan Doze diterapkan, sistem akan membangunkan
+ perangkat selama jeda pemeliharaan singkat, dan selama itu aplikasi diizinkan
+ mengakses jaringan dan bisa mengeksekusi semua pekerjaan/sinkronisasi yang telah ditangguhkan.
+</p>
+
+
+<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
+<p class="img-caption">
+ <strong>Gambar 2.</strong> Ilustrasi tentang cara Doze menerapkan pembatasan
+ aktivitas sistem tingkat kedua setelah perangkat diam selama jangka waktu tertentu.
+</p>
+
+<p>
+ Perhatikan, mengaktifkan layar atau memasang steker perangkat akan menyebabkan keluar dari Doze dan
+ menghilangkan pembatasan pemrosesan ini. Perilaku tambahan ini tidak
+ memengaruhi rekomendasi dan praktik terbaik dalam menyesuaikan aplikasi Anda dengan versi
+ Doze sebelumnya yang diperkenalkan dalam Android 6.0 (API level 23), seperti yang dibahas di
+ <a href="{@docRoot}training/monitoring-device-state/doze-standby.html">
+ Mengoptimalkan untuk Doze dan App Standby</a>. Anda tetap harus
+ mengikuti rekomendasi itu, seperti menggunakan Google Cloud Messaging (GCM) untuk
+ mengirim dan menerima pesan, dan mulai merencanakan pembaruan untuk mengakomodasi
+ perilaku Doze tambahan.
+</p>
+
+
+<h3 id="bg-opt">Project Svelte: Optimisasi Latar Belakang</h3>
+
+<p>
+ Android N menghilangkan tiga siaran implisit untuk membantu mengoptimalkan
+ penggunaan memori dan konsumsi daya. Perubahan ini penting karena siaran
+ implisit sering memulai aplikasi yang telah didaftarkan untuk mendengarkannya di
+ latar belakang. Menghilangkan siaran ini bisa sangat menguntungkan kinerja perangkat dan pengalaman
+ pengguna.
+</p>
+
+<p>
+ Perangkat seluler sering mengalami perubahan konektivitas, seperti saat berpindah
+ antara Wi-Fi dan data seluler. Saat ini, aplikasi bisa memantau perubahan dalam
+ konektivitas dengan mendaftarkan suatu penerima untuk siaran implisit {@link
+ android.net.ConnectivityManager#CONNECTIVITY_ACTION} dalam manifes
+ mereka. Karena banyak aplikasi yang didaftarkan untuk menerima siaran ini, switch
+ jaringan tunggal bisa menyebabkan semuanya aktif dan memproses siaran tersebut
+ secara bersamaan.
+</p>
+
+<p>
+ Demikian pula, aplikasi bisa mendaftar untuk menerima siaran implisit {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} dan {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO} dari aplikasi lain, seperti
+ Kamera. Bila pengguna mengambil gambar dengan aplikasi Kamera, semua aplikasi ini akan aktif
+ untuk memproses siaran.
+</p>
+
+<p>
+ Untuk meminimalkan masalah ini, Android N menerapkan optimisasi
+ berikut:
+</p>
+
+<ul>
+ <li>Aplikasi yang menargetkan Android N tidak menerima siaran {@link
+ android.net.ConnectivityManager#CONNECTIVITY_ACTION}, sekalipun
+ memiliki entri manifes untuk meminta pemberitahuan mengenai kejadian ini. Aplikasi yang berjalan
+ di latar depan tetap bisa mendengarkan {@code CONNECTIVITY_CHANGE} pada thread
+ utama jika meminta pemberitahuan dengan {@link
+ android.content.BroadcastReceiver}.
+ </li>
+
+ <li>Aplikasi tidak bisa mengirim atau menerima siaran {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO}. Optimisasi ini
+ memengaruhi semua aplikasi, bukan hanya yang menargetkan Android N.
+ </li>
+</ul>
+
+<p>
+ Rilis Android mendatang mungkin akan menghilangkan siaran implisit tambahan,
+ juga layanan latar belakang tak terikat. Karena itu, Anda harus menghindari atau
+ menghilangkan dependensi terhadap penerima yang dideklarasikan manifes untuk siaran implisit,
+ serta layanan latar belakang.
+</p>
+
+<p>
+ Kerangka kerja Android menyediakan beberapa solusi untuk mengurangi kebutuhan akan
+ siaran implisit atau layanan latar belakang ini. Misalnya, {@link
+ android.app.job.JobScheduler} API menyediakan mekanisme yang tangguh untuk menjadwalkan
+ operasi jaringan bila syarat yang ditetapkan terpenuhi, misalnya koneksi ke suatu
+ jaringan berbiaya tetap. Anda bahkan bisa menggunakan {@link
+ android.app.job.JobScheduler} untuk bereaksi terhadap perubahan kepada penyedia konten.
+</p>
+
+<p>
+ Untuk informasi selengkapnya tentang perubahan perilaku ini dan cara menyesuaikan aplikasi Anda,
+ lihat <a href="{@docRoot}preview/features/background-optimization.html">Optimalisasi
+ Latar Belakang</a>.
+</p>
+
+
+<h2 id="perm">Perubahan Izin</h2>
+
+<p>
+ Android N menyertakan perubahan pada izin yang bisa memengaruhi aplikasi Anda,
+ termasuk izin akun pengguna dan izin baru untuk menulis ke
+ penyimpanan eksternal. Inilah rangkuman izin-izin yang telah berubah dalam
+ preview:
+</p>
+
+<ul>
+ <li>{@code GET_ACCOUNTS} (Tidak digunakan lagi)
+ <p>
+ Izin GET_ACCOUNTS sekarang tidak digunakan lagi. Sistem mengabaikan izin ini
+ untuk aplikasi yang menargetkan Android N.
+ </p>
+ </li>
+
+</ul>
+
+
+
+<h2 id="accessibility">Peningkatan Aksesibilitas</h2>
+
+<p>
+ Android N menyertakan perubahan yang bertujuan meningkatkan kegunaan
+ platform ini untuk pengguna dengan penglihatan yang kurang atau lemah. Perubahan ini secara umum tidak
+ akan mengharuskan perubahan kode dalam aplikasi Anda, akan tetapi Anda harus meninjau
+ fitur ini dan mengujinya dengan aplikasi Anda untuk menilai dampak potensial terhadap pengalaman
+ pengguna.
+</p>
+
+
+<h3 id="screen-zoom">Zoom Layar</h3>
+
+<p>
+ Android N memungkinkan pengguna untuk mengatur <strong>Display size</strong> yang akan memperbesar
+ atau memperkecil semua elemen pada layar, sehingga meningkatkan aksesibilitas perangkat
+ bagi pengguna yang kurang melihat. Pengguna tidak bisa memperbesar layar melewati lebar layar
+ minimum <a href="http://developer.android.com/guide/topics/resources/providing-resources.html">
+ sw320dp</a>, yang merupakan lebar Nexus 4, yakni ponsel ukuran sedang pada umumnya.
+</p>
+
+<div class="cols">
+
+<div class="col-6">
+ <img src="{@docRoot}preview/images/screen-zoom-1.png" alt="" height="XXX" id="figure1" />
+</div>
+<div class="col-6">
+ <img src="{@docRoot}preview/images/screen-zoom-2.png" alt="" height="XXX" id="figure1" />
+</div>
+
+</div> <!-- end cols -->
+<p class="img-caption">
+ <strong>Gambar 3.</strong> Layar di sebelah kanan menampilkan efek
+ penambahan Display size perangkat yang menjalankan citra sistem Android N.
+</p>
+
+
+<p>
+ Bila densitas perangkat berubah, sistem akan memberi tahu aplikasi yang sedang berjalan dengan
+ cara berikut:
+</p>
+
+<ul>
+ <li>Jika aplikasi menargetkan API level 23 atau yang lebih rendah, sistem secara otomatis akan mematikan
+ semua proses latar belakang. Artinya, jika pengguna beralih dari
+ aplikasi tersebut untuk membuka layar <em>Settings</em> dan mengubah
+ pengaturan <strong>Display size</strong>, maka sistem akan mematikan aplikasi tersebut dengan cara yang
+ sama dengan saat memori tinggal sedikit. Jika aplikasi memiliki beberapa proses
+ latar depan, sistem akan memberi tahu proses tersebut mengenai perubahan konfigurasi seperti
+ dijelaskan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
+ Runtime</a>, seolah-olah orientasi perangkat telah berubah.
+ </li>
+
+ <li>Jika sebuah aplikasi menargetkan Android N, semua prosesnya
+ (latar depan dan latar belakang) akan diberi tahu mengenai perubahan konfigurasi seperti
+ dijelaskan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
+ Runtime</a>.
+ </li>
+</ul>
+
+<p>
+ Sebagian besar aplikasi tidak perlu melakukan perubahan untuk mendukung fitur ini, asalkan
+ aplikasi tersebut mengikuti praktik terbaik Android. Hal-hal tertentu yang harus diperiksa:
+</p>
+
+<ul>
+ <li>Uji aplikasi Anda pada perangkat dengan lebar layar <code><a href=
+ "{@docRoot}guide/topics/resources/providing-resources.html">sw320dp</a></code>
+ dan pastikan aplikasinya berjalan dengan semestinya.
+ </li>
+
+ <li>Bila konfigurasi perangkat berubah, perbarui informasi cache
+ yang bergantung pada densitas, seperti bitmap di cache atau sumber daya yang dimuat dari
+ jaringan. Periksa perubahan konfigurasi bila aplikasi melanjutkan dari status dihentikan
+ sementara.
+ <p class="note">
+ <strong>Catatan:</strong> Jika Anda menyimpan sementara data yang bergantung pada konfigurasi, ada
+ baiknya untuk menyertakan metadata yang relevan seperti ukuran layar
+ atau densitas piksel yang sesuai untuk data tersebut. Menyimpan metadata ini memungkinkan Anda untuk
+ memutuskan apakah Anda perlu memperbarui data cache setelah perubahan
+ konfigurasi.
+ </p>
+ </li>
+
+ <li>Hindari menetapkan dimensi dengan satuan px, karena satuan ini tidak diskalakan dengan
+ densitas layar. Sebagai gantinya, tetapkan dimensi dengan satuan <a href="{@docRoot}guide/practices/screens_support.html">piksel yang tidak bergantung densitas
+ </a> (<code>dp</code>).
+ </li>
+</ul>
+
+<h3 id="vision-settings">Vision Settings di Setup Wizard</h3>
+
+<p>
+ Android N menyertakan Vision Settings pada layar Welcome, di mana pengguna bisa
+ menyiapkan pengaturan aksesibilitas berikut pada perangkat baru:
+ <strong>Magnification gesture</strong>, <strong>Font size</strong>,
+ <strong>Display size</strong> dan <strong>TalkBack</strong>. Perubahan ini
+ menambah visibilitas bug yang terkait dengan berbagai pengaturan layar. Untuk
+ menilai dampak dari fitur ini, Anda harus menguji aplikasi dengan mengaktifkan
+ pengaturan ini. Anda bisa menemukan pengaturan ini pada <strong>Settings &gt;
+ Accessibility</strong>.
+</p>
+
+<h2 id="ndk">Menautkan Aplikasi NDK ke Pustaka Platform</h2>
+
+<p>
+ Android N menyertakan perubahan namespace untuk mencegah pemuatan API non-publik.
+ Jika Anda menggunakan NDK, Anda hanya bisa menggunakan API publik dari platform
+ Android. Menggunakan API non-publik dalam rilis Android resmi berikutnya
+ bisa menyebabkan aplikasi mengalami crash.
+</p>
+
+<p>
+ Untuk memperingatkan Anda terhadap penggunaan API non-publik, aplikasi yang berjalan pada perangkat
+ Android N akan menghasilkan kesalahan output logcat bila sebuah aplikasi memanggil API non-publik.
+ Kesalahan ini juga ditampilkan pada layar perangkat berupa pesan untuk membantu
+ meningkatkan kesadaran akan situasi ini. Anda harus meninjau kode aplikasi untuk
+ menghilangkan penggunaan API platform non-publik dan secara saksama menguji aplikasi Anda menggunakan
+ perangkat preview atau emulator.
+</p>
+
+<p>
+ Jika aplikasi Anda bergantung pada pustaka platform, lihat dokumentasi NDK untuk
+ perbaikan tipikal guna menggantikan API privat umum dengan padanan API publik.
+ Anda mungkin juga menautkan ke pustaka platform tanpa menyadarinya,
+ terutama jika aplikasi Anda menggunakan pustaka yang merupakan bagian dari platform ini (seperti
+ <code>libpng</code>), namun bukan bagian dari NDK. Dalam hal ini, pastikan
+ APK Anda berisi semua file .so yang ingin ditautkan.
+</p>
+
+<p class="caution">
+ <strong>Peringatan:</strong> Beberapa pustaka pihak ketiga mungkin menautkan ke API
+ non-publik. Jika aplikasi Anda menggunakan pustaka ini, aplikasi Anda mungkin akan crash saat dijalankan
+ pada rilis resmi Android berikutnya.
+</p>
+
+<p>
+ Aplikasi tidak boleh bergantung pada atau menggunakan pustaka bawaan yang tidak disertakan dalam
+ NDK, karena bisa mengalami perubahan, atau dipindahkan dari satu rilis Android ke
+ rilis lainnya. Peralihan dari OpenSSL ke BoringSSL merupakan satu contoh dari perubahan semacam ini.
+ Selain itu, perbedaan perangkat juga bisa menawarkan tingkat kompatibilitas, karena
+ tidak ada persyaratan kompatibilitas bagi pustaka platform yang tidak disertakan
+ dalam NDK. Jika Anda harus mengakses pustaka non-NDK pada perangkat yang lebih lama, jadikan
+ pemuatan bergantung pada level API Android.
+</p>
+
+<p>
+ Untuk membantu Anda mendiagnosis tipe masalah ini ada beberapa contoh kesalahan Java dan NDK
+ yang mungkin Anda temui saat berusaha membangun aplikasi dengan Android N:
+</p>
+
+<p>Contoh kesalahan Java:</p>
+<pre class="no-pretty-print">
+java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libcutils.so"
+ is not accessible for the namespace "classloader-namespace"
+</pre>
+
+<p>Contoh kesalahan NDK:</p>
+<pre class="no-pretty-print">
+dlopen failed: cannot locate symbol "__system_property_get" referenced by ...
+</pre>
+
+
+<p>
+ Inilah beberapa perbaikan tipikal untuk aplikasi yang mengalami tipe kesalahan ini:
+</p>
+
+<ul>
+ <li>Penggunaan getJavaVM dan getJNIEnv dari libandroid_runtime.so bisa diganti
+ dengan fungsi JNI standar:
+<pre class="no-pretty-print">
+AndroidRuntime::getJavaVM -&gt; GetJavaVM from &lt;jni.h&gt;
+AndroidRuntime::getJNIEnv -&gt; JavaVM::GetEnv or
+JavaVM::AttachCurrentThread from &lt;jni.h&gt;.
+</pre>
+ </li>
+
+ <li>Penggunaan simbol {@code property_get} dari {@code libcutils.so} bisa
+ diganti dengan {@code __system_property_get} alternatif publik.
+ Caranya, gunakan {@code __system_property_get} dengan include berikut:
+<pre>
+#include &lt;sys/system_properties.h&gt;
+</pre>
+ </li>
+
+ <li>Penggunaan simbol {@code SSL_ctrl} dari {@code libcrypto.so} harus
+ diganti dengan aplikasi versi lokal. Misalnya, Anda harus menautkan
+ {@code libcyrpto.a} secara statis dalam file {@code .so} atau menyertakan
+ {@code libcrypto.so} Anda sendiri secara dinamis dari BoringSSL atau OpenSSL dalam aplikasi Anda.
+ </li>
+</ul>
+
+<h2 id="afw">Android for Work</h2>
+<p>
+ Android N berisi perubahan untuk aplikasi yang menargetkan Android for Work, termasuk
+ perubahan pada instalasi sertifikat, pengaturan ulang kata sandi, manajemen pengguna
+ tambahan, dan akses ke identifier perangkat. Jika Anda membangun aplikasi untuk
+ lingkungan Android for Work, Anda harus meninjau perubahan ini dan memodifikasi
+ aplikasi sebagaimana mestinya.
+</p>
+
+<ul>
+ <li>Anda harus menginstal penginstal sertifikat yang didelegasikan sebelum DPC bisa
+ mengaturnya. Untuk profil dan aplikasi pemilik perangkat yang menargetkan N SDK, Anda harus
+ menginstal penginstal sertifikat yang didelegasikan sebelum pengontrol kebijakan
+ perangkat (DPC) memanggil
+ <code>DevicePolicyManager.setCertInstallerPackage()</code>. Jika penginstal
+ belum diinstal, sistem akan melontarkan
+ <code>IllegalArgumentException</code>.
+ </li>
+
+ <li>Pembatasan pengaturan ulang kata sandi untuk admin perangkat sekarang diterapkan kepada pemilik
+ profil. Admin perangkat tidak bisa lagi menggunakan
+ <code>DevicePolicyManager.resetPassword()</code> untuk menghapus kata sandi atau mengubah
+ kata sandi yang sudah ditetapkan. Admin perangkat tetap bisa menetapkan kata sandi, namun hanya
+ bila perangkat belum memiliki kata sandi, PIN, atau pola.
+ </li>
+
+ <li>Pemilik perangkat dan profil bisa mengelola akun meskipun pembatasan
+ ditetapkan. Pemilik perangkat dan pemilik profil bisa memanggil Account Management API
+ sekalipun pembatasan pengguna <code>DISALLOW_MODIFY_ACCOUNTS</code> diberlakukan.
+ </li>
+
+ <li>Pemilik perangkat bisa mengelola pengguna tambahan dengan lebih mudah. bila perangkat
+ dijalankan dalam mode pemilik perangkat, pembatasan <code>DISALLOW_ADD_USER</code>
+ secara otomatis ditetapkan. Ini mencegah pengguna membuat pengguna tambahan yang
+ tidak terkelola. Selain itu, metode <code>CreateUser()</code> dan
+ <code>createAndInitial()</code> tidak digunakan lagi; metode
+ <code>DevicePolicyManager.createAndManageUser()</code> baru telah menggantikannya.
+ </li>
+
+ <li>Pemilik perangkat bisa mengakses identifier perangkat. Pemilik perangkat bisa mengakses
+ alamat MAC Wi-Fi dari sebuah perangkat, menggunakan
+ <code>DevicePolicyManagewr.getWifiMacAddress()</code>. Jika Wi-Fi belum pernah
+ diaktifkan pada perangkat tersebut, metode ini akan mengembalikan nilai {@code null}.
+ </li>
+</ul>
+
+<p>
+ Untuk informasi selengkapnya tentang perubahan pada Android for Work di Android N, lihat
+ <a href="{@docRoot}preview/features/afw.html">Pembaruan Android for Work</a>.
+</p>
+
+<h2 id="other">Poin penting lainnya</h2>
+
+<ul>
+<li>Bila aplikasi berjalan pada Android N, namun menargetkan level API yang lebih rendah,
+dan pengguna mengubah ukuran tampilan, proses aplikasi akan dimatikan. Aplikasi
+harus dapat menangani skenario ini dengan lancar. Jika tidak, maka akan terjadi crash
+bila pengguna memulihkannya dari Recents.
+
+<p>
+Anda harus menguji aplikasi untuk memastikan
+perilaku ini tidak terjadi.
+Anda bisa melakukannya dengan menyebabkan suatu crash yang mirip
+saat mematikan aplikasi secara manual melalui DDMS.
+</p>
+
+<p>
+Aplikasi yang menargetkan N dan yang di atasnya tidak secara otomatis dimatikan saat perubahan densitas;
+akan tetapi, aplikasi tersebut mungkin tetap merespons perubahan konfigurasi dengan buruk.
+</p>
+</li>
+
+<li>
+Aplikasi pada Android N harus mampu menangani perubahan konfigurasi dengan lancar,
+dan tidak boleh mengalami crash pada start selanjutnya. Anda bisa memverifikasi perilaku aplikasi
+dengan mengubah ukuran font (<strong>Setting</strong> &gt;
+<strong>Display</strong> &gt; <strong>Font size</strong>), kemudian memulihkan
+aplikasi dari Recents.
+</li>
+</ul>
+
diff --git a/docs/html-intl/intl/in/preview/download.jd b/docs/html-intl/intl/in/preview/download.jd
new file mode 100644
index 000000000000..565ed90b6ab6
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/download.jd
@@ -0,0 +1,541 @@
+page.title=Menguji pada Perangkat
+meta.tags="preview", "nexus","citra sistem"
+page.tags="preview", "androidn"
+page.image=images/cards/card-n-downloads_2x.png
+
+@jd:body
+
+<div style="position:relative; min-height:600px">
+
+ <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
+
+ <p class="sdk-terms-intro">Sebelum mengunduh dan menginstal
+ komponen Android Preview SDK, Anda harus menyetujui ketentuan dan persyaratan
+ berikut.</p>
+
+ <h2 class="norule">Ketentuan dan Persyaratan</h2>
+
+ <div class="sdk-terms" onfocus="this.blur()" style="width:678px">
+Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
+
+1. Pengantar
+
+1.1 Android SDK Preview (dalam Perjanjian Lisensi ini disebut "Preview" dan secara spesifik termasuk file sistem Android, paket API, dan file pustaka Preview, jika disediakan) diberikan lisensinya kepada Anda sesuai dengan ketentuan Perjanjian Lisensi. The License Agreement forms a legally binding contract between you and Google in Perjanjian Lisensi ini merupakan kontrak yang mengikat secara hukum antara Anda dan dalam kaitannya dengan penggunaan Anda atas Preview.
+
+1.2 "Android" berarti sekumpulan perangkat lunak Android untuk perangkat, seperti yang tersedia pada Android Open Source Project, yang ada di URL berikut: http://source.android.com/, yang selalu diperbarui.
+
+1.3 ā€œKompatibel denganAndroidā€ berarti segala implementasi Android yang (i) sesuai dengan Android Compatibility Definition Document, yang bisa ditemukan di situs web kompatibilitas Android (http://source.android.com/compatibility) dan yang selalu diperbarui; serta (ii) berhasil lulus Android Compatibility Test Suite (CTS).
+
+1.4 "Google" berarti Google Inc., perusahaan asal Delaware dengan kantor bisnis utama di 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Menerima Perjanjian Lisensi
+
+2.1 Agar bisa menggunakan Preview, Anda terlebih dahulu harus menyetujui Perjanjian Lisensi ini. Anda tidak boleh menggunakan SDK jika tidak menerima Perjanjian Lisensi.
+
+2.2 Dengan mengklik untuk menerima dan/atau menggunakan Preview, berarti Anda menyetujui ketentuan Perjanjian Lisensi.
+
+2.3 Anda tidak boleh menggunakan Preview dan tidak boleh menerima Perjanjian Lisensi jika Anda adalah orang yang dilarang menerima Preview berdasarkan hukum Amerika Serikat atau negara lainnya termasuk negara di mana Anda tinggal atau dari mana Anda menggunakan Preview.
+
+2.4 Jika Anda akan menggunakan Preview di lingkungan perusahaan atau organisasi Anda, berarti Anda setuju untuk terikat oleh Perjanjian Lisensi atas nama perusahaan Anda atau entitas lainnya, serta Anda mewakili dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan Anda atau entitas tersebut pada Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang disyaratkan, Anda tidak boleh menerima Perjanjian Lisensi atau menggunakan Preview atas nama perusahaan Anda atau entitas lainnya.
+
+3. Lisensi Preview dari Google
+
+3.1 Sesuai dengan ketentuan Perjanjian Lisensi ini, Google memberi Anda lisensi terbatas, bersifat global, bebas royalti, tidak bisa dialihkan, non-eksklusif, dan tidak bisa disublisensikan untuk menggunakan Preview hanya untuk mengembangkan aplikasi bagi implementasi Android yang kompatibel.
+
+3.2 Anda tidak boleh menggunakan Preview ini untuk mengembangkan aplikasi bagi platform lain (termasuk implementasi Android yang tidak kompatibel) atau untuk mengembangkan SDK lain. Tentu saja Anda bebas mengembangkan aplikasi bagi platform lainnya, termasuk implementasi Android yang tidak kompatibel, asalkan Preview ini tidak digunakan untuk keperluan itu.
+
+3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada Preview, termasuk Hak Kekayaan Intelektual yang terdapat dalam Preview. "Hak Kekayaan Intelektual" berarti setiap dan semua hak yang berdasarkan pada hukum paten, hukum hak cipta, hukum rahasia dagang, hukum merek dagang, dan setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda.
+
+3.4 Anda tidak boleh menggunakan Preview untuk tujuan apa pun yang tidak secara tersurat diizinkan oleh Perjanjian Lisensi. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh: (a) menyalin (kecuali untuk keperluan pencadangan), memodifikasi, mengadaptasi, mendistribusikan kembali, mendekompilasi, merekayasa balik, membongkar atau membuat karya turunan dari Preview atau bagian apa pun dari Preview; atau (b) memuat bagian apa pun dari Preview ke sebuah handset ponsel atau perangkat keras selain komputer pribadi, menggabungkan suatu bagian dari Preview dengan perangkat lunak lain, atau mendistribusikan perangkat lunak atau perangkat yang menggabungkan suatu bagian dari Preview.
+
+3.5 Penggunaan, reproduksi dan distribusi komponen Preview yang berlisensi perangkat lunak sumber terbuka diatur semata-mata oleh ketentuan lisensi perangkat lunak sumber terbuka tersebut dan bukan oleh Perjanjian Lisensi ini. Anda menyetujui bagian selebihnya dari lisensi dengan maksud baik sehubungan dengan lisensi perangkat lunak sumber terbuka tersebut sesuai dengan semua hak yang diberikan dan untuk menahan diri dari segala tindakan yang mungkin akan mengakhiri, menangguhkan, atau melanggar hak tersebut.
+
+3.6 Anda setuju bahwa bentuk dan sifat Preview yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi Preview mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan di versi Preview sebelumnya. Anda setuju bahwa Google boleh menghentikan (secara permanen atau sementara) penyediaan Preview (atau fitur apa pun dalam Preview) kepada Anda atau pengguna pada umumnya atas kebijakan Google semata, tanpa pemberitahuan sebelumnya kepada Anda.
+
+3.7 Perjanjian Lisensi ini tidak memberi Anda hak untuk menggunakan nama dagang, merek dagang, merek layanan, logo, nama domain, atau fitur merek khas Google lainnya.
+
+3.8 Anda setuju bahwa Anda tidak akan menghapus, mengaburkan, atau mengubah pernyataan hak kepemilikan apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang terlampir atau termuat dalam Preview.
+
+4. Penggunaan Preview oleh Anda
+
+4.1 Google setuju bahwa tidak ada dalam Perjanjian Lisensi ini yang memberi Google suatu hak, kuasa atau kepentingan dari Anda (atau pemberi lisensi Anda) berdasarkan Perjanjian Lisensi ini dalam atau pada aplikasi perangkat lunak apa pun yang Anda kembangkan menggunakan Preview, termasuk hak kekayaan intelektual yang terdapat dalam aplikasi tersebut.
+
+4.2 Anda setuju untuk menggunakan Preview dan mengembangkan aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi ini dan (b) hukum yang berlaku, peraturan atau praktik atau panduan yang diterima secara umum di yurisdiksi yang relevan (termasuk hukum mengenai ekspor data atau perangkat lunak ke dan dari Amerika Serikat atau negara lain yang relevan).
+
+4.3 Anda setuju bahwa jika Anda menggunakan Preview untuk mengembangkan aplikasi, Anda akan melindungi privasi dan hak hukum penggunanya. Jika pengguna memberikan nama pengguna, kata sandi, atau informasi login atau informasi pribadinya lainnya, Anda harus membuat pengguna tersebut menyadari bahwa informasi tersebut akan bisa digunakan oleh aplikasi Anda, dan Anda harus memberikan perlindungan dan pemberitahuan privasi yang memadai secara hukum bagi pengguna tersebut. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus melakukannya dengan aman. Jika pengguna memberikan informasi Akun Google, aplikasi Anda hanya boleh menggunakan informasi tersebut untuk mengakses Akun Google pengguna tersebut bila, dan untuk tujuan terbatas di mana, setiap pengguna telah memberikan izin kepada Anda untuk melakukannya.
+
+4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun dengan Preview, termasuk pengembangan atau distribusi aplikasi yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan atau properti atau layanan pihak ketiga lainnya dari Google atau pihak ketiga.
+
+4.5 Anda setuju untuk bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga untuk) data, konten, atau sumber daya apa pun yang Anda buat, kirimkan atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan terhadap konsekuensi tindakan Anda (termasuk kerugian atau kerusakan apa pun yang mungkin dialami Google) karena melakukannya.
+
+4.6 Anda setuju bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi ini, kontrak pihak ketiga yang berlaku atau Ketentuan Layanan, atau hukum atau peraturan yang berlaku, dan terhadap konsekuensi (termasuk kerugian atau kerusakan yang mungkin dialami Google atau pihak ketiga) akibat pelanggaran tersebut.
+
+4.7 Preview sedang dalam pengembangan, dan pengujian serta umpan balik Anda merupakan bagian penting dari proses pengembangan ini. Dengan menggunakan Preview, Anda mengakui bahwa implementasi sebagian fitur masih dalam tahap pengembangan dan bahwa Anda tidak akan berharap bahwa Preview memiliki fungsionalitas penuh rilis stabil. Anda setuju untuk tidak mendistribusikan atau memasarkan kepada umum aplikasi yang menggunakan Preview ini karena Preview ini tidak akan didukung lagi setelah Android SDK resmi dirilis.
+
+5. Kredensial Pengembang Anda
+
+5.1 Anda setuju bertanggung jawab untuk menjaga kerahasiaan semua kredensial pengembang yang mungkin diberikan Google kepada Anda atau yang mungkin Anda pilih sendiri dan bahwa Anda akan bertanggung jawab penuh terhadap semua aplikasi yang dikembangkan dengan kredensial pengembang Anda.
+
+6. Privasi dan Informasi
+
+6.1 Untuk terus berinovasi dan meningkatkan Preview, Google boleh mengumpulkan statistik penggunaan tertentu dari perangkat lunak termasuk namun tidak terbatas pada identifier unik, alamat IP terkait, nomor versi perangkat lunak, dan informasi yang menjadi tempat penggunaan alat dan/atau layanan dalam Preview dan cara penggunaannya. Sebelum informasi ini dikumpulkan, Preview akan memberi tahu dan meminta persetujuan Anda. Jika Anda tidak memberikan persetujuan, informasi tersebut tidak akan dikumpulkan.
+
+6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan Preview dan dikelola sesuai dengan Kebijakan Privasi Google yang terdapat di http://www.google.com/policies/privacy/.
+
+7. Aplikasi Pihak Ketiga
+
+7.1 Jika Anda menggunakan Preview untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, konten atau sumber daya yang disediakan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab terhadap aplikasi, data, konten atau sumber daya tersebut. Anda memahami bahwa semua data, konten atau sumber daya yang mungkin Anda akses melalui aplikasi pihak ketiga merupakan tanggung jawab penuh dari pihak yang menjadi asal data tersebut dan Google tidak bertanggung jawab terhadap kerugian atau kerusakan apa pun yang mungkin Anda alami sebagai akibat menggunakan atau mengakses aplikasi, data, konten, atau sumber daya pihak ketiga tersebut.
+
+7.2 Anda harus menyadari bahwa data, konten dan sumber daya yang diberikan kepada Anda melalui aplikasi pihak ketiga mungkin dilindungi oleh hak kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang lain atau perusahaan atas nama mereka). Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data, konten, atau sumber daya ini (baik secara keseluruhan atau sebagian) kecuali Anda secara khusus diberikan izin untuk melakukannya oleh pemilik yang bersangkutan.
+
+7.3 Anda mengakui bahwa penggunaan Anda atas aplikasi, data, konten, atau sumber daya pihak ketiga semacam itu tunduk pada ketentuan terpisah antara Anda dan pihak ketiga yang bersangkutan.
+
+8. Menggunakan API Google
+
+8.1 API Google
+
+8.1.1 Jika Anda menggunakan API (Antarmuka Pemrograman Aplikasi) untuk mengambil data dari Google, Anda mengakui bahwa data tersebut dilindungi hak kekayaan intelektual yang dimiliki Google atau pihak-pihak yang menyediakan data (atau oleh orang lain atau perusahaan atas nama mereka). Penggunaan API oleh Anda tunduk pada Ketentuan Layanan tambahan. Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data ini (baik secara keseluruhan atau sebagian) kecuali diizinkan oleh Ketentuan Layanan yang bersangkutan.
+
+8.1.2 Jika Anda menggunakan API dalam bentuk apa pun untuk mengambil data pengguna dari Google, Anda mengakui dan menyetujui bahwa Anda akan mengambil data hanya dengan persetujuan yang jelas dari pengguna dan hanya bila, dan sebatas keperluan yang diizinkan oleh pengguna tersebut untuk Anda lakukan.
+
+9. Mengakhiri Perjanjian Lisensi
+
+9.1 Perjanjian Lisensi ini akan terus berlaku hingga diakhiri oleh Anda atau Google sebagaimana diatur di bawah ini.
+
+9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda boleh melakukannya dengan menghentikan penggunaan Preview dan kredensial pengembang yang relevan.
+
+9.3 Google boleh mengakhiri Perjanjian Lisensi ini dengan Anda kapan saja, dengan atau tanpa sebab, setelah memberi tahu Anda.
+
+9.4 Perjanjian Lisensi akan berakhir secara otomatis tanpa pemberitahuan atau tindakan lainnya bila, mana saja yang lebih dahulu:
+(A) Google berhenti menyediakan Preview atau bagian Preview tertentu kepada pengguna di negara tempat Anda tinggal atau negara tempat asal Anda menggunakan layanan; dan
+(B) Google mengeluarkan versi rilis final dari Android SDK.
+
+9.5 Bila Perjanjian Lisensi berakhir, lisensi yang telah diberikan kepada Anda dalam Perjanjian Lisensi akan berakhir pula, Anda akan segera menghentikan semua penggunaan Preview, dan ketetapan paragraf 10, 11, 12, dan 14 akan terus berlaku secara tak terbatas.
+
+10. SANGGAHAN
+
+10.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN PREVIEW OLEH ANDA MERUPAKAN RISIKO ANDA SENDIRI DAN BAHWA PREVIEW INI DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE.
+
+10.2 PENGGUNAAN PREVIEW DAN MATERI APA PUN YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN PREVIEW OLEH ANDA ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB PENUH TERHADAP KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA AKIBAT PENGGUNAANNYA. TANPA MEMBATASI HAL TERSEBUT, ANDA MEMAHAMI BAHWA PREVIEW BUKANLAH RILIS STABIL DAN MUNGKIN BERISI KESALAHAN, CACAT, DAN RISIKO KEAMANAN YANG BISA MENGAKIBATKAN KERUSAKAN SIGNIFIKAN, TERMASUK KEHILANGAN PENGGUNAAN ATAS SISTEM KOMPUTER ANDA ATAU PERANGKAT LAIN DENGAN SEPENUHNYA DAN TIDAK BISA DIPULIHKAN LAGI.
+
+10.3 GOOGLE LEBIH LANJUT MENYANGGAH SEMUA JAMINAN DAN PERSYARATAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT DAN PERSYARATAN MENGENAI DAYA JUAL, KESESUAIAN DENGAN TUJUAN TERTENTU, DAN NON-PELANGGARAN.
+
+11. PEMBATASAN KEWAJIBAN
+
+11.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA GOOGLE, ANAK PERUSAHAAN DAN AFILIASINYA, DAN PEMBERI LISENSINYA TIDAK AKAN BERTANGGUNG JAWAB KEPADA ANDA BERDASARKAN TEORI KEWAJIBAN TERHADAP SEGALA KERUGIAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, JANGKA PANJANG ATAU GANTI RUGI YANG DIAKIBATKAN OLEH ANDA, TERMASUK HILANGNYA DATA, WALAUPUN GOOGLE ATAU PERWAKILANNYA TELAH DIBERI TAHU ATAU SEHARUSNYA MENGETAHUI KEMUNGKINAN TIMBULNYA KEHILANGAN TERSEBUT.
+
+12. Penggantian Kerugian
+
+12.1 Sejauh maksimum yang diizinkan oleh hukum, Anda setuju untuk membela, mengganti kerugian dan melepaskan tanggung jawab Google, afiliasinya beserta direksi, petugas, karyawan dan agennya dari dan terhadap setiap dan semua klaim, tindakan, gugatan, proses hukum, serta setiap dan semua kehilangan, kewajiban, kerusakan, biaya dan pengeluaran (termasuk biaya pengacara yang sewajarnya) yang timbul atau diakibatkan dari (a) penggunaan Preview oleh Anda, (b) aplikasi apa pun yang Anda kembangkan dari Preview yang melanggar Hak Kekayaan Intelektual seseorang atau mencemarkan nama baik seseorang atau melanggar hak mereka berkaitan dengan publisitas atau privasi, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi ini.
+
+13. Perubahan Perjanjian Lisensi
+
+13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru Preview. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan Preview.
+
+14. Ketentuan Hukum Umum
+
+14.1 Perjanjian Lisensi ini merupakan perjanjian hukum antara Anda dan Google dan mengatur penggunaan Preview oleh Anda (tidak termasuk layanan apa pun yang mungkin disediakan Google untuk Anda dalam perjanjian tertulis terpisah), dan sepenuhnya menggantikan perjanjian sebelumnya antara Anda dan Google dalam kaitannya dengan Preview.
+
+14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau bila Google memiliki kewenangan berdasarkan hukum yang berlaku), tindakan ini tidak akan dianggap sebagai pelepasan hak secara resmi oleh Google dan bahwa hak atau upaya hukum tersebut akan tetap bisa digunakan oleh Google.
+
+14.3 Jika persidangan hukum yang berwenang untuk memutuskan perkara ini menetapkan bahwa ada ketetapan Perjanjian Lisensi ini yang tidak berlaku, maka ketetapan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian selebihnya dari Perjanjian Lisensi ini. Ketetapan selebihnya dari Perjanjian Lisensi ini akan tetap sah dan berlaku.
+
+14.4 Anda mengakui dan menyetujui bahwa setiap anggota dari kelompok perusahaan yang diinduki oleh Google akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini dan bahwa perusahaan tersebut berhak untuk secara langsung memberlakukan, dan bergantung pada, ketetapan yang dimuat dalam Perjanjian Lisensi ini yang memberikan manfaat (atau hak yang mendukung) kepada mereka. Selain yang telah disebutkan di atas, tidak ada orang atau perusahaan lain yang akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini
+
+14.5 PEMBATASAN EKSPOR. PREVIEW TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN NASIONAL DAN INTERNASIONAL YANG BERLAKU PADA PREVIEW. HUKUM INI MENYERTAKAN PEMBATASAN ATAS TUJUAN, PENGGUNA AKHIR DAN PENGGUNAAN AKHIR.
+
+14.6 Perjanjian Lisensi ini tidak boleh diberikan atau dialihkan baik oleh Anda tanpa persetujuan tertulis sebelumnya dari Google, dan upaya apa pun untuk mengalihkannya tanpa persetujuan akan menjadi tidak sah. Anda tidak boleh mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi ini tanpa persetujuan tertulis sebelumnya dari Google.
+
+14.7 Perjanjian Lisensi ini, dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi ini, diatur oleh hukum Negara Bagian California tanpa mengindahkan pertentangan ketetapan hukumnya. Anda dan Google setuju untuk tunduk pada yurisdiksi eksklusif pengadilan yang berlokasi di county Santa Clara, California untuk menyelesaikan segala masalah hukum yang timbul dari Perjanjian Lisensi ini. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) dalam yurisdiksi apa pun.
+ </div><!-- sdk terms -->
+
+
+
+ <div id="sdk-terms-form">
+ <p>
+ <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
+ <label id="agreeLabel" for="agree">Saya telah membaca dan menyetujui ketentuan dan persyaratan di atas</label>
+ </p>
+ <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
+ </div>
+
+
+ </div><!-- end TOS -->
+
+
+ <div id="landing">
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>Dalam dokumen ini</h2>
+ <ol>
+ <li><a href="#device-preview">Menyiapkan perangkat keras</a>
+ <ol>
+ <li><a href="#ota">Mendapatkan pembaruan lewat jaringan seluler</a></li>
+ <li><a href="#flash">Mem-flash perangkat secara manual</a></li>
+ <li><a href="#revertDevice">Menghapus instalasi</a></li>
+ </ol>
+ </li>
+ <li><a href="#setupAVD">Menyiapkan emulator</a></li>
+ </ol>
+ </div>
+</div>
+
+<p>
+ Untuk menjalankan dan menguji aplikasi Anda pada platform baru, Anda perlu menyiapkan lingkungan runtime
+ Android N. Anda bisa melakukannya dengan salah satu cara ini:
+</p>
+
+<ul>
+ <li>Instal Android N pada perangkat keras yang didukung, atau</li>
+ <li>Siapkan emulator Android yang menjalankan Android N</li>
+</ul>
+
+<p>
+ Jika Anda ingin lingkungan untuk pengujian kompatibilitas dasar aplikasi Anda pada
+ platform baru, maka Anda hanya perlu APK saat ini dan perangkat keras atau
+ emulator. Anda tidak perlu memperbarui lingkungan
+ pengembangan penuh untuk melakukan pengujian dasar.
+</p>
+
+<p>
+ Jika Anda ingin memodifikasi aplikasi untuk menargetkan Android N atau menggunakan API baru Android N,
+ Anda perlu menyiapkan lingkungan pengembangan yang telah diperbarui untuk mendukung
+ Android N. <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pengembangan
+ Android N</a> berisi detail mengenai hal ini.
+</p>
+
+
+<h2 id="device-preview">Menyiapkan perangkat keras</h2>
+
+<p>
+ N Developer Preview menawarkan pembaruan sistem untuk berbagai jenis perangkat keras
+ yang bisa Anda gunakan untuk menguji aplikasi Anda, dari ponsel hingga tablet dan TV.
+</p>
+
+<p>
+ Jika Anda memiliki akses ke perangkat yang didukung, Anda bisa memperbaruinya ke build tahapan pencapaian Developer
+ Preview dengan salah satu cara berikut:
+</p>
+
+<ul>
+ <li><strong>Daftarkan perangkat dalam pembaruan sistem OTA otomatis</strong> melalui
+ <a href="https://g.co/androidbeta">Android Beta Program</a>. Setelah didaftarkan, perangkat Anda akan menerima pembaruan
+ lewat jaringan seluler (OTA) untuk semua build tahapan pencapaian dalam N Developer Preview. Pendekatan
+ ini disarankan karena akan membantu Anda melakukan transisi secara mulus dari lingkungan saat ini
+ ke berbagai rilis N Developer Preview.</li>
+ <li><strong>Unduh citra sistem a Developer Preview dan flash perangkat</strong>.
+ Pembaruan OTA tidak disediakan secara otomatis untuk perangkat yang Anda flash secara manual, namun
+ Anda bisa mendaftarkan perangkat tersebut dalam Android Beta Program untuk memperoleh pembaruan OTA. </li>
+</ul>
+
+<h3 id="ota">Mendaftarkan perangkat dalam pembaruan OTA otomatis</h3>
+
+<p>
+ Jika Anda memiliki akses ke perangkat yang didukung (lihat daftar dalam tabel
+ Unduhan), Anda bisa menerima pembaruan lewat jaringan seluler ke versi preview Android
+ dengan mendaftarkan perangkat itu ke <a href="https://g.co/androidbeta">Android Beta Program</a>. Pembaruan ini
+ secara otomatis akan diunduh dan memperbarui perangkat Anda seperti
+ pembaruan sistem resmi.
+</p>
+
+<p>
+ Anda bisa membatalkan pendaftaran perangkat kapan saja. Perangkat akan menerima pembaruan OTA
+ ke versi produksi terbaru Android yang tersedia untuk perangkat itu
+ (misalnya, Android 6.0 Marshmallow). Pembaruan mengharuskan pengaturan ulang
+ perangkat secara penuh, jadi data pengguna pada perangkat itu akan dihapus. Pastikan <strong>mencadangkan
+ data penting</strong> sebelum membatalkan pendaftaran perangkat.
+</p>
+
+<p>
+ Untuk informasi selengkapnya dan untuk mendaftarkan perangkat Anda, lihat
+ situs web <a href="https://g.co/androidbeta">Android Beta Program</a>.
+</p>
+
+<p class="note"><strong>Catatan:</strong>
+ Membatalkan pendaftaran mengharuskan pengaturan ulang perangkat secara penuh. Cadangkan
+ data penting terlebih dahulu.
+</p>
+
+<h3 id="flash">Mem-flash perangkat secara manual</h3>
+
+<p>
+ Anda bisa mengunduh citra sistem Developer Preview terbaru dan
+ mem-flash-nya secara manual ke perangkat Anda. Lihat tabel di bawah untuk mengunduh citra sistem
+ bagi perangkat pengujian Anda. Mem-flash perangkat secara manual berguna jika Anda harus
+ mengontrol secara persis lingkungan pengujian tersebut atau harus menginstal ulang secara rutin,
+ misalnya untuk pengujian otomatis.
+</p>
+
+<!-- You can flash by ota or system image --><p>
+ Menginstal citra sistem pada perangkat <strong>akan menghapus semua data dari
+ perangkat</strong>, karena itu Anda harus mencadangkan data terlebih dahulu.
+</p>
+
+<p>
+ Setelah Anda mencadangkan data perangkat dan mengunduh citra sistem di bawah ini yang
+ sesuai dengan perangkat Anda, ikuti instruksi di <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
+ untuk mem-flash citra ini ke perangkat Anda.
+</p>
+
+<p>
+ Mem-flash citra sistem secara manual <strong>
+ tidak secara otomatis akan menerima pembaruan OTA</strong> ke build
+ tahapan pencapaian Developer Preview terbaru. Pastikan lingkungan Anda selalu diperbarui dan lakukan flash
+ citra sistem yang baru di setiap tahapan pencapaian Developer Preview.
+</p>
+
+<p>
+ Jika Anda memutuskan ingin mendapatkan pembaruan OTA setelah mem-flash perangkat secara manual,
+ Anda tinggal mendaftarkan perangkat dalam <a href="https://g.co/androidbeta">
+ Android Beta Program</a>. Anda bisa mendaftarkan perangkat kapan saja untuk menerima pembaruan Preview
+ berikutnya lewat jaringan seluler.
+</p>
+
+<table>
+ <tr>
+ <th scope="col">Perangkat</th>
+ <th scope="col">Unduhan / Checksum</th>
+ </tr>
+
+ <tr id="bullhead">
+ <td>Nexus 5X <br>"bullhead"</td>
+ <td><a href="#top" onclick="onDownload(this)">bullhead-npc56p-preview-6c877a3d.tgz</a><br>
+ MD5: b5cf874021023b398f5b983b24913f5d<br>
+ SHA-1: 6c877a3d9fae7ec8a1678448e325b77b7a7b143a
+ </td>
+ </tr>
+
+ <tr id="shamu">
+ <td>Nexus 6 <br>"shamu"</td>
+ <td><a href="#top" onclick="onDownload(this)">shamu-npc56p-preview-54b13c67.tgz</a><br>
+ MD5: af183638cf34e0eb944a1957d7696f60<br>
+ SHA-1: 54b13c6703d369cc79a8fd8728fe4103c6343973
+ </td>
+ </tr>
+
+ <tr id="angler">
+ <td>Nexus 6P <br>"angler"</td>
+ <td><a href="#top" onclick="onDownload(this)">angler-npc56p-preview-85ffc1b1.tgz</a><br>
+ MD5: bc4934ea7bd325753eee1606d3725a24<br>
+ SHA-1: 85ffc1b1be402b1b96f9ba10929e86bba6c6c588
+ </td>
+ </tr>
+
+ <tr id="volantis">
+ <td>Nexus 9 <br>"volantis"</td>
+ <td><a href="#top" onclick="onDownload(this)">volantis-npc56p-preview-0e8ec8ef.tgz</a><br>
+ MD5: c901334c6158351e945f188167ae56f4<br>
+ SHA-1: 0e8ec8ef98c7a8d4f58d15f90afc5176303efca4
+ </td>
+ </tr>
+
+ <tr id="volantisg">
+ <td>Nexus 9G <br>"volantisg"</td>
+ <td><a href="#top" onclick="onDownload(this)">volantisg-npc56p-preview-1bafdbfb.tgz</a><br>
+ MD5: 7bb95bebc478d7257cccb4652899d1b4<br>
+ SHA-1: 1bafdbfb502e979a9fe4c257a379c4c7af8a3ae6
+ </td>
+ </tr>
+
+ <tr id="fugu">
+ <td>Nexus Player <br>"fugu"</td>
+ <td><a href="#top" onclick="onDownload(this)">fugu-npc56r-preview-7027d5b6.tgz</a><br>
+ MD5: f5d3d8f75836ccfe4c70e8162e498be4<br>
+ SHA-1: 7027d5b662bceda4c80a91a0a14ef0e5a7ba795b
+ </td>
+ </tr>
+
+ <tr id="ryu">
+ <td>Pixel C <br>"ryu"</td>
+ <td><a href="#top" onclick="onDownload(this)">ryu-npc56p-preview-335a86a4.tgz</a><br>
+ MD5: 4e21fb183bbbf467bee91598d587fd2e<br>
+ SHA-1: 335a86a435ee51f18464de343ad2e071c38f0e92
+ </td>
+ </tr>
+ <tr id="seed">
+ <td>General Mobile 4G (Android One) <br>"seed"</td>
+ <td><a href="#top" onclick="onDownload(this)">seed_l8150-npc56p-preview-82472ebc.tgz</a><br>
+ MD5: 983e083bc7cd0c4a2d39d6ebaa20202a<br>
+ SHA-1: 82472ebc9a6054a103f53cb400a1351913c95127
+ </td>
+ </tr>
+
+</table>
+
+<h3 id="revertDevice">Menghapus instalasi Preview dari perangkat</h3>
+
+<p>
+ Jika Anda ingin menghapus instalasi Preview dari perangkat, Anda bisa melakukannya dengan salah satu cara
+ ini: </p>
+ <ul>
+ <li><strong>Dapatkan citra sistem sesuai spesifikasi pabrik</strong> kemudian flash
+ secara manual ke perangkat.
+ <ul>
+ <li>Untuk <strong>perangkat Nexus dan perangkat Pixel C</strong>, lihat
+ halaman <a href="http://developers.google.com/android/nexus/images">Citra Pabrik untuk
+ Perangkat Nexus</a> untuk mengunduhnya. </li>
+ <li>Untuk <strong>perangkat lain</strong>, hubungi produsen perangkat tersebut
+ secara langsung. Atau, jika perangkat didukung
+ dalam Android Beta Program, Anda bisa mendaftarkan perangkat dalam
+ program kemudian membatalkan pendaftarannya (lihat di bawah).</li>
+ </ul>
+ </li>
+ <li><strong>Batalkan pendaftaran perangkat dari Android Beta Program</strong>. Jika
+ perangkat terdaftar dalam <a href="https://g.co/androidbeta">Android Beta
+ Program</a>, apa pun perangkatnya, Anda cukup membatalkan pendaftarannya dari program tersebut.
+ <p>
+ Perangkat akan menerima pembaruan OTA ke versi
+ produksi terbaru Android yang tersedia untuk perangkat itu (misalnya, Android 6.0 Marshmallow).
+ Pembaruan mengharuskan pengaturan ulang perangkat secara penuh, jadi data pengguna pada perangkat itu
+ akan dihapus. Pastikan <strong>mencadangkan data penting</strong> sebelum
+ membatalkan pendaftaran perangkat.
+ </p>
+ </li>
+</ul>
+
+<p class="note"><strong>Catatan:</strong>
+ Menghapus instalasi citra sistem Developer Preview sebelum
+ program berakhir akan mengharuskan perangkat diatur ulang secara penuh dan menghapus semua data pengguna
+ pada perangkat.
+</p>
+
+
+<h2 id="setupAVD">Menyiapkan emulator</h2>
+
+<p>Untuk menggunakan Android Emulator guna menjalankan Android N Preview, Anda perlu
+mengunduh Android N Preview SDK dan membuat perangkat maya untuk
+emulator.</p>
+
+<p>Pertama, unduh Android N Preview SDK sebagai berikut (jika
+Anda sudah memperolehnya saat <a href="{@docRoot}preview/setup-sdk.html">menyiapkan
+pengembangan Android N</a>, Anda bisa melewatkan bagian ini):
+
+<ol>
+ <li>Di Android Studio, buka dialog Settings
+ (<strong>File &gt; Settings</strong> pada Windows/Linux, atau
+ <strong>Android Studio &gt; Preferences</strong> pada Mac). Di panel kiri,
+ pilih <strong>Appearance &amp; Behavior &gt;
+ System Settings &gt; Android SDK</strong>.
+
+ <li>Klik tab <strong>SDK Platforms</strong>, kemudian pilih kotak cek
+ <strong>Android N Preview</strong>.</li>
+
+ <li>Klik tab <strong>SDK Tools</strong>, kemudian pilih
+ kotak cek <strong>Android SDK Build Tools</strong>, <strong>Android SDK
+ Platform-Tools</strong>, dan <strong>Android SDK Tools</strong>.
+
+ </li>
+
+ <li>Klik <strong>OK</strong>, dan terima
+ perjanjian lisensi untuk setiap paket yang akan diinstal.
+ </li>
+</ol>
+
+<p>Sekarang Anda seharusnya telah memiliki <strong>Android SDK Built-Tools 24.0 0 rc1</strong>,
+<strong>Platform-Tools 24.0.0 rc1</strong>, dan <strong>SDK Tools
+25.0.9</strong>. Jika Anda tidak memperbarui SDK Tools ke 25.0.9, maka Anda tidak akan
+dapat menjalankan citra sistem x86_64 untuk Android N.</p>
+
+
+<p>Sekarang buatlah perangkat maya dengan citra sistem Android N:</p>
+
+<ol>
+ <li>Buka AVD Manager dengan memilih <strong>Tools &gt; Android &gt;
+ AVD Manager</strong>.</li>
+ <li>Klik <strong>Create Virtual Device</strong>.</li>
+ <li>Pilih perangkat misalnya Nexus 5X, Nexus 6P, Nexus 9, atau Android TV,
+ kemudian klik <strong>Next</strong>.</li>
+ <li>Pilih citra sistem <strong>N</strong> (dengan
+ <strong>x86</strong> ABI), kemudian klik <strong>Next</strong>.
+ (Hanya citra sistem x86 yang saat ini didukung dengan Emulator
+untuk Android N Preview.)
+ <li>Selesaikan konfigurasi AVD selanjutnya dan klik
+ <strong>Finish</strong>.</li>
+</ol>
+
+<p>Anda sekarang bisa meluncurkan Emulator Android dengan Android N Preview AVD.</p>
+
+<p>
+Untuk mendapatkan pengalaman terbaik di Android Emulator, instal
+Android Studio 2.1 Preview, yang mendukung <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0 Beta</a>
+dengan kinerja jauh lebih cepat dibandingkan Emulator di
+Android Studio 1.5.</p>
+
+<p class="note"><strong>Catatan:</strong>
+ Jika Anda saat ini menggunakan Android Studio 2.0 Beta, maka ada masalah yang telah diketahui
+ yang mencegah Anda membuat AVD dengan citra sistem N Preview, jadi
+ Anda saat ini perlu menggunakan preview Android Studio 2.1 untuk membuat AVD.
+</p>
+
+<p>Untuk informasi selengkapnya tentang membuat perangkat maya, lihat <a href="{@docRoot}tools/devices/index.html">Mengelola Perangkat Maya</a>.
+</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </div><!-- landing -->
+
+</div><!-- relative wrapper -->
+
+
+
+<script>
+ var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/";
+ function onDownload(link) {
+
+ $("#downloadForRealz").html("Download " + $(link).text());
+ $("#downloadForRealz").attr('href', urlRoot + $(link).text());
+
+ $("#tos").fadeIn('fast');
+ $("#landing").fadeOut('fast');
+
+ return true;
+ }
+
+
+ function onAgreeChecked() {
+ /* verify that the TOS is agreed */
+ if ($("input#agree").is(":checked")) {
+ /* reveal the download button */
+ $("a#downloadForRealz").removeClass('disabled');
+ } else {
+ $("a#downloadForRealz").addClass('disabled');
+ }
+ }
+
+ function onDownloadForRealz(link) {
+ if ($("input#agree").is(':checked')) {
+ /*
+ $("#tos").fadeOut('fast');
+ $("#landing").fadeIn('fast');
+ */
+
+ ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
+
+ /*
+ location.hash = "";
+ */
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ $(window).hashchange( function(){
+ if (location.hash == "") {
+ location.reload();
+ }
+ });
+
+</script>
diff --git a/docs/html-intl/intl/in/preview/features/background-optimization.jd b/docs/html-intl/intl/in/preview/features/background-optimization.jd
new file mode 100644
index 000000000000..2836959af990
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/background-optimization.jd
@@ -0,0 +1,388 @@
+page.title=Optimisasi Latar Belakang
+page.metaDescription=Pembatasan baru untuk siaran implisit.
+page.keywords="android N", "implicit broadcasts", "job scheduler"
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>
+ Dalam dokumen ini
+ </h2>
+
+ <ol>
+ <li>
+ <a href="#connectivity-action">Pembatasan pada CONNECTIVITY_ACTION</a>
+ </li>
+
+ <li>
+ <a href="#sched-jobs">Menjadwalkan Pekerjaan Jaringan pada Koneksi
+ Berbiaya Tetap</a>
+ </li>
+
+ <li>
+ <a href="#monitor-conn">Memantau Konektivitas Jaringan Saat Aplikasi
+ Dijalankan</a>
+ </li>
+
+ <li>
+ <a href="#media-broadcasts">Pembatasan pada NEW_PICTURE dan
+ NEW_VIDEO</a>
+ </li>
+
+ <li>
+ <a href="#new-jobinfo">Metode JobInfo Baru</a>
+ </li>
+
+ <li>
+ <a href="#new-jobparam">Metode JobParameter Baru</a>
+ </li>
+
+ <li>
+ <a href="#further-optimization">Mengoptimalkan Aplikasi Anda Lebih Jauh</a>
+ </li>
+ </ol>
+ </div>
+</div>
+
+<p>
+ Proses latar belakang bisa menguras memori dan baterai. Misalnya, sebuah
+ siaran implisit dapat memulai banyak proses latar belakang yang telah didaftarkan
+ untuk mendengarkannya, sekalipun proses-proses itu mungkin tidak melakukan banyak pekerjaan. Ini bisa
+ berdampak besar pada kinerja perangkat dan pengalaman pengguna.
+</p>
+
+<p>
+ Untuk meminimalkan masalah ini, N Developer Preview menerapkan pembatasan
+ berikut:
+</p>
+
+<ul>
+ <li>Aplikasi yang menargetkan Preview tidak menerima siaran {@link
+ android.net.ConnectivityManager#CONNECTIVITY_ACTION} jika mereka
+ mendaftar untuk menerimanya dalam manifes mereka. Aplikasi yang berjalan di latar depan
+ tetap bisa mendengarkan {@code CONNECTIVITY_CHANGE} pada thread utama mereka dengan
+ mendaftarkan {@link android.content.BroadcastReceiver} pada {@link
+ android.content.Context#registerReceiver Context.registerReceiver()}.
+ </li>
+
+ <li>Aplikasi tidak bisa mengirim atau menerima siaran {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO}. Optimisasi ini
+ memengaruhi semua aplikasi, bukan hanya aplikasi yang menargetkan Preview.
+ </li>
+</ul>
+
+<p>
+ Kerangka kerja Android menyediakan beberapa solusi untuk mengurangi kebutuhan akan
+ siaran implisit ini. Misalnya, {@link android.app.job.JobScheduler}
+ dan<a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
+ {@code GcmNetworkManager}</a> menyediakan mekanisme yang tangguh untuk menjadwalkan operasi
+ jaringan bila kondisi yang ditetapkan, seperti koneksi ke jaringan
+ berbiaya tetap, terpenuhi. Anda sekarang juga bisa menggunakan {@link android.app.job.JobScheduler}
+ untuk bereaksi terhadap perubahan penyedia konten. Objek {@link android.app.job.JobInfo}
+ membungkus parameter yang digunakan {@link android.app.job.JobScheduler}
+ untuk menjadwalkan pekerjaan Anda. Bila syarat-syarat pekerjaan sudah terpenuhi, sistem
+ akan mengeksekusi pekerjaan ini pada {@link android.app.job.JobService} aplikasi Anda.
+</p>
+
+<p>
+ Dalam dokumen ini, kita akan mempelajari cara menggunakan metode alternatif, seperti
+ {@link android.app.job.JobScheduler}, untuk menyesuaikan aplikasi Anda dengan pembatasan
+ yang baru.
+</p>
+
+<h2 id="connectivity-action">
+ Pembatasan pada CONNECTIVITY_ACTION
+</h2>
+
+<p>
+ Aplikasi yang menargetkan N Developer Preview tidak menerima siaran {@link
+ android.net.ConnectivityManager#CONNECTIVITY_ACTION} jika mereka
+ mendaftar untuk menerimanya dalam manifes mereka, dan proses yang bergantung pada siaran
+ ini tidak akan dimulai. Hal ini bisa menimbulkan masalah bagi aplikasi yang ingin
+ mendengarkan perubahan jaringan atau melakukan aktivitas jaringan dalam jumlah besar bila perangkat
+ menghubungkan ke jaringan berbiaya tetap. Beberapa solusi untuk menyiasati pembatasan
+ ini sudah ada dalam kerangka kerja Android, namun pemilihan solusi
+ yang tepat bergantung pada apa yang ingin dicapai oleh aplikasi Anda.
+</p>
+
+<p class="note">
+ <strong>Catatan:</strong> Sebuah {@link android.content.BroadcastReceiver} yang didaftarkan dengan
+ {@link android.content.Context#registerReceiver Context.registerReceiver()}
+ akan terus menerima siaran ini saat aplikasi berada di latar depan.
+</p>
+
+<h3 id="sched-jobs">
+ Menjadwalkan Pekerjaan Jaringan pada Koneksi Berbiaya Tetap
+</h3>
+
+<p>
+ Saat menggunakan kelas {@link android.app.job.JobInfo.Builder JobInfo.Builder}
+ untuk membuat objek {@link android.app.job.JobInfo} Anda, terapkan metode {@link
+ android.app.job.JobInfo.Builder#setRequiredNetworkType
+ setRequiredNetworkType()} dan teruskan {@link android.app.job.JobInfo
+ JobInfo.NETWORK_TYPE_UNMETERED} sebagai parameter pekerjaan. Contoh kode berikut
+ menjadwalkan layanan yang akan dijalankan bila perangkat menghubungkan ke jaringan
+ berbiaya tetap dan saat mengisi baterai:
+</p>
+
+<pre>
+public static final int MY_BACKGROUND_JOB = 0;
+...
+public static void scheduleJob(Context context) {
+ JobScheduler js =
+ (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+ JobInfo job = new JobInfo.Builder(
+ MY_BACKGROUND_JOB,
+ new ComponentName(context, MyJobService.class))
+ .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
+ .setRequiresCharging(true)
+ .build();
+ js.schedule(job);
+}
+</pre>
+
+<p>
+ Bila syarat untuk pekerjaan Anda terpenuhi, aplikasi Anda akan menerima callback untuk menjalankan
+ metode {@link android.app.job.JobService#onStartJob onStartJob()} dalam
+ {@code JobService.class} yang ditetapkan. Untuk melihat contoh selengkapnya mengenai implementasi {@link
+ android.app.job.JobScheduler}, lihat <a href="{@docRoot}samples/JobScheduler/index.html">aplikasi contoh JobScheduler</a>.
+</p>
+
+<p>
+ Aplikasi yang menggunakan layanan GMSCore, dan menargetkan Android 5.0 (API tingkat 21)
+ atau lebih rendah, bisa menggunakan <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
+ {@code GcmNetworkManager}</a> dan menetapkan {@code Task.NETWORK_STATE_UNMETERED}.
+</p>
+
+<h3 id="monitor-conn">
+ Memantau Konektivitas Jaringan Saat Aplikasi Dijalankan
+</h3>
+
+<p>
+ Aplikasi yang berjalan di latar depan tetap bisa mendengarkan {@code
+ CONNECTIVITY_CHANGE} dengan {@link
+ android.content.BroadcastReceiver} yang didaftarkan. Akan tetapi, {@link
+ android.net.ConnectivityManager} API menyediakan metode yang lebih tangguh untuk meminta
+ callback hanya bila syarat jaringan yang ditetapkan terpenuhi.
+</p>
+
+<p>
+ Objek {@link android.net.NetworkRequest} mendefinisikan parameter
+ callback jaringan dari segi {@link android.net.NetworkCapabilities}. Anda
+ membuat objek {@link android.net.NetworkRequest} dengan kelas {@link
+ android.net.NetworkRequest.Builder NetworkRequest.Builder}. {@link
+ android.net.ConnectivityManager#registerNetworkCallback(android.net.NetworkRequest,
+ android.net.ConnectivityManager.NetworkCallback) registerNetworkCallback()}
+ kemudian meneruskan objek {@link android.net.NetworkRequest} ke sistem. Bila
+ syarat jaringan terpenuhi, aplikasi akan menerima callback untuk mengeksekusi
+ metode {@link android.net.ConnectivityManager.NetworkCallback#onAvailable
+ onAvailable()} yang didefinisikan dalam kelas {@link
+ android.net.ConnectivityManager.NetworkCallback}.
+</p>
+
+<p>
+ Aplikasi akan terus menerima callback hingga aplikasi keluar atau memanggil
+ {@link android.net.ConnectivityManager#unregisterNetworkCallback
+ unregisterNetworkCallback()}.
+</p>
+
+<h2 id="media-broadcasts">
+ Pembatasan pada NEW_PICTURE dan NEW_VIDEO
+</h2>
+
+<p>
+ Di N Developer Preview, aplikasi tidak dapat mengirim atau menerima siaran {@link
+ android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
+ android.hardware.Camera#ACTION_NEW_VIDEO}. Pembatasan ini membantu
+ meminimalkan dampak negatif terhadap kinerja dan pengalaman pengguna bila beberapa aplikasi harus
+ aktif untuk memproses gambar atau video baru. N Developer Preview
+ menambahkan {@link android.app.job.JobInfo} dan {@link
+ android.app.job.JobParameters} untuk memberikan solusi alternatif.
+</p>
+
+<h3 id="new-jobinfo">
+ Metode JobInfo baru
+</h3>
+
+<p>
+ Untuk memicu pekerjaan saat perubahan URI konten, N Developer Preview menambahkan
+ {@link android.app.job.JobInfo} API dengan metode berikut:
+</p>
+
+<dl>
+ <dt>
+ {@code JobInfo.TriggerContentUri()}
+ </dt>
+
+ <dd>
+ Membungkus parameter yang diperlukan untuk memicu pekerjaan saat perubahan URI konten.
+ </dd>
+
+ <dt>
+ {@code JobInfo.Builder.addTriggerContentUri()}
+ </dt>
+
+ <dd>
+ Meneruskan objek {@code TriggerContentUri} ke {@link
+ android.app.job.JobInfo}. Sebuah {@link android.database.ContentObserver}
+ akan memantau URI konten yang dibungkus. Jika ada beberapa objek {@code
+ TriggerContentUri} yang dikaitkan dengan pekerjaan, sistem akan memberikan sebuah
+ callback sekalipun itu melaporkan perubahan di salah satu URI konten saja.
+ </dd>
+
+ <dd>
+ Tambahkan flag {@code TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS} untuk
+ memicu pekerjaan jika ada turunan dari perubahan URI yang diberikan. Flag ini
+ berkaitan dengan parameter {@code notifyForDescendants} yang diteruskan ke {@link
+ android.content.ContentResolver#registerContentObserver
+ registerContentObserver()}.
+ </dd>
+</dl>
+
+<p class="note">
+ <strong>Catatan:</strong> {@code TriggerContentUri()} tidak bisa digunakan
+ bersama-sama dengan {@link android.app.job.JobInfo.Builder#setPeriodic
+ setPeriodic()} atau {@link android.app.job.JobInfo.Builder#setPersisted
+ setPersisted()}. Untuk terus memantau perubahan konten, jadwalkan
+ {@link android.app.job.JobInfo} baru sebelum {@link
+ android.app.job.JobService} aplikasi selesai menangani callback terbaru.
+</p>
+
+<p>
+ Kode contoh berikut menjadwalkan pekerjaan yang akan dipicu bila sistem melaporkan
+ perubahan ke URI konten, {@code MEDIA_URI}:
+</p>
+
+<pre>
+public static final int MY_BACKGROUND_JOB = 0;
+...
+public static void scheduleJob(Context context) {
+ JobScheduler js =
+ (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+ JobInfo.Builder builder = new JobInfo.Builder(
+ MY_BACKGROUND_JOB,
+ new ComponentName(context, MediaContentJob.class));
+ builder.addTriggerContentUri(
+ new JobInfo.TriggerContentUri(MEDIA_URI,
+ JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS));
+ js.schedule(builder.build());
+}
+</pre>
+<p>
+ Bila sistem melaporkan perubahan dalam URI konten yang ditetapkan, aplikasi Anda
+ akan menerima callback dan objek {@link android.app.job.JobParameters}
+ akan diteruskan ke metode {@link android.app.job.JobService#onStartJob onStartJob()}
+ dalam {@code MediaContentJob.class}.
+</p>
+
+<h3 id="new-jobparam">
+ Metode JobParameter Baru
+</h3>
+
+<p>
+ N Developer Preview juga menambahkan {@link android.app.job.JobParameters} untuk
+ memungkinkan aplikasi Anda menerima informasi yang berguna tentang otoritas konten
+ dan URI yang memicu pekerjaan:
+</p>
+
+<dl>
+ <dt>
+ {@code Uri[] getTriggeredContentUris()}
+ </dt>
+
+ <dd>
+ Mengembalikan larik URL yang telah memicu pekerjaan. Ini akan berupa {@code
+ null} jika tidak ada URI yang memicu pekerjaan (misalnya, pekerjaan
+ dipicu karena batas waktu atau alasan lainnya), atau jumlah
+ URI yang berubah lebih dari 50.
+ </dd>
+
+ <dt>
+ {@code String[] getTriggeredContentAuthorities()}
+ </dt>
+
+ <dd>
+ Mengembalikan larik string otoritas konten yang telah memicu pekerjaan.
+ Jika larik yang dikembalikan bukan {@code null}, gunakan {@code getTriggeredContentUris()}
+ untuk mengambil detail URI yang telah berubah.
+ </dd>
+</dl>
+
+<p>
+ Kode contoh berikut mengesampingkan metode {@link
+ android.app.job.JobService#onStartJob JobService.onStartJob()} dan
+ mencatat otoritas konten serta URI yang telah memicu pekerjaan:
+</p>
+
+<pre>
+&#64;Override
+public boolean onStartJob(JobParameters params) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("Media content has changed:\n");
+ if (params.getTriggeredContentAuthorities() != null) {
+ sb.append("Authorities: ");
+ boolean first = true;
+ for (String auth :
+ params.getTriggeredContentAuthorities()) {
+ if (first) {
+ first = false;
+ } else {
+ sb.append(", ");
+ }
+ sb.append(auth);
+ }
+ if (params.getTriggeredContentUris() != null) {
+ for (Uri uri : params.getTriggeredContentUris()) {
+ sb.append("\n");
+ sb.append(uri);
+ }
+ }
+ } else {
+ sb.append("(No content)");
+ }
+ Log.i(TAG, sb.toString());
+ return true;
+}
+</pre>
+
+<h2 id="further-optimization">
+ Mengoptimalkan Aplikasi Anda Lebih Jauh
+</h2>
+
+<p>
+ Mengoptimalkan aplikasi Anda untuk berjalan pada perangkat minim memori, atau dalam kondisi
+ minim memori, bisa meningkatkan kinerja dan pengalaman pengguna. Menghilangkan
+ dependensi pada layanan latar belakang dan penerima siaran
+ implisit yang terdaftar secara statis bisa membantu aplikasi Anda berjalan lebih baik pada perangkat demikian. Meskipun
+ N Developer Preview telah mengambil langkah-langkah untuk mengurangi sebagian masalah ini, Anda disarankan
+ agar mengoptimalkan aplikasi untuk berjalan tanpa menggunakan
+ proses latar belakang ini seluruhnya.
+</p>
+
+<p>
+ N Developer Preview memperkenalkan beberapa tambahan perintah <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> yang
+ bisa Anda gunakan untuk menguji perilaku aplikasi dengan proses latar belakang dinonaktifkan:
+</p>
+
+<ul>
+ <li>Untuk mensimulasikan kondisi saat siaran implisit dan layanan latar belakang
+ tidak tersedia, masukkan perintah berikut:
+ </li>
+
+ <li style="list-style: none; display: inline">
+<pre class="no-pretty-print">
+{@code $ adb shell cmd appops set RUN_IN_BACKGROUND ignore}
+</pre>
+ </li>
+
+ <li>Untuk mengaktifkan kembali siaran implisit dan layanan latar belakang, masukkan
+ perintah berikut:
+ </li>
+
+ <li style="list-style: none; display: inline">
+<pre class="no-pretty-print">
+{@code $ adb shell cmd appops set RUN_IN_BACKGROUND allow}
+</pre>
+ </li>
+</ul> \ No newline at end of file
diff --git a/docs/html-intl/intl/in/preview/features/direct-boot.jd b/docs/html-intl/intl/in/preview/features/direct-boot.jd
new file mode 100644
index 000000000000..2952bb56693d
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/direct-boot.jd
@@ -0,0 +1,180 @@
+page.title=Direct Boot
+page.keywords=preview,sdk,direct boot
+page.tags=androidn
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+ <h2>Dalam dokumen ini</h2>
+ <ol>
+ <li><a href="#run">Meminta Akses untuk Berjalan Selama Direct Boot</a></li>
+ <li><a href="#access">Mengakses Penyimpanan yang Dienkripsi dengan Perangkat</a></li>
+ <li><a href="#notification">Mendapatkan Pemberitahuan saat Pengguna Membuka Kunci</a></li>
+ <li><a href="#migrating">Migrasi Data yang Ada</a></li>
+ <li><a href="#testing">Menguji Aplikasi Peka Enkripsi Anda</a></li>
+ </ol>
+</div>
+</div>
+
+<p>Android N berjalan dalam mode <i>Direct Boot</i> yang aman
+bila perangkat telah dihidupkan namun pengguna tidak membuka
+kunci perangkat. Untuk mendukung hal ini, sistem menyediakan dua lokasi penyimpanan untuk data:</p>
+
+<ul>
+<li><i>Penyimpanan yang dienkripsi dengan kredensial</i>, yang merupakan lokasi penyimpanan default
+dan hanya tersedia setelah pengguna membuka kunci perangkat.</li>
+<li><i>Penyimpanan yang dienkripsi dengan perangkat</i>, yang merupakan lokasi penyimpanan yang tersedia
+selama mode Direct Boot dan setelah pengguna membuka kunci perangkat.</li>
+</ul>
+
+<p>Secara default, aplikasi tidak berjalan selama mode Direct Boot.
+Jika aplikasi Anda perlu melakukan tindakan selama mode Direct Boot, Anda bisa mendaftarkan
+komponen aplikasi yang harus dijalankan selama mode ini. Beberapa kasus penggunaan umum
+untuk aplikasi yang perlu dijalankan selama mode Direct Boot antara lain:</p>
+
+<ul>
+<li>Aplikasi yang telah menjadwalkan pemberitahuan, seperti aplikasi
+jam alarm.</li>
+<li>Aplikasi yang menyediakan pemberitahuan pengguna yang penting, seperti aplikasi SMS.</li>
+<li>Aplikasi yang menyediakan layanan aksesibilitas, seperti TalkBack.</li>
+</ul>
+
+<p>Jika aplikasi Anda perlu mengakses data saat dijalankan dalam mode Direct Boot, gunakan
+penyimpanan yang dienkripsi dengan perangkat. Penyimpanan yang dienkripsi dengan perangkat berisi data
+yang dienkripsi dengan kunci yang hanya tersedia setelah perangkat melakukan
+boot yang berhasil diverifikasi.</p>
+
+<p>Untuk data yang harus dienkripsi dengan kunci yang dikaitkan dengan kredensial
+pengguna, seperti PIN atau kata sandi, gunakan penyimpanan yang dienkripsi dengan kredensial.
+Penyimpanan yang dienkripsi dengan kredensial hanya tersedia setelah pengguna berhasil
+membuka kunci perangkat, hingga saat pengguna menghidupkan ulang perangkat lagi. Jika
+pengguna mengaktifkan layar kunci setelah membuka kunci perangkat, hal ini tidak akan mengunci
+penyimpanan yang dienkripsi dengan kredensial.</p>
+
+<h2 id="run">Meminta Akses untuk Berjalan Selama Direct Boot</h2>
+
+<p>Aplikasi harus mendaftarkan komponennya pada sistem agar
+bisa berjalan selama mode Direct Boot atau mengakses
+penyimpanan yang dienkripsi dengan perangkat. Aplikasi mendaftar pada sistem dengan menandai komponen sebagai
+<i>peka enkripsi</i>. Untuk menandai komponen Anda sebagai peka enkripsi, atur atribut
+<code>android:encryptionAware</code> ke true dalam manifes Anda.<p>
+
+<p>Komponen yang peka enkripsi bisa mendaftar untuk menerima pesan siaran
+<code>LOCKED_BOOT_COMPLETED</code> dari
+sistem bila perangkat telah dihidupkan ulang. Pada tahap ini
+penyimpanan yang dienkripsi dengan perangkat akan tersedia, dan komponen Anda bisa mengeksekusi tugas-tugas yang perlu
+dijalankan selama mode Direct Boot, seperti memicu alarm yang terjadwal.</p>
+
+<p>Cuplikan kode berikut adalah contoh cara mendaftarkan
+{@link android.content.BroadcastReceiver} sebagai peka enkripsi, dan menambahkan sebuah
+filter intent untuk <code>LOCKED_BOOT_COMPLETED</code>, dalam manifes aplikasi:</p>
+
+<pre>
+&lt;receiever
+ android:encryptionAware="true" &gt;
+ ...
+ &lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /&gt;
+ &lt;/intent-filter&gt;
+&lt;/receiver&gt;
+</pre>
+
+<p>Setelah pengguna membuka kunci perangkat, semua komponen bisa mengakses
+penyimpanan yang dienkripsi dengan perangkat serta penyimpanan yang dienkripsi dengan kredensial.</p>
+
+<h2 id="access">Mengakses Penyimpanan yang Dienkripsi dengan Perangkat</h2>
+
+<p>Untuk mengakses penyimpanan yang dienkripsi dengan perangkat, buat instance
+{@link android.content.Context} kedua dengan memanggil
+<code>Context.createDeviceEncryptedStorageContext()</code>. Semua panggilan
+API penyimpanan yang dibuat menggunakan konteks ini akan mengakses penyimpanan yang dienkripsi dengan perangkat. Contoh
+berikut mengakses penyimpanan yang dienkripsi dengan perangkat dan membuka file data aplikasi
+yang ada:</p>
+
+<pre>
+Context directBootContext = Context.createDeviceEncryptedStorageContext();
+// Access appDataFilename that lives in device encrypted storage
+FileInputStream inStream = directBootContext.openFileInput(appDataFilename);
+// Use inStream to read content...
+</pre>
+
+<p>Gunakan penyimpanan yang dienkripsi dengan perangkat hanya untuk
+informasi yang harus bisa diakses selama mode Direct Boot.
+Jangan gunakan penyimpanan yang dienkripsi dengan perangkat sebagai penyimpanan terenkripsi serba guna.
+Untuk informasi pengguna yang bersifat pribadi, atau data terenkripsi yang tidak diperlukan selama
+mode Direct Boot, gunakan penyimpanan yang dienkripsi dengan kredensial.</p>
+
+<h2 id="notification">Mendapatkan Pemberitahuan saat Pengguna Membuka Kunci</h2>
+
+<p>Setelah pengguna membuka kunci perangkat setelah restart, aplikasi Anda bisa beralih untuk
+mengakses penyimpanan yang dienkripsi dengan kredensial dan menggunakan layanan sistem biasa yang
+bergantung pada kredensial pengguna.</p>
+
+<p>Agar diberi tahu bila pengguna membuka kunci perangkat setelah reboot,
+daftarkan {@link android.content.BroadcastReceiver} dari komponen yang berjalan
+untuk mendengarkan pesan <code>ACTION_USER_UNLOCKED</code>. Atau, Anda bisa
+menerima pesan {@link android.content.Intent#ACTION_BOOT_COMPLETED
+ACTION_BOOT_COMPLETED} yang ada, yang sekarang menunjukkan bahwa perangkat telah dihidupkan dan
+pengguna telah membuka kunci perangkat.</p>
+
+<p>Anda bisa langsung melakukan query apakah pengguna telah membuka kunci perangkat dengan memanggil
+<code>UserManager.isUserUnlocked()</code>.</p>
+
+<h2 id="migrating">Migrasi Data yang Ada</h2>
+
+<p>Jika pengguna memperbarui perangkat mereka untuk menggunakan mode Direct Boot,
+data Anda yang ada mungkin perlu dipindahkan ke penyimpanan yang dienkripsi dengan perangkat. Gunakan
+<code>Context.migrateSharedPreferencesFrom()</code> dan
+<code>Context.migrateDatabaseFrom()</code> untuk memindahkan data preferensi dan
+database antara penyimpanan yang dienkripsi dengan kredensial dan penyimpanan yang dienkripsi dengan perangkat.</p>
+
+<p>Pertimbangkan dengan baik saat memutuskan data apa yang akan dipindahkan dari
+penyimpanan yang dienkripsi dengan kredensial ke penyimpanan yang dienkripsi dengan perangkat. Anda sebaiknya tidak memindahkan
+informasi pengguna yang bersifat rahasia, seperti kata sandi atau token otorisasi, ke
+penyimpanan yang dienkripsi dengan perangkat. Dalam beberapa skenario, Anda mungkin perlu mengelola
+set data terpisah pada dua tempat penyimpanan yang dienkripsi.</p>
+
+<h2 id="testing">Menguji Aplikasi Peka Enkripsi Anda</h2>
+
+<p>Uji aplikasi peka enkripsi Anda menggunakan mode Direct Boot baru. Ada
+dua cara untuk mengaktifkan Direct Boot.</p>
+
+<p class="caution"><strong>Perhatian:</strong> Mengaktifkan Direct Boot
+akan menghapus semua data pengguna pada perangkat.</p>
+
+<p>Pada perangkat yang didukung dengan Android N terinstal, aktifkan
+Direct Boot dengan melakukan salah satu hal berikut:</p>
+
+<ul>
+<li>Pada perangkat, aktifkan <b>Developer options</b> jika Anda belum melakukannya dengan
+masuk ke <b>Settings &gt; About phone</b>, dan menyentuh <b>Build number</b>
+tujuh kali. Setelah layar Developer options terbuka, masuk ke
+<b>Settings &gt; Developer options</b> dan pilih
+<b>Convert to file encryption</b>.</li>
+<li>Gunakan perintah shell adb berikut untuk mengaktifkan mode Direct Boot:
+<pre class="no-pretty-print">
+$ adb reboot-bootloader
+$ fastboot --wipe-and-use-fbe
+</pre>
+</li>
+</ul>
+
+<p>Mode emulasi Direct Boot juga tersedia, jika Anda perlu mengganti
+mode pada perangkat pengujian. Mode emulasi sebaiknya hanya digunakan selama
+pengembangan dan bisa menyebabkan kehilangan data. Untuk mengaktifkan mode emulasi Direct Boot,
+atur pola kunci pada perangkat, pilih "No thanks" jika ditanya mengenai
+layar start-up aman saat menetapkan pola kunci, kemudian gunakan
+perintah shell adb berikut:</p>
+
+<pre class="no-pretty-print">
+$ adb shell sm set-emulate-fbe true
+</pre>
+
+<p>Untuk menonaktifkan mode emulasi Direct Boot, gunakan perintah berikut:</p>
+
+<pre class="no-pretty-print">
+$ adb shell sm set-emulate-fbe false
+</pre>
+
+<p>Menggunakan perintah ini akan menyebabkan perangkat melakukan reboot.</p>
diff --git a/docs/html-intl/intl/in/preview/features/icu4j-framework.jd b/docs/html-intl/intl/in/preview/features/icu4j-framework.jd
new file mode 100644
index 000000000000..5b7547f83712
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/icu4j-framework.jd
@@ -0,0 +1,158 @@
+page.title=ICU4J Android Framework API
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+<h2>Dalam dokumen ini:</h2>
+<ol>
+ <li><a href="#relation">Hubungan dengan ICU4J</a></li>
+ <li><a href="#migration">Migrasi ke android.icu API dari ICU4J </a></li>
+ <li><a href="#licence">Lisensi</a></li>
+</ol>
+
+<h2>Lihat Juga</h2>
+<ol>
+ <li>
+ <a class="external-link" href="http://userguide.icu-project.org">Dokumentasi untuk ICU4J</a>
+ </li>
+
+ <li>
+ <a class="external-link" href="http://site.icu-project.org/#TOC-What-is-ICU-">Standar terbaru yang didukung
+ oleh ICU4J</a>
+ </li>
+</ol>
+</div>
+</div>
+
+<p>
+ ICU4J merupakan serangkaian pustaka Java sumber terbuka yang banyak digunakan dan menyediakan Unicode
+ serta dukungan globalisasi untuk aplikasi perangkat lunak. Android N
+ mengekspos subset ICU4J API dalam kerangka kerja Android bagi pengembang aplikasi
+ untuk digunakan pada paket {@code android.icu}. API ini menggunakan
+ data pelokalan yang ada pada perangkat. Hasilnya, Anda bisa mengurangi footprint
+ APK dengan tidak mengompilasi pustaka ICU4J ke APK Anda; sebagai gantinya,
+ cukup memanggilnya dalam kerangka kerja. (Dalam hal ini, Anda mungkin perlu menyediakan
+ <a href="{@docRoot}google/play/publishing/multiple-apks.html">beberapa versi
+ APK Anda</a>, sehingga pengguna yang menjalankan versi Android lebih rendah dari Android N
+ bisa mengunduh versi aplikasi yang berisi pustaka ICU4J.)
+</p>
+
+<p>
+ Dokumen ini diawali dengan menyediakan beberapa informasi dasar tentang level API Android
+ minimum yang diperlukan untuk mendukung pustaka-pustaka ini. Kemudian dijelaskan tentang apa
+ yang perlu Anda ketahui tentang implementasi ICU4J spesifik Android. Terakhir,
+ Anda akan diberi tahu cara menggunakan ICU4J API dalam kerangka kerja Android.
+</p>
+
+<h2 id="relation">Hubungan dengan ICU4J</h2>
+
+<p>
+ Android N mengekspos subset ICU4J API lewat
+ paket <code>android.icu</code>, bukannya <code>com.ibm.icu</code>. Kerangka kerja
+ Android dapat memilih untuk tidak
+ mengekspos ICU4J API karena berbagai alasan; misalnya, Android N tidak mengekspos
+ beberapa API yang tidak digunakan lagi atau yang dinyatakan belum
+ stabil oleh tim ICU. Karena tim ICU tidak lagi menggunakan API di masa mendatang, Android juga akan menandainya
+ sebagai tidak digunakan lagi namun akan terus menyertakannya.
+</p>
+
+<p class="table-caption"><strong>Tabel 1.</strong> Versi ICU dan CLDR yang digunakan
+ di Android N.</p>
+<table>
+<tr>
+<th>Level API Android</th>
+<th>Versi ICU</th>
+<th>Versi CLDR</th>
+</tr>
+<tr>
+<td>Android N</td>
+<td>56</td>
+<td>28</td>
+</tr>
+</table>
+
+<p>Inilah beberapa hal penting yang harus diperhatikan:</p>
+
+<ul>
+<li>ICU4J Android Framework API tidak menyertakan semua ICU4J API.</li>
+<li>Pengembang NDK harus mengetahui bahwa Android ICU4C tidak didukung.</li>
+<li>API dalam kerangka kerja Android tidak menggantikan dukungan Android untuk
+<a href="{@docRoot}guide/topics/resources/localization.html">melokalkan dengan
+sumber daya</a>.</li>
+</ul>
+
+<h2 id="migration">Migrasi ke paket android.icu dari com.ibm.icu</h2>
+
+<p>
+ Jika Anda sudah menggunakan ICU4J API dalam aplikasi, dan
+ <code>android.icu</code> API memenuhi persyaratan Anda, maka migrasi ke
+ API kerangka kerja mengharuskan Anda untuk mengubah impor Java
+ dari <code>com.ibm.icu</code> ke <code>android.icu</code>. Kemudian Anda bisa
+ menghapus salinan file ICU4J dari APK.
+</p>
+
+<p class="note">
+ <b>Catatan</b>: API kerangka kerja ICU4J menggunakan namespace {@code android.icu}
+ sebagai ganti {@code com.ibm.icu}. Hal ini untuk menghindari konflik
+ namespace di APK yang berisi pustaka {@code com.ibm.icu} sendiri.
+</p>
+
+<h3 id="migrate-from-android">
+ Migrasi ke API android.icu dari Android SDK API lainnya
+</h3>
+
+<p>
+ Beberapa kelas dalam paket <code>java</code> dan <code>android</code> memiliki
+ padanannya dengan yang ditemukan di ICU4J. Akan tetapi, ICU4J seringkali menyediakan dukungan
+ yang lebih luas untuk standar dan bahasa.
+</p>
+<p>Inilah beberapa contoh untuk membantu Anda memulai:</p>
+<table>
+<tr>
+<th>Kelas</th>
+<th>Alternatif</th>
+</tr>
+<tr>
+<td><code>java.lang.Character</code> </td>
+<td><code>android.icu.lang.UCharacter</code> </td>
+</tr>
+<tr>
+<td><code>java.text.BreakIterator</code> </td>
+<td><code>android.icu.text.BreakIterator</code> </td>
+</tr>
+<tr>
+<td><code>java.text.DecimalFormat</code> </td>
+<td><code>android.icu.text.DecimalFormat</code> </td>
+</tr>
+<tr>
+<td><code>java.util.Calendar</code></td>
+<td>
+<code>android.icu.util.Calendar</code></td>
+</tr>
+<tr>
+<td><code>android.text.BidiFormatter</code>
+ </td>
+<td><code>android.icu.text.Bidi</code>
+ </td>
+</tr>
+<tr>
+<td><code>android.text.format.DateFormat</code>
+ </td>
+<td><code>android.icu.text.DateFormat</code>
+ </td>
+</tr>
+<tr>
+<td><code>android.text.format.DateUtils</code> </td>
+<td><code>android.icu.text.DateFormat</code>
+<code>android.icu.text.RelativeDateTimeFormatter</code>
+</td>
+</tr>
+</table>
+
+<h2 id="licence">Lisensi</h2>
+
+<p>
+ ICU4J dirilis dengan lisensi ICU. Untuk detailnya, lihat <a class="external-link" href="http://userguide.icu-project.org/icufaq#TOC-How-is-the-ICU-licensed-">Panduan Pengguna
+ ICU.</a>
+</p>
diff --git a/docs/html-intl/intl/in/preview/features/multi-window.jd b/docs/html-intl/intl/in/preview/features/multi-window.jd
new file mode 100644
index 000000000000..f879dc5ad0ac
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/multi-window.jd
@@ -0,0 +1,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>
diff --git a/docs/html-intl/intl/in/preview/features/multilingual-support.jd b/docs/html-intl/intl/in/preview/features/multilingual-support.jd
new file mode 100644
index 000000000000..0a73bcf879de
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/multilingual-support.jd
@@ -0,0 +1,214 @@
+page.title=Bahasa dan Lokal
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+<h2>Dalam dokumen ini:</h2>
+<ol>
+ <li><a href="#preN">Tantangan dalam Mengatasi Masalah Sumber Daya Bahasa</a></li>
+ <li><a href="#postN">Peningkatan pada Strategi Resolusi Sumber Daya</a></li>
+ <li><a href="#design">Mendesain Aplikasi Anda untuk Mendukung Lokal
+ Tambahan</a></li>
+
+</ol>
+
+</div>
+</div>
+
+<p>Android N memberikan dukungan yang disempurnakan untuk pengguna multibahasa,
+yang memungkinkan mereka memilih beberapa lokal dalam pengaturan. Android N
+menyediakan kemampuan ini dengan memperbanyak jumlah lokal yang didukung
+dan mengubah cara sistem mengatasi masalah sumber daya. Metode baru mengatasi
+masalah sumber daya ini lebih tangguh dan didesain agar kompatibel dengan APK yang ada, namun
+Anda harus ekstra hati-hati terhadap perilaku tak terduga. Misalnya, Anda
+harus menguji untuk memastikan aplikasi Anda secara default diatur ke bahasa yang diinginkan. Juga,
+jika aplikasi Anda mendukung beberapa bahasa, Anda harus memastikan dukungan ini berfungsi
+sebagaimana diinginkan. Terakhir, Anda harus mencoba memastikan aplikasi Anda dengan lancar menangani
+bahasa yang tidak secara eksplisit Anda dukung dalam desain.</p>
+
+<p>Dokumen ini diawali dengan menjelaskan strategi resolusi sumber daya sebelum
+Android N. Berikutnya, akan dijelaskan strategi
+resolusi sumber daya Android N yang telah ditingkatkan. Terakhir, akan djelaskan cara memanfaatkan
+jumlah lokal yang telah diperbanyak untuk mendukung lebih banyak pengguna multibahasa.</p>
+
+<h2 id="preN">Tantangan dalam Mengatasi Masalah Sumber Daya Bahasa</h2>
+
+<p>Sebelum Android N, Android tidak selalu
+ berhasil mencocokkan lokal aplikasi dan lokal sistem. Misalnya, anggaplah bahasa default aplikasi Anda
+ adalah US English, namun aplikasi itu juga berisi string bahasa Spanyol yang dilokalkan di file sumber daya {@code es_ES}.
+.</p>
+<p>Bila kode Java Anda mengacu ke string, itu akan mengatasi masalah bahasa string sebagai
+berikut:</p>
+<ul>
+<li>Jika perangkat diatur ke {@code es_MX} (Spanish-Mexico), Android akan memuat
+string dari file sumber daya {@code es_ES}.</li>
+<li>Jika perangkat diatur ke {@code en_AU}, Android akan kembali pada {@code
+en_US}. Sistem juga akan default ke {@code en_US} jika pengguna memilih
+bahasa yang sama sekali tidak didukung oleh aplikasi, seperti bahasa Prancis.</li>
+</ul>
+
+
+<p>Masalah resolusi ini muncul karena sistem menghilangkan kode negara
+dari lokal jika tidak bisa menemukan yang sama persis. Misalnya:</p>
+<p class="table-caption" id="t-resource-res">
+<strong>Tabel 1.</strong> Resolusi sumber daya tanpa lokal yang persis sama.
+</p>
+<table>
+<tbody>
+<tr>
+<th>Pengaturan Pengguna</th>
+<th>Sumber Daya Aplikasi</th>
+<th>Resolusi Sumber Daya</th>
+</tr>
+<tr>
+<td>fr_CH</td>
+<td>
+default (en)<br>
+de_DE<br>
+es_ES<br>
+fr_FR<br>
+it_IT<br>
+</td>
+ <td>
+Coba fr_CH =&gt; Gagal<br>
+Coba fr =&gt; Gagal<br>
+Gunakan default (en)
+</td>
+ </tr>
+ </tbody>
+</table>
+
+
+<p>Dalam contoh ini, sistem menampilkan string bahasa Inggris
+tanpa mengetahui apakah pengguna memahami bahasa Inggris. Perilaku ini sudah sangat umum
+sekarang. Android N harus mengurangi frekuensi
+hasil seperti ini secara substansial.</p>
+
+<h2 id="postN">Peningkatan pada Strategi Resolusi Sumber Daya</h2>
+<p>Android N menghadirkan resolusi sumber daya yang lebih handal, dan
+secara otomatis menemukan solusi yang lebih baik. Akan tetapi, untuk mempercepat resolusi dan meningkatkan
+kemudahan pemeliharaan, Anda harus menyimpan sumber daya dalam dialek induk yang paling umum.
+ Misalnya, jika sebelumnya Anda telah menyimpan sumber daya bahasa Spanyol di direktori {@code es-US}
+, pindahkan ke direktori {@code es-419}, yang berisi bahasa Spanyol Amerika Latin.
+ Demikian pula, jika Anda memiliki string sumber daya dalam folder bernama {@code en-GB}, ganti nama
+ folder itu menjadi {@code en-001} (bahasa Inggris internasional), karena induk yang paling umum
+ untuk string <code>en-GB</code> adalah {@code en-001}.
+ Contoh berikut menjelaskan mengapa praktik-praktik ini meningkatkan kinerja dan
+reliabilitas resolusi sumber daya.</p>
+
+<h3>Contoh resolusi sumber daya</h3>
+
+<p>Dengan Android N, kasus yang dijelaskan dalam <strong>Tabel 1</strong> diatasi
+secara berbeda:</p>
+
+<p class="table-caption" id="t-improved-res">
+<strong>Tabel 2.</strong> Strategi resolusi yang ditingkatkan bila tidak ada
+lokal yang sama persis.</p>
+<table>
+<tr>
+<th>Pengaturan Pengguna</th>
+<th>Sumber Daya Aplikasi</th>
+<th>Resolusi Sumber Daya</th>
+</tr>
+<tr>
+<td><ol>
+<li> fr_CH</li>
+</ol>
+</td>
+<td>
+default (en)<br>
+de_DE<br>
+es_ES<br>
+fr_FR<br>
+it_IT<br>
+</td>
+<td>
+Coba fr_CH =&gt; Gagal<br>
+Coba fr =&gt; Gagal<br>
+Coba anak dari fr =&gt; fr_FR<br>
+Gunakan fr_FR
+</td>
+</tr>
+
+</table>
+
+
+<p>Sekarang pengguna mendapatkan sumber daya bahasa Prancis sebagai ganti bahasa Inggris. Contoh ini juga menunjukkan
+ mengapa Anda harus menyimpan string bahasa Prancis dalam {@code fr} bukan dalam {@code fr_FR}
+ untuk Android N. Tindakan di sini adalah untuk mencocokkan dengan induk dialek terdekat,
+ yang membuat resolusi menjadi lebih cepat dan lebih bisa diprediksi.</p>
+
+<p>Selain logika resolusi yang diperbaiki ini, Android sekarang menawarkan lebih banyak
+pilihan bahasa untuk pengguna. Mari kita coba lagi contoh di atas dengan menetapkan bahasa Italia
+ sebagai bahasa pengguna tambahan, tetapi tanpa dukungan aplikasi untuk bahasa Prancis. </p>
+
+<p class="table-caption" id="t-2d-choice">
+<strong>Tabel 3.</strong> Resolusi sumber daya bila aplikasi hanya mencocokkan
+pengaturan lokal yang disukai kedua oleh pengguna.</p>
+<table>
+<tr>
+<th>Pengaturan Pengguna</th>
+<th>Sumber Daya Aplikasi</th>
+<th>Resolusi Sumber Daya</th>
+
+</tr>
+<tr>
+<td><ol>
+<li> fr_CH</li>
+<li> it_CH</li>
+</ol>
+</td>
+<td>
+default (en)<br>
+de_DE<br>
+es_ES<br>
+it_IT<br>
+</td>
+<td>
+Coba fr_CH =&gt; Gagal<br>
+Coba fr =&gt; Gagal<br>
+Coba anak dari fr =&gt; Gagal<br>
+Coba it_CH =&gt; Gagal<br>
+Coba it =&gt; Gagal<br>
+Coba anak dari it =&gt; it_IT<br>
+Gunakan it_IT
+</td>
+
+</tr>
+
+</table>
+<p>Pengguna tetap mendapatkan bahasa yang mereka pahami, meskipun aplikasi tidak
+mendukung bahasa Prancis.</p>
+
+
+<h2 id="design">Mendesain Aplikasi Anda untuk Mendukung Lokal Tambahan</h2>
+<h3>LocaleList API</h3>
+
+<p>Android N menambahkan API baru {@code LocaleList.GetDefault()}
+yang memungkinkan aplikasi langsung melakukan query daftar bahasa yang telah ditetapkan pengguna. API ini
+memungkinkan Anda untuk membuat
+ perilaku aplikasi yang lebih canggih dan tampilan konten yang lebih optimal. Misalnya, Pencarian
+ bisa menampilkan hasil dalam beberapa bahasa berdasarkan pengaturan pengguna. Aplikasi browser
+ bisa menghindari penawaran menerjemahkan halaman dalam bahasa yang sudah diketahui pengguna,
+ dan aplikasi keyboard bisa mengaktifkan otomatis semua layout yang sesuai. </p>
+
+<h3>Formatter</h3>
+
+<p>Hingga Android 6.0 (API level 23), Android hanya mendukung satu atau dua lokal
+ untuk banyak bahasa umum
+(en, es, ar, fr, ru). Karena hanya ada beberapa varian dari setiap bahasa,
+aplikasi bisa menghindar dengan menyimpan beberapa nomor dan tanggal sebagai string hard-code
+dalam file sumber daya. Akan tetapi, dengan perluasan set lokal yang didukung Android,
+maka akan ada
+perbedaan format yang signifikan untuk tanggal, waktu, mata uang, dan informasi
+serupa bahkan dalam lokal tunggal. Menjadikan format Anda sebagai hard-code bisa menghasilkan
+pengalaman yang membingungkan bagi pengguna akhir. Karena itu, saat mengembangkan untuk Android N
+pastikan menggunakan formatter sebagai ganti menjadikan string angka dan tanggal sebagai hard-code.</p>
+
+<p>Contoh terbaik adalah bahasa Arab, yang mendukung Android N berkembang dari
+satu {@code ar_EG} menjadi 27 lokal bahasa Arab. Bahasa lokal ini bisa berbagi hampir semua sumber daya,
+namun sebagian lebih memilih digit ASCII, sementara yang lain memilih digit asli. Misalnya,
+bila Anda ingin membuat kalimat dengan variabel digit, seperti
+"Pilih PIN 4 digit", gunakan formatter seperti yang ditampilkan di bawah ini:</p>
+
+<pre> format(locale, "Choose a %d-digit PIN", 4)</pre>
diff --git a/docs/html-intl/intl/in/preview/features/notification-updates.jd b/docs/html-intl/intl/in/preview/features/notification-updates.jd
new file mode 100644
index 000000000000..6154e832c818
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/notification-updates.jd
@@ -0,0 +1,328 @@
+page.title=Pemberitahuan
+page.tags=notifications
+helpoutsWidget=true
+page.image=/preview/images/notifications-card.png
+
+trainingnavtop=true
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<!-- table of contents -->
+<h2>Dokumen ini berisi</h2>
+<ol>
+ <li><a href="#direct">Balasan Langsung</a></li>
+ <li><a href="#bundle">Bundel Pemberitahuan</a></li>
+ <li><a href="#custom">Tampilan Custom</a></li>
+</ol>
+
+</div>
+</div>
+
+<p>Android N memperkenalkan beberapa API baru yang memungkinkan aplikasi memposting
+pemberitahuan yang sangat terlihat dan interaktif.</p>
+
+<p>Android N menambahkan API pemberitahuan{@link android.support.v4.app.RemoteInput}
+yang ada untuk mendukung balasan inline pada handset. Fitur ini memungkinkan pengguna
+ merespons dengan cepat dari bayangan pemberitahuan tanpa mengunjungi aplikasi Anda.</p>
+
+<p>
+ Android N juga memungkinkan Anda menggabungkan pemberitahuan yang serupa agar
+ muncul sebagai satu pemberitahuan. Untuk memungkinkan hal ini, Android N menggunakan metode {@link
+ android.support.v4.app.NotificationCompat.Builder#setGroup
+ NotificationCompat.Builder.setGroup()} yang sudah ada. Pengguna bisa memperluas setiap
+ pemberitahuan, dan melakukan tindakan seperti membalas dan menutup setiap
+ pemberitahuan, satu per satu dari bayangan pemberitahuan.
+</p>
+
+<p>Terakhir, Android N juga menambahkan API baru yang memungkinkan Anda untuk memanfaatkan dekorasi
+sistem dalam tampilan pemberitahuan yang disesuaikan untuk aplikasi Anda. API ini membantu
+memastikan semua tampilan pemberitahuan sama-sama menggunakan penyajian yang konsisten dengan
+template standar.</p>
+
+<p>Dokumen ini menyoroti beberapa perubahan penting yang harus Anda
+ perhitungkan saat menggunakan fitur pemberitahuan baru dalam aplikasi Anda.</p>
+
+<h2 id="direct">Balasan Langsung</h2>
+
+<p>Dengan fitur Balasan Langsung di Android N, pengguna bisa dengan cepat
+merespons pesan teks atau memperbarui daftar tugas secara langsung dalam antarmuka
+pemberitahuan. Pada perangkat genggam, tindakan balasan inline muncul sebagai tombol tambahan
+ yang dilampirkan pada pemberitahuan. Bila pengguna membalas lewat keyboard, sistem akan melampirkan
+ respons teks ke intent
+ yang telah Anda tetapkan untuk tindakan pemberitahuan dan mengirimkan intent ke
+ aplikasi perangkat genggam Anda.
+
+
+<img id="fig-reply-button" src="{@docRoot}preview/images/inline-reply.png" srcset="{@docRoot}preview/images/inline-reply.png 1x,
+ {@docRoot}preview/images/inline-reply_2x.png 2x" width="400">
+<p class="img-caption">
+ <strong>Gambar 1.</strong> Android N menambahkan tombol tindakan <strong>Reply</strong>
+.
+</p>
+
+<h3>Menambahkan tindakan balasan inline</h3>
+
+<p>Untuk membuat tindakan pemberitahuan yang mendukung balasan langsung:
+</p>
+
+<ol>
+<li>Buat instance {@link android.support.v4.app.RemoteInput.Builder}
+ yang bisa Anda tambahkan ke tindakan
+pemberitahuan. Konstruktor kelas ini akan menerima string bahwa sistem menggunakannya sebagai kunci
+ untuk input teks. Kemudian, aplikasi perangkat genggam Anda akan menggunakan kunci itu untuk mengambil teks
+ input tersebut.
+
+<pre>
+// Key for the string that's delivered in the action's intent
+private static final String KEY_TEXT_REPLY = "key_text_reply";
+String replyLabel = getResources().getString(R.string.reply_label);
+RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
+ .setLabel(replyLabel)
+ .build();
+</pre>
+</li>
+<li>Lampirkan objek {@link android.support.v4.app.RemoteInput}
+ pada tindakan dengan menggunakan <code>addRemoteInput()</code>.
+
+<pre>
+// Create the reply action and add the remote input
+Notification.Action action =
+ new Notification.Action.Builder(R.drawable.ic_reply_icon,
+ getString(R.string.label), replyPendingIntent)
+ .addRemoteInput(remoteInput)
+ .build();
+</pre>
+</li>
+
+<li>Terapkan tindakan pada pemberitahuan dan keluarkan pemberitahuan.
+
+<pre>
+// Build the notification and add the action
+Notification notification =
+ new Notification.Builder(mContext)
+ .setSmallIcon(R.drawable.ic_message)
+ .setContentTitle(getString(R.string.title))
+ .setContentText(getString(R.string.content))
+ .addAction(action))
+ .build();
+
+// Issue the notification
+NotificationManager notificationManager =
+ NotificationManager.from(mContext);
+notificationManager.notify(notificationId, notification);
+
+</pre>
+</li>
+
+</ol>
+
+
+<p> Sistem akan meminta pengguna memasukkan respons bila mereka memicu
+tindakan pemberitahuan. </p>
+
+<img id="fig-user-input" src="{@docRoot}preview/images/inline-type-reply.png" srcset="{@docRoot}preview/images/inline-type-reply.png 1x,
+ {@docRoot}preview/images/inline-type-reply_2x.png 2x" width="300">
+<p class="img-caption">
+ <strong>Gambar 2.</strong> Pengguna memasukkan teks dari bayangan pemberitahuan.
+</p>
+
+<h3>Mengambil input pengguna dari balasan inline</h3>
+
+<p>Untuk menerima input pengguna dari antarmuka pemberitahuan untuk aktivitas yang Anda
+deklarasikan dalam intent tindakan balasan:</p>
+<ol>
+<li> Panggil {@link android.support.v4.app.RemoteInput#getResultsFromIntent
+ getResultsFromIntent()} dengan meneruskan intent tindakan pemberitahuan sebagai
+ parameter input. Metode ini mengembalikan {@link android.os.Bundle} yang
+ berisi respons teks.
+</li>
+
+<pre>
+Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
+</pre>
+
+<li>Lakukan query pada bundel menggunakan kunci hasil (diberikan ke konstruktor {@link
+ android.support.v4.app.RemoteInput.Builder}).
+</li>
+</ol>
+
+<p>Cuplikan kode berikut mengilustrasikan cara metode mengambil teks input
+dari bundel:</p>
+
+<pre>
+// Obtain the intent that started this activity by calling
+// Activity.getIntent() and pass it into this method to
+// get the associated string.
+
+private CharSequence getMessageText(Intent intent) {
+ Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
+ if (remoteInput != null) {
+ return remoteInput.getCharSequence(KEY_TEXT_REPLY);
+ }
+ return null;
+ }
+</pre>
+
+<p>Aplikasi bisa menerapkan logika untuk memutuskan tindakan apa yang harus diambil pada teks
+yang telah diambil.
+Untuk aplikasi interaktif (seperti chat), memberikan lebih banyak konteks dalam pemberitahuan itu sendiri
+ (misalnya, beberapa baris riwayat obrolan, termasuk pesan pengguna pribadi)
+ sehingga pengguna bisa merespons dengan tepat.
+Bila pengguna merespons melalui{@link android.support.v4.app.RemoteInput},
+ sertakan teks dalam riwayat balasan dengan metode {@code setRemoteInputHistory()}
+.</p>
+
+<h2 id="bundle">Bundel Pemberitahuan</h2>
+
+<p>Android N membekali pengembang dengan sebuah cara baru untuk menyatakan
+ antrean pemberitahuan: <i>bundel pemberitahuan</i>. Ini mirip dengan fitur
+ <a href="{@docRoot}training/wearables/notifications/stacks.html">Tumpukan
+ Pemberitahuan</a> dalam Android Wear. Misalnya, jika aplikasi Anda membuat pemberitahuan
+ untuk pesan yang diterima, bila lebih dari satu pesan diterima, pemberitahuan tersebut akan
+ dibundel sebagai satu grup. Anda bisa
+ menggunakan metode {@link android.support.v4.app.NotificationCompat.Builder#setGroup
+Builder.setGroup()} yang ada untuk membundel pemberitahuan yang sama.</p>
+
+<p>
+ Grup pemberitahuan menerapkan hierarki pada pemberitahuan yang ada di dalamnya.
+ Di bagian teratas hierarki adalah pemberitahuan induk yang menampilkan informasi
+ rangkuman untuk grup tersebut. Pengguna secara bertahap bisa
+ memperbesar grup pemberitahuan, dan sistem akan menampilkan informasi lebih banyak saat
+ pengguna menggali lebih dalam. Bila pengguna memperbesar bundel, sistem akan memperlihatkan informasi lebih
+ banyak untuk semua pemberitahuan anak; bila pengguna
+ memperbesar salah satu pemberitahuan tersebut, sistem akan memperlihatkan seluruh isinya.
+</p>
+
+<img id="fig-bundles" src="{@docRoot}preview/images/bundles.png" srcset="{@docRoot}preview/images/bundles.png 1x,
+ {@docRoot}preview/images/bundles_2x.png 2x" width="300">
+<p class="img-caption">
+ <strong>Gambar 3.</strong> Pengguna secara bertahap bisa memperluas grup
+ pemberitahuan.
+</p>
+
+<p>Untuk mengetahui cara menambahkan pemberitahuan ke grup, lihat
+<a href="{@docRoot}training/wearables/notifications/stacks.html#AddGroup">Menambahkan
+Setiap Pemberitahuan ke Grup</a>.</p>
+
+
+<h3 id="best-practices">Praktik terbaik untuk bundel pemberitahuan</h3>
+<p>Bagian ini memberikan panduan tentang kapan menggunakan grup pemberitahuan sebagai ganti
+pemberitahuan {@link android.app.Notification.InboxStyle InboxStyle}
+yang telah tersedia di
+platform Android versi sebelumnya.</p>
+
+<h3>Kapan menggunakan bundel pemberitahuan</h3>
+
+<p>Anda harus menggunakan grup pemberitahuan hanya jika semua kondisi berikut ini
+bernilai benar untuk kasus penggunaan Anda:</p>
+
+<ul>
+ <li>Pemberitahuan anak adalah pemberitahuan lengkap dan bisa ditampilkan
+ masing-masing tanpa perlu rangkuman grup.</li>
+ <li>Ada untungnya memunculkan pemberitahuan anak satu per satu. Misalnya:
+
+ </li>
+ <ul>
+ <li>Bisa diaplikasikan, dengan tindakan yang spesifik untuk setiap anak.</li>
+ <li>Ada lebih banyak informasi pada anak yang ingin dibaca oleh pengguna.</li>
+ </ul>
+</ul>
+
+<p>Contoh kasus penggunaan yang baik untuk grup pemberitahuan antara lain: aplikasi pertukaran pesan
+yang menampilkan daftar pesan yang masuk, atau aplikasi email yang menampilkan daftar email
+yang diterima.</p>
+
+<p>
+Contoh kasus di mana pemberitahuan tunggal lebih disukai
+ antara lain pesan individual dari satu orang, atau representasi daftar
+ item teks satu-baris. Anda bisa menggunakan
+({@link android.app.Notification.InboxStyle InboxStyle} atau
+{@link android.app.Notification.BigTextStyle BigTextStyle}) untuk mencapai
+hal ini.
+</p>
+
+<h3 id ="post">Menampilkan bundel pemberitahuan</h3>
+
+<p>
+ Aplikasi ini harus selalu memposting rangkuman grup, sekalipun grup hanya berisi
+ satu anak. Sistem akan menyembunyikan rangkuman dan langsung menampilkan
+ pemberitahuan anak jika hanya berisi pemberitahuan tunggal. Hal ini akan memastikan
+ sistem bisa memberikan pengalaman yang konsisten saat pengguna menggeser
+ anak grup.
+</p>
+
+<p class="note">
+ <strong>Catatan:</strong> Versi Android N ini tidak menyembunyikan
+ rangkuman untuk grup pemberitahuan yang berisi satu anak. Fungsionalitas
+ ini akan ditambahkan dalam Android N versi berikutnya.
+</p>
+
+<h3>Mengintip pemberitahuan</h3>
+
+<p>Walaupun sistem biasanya menampilkan pemberitahuan anak sebagai sebuah grup, Anda bisa mengaturnya
+ agar muncul untuk sementara muncul sebagai
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html#Heads-up">
+ pemberitahuan pendahuluan</a>. Fitur ini khususnya berguna karena memungkinkan
+ akses langsung ke pemberitahuan anak terbaru dan tindakan yang dikaitkan dengannya.
+</p>
+
+
+<h3>Kompatibilitas mundur</h3>
+
+<p>
+ Baik grup pemberitahuan maupun input jauh telah menjadi bagian dari {@link
+ android.app.Notification} API sejak Android 5.0 (API level 21) untuk mendukung
+ perangkat Android Wear. Jika Anda sudah membuat pemberitahuan dengan API ini,
+ satu-satunya tindakan yang harus Anda ambil adalah memeriksa apakah perilaku aplikasi sesuai dengan panduan yang
+ dijelaskan di atas, dan mempertimbangkan implementasi {@code
+ setRemoteInputHistory()}.
+</p>
+
+<p>
+ Untuk mendukung kompatibilitas mundur, tersedia API yang sama bersama
+ kelas {@link android.support.v4.app.NotificationCompat}
+ pustaka dukungan, yang memungkinkan Anda untuk membuat pemberitahuan yang bekerja pada versi Android
+ sebelumnya. Pada perangkat genggam dan tablet, pengguna hanya melihat pemberitahuan rangkuman,
+ sehingga aplikasi tetap memiliki gaya kotak masuk atau representasi pemberitahuan yang sama
+ untuk seluruh konten informasi grup. Karena perangkat Android
+ Wear memungkinkan pengguna melihat semua pemberitahuan anak bahkan pada level platform
+ yang lebih lama, maka Anda harus membuat pemberitahuan anak dengan mengabaikan level
+ API.
+</p>
+
+<h2 id="custom"> Tampilan Custom</h2>
+<p>Mulai dari Android N, Anda bisa menyesuaikan tampilan pemberitahuan dan
+tetap mendapatkan dekorasi sistem seperti header pemberitahuan, tindakan, dan
+layout yang bisa diperluas.</p>
+
+<p>Untuk mengaktifkan kemampuan ini, Android N menambahkan API berikut untuk menata gaya
+ tampilan custom Anda:</p>
+
+<dl>
+<dt>
+{@code DecoratedCustomViewStyle()}</dt>
+<dd> Menata gaya pemberitahuan selain pemberitahuan
+media.</dd>
+<dt>
+{@code DecoratedMediaCustomViewStyle()}</dt>
+<dd> Menata gaya pemberitahuan media.</dd>
+</dl>
+
+<p>Untuk menggunakan API baru ini, panggil metode {@code setStyle()}, dengan meneruskan
+gaya tampilan custom yang diinginkan padanya.</p>
+
+<p>Cuplikan ini menampilkan cara membuat objek pemberitahuan custom dengan metode
+{@code DecoratedCustomViewStyle()}.</p>
+
+<pre>
+Notification noti = new Notification.Builder()
+ .setSmallIcon(R.drawable.ic_stat_player)
+ .setLargeIcon(albumArtBitmap))
+ .setCustomContentView(contentView);
+ .setStyle(new Notification.DecoratedCustomViewStyle())
+ .build();
+
+</pre>
diff --git a/docs/html-intl/intl/in/preview/features/picture-in-picture.jd b/docs/html-intl/intl/in/preview/features/picture-in-picture.jd
new file mode 100644
index 000000000000..883b17a2d6e1
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/picture-in-picture.jd
@@ -0,0 +1,186 @@
+page.title=Gambar-dalam-gambar
+page.keywords=preview,sdk,PIP,Picture-in-picture
+page.tags=androidn
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>Dalam dokumen ini</h2>
+<ol>
+ <li><a href="#declaring">Mendeklarasikan Bahwa Aktivitas Anda Mendukung
+Gambar-dalam-gambar</a></li>
+ <li><a href="#pip_button">Mengalihkan Aktivitas Anda ke Gambar-dalam-gambar</a>
+</li>
+ <li><a href="#handling_ui">Menangani UI Selama Gambar-dalam-gambar</a>
+</li>
+ <li><a href="#continuing_playback">Melanjutkan Pemutaran Video Saat dalam
+Gambar-dalam-gambar</a></li>
+ <li><a href="#best">Praktik Terbaik</a></li>
+</ol>
+
+<h2>Lihat Juga</h2>
+<ol>
+ <li><a href="{@docRoot}preview/features/multi-window.html">Dukungan
+Multi-Jendela</a></li>
+</ol>
+
+</div>
+</div>
+
+<p>Di Android N, pengguna Android TV sekarang bisa menonton video
+dalam jendela yang disematkan di sudut layar saat menyusuri
+aplikasi. Mode gambar-dalam-gambar (PIP) memungkinkan aplikasi menjalankan aktivitas
+video dalam jendela yang disematkan selagi aktivitas lain tetap berjalan di
+latar belakang. Jendela PIP memungkinkan pengguna melakukan multitasking saat menggunakan aplikasi Anda, yang
+membantu pengguna menjadi lebih produktif.</p>
+
+<p>Aplikasi Anda bisa memutuskan kapan memicu mode PIP. Inilah beberapa contoh
+kapan memasuki mode PIP:</p>
+
+<ul>
+<li>Aplikasi Anda bisa memindahkan video ke dalam mode PIP bila pengguna mengarah
+mundur dari video untuk melihat-lihat konten lainnya.</li>
+<li>Aplikasi Anda bisa mengalihkan video ke dalam mode PIP selagi pengguna menonton akhir episode
+dari konten. Layar utama menampilkan informasi
+promosi atau rangkuman tentang episode berikutnya dalam seri tersebut.</li>
+<li>Aplikasi Anda bisa menyediakan suatu cara bagi pengguna untuk mengantre konten tambahan selagi
+mereka menonton video. Video terus dimainkan dalam mode PIP selagi layar
+utama menampilkan aktivitas pemilihan konten.</li>
+</ul>
+
+<p>Jendela PIP memiliki luas 240x135 dp dan ditampilkan di layer paling atas pada salah satu
+dari empat sudut layar, yang dipilih oleh sistem. Pengguna bisa memunculkan
+menu PIP yang memungkinkan mereka untuk beralih mode dari jendela PIP ke layar penuh, atau menutup jendela
+PIP, dengan menekan dan menahan tombol <b>Beranda</b> pada remote. Jika video
+lain mulai diputar pada layar utama, jendela PIP secara otomatis
+ditutup. Pengguna juga bisa menutup jendela PIP melalui Recents.</p>
+
+<img src="{@docRoot}preview/images/pip-active.png" />
+<p class="img-caption"><strong>Gambar 1.</strong> Video
+Gambar-dalam-gambar terlihat di sudut layar selagi pengguna melihat-lihat konten pada layar
+utama.</p>
+
+<p>PIP memanfaatkan API multi-jendela yang tersedia di Android N untuk
+menyediakan jendela overlay video yang disematkan. Untuk menambahkan PIP ke aplikasi, Anda harus
+mendaftarkan aktivitas yang mendukung PIP, mengalihkan aktivitas Anda ke mode PIP bila
+diperlukan, serta memastikan elemen UI disembunyikan dan pemutaran video berlanjut bila
+aktivitas dalam mode PIP.</p>
+
+<h2 id="declaring">Mendeklarasikan Bahwa Aktivitas Anda Mendukung Gambar-dalam-gambar</h2>
+
+<p>Secara default, sistem tidak secara otomatis mendukung PIP untuk aplikasi.
+Jika Anda ingin mendukung PIP dalam aplikasi, daftarkan aktivitas
+video Anda dalam manifes dengan mengatur
+<code>android:supportsPictureInPicture</code> dan
+<code>android:resizeableActivity</code> ke <code>true</code>. Juga, tetapkan
+bahwa aktivitas Anda menangani perubahan konfigurasi layout sehingga aktivitas
+Anda tidak diluncurkan ulang saat terjadi perubahan layout selama transisi mode PIP.</p>
+
+<pre>
+&lt;activity android:name="VideoActivity"
+ android:resizeableActivity="true"
+ android:supportsPictureInPicture="true"
+ android:configChanges=
+ "screenSize|smallestScreenSize|screenLayout|orientation"
+ ...
+</pre>
+
+<p>Saat mendaftarkan aktivitas Anda, ingatlah bahwa dalam mode PIP aktivitas
+Anda akan ditampilkan pada jendela overlay kecil pada layar TV. Aktivitas
+pemutaran video dengan UI minimal akan memberikan pengalaman pengguna terbaik. Aktivitas yang
+berisi elemen UI kecil mungkin tidak memberikan pengalaman pengguna yang baik
+bila beralih ke mode PIP, karena pengguna tidak bisa melihat elemen UI secara detail
+di jendela PIP.</p>
+
+<h2 id="pip_button">Mengalihkan Aktivitas Anda ke Gambar-dalam-gambar</h2>
+
+Bila Anda perlu untuk mengalihkan aktivitas Anda ke mode PIP, panggil
+<code>Activity.enterPictureInPicture()</code>. Contoh berikut mengalihkan
+ke mode PIP bila pengguna memilih tombol PIP khusus pada baris
+kontrol media:</p>
+
+<pre>
+&#64;Override
+public void onActionClicked(Action action) {
+ if (action.getId() == R.id.lb_control_picture_in_picture) {
+ getActivity().enterPictureInPicture();
+ return;
+ }
+ ...
+</pre>
+
+<p>Menambahkan tombol PIP ke baris kontrol media Anda akan memungkinkan pengguna dengan mudah beralih
+ke mode PIP selagi mengontrol pemutaran video.</p>
+
+<img src="{@docRoot}preview/images/pip-button.png" />
+<p class="img-caption"><strong>Gambar 1.</strong> Tombol
+gambar-dalam-gambar pada baris kontrol media.</p>
+
+<p>Android N menyertakan kelas
+<code>PlaybackControlsRow.PictureInPictureAction</code> baru yang mendefinisikan
+tindakan PIP baris kontrol dan menggunakan ikon PIP.</p>
+
+<h2 id="handling_ui">Menangani UI Selama Gambar-dalam-gambar</h2>
+
+<p>Bila aktivitas Anda memasuki mode PIP, aktivitas Anda seharusnya hanya menampilkan pemutaran
+video. Hilangkan elemen UI sebelum aktivitas Anda memasuki PIP,
+dan pulihkan elemen ini bila aktivitas Anda beralih ke layar penuh lagi.
+Kesampingkan <code>Activity.onPictureInPictureChanged()</code> atau
+<code>Fragment.onPictureInPictureChanged()</code> dan aktifkan atau
+nonaktifkan elemen UI saat diperlukan, misalnya:</p>
+
+<pre>
+&#64;Override
+public void onPictureInPictureChanged(boolean inPictureInPicture) {
+ if (inPictureInPicture) {
+ // Hide the controls in picture-in-picture mode.
+ ...
+ } else {
+ // Restore the playback UI based on the playback status.
+ ...
+ }
+}
+</pre>
+
+<h2 id="continuing_playback">Melanjutkan Pemutaran Video Saat dalam
+Gambar-dalam-gambar</h2>
+
+<p>Bila aktivitas Anda beralih ke PIP, sistem akan menganggap aktivitas tersebut berada dalam
+keadaan berhenti sementara, dan akan memanggil metode <code>onPause()</code> aktivitas Anda. Pemutaran
+video tidak boleh berhenti sementara dan harus terus diputar jika aktivitas tersebut
+berhenti sementara karena mode PIP. Periksa PIP dalam metode
+<code>onPause()</code> aktivitas Anda dan tangani pemutaran dengan tepat,
+misalnya:</p>
+
+<pre>
+&#64;Override
+public void onPause() {
+ // If called due to PIP, do not pause playback
+ if (inPictureInPicture()) {
+ // Continue playback
+ ...
+ }
+ // If paused but not in PIP, pause playback if necessary
+ ...
+}
+</pre>
+
+<p>Bila aktivitas Anda meninggalkan mode PIP dan kembali ke mode layar penuh, sistem
+akan melanjutkan aktivitas Anda dan memanggil metode <code>onResume()</code> Anda.</p>
+
+<h2 id="best">Praktik Terbaik</h2>
+
+<p>PIP ditujukan untuk aktivitas yang memutar video layar penuh. Saat mengalihkan
+aktivitas Anda ke mode PIP, hindari menampilkan apa pun selain konten video.
+Pantau saat aktivitas Anda memasuki mode PIP dan sembunyikan elemen UI, seperti dijelaskan
+dalam <a href="#handling_ui">Menangani UI Selama Gambar-dalam-gambar</a>.</p>
+
+<p>Karena jendela PIP ditampilkan sebagai jendela mengambang di sudut
+layar, Anda harus menghindari menampilkan informasi penting di layar utama
+di area mana saja yang bisa terhalang oleh jendela PIP.</p>
+
+<p>Bila aktivitas ada berada dalam mode PIP, secara default aktivitas itu tidak mendapatkan fokus input. Untuk
+menerima kejadian input saat dalam mode PIP, gunakan
+<code>MediaSession.setMediaButtonReceiver()</code>.</p>
diff --git a/docs/html-intl/intl/in/preview/features/scoped-folder-access.jd b/docs/html-intl/intl/in/preview/features/scoped-folder-access.jd
new file mode 100644
index 000000000000..cbb7c9fc11ea
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/scoped-folder-access.jd
@@ -0,0 +1,124 @@
+page.title=Scoped Directory Access
+page.keywords=preview,sdk,scoped directory access
+page.tags=androidn
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+ <h2>Dalam dokumen ini</h2>
+ <ol>
+ <li><a href="#accessing">Mengakses Direktori Penyimpanan Eksternal</a></li>
+ <li><a href="#removable">Mengakses Direktori pada Media Lepas-Pasang</a></li>
+ <li><a href="#best">Praktik Terbaik</a></li>
+ </ol>
+</div>
+</div>
+
+<p>Aplikasi seperti aplikasi foto biasanya hanya memerlukan akses ke direktori tertentu dalam
+penyimpanan eksternal, seperti direktori <code>Pictures</code>. Pendekatan
+yang ada untuk mengakses penyimpanan eksternal tidak didesain untuk memberikan
+akses direktori target dengan mudah untuk tipe aplikasi ini. Misalnya:</p>
+
+<ul>
+<li>Meminta {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}
+atau {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} dalam manifes Anda
+akan memungkinkan akses ke semua direktori publik pada penyimpanan eksternal, yang mungkin
+lebih banyak akses dari yang dibutuhkan aplikasi Anda.</li>
+<li>Penggunaan
+<a href="{@docRoot}guide/topics/providers/document-provider.html">Storage
+Access Framework</a> biasanya membuat pengguna Anda memilih direktori
+melalui UI sistem, yang tidak diperlukan jika aplikasi Anda selalu mengakses
+direktori eksternal yang sama.</li>
+</ul>
+
+<p>Android N menyediakan API baru yang disederhanakan untuk mengakses
+direktori penyimpanan eksternal umum. </p>
+
+<h2 id="accessing">Mengakses Direktori Penyimpanan Eksternal</h2>
+
+<p>Gunakan kelas <code>StorageManager</code> untuk mendapatkan instance
+<code>StorageVolume</code> yang tepat. Kemudian, buat intent dengan memanggil metode
+<code>StorageVolume.createAccessIntent()</code> dari instance itu.
+Gunakan intent ini untuk mengakses direktori penyimpanan eksternal. Untuk mendapatkan daftar
+semua isi yang tersedia, termasuk isi media lepas-pasang, gunakan
+<code>StorageManager.getVolumesList()</code>.</p>
+
+<p>Cuplikan kode berikut adalah contoh cara membuka direktori
+<code>Pictures</code> dalam penyimpanan bersama utama:</p>
+
+<pre>
+StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE);
+StorageVolume volume = sm.getPrimaryVolume();
+Intent intent = volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
+startActivityForResult(intent, request_code);
+</pre>
+
+<p>Sistem ini mencoba untuk memberikan akses ke direktori eksternal, dan jika
+diperlukan mengonfirmasi akses dengan pengguna menggunakan UI yang disederhanakan:</p>
+
+<img src="{@docRoot}preview/images/scoped-folder-access-framed.png" srcset="{@docRoot}preview/images/scoped-folder-access-framed.png 1x,
+{@docRoot}preview/images/scoped-folder-access-framed_2x.png 2x" />
+<p class="img-caption"><strong>Gambar 1.</strong> Sebuah aplikasi yang meminta
+akses ke direktori Pictures.</p>
+
+<p>Jika pengguna memberi akses, sistem akan memanggil pengesampingan
+<code>onActivityResult()</code> Anda dengan kode hasil
+<code>Activity.RESULT_OK</code>, dan data intent yang berisi URI. Gunakan
+URI yang disediakan untuk mengakses informasi direktori, serupa dengan menggunakan URI
+yang dikembalikan oleh
+<a href="{@docRoot}guide/topics/providers/document-provider.html">Storage
+Access Framework</a>.</p>
+
+<p>Jika pengguna tidak memberi akses, sistem akan memanggil pengesampingan
+<code>onActivityResult()</code> Anda dengan kode hasil
+<code>Activity.RESULT_CANCELED</code>, dan data intent nol.</p>
+
+<p class="note"><b>Catatan</b>: Mendapatkan akses ke direktori eksternal tertentu
+juga akan memperoleh akses ke subdirektori dalam direktori tersebut.</p>
+
+<h2 id="removable">Mengakses Direktori pada Media Lepas-Pasang</h2>
+
+<p>Untuk menggunakan Scoped Directory Access guna mengakses direktori pada media lepas-pasang,
+pertama tambahkan {@link android.content.BroadcastReceiver} yang akan mendengarkan pemberitahuan
+{@link android.os.Environment#MEDIA_MOUNTED}, misalnya:</p>
+
+<pre>
+&lt;receiver
+ android:name=".MediaMountedReceiver"
+ android:enabled="true"
+ android:exported="true" &gt;
+ &lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.MEDIA_MOUNTED" /&gt;
+ &lt;data android:scheme="file" /&gt;
+ &lt;/intent-filter&gt;
+&lt;/receiver&gt;
+</pre>
+
+<p>Bila pengguna memasang media lepas-pasang, seperti kartu SD, sistem akan mengirimkan pemberitahuan
+{@link android.os.Environment#MEDIA_MOUNTED}. Pemberitahuan ini
+memberikan sebuah objek <code>StorageVolume</code> dalam data intent yang bisa
+Anda gunakan untuk mengakses direktori pada media lepas-pasang. Contoh berikut
+mengakses direktori <code>Pictures</code> pada media lepas-pasang:</p>
+
+<pre>
+// BroadcastReceiver has already cached the MEDIA_MOUNTED
+// notification Intent in mediaMountedIntent
+StorageVolume volume = (StorageVolume)
+ mediaMountedIntent.getParcelableExtra(StorageVolume.EXTRA_STORAGE_VOLUME);
+volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
+startActivityForResult(intent, request_code);
+</pre>
+
+<h2 id="best">Praktik Terbaik</h2>
+
+<p>Bila memungkinkan, pertahankan URI akses direktori eksternal sehingga Anda tidak perlu
+berulang kali meminta akses ke pengguna. Setelah pengguna memberikan akses, panggil
+<code>getContentResolver().takePersistableUriPermssion()</code> bersama
+URI akses direktori. Sistem akan mempertahankan URI dan permintaan
+akses berikutnya akan mengembalikan <code>RESULT_OK</code> dan tidak menampilkan UI konfirmasi kepada
+pengguna.</p>
+
+<p>Jika pengguna menolak akses ke direktori eksternal, jangan langsung
+meminta akses lagi. Berulang kali meminta akses akan menghasilkan pengalaman
+pengguna yang buruk.</p>
diff --git a/docs/html-intl/intl/in/preview/features/security-config.jd b/docs/html-intl/intl/in/preview/features/security-config.jd
new file mode 100644
index 000000000000..2eb45d4f375e
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/security-config.jd
@@ -0,0 +1,744 @@
+page.title=Network Security Configuration
+page.keywords=preview,security,network
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>Dalam dokumen ini</h2>
+<ol>
+ <li><a href="#manifest">Menambahkan File Konfigurasi Keamanan</a></li>
+ <li><a href="#CustomTrust">Menyesuaikan CA Tepercaya</a>
+ <ol>
+ <li><a href="#ConfigCustom">Mengonfigurasi CA Tepercaya Custom</a></li>
+ <li><a href="#LimitingCas">Membatasi Set CA Tepercaya</a></li>
+ <li><a href="#TrustingAdditionalCas">Mempercayai CA Tambahan</a></li>
+ </ol>
+ </li>
+ <li><a href="#TrustingDebugCa">Merunut CA Saja</a></li>
+ <li><a href="#UsesCleartextTraffic">Berhenti dari Lalu Lintas Cleartext</a></li>
+ <li><a href="#CertificatePinning">Menyematkan Sertifikat</a></li>
+ <li><a href="#ConfigInheritance">Perilaku Pewarisan Konfigurasi</a></li>
+ <li><a href="#FileFormat">Format File Konfigurasi</a></li>
+</ol>
+</div>
+</div>
+
+
+<p>
+ Android N menyertakan fitur
+ Network Security Configuration yang memungkinkan aplikasi menyesuaikan pengaturan keamanan jaringan mereka dalam
+ file konfigurasi deklaratif yang aman tanpa memodifikasi kode aplikasi. Pengaturan ini bisa
+ dikonfigurasi untuk domain dan aplikasi tertentu. Kemampuan
+ utama fitur ini adalah sebagai berikut:
+</p>
+
+<ul>
+ <li>
+ <b>Trust-anchor custom:</b> Menyesuaikan Certificate Authorities (CA) mana
+ yang dipercaya untuk koneksi aman aplikasi. Misalnya,
+ mempercayai sertifikat tertentu yang ditandatangani sendiri atau membatasi
+ set CA umum yang dipercaya aplikasi.
+ </li>
+
+ <li>
+ <b>Pengesampingan hanya-runut:</b> Merunut secara aman koneksi aman dalam aplikasi
+ tanpa menambahkan risiko pada basis yang telah diinstal.
+ </li>
+
+ <li>
+ <b>Berhenti dari lalu lintas cleartext:</b> Melindungi aplikasi dari
+ penggunaan lalu lintas cleartext secara tidak sengaja.
+ </li>
+
+ <li>
+ <b>Penyematan sertifikat:</b> Membatasi koneksi aman aplikasi ke
+ sertifikat tertentu.
+ </li>
+</ul>
+
+
+<h2 id="manifest">Menambahkan File Konfigurasi Keamanan</h2>
+
+<p>
+ Fitur Network Security Configuration menggunakan file XML tempat Anda menetapkan
+ pengaturan untuk aplikasi. Anda harus menyertakan sebuah entri dalam manifes aplikasi
+ untuk menunjuk ke file ini. Kutipan kode berikut dari sebuah manifes
+ yang memperagakan cara membuat entri ini:
+</p>
+
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+...
+&lt;app ...&gt;
+ &lt;meta-data android:name="android.security.net.config"
+ android:resource="@xml/network_security_config" /&gt;
+ ...
+&lt;/app&gt;
+</pre>
+
+<h2 id="CustomTrust">Menyesuaikan CA Tepercaya</h2>
+
+<p>
+ Aplikasi mungkin perlu mempercayai set CA custom sebagai ganti default
+ platform. Alasannya yang paling umum adalah:
+</p>
+
+<ul>
+ <li>Menghubungkan ke host dengan otoritas sertifikat custom (ditandatangani sendiri,
+ dikeluarkan oleh CA internal, dll).
+ </li>
+
+ <li>Membatasi set CA hanya untuk CA yang Anda percaya sebagai ganti setiap CA
+ yang sudah terinstal.
+ </li>
+
+ <li>Mempercayai CA tambahan yang tidak disertakan dalam sistem.
+ </li>
+</ul>
+
+<p>
+ Secara default koneksi (misalnya TLS, HTTPS) aman dari semua aplikasi mempercayai
+ CA yang telah diinstal oleh sistem, dan aplikasi yang menargetkan API level 23
+ (Android M) ke bawah, juga mempercayai penyimpanan CA yang ditambahkan pengguna secara default. Aplikasi
+ bisa menyesuaikan koneksinya sendiri menggunakan {@code base-config} (untuk
+ penyesuaian di tingkat aplikasi) atau {@code domain-config} (untuk penyesuaian
+ per-domain).
+</p>
+
+
+<h3 id="ConfigCustom">Mengonfigurasi CA Custom</h3>
+
+<p>
+ Anggaplah Anda ingin menghubungkan ke host Anda yang menggunakan sertifikat
+ SSL yang ditandatangani sendiri atau ke host yang sertifikat SSL-nya dikeluarkan oleh CA non-publik
+ yang Anda percaya, seperti CA internal perusahaan Anda.
+</p>
+
+<p>
+ <code>res/xml/network_security_config.xml</code>:
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;domain-config&gt;
+ &lt;domain includeSubdomains="true"&gt;example.com&lt;/domain&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="@raw/my_ca"/&gt;
+ &lt;/trust-anchors&gt;
+ &lt;/domain-config&gt;
+&lt;/network-security-config&gt;
+</pre>
+</p>
+
+<p>
+ Menambahkan sertifikat CA yang ditandatangani sendiri atau sertifikat CA non-publik, dalam format PEM atau DER, ke
+ {@code res/raw/my_ca}.
+</p>
+
+
+<h3 id="LimitingCas">Membatasi Set CA Tepercaya</h3>
+
+<p>
+ Aplikasi yang tidak ingin mempercayai semua CA yang dipercaya oleh sistem
+ sebagai gantinya bisa menetapkan set CA sendiri yang telah dikurangi untuk dipercaya. Ini akan melindungi
+ aplikasi dari sertifikat palsu yang dikeluarkan oleh selain CA.
+</p>
+
+<p>
+ Konfigurasi untuk membatasi set CA tepercaya mirip dengan <a href="#TrustingACustomCa">mempercayai CA custom</a> untuk domain tertentu selain
+ beberapa CA disediakan dalam sumber daya.
+</p>
+
+<p>
+<code>res/xml/network_security_config.xml</code>:
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;domain-config&gt;
+ &lt;domain includeSubdomains="true"&gt;secure.example.com&lt;/domain&gt;
+ &lt;domain includeSubdomains="true"&gt;cdn.example.com&lt;/domain&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="@raw/trusted_roots"/&gt;
+ &lt;/trust-anchors&gt;
+ &lt;/domain-config&gt;
+&lt;/network-security-config&gt;
+</pre>
+</p>
+
+<p>
+ Menambahkan CA tepercaya, dalam format PEM atau DER, ke {@code res/raw/trusted_roots}.
+ Perhatikan, jika menggunakan format PEM, file <em>hanya</em> boleh berisi data PEM
+ dan tidak ada teks tambahan. Anda juga bisa menyediakan beberapa elemen
+ <a href="#certificates"><code>&lt;certificates&gt;</code></a>
+sebagai ganti satu elemen.
+</p>
+
+
+<h3 id="TrustingAdditionalCas">
+ Mempercayai CA Tambahan
+</h3>
+
+<p>
+ Sebuah aplikasi mungkin perlu mempercayai CA tambahan yang tidak dipercaya oleh sistem,
+ hal ini bisa disebabkan karena sistem belum menyertakan CA atau CA tidak
+ memenuhi persyaratan untuk memasukkan ke dalam sistem Android. Aplikasi
+ bisa melakukannya dengan menetapkan beberapa sumber sertifikat untuk
+ konfigurasi.
+</p>
+<p>
+<code>res/xml/network_security_config.xml</code>:
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;base-config&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="@raw/extracas"/&gt;
+ &lt;certificates src="system"/&gt;
+ &lt;/trust-anchors&gt;
+ &lt;/base-config&gt;
+&lt;/network-security-config&gt;
+</pre>
+</p>
+
+
+<h2 id="TrustingDebugCa">Mengonfigurasi CA untuk Perunutan</h2>
+
+<p>
+ Saat merunut aplikasi yang terhubung melalui HTTPS, Anda mungkin perlu
+ menghubungkan ke server pengembangan lokal, yang tidak memiliki sertifikat
+ SSL untuk server produksi Anda. Untuk mendukungnya tanpa
+ memodifikasi kode aplikasi, Anda bisa menetapkan CA hanya-runut
+ yang <i>hanya</i> dipercaya bila <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">
+android:debuggable</a>
+ adalah {@code true} dengan menggunakan {@code debug-overrides}. Biasanya IDE dan alat
+ build mengatur flag ini secara otomatis untuk build non-rilis.
+</p>
+
+<p>
+ Ini lebih aman daripada kode kondisional biasa karena, sebagai tindakan
+ pencegahan keamanan, toko aplikasi tidak menerima aplikasi yang ditandai
+ bisa-dirunut.
+</p>
+
+<p>
+<code>res/xml/network_security_config.xml</code>:
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;debug-overrides&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="@raw/debug_cas"/&gt;
+ &lt;/trust-anchors&gt;
+ &lt;/debug-overrides&gt;
+&lt;/network-security-config&gt;
+</pre>
+</p>
+
+
+<h2 id="UsesCleartextTraffic">Berhenti dari Lalu Lintas Cleartext</h2>
+
+<p>
+ Aplikasi yang bermaksud menghubungkan ke tujuan dengan hanya menggunakan koneksi
+ aman bisa berhenti mendukung cleartext (menggunakan protokol
+ HTTP yang tidak dienkripsi sebagai ganti HTTPS) ke tujuan tersebut. Opsi ini akan membantu mencegah
+ regresi tidak disengaja dalam aplikasi karena perubahan dalam URL yang disediakan oleh sumber-sumber
+ eksternal seperti server backend.
+ Lihat {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted
+ NetworkSecurityPolicy.isCleartextTrafficPermitted()} untuk detail selengkapnya.
+</p>
+
+<p>
+ Misalnya, aplikasi mungkin ingin memastikan semua koneksi ke {@code
+ secure.example.com} selalu dilakukan melalui HTTPS untuk melindungi lalu lintas sensitif
+ dari jaringan yang berbahaya.
+</p>
+
+<p>
+<code>res/xml/network_security_config.xml</code>:
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;domain-config usesCleartextTraffic="false"&gt;
+ &lt;domain includeSubdomains="true"&gt;secure.example.com&lt;/domain&gt;
+ &lt;/domain-config&gt;
+&lt;/network-security-config&gt;
+</pre>
+</p>
+
+
+<h2 id="CertificatePinning">Menyematkan Sertifikat</h2>
+
+<p>
+ Biasanya aplikasi mempercayai semua CA yang telah terinstal. Jika salah satu dari CA ini
+ mengeluarkan sertifikat palsu, aplikasi akan berisiko terkena serangan
+ MiTM. Beberapa aplikasi memilih untuk membatasi set sertifikat yang mereka terima
+ baik dengan membatasi set CA yang mereka percaya atau dengan menyematkan sertifikat.
+</p>
+
+<p>
+ Penyematan sertifikat dilakukan dengan memberikan seperangkat sertifikat dengan hash
+ kunci publik (SubjectPublicKeyInfo pada sertifikat X.509). Rantai
+ sertifikat nanti hanya berlaku jika rantai sertifikat berisi setidaknya salah satu
+ dari kunci publik yang disematkan.
+</p>
+
+<p>
+ Perhatikan, saat menggunakan penyematan sertifikat, Anda harus selalu menyertakan kunci
+ cadangan sehingga jika Anda terpaksa beralih ke kunci baru, atau mengubah CA (saat
+ menyematkan ke sertifikat CA atau perantara CA tersebut), konektivitas
+ aplikasi Anda tidak terpengaruh. Jika tidak, Anda harus mendorong
+ pembaruan ke aplikasi tersebut untuk memulihkan konektivitas.
+</p>
+
+<p>
+ Selain itu bisa juga mengatur waktu kedaluwarsa untuk pin yang setelah
+ itu penyematan tidak dilakukan. Hal ini membantu mencegah masalah konektivitas dalam
+ aplikasi yang belum diperbarui. Akan tetapi, mengatur waktu kedaluwarsa
+ pada pin mungkin akan membuat penyematan bisa diabaikan.
+</p>
+
+<p>
+<code>res/xml/network_security_config.xml</code>:
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;domain-config&gt;
+ &lt;domain includeSubdomains="true"&gt;example.com&lt;/domain&gt;
+ &lt;pin-set expiration="2018-01-01"&gt;
+ &lt;pin digest="SHA-256"&gt;7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=&lt;/pin&gt;
+ &lt;!-- backup pin --&gt
+ &lt;pin digest="SHA-256"&gt;fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=&lt;/pin&gt;
+ &lt;/domain-config&gt;
+&lt;/network-security-config&gt;
+</pre>
+</p>
+
+
+<h2 id="ConfigInheritance">Perilaku Pewarisan Konfigurasi</h2>
+
+<p>
+ Nilai yang tidak diatur dalam konfigurasi tertentu akan diwariskan. Perilaku ini memungkinkan konfigurasi
+ yang lebih kompleks sambil menjaga file konfigurasi tetap terbaca.
+</p>
+
+<p>
+ Jika nilai tidak diatur dalam entri tertentu maka nilai dari entri berikutnya yang lebih
+ umum akan digunakan. Nilai yang tidak diatur dalam {@code domain-config} akan
+ diambil dari {@code domain-config} induk, jika tersarang, atau dari {@code
+ base-config} jika tidak. Nilai yang tidak diatur dalam {@code base-config} akan menggunakan
+ nilai default platform.
+</p>
+
+<p>
+ Misalnya pertimbangkan, bila semua koneksi ke subdomain {@code
+ example.com} harus menggunakan set CA custom. Selain itu, lalu lintas cleartext ke
+ domain ini diizinkan <em>kecuali</em> saat menghubungkan ke {@code
+ secure.example.com}. Dengan menyarangkan konfigurasi untuk {@code
+ secure.example.com} dalam konfigurasi untuk {@code example.com},
+ {@code trust-anchors} tidak perlu digandakan.
+</p>
+
+<p>
+<code>res/xml/network_security_config.xml</code>:
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;domain-config&gt;
+ &lt;domain includeSubdomains="true"&gt;example.com&lt;/domain&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="@raw/my_ca"/&gt;
+ &lt;/trust-anchors&gt;
+ &lt;domain-config cleartextTrafficPermitted="false"&gt;
+ &lt;domain includeSubdomains="true"&gt;secure.example.com&lt;/domain&gt;
+ &lt;/domain-config&gt;
+ &lt;/domain-config&gt;
+&lt;/network-security-config&gt;
+</pre>
+</p>
+
+
+<h2 id="FileFormat">Format File Konfigurasi</h2>
+
+<p>
+ Fitur Network Security Configuration menggunakan format file XML.
+ Struktur keseluruhan file ditampilkan dalam contoh kode berikut:
+</p>
+
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;network-security-config&gt;
+ &lt;base-config&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="..."/&gt;
+ ...
+ &lt;/trust-anchors&gt;
+ &lt;/base-config&gt;
+
+ &lt;domain-config&gt;
+ &lt;domain&gt;android.com&lt;/domain&gt;
+ ...
+ &lt;trust-anchors&gt;
+ &lt;certificates src="..."/&gt;
+ ...
+ &lt;/trust-anchors&gt;
+ &lt;pin-set&gt;
+ &lt;pin digest="..."&gt;...&lt;/pin&gt;
+ ...
+ &lt;/pin-set&gt;
+ &lt;/domain-config&gt;
+ ...
+ &lt;debug-overrides&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="..."/&gt;
+ ...
+ &lt;/trust-anchors&gt;
+ &lt;/debug-overrides&gt;
+&lt;/network-security-config&gt;
+</pre>
+
+<p>
+ Bagian berikut menjelaskan sintaks dan detail lainnya dari format
+ file.
+</p>
+
+<h3 id="network-security-config">
+ &lt;network-security-config&gt;
+</h3>
+
+<dl class="xml">
+ <dt>
+ bisa berisi:
+ </dt>
+
+ <dd>
+ 0 atau 1 <code><a href="#base-config">&lt;base-config&gt;</a></code><br>
+ Sejumlah <code><a href=
+ "#domain-config">&lt;domain-config&gt;</a></code><br>
+ 0 atau 1 <code><a href="#debug-overrides">&lt;debug-overrides&gt;</a></code>
+ </dd>
+</dl>
+
+<h3 id="base-config">
+ &lt;base-config&gt;
+</h3>
+
+<dl class="xml">
+ <dt>
+ sintaks:
+ </dt>
+</dl>
+
+<pre class="stx">
+&lt;base-config <a href=
+"#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"]&gt;
+ ...
+&lt;/base-config&gt;
+</pre>
+<dl class="xml">
+ <dt>
+ bisa berisi:
+ </dt>
+
+ <dd>
+ <code><a href="#trust-anchors">&lt;trust-anchors&gt;</a></code>
+ </dd>
+
+ <dt>
+ keterangan:
+ </dt>
+
+ <dd>
+ Konfigurasi default yang digunakan oleh semua koneksi yang tujuannya tidak
+ tercakup oleh <a href="#domain-config"><code>domain-config</code></a>.
+
+<p>
+ Nilai yang tidak diatur akan menggunakan nilai default platform. Konfigurasi
+ default untuk aplikasi yang menargetkan API level 24 ke atas:
+</p>
+
+<pre>
+&lt;base-config usesCleartextTraffic="true"&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="system" /&gt;
+ &lt;/trust-anchors&gt;
+&lt;/base-config&gt;
+</pre>
+Konfigurasi default untuk aplikasi yang menargetkan API level 23 ke bawah:
+<pre>
+&lt;base-config usesCleartextTraffic="true"&gt;
+ &lt;trust-anchors&gt;
+ &lt;certificates src="system" /&gt;
+ &lt;certificates src="user" /&gt;
+ &lt;/trust-anchors&gt;
+&lt;/base-config&gt;
+</pre>
+
+ </dd>
+</dl>
+
+<h3 id="domain-config">&lt;domain-config&gt;</h3>
+<dl class="xml">
+<dt>sintaks:</dt>
+<dd>
+<pre class="stx">&lt;domain-config <a href="#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"]&gt;
+ ...
+&lt;/domain-config&gt;</pre>
+</dd>
+
+<dt>Bisa Berisi:</dt>
+
+<dd>
+1 atau beberapa <code><a href="#domain">&lt;domain&gt;</a></code>
+<br/>0 atau 1 <code><a href="#trust-anchors">&lt;trust-anchors&gt;</a></code>
+<br/>0 atau 1 <code><a href="#pin-set">&lt;pin-set&gt;</code></a>
+<br/>Sejumlah <code>&lt;domain-config&gt;</code> tersarang</dd>
+
+<dt>Keterangan</dt>
+<dd>Konfigurasi yang digunakan untuk koneksi ke tujuan tertentu seperti didefinisikan oleh elemen {@code domain}.
+
+<p>Perhatikan, jika beberapa elemen {@code domain-config} mencakup suatu tujuan, konfigurasi dengan aturan domain paling spesifik (terpanjang) yang cocok
+akan digunakan.</p></dd>
+</dl>
+
+
+<h3 id="domain">&lt;domain&gt;</h3>
+
+<dl class="xml">
+ <dt>
+ sintaks:
+ </dt>
+
+ <dd>
+ <pre class="stx">
+&lt;domain includeSubdomains=["true" | "false"]&gt;example.com&lt;/domain&gt;
+</pre>
+ </dd>
+
+ <dt>
+ Atribut:
+ </dt>
+
+ <dd>
+ <dl class="attr">
+ <dt>
+ {@code includeSubdomains}
+ </dt>
+
+ <dd>
+ Jika {@code "true"} maka aturan domain ini akan dicocokkan dengan domain dan semua
+ subdomain, termasuk subdomain dari subdomain, jika tidak peraturan hanya
+ diterapkan pada kecocokan yang persis tepat.
+ </dd>
+ </dl>
+ </dd>
+
+ <dt>
+ Keterangan:
+ </dt>
+</dl>
+
+<h3 id="debug-overrides">&lt;debug-overrides&gt;</h3>
+
+<dl class="xml">
+ <dt>
+ sintaks:
+ </dt>
+
+ <dd>
+ <pre class="stx">
+&lt;debug-overrides&gt;
+ ...
+&lt;/debug-overrides&gt;
+</pre>
+ </dd>
+
+ <dt>
+ Bisa Berisi:
+ </dt>
+
+ <dd>
+ 0 atau 1 <code><a href="#trust-anchors">&lt;trust-anchors&gt;</a></code>
+ </dd>
+
+ <dt>
+ Keterangan:
+ </dt>
+
+ <dd>
+ Pengesampingan yang akan diterapkan bila <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
+ adalah {@code "true"} yang biasanya terjadi untuk build non-rilis
+ yang dihasilkan oleh alat IDE dan build. Trust-anchor yang ditetapkan dalam {@code
+ debug-overrides} akan ditambahkan ke semua konfigurasi lainnya dan penyematan
+ sertifikat tidak dilakukan bila rantai sertifikat server menggunakan satu dari
+ trust-anchor hanya-runut ini. Jika <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
+ adalah {@code "false"} maka bagian ini akan diabaikan sepenuhnya.
+ </dd>
+</dl>
+
+<h3 id="trust-anchors">&lt;trust-anchors&gt;</h3>
+<dl class="xml">
+ <dt>
+ sintaks:
+ </dt>
+
+ <dd>
+ <pre class="stx">
+&lt;trust-anchors&gt;
+...
+&lt;/trust-anchors&gt;
+</pre>
+ </dd>
+
+ <dt>
+ Bisa Berisi:
+ </dt>
+
+ <dd>
+ Sejumlah <code><a href="#certificates">&lt;certificates&gt;</a></code>
+ </dd>
+
+ <dt>
+ Keterangan:
+ </dt>
+
+ <dd>
+ Set trust-anchor untuk koneksi aman.
+ </dd>
+</dl>
+
+
+<h3 id="certificates">&lt;certificates&gt;</h3>
+<dl class="xml">
+<dt>sintaks:</dt>
+<dd><pre class="stx">&lt;certificates src=["system" | "user" | "<i>raw resource</i>"]
+ overridePins=["true" | "false"] /&gt;
+</pre></dd>
+<dt>keterangan:</dt>
+<dd>Set sertifikat X.509 untuk elemen {@code trust-anchors}.</dd>
+
+<dt>atribut:</dt>
+<dd><dl class="attr">
+<dt>{@code src}</dt>
+<dd>
+Sumber sertifikat CA, bisa salah satu dari
+<ul>
+ <li>ID sumber daya mentah yang menunjuk ke file berisi sertifikat X.509.
+ Sertifikat harus dikodekan dalam format DER atau PEM. Dalam hal sertifikat
+ PEM, file <em>tidak boleh</em> berisi data tambahan non-PEM seperti
+ komentar.
+ </li>
+
+ <li>{@code "system"} untuk sertifikat CA sistem yang telah terinstal.
+ </li>
+
+ <li>{@code "user"} untuk sertifikat CA yang ditambahkan pengguna.
+ </li>
+</ul>
+</dd>
+
+<dt>{@code overridePins}</dt>
+<dd>
+ <p>
+ Menetapkan apakah CA dari sumber akan mengabaikan penyematan sertifikat. Jika {@code
+ "true"} maka rantai sertifikat yang rantainya melalui salah satu CA dari
+ sumber ini tidak akan disematkan. Hal ini bisa berguna untuk CA
+ perunutan atau untuk mendukung dengan memungkinkan pengguna melakukan MiTM atas lalu lintas aman aplikasi Anda.
+ </p>
+
+ <p>
+ Default-nya adalah {@code "false"} kecuali jika ditetapkan dalam elemen {@code debug-overrides},
+ dalam hal demikian default-nya adalah {@code "true"}.
+ </p>
+</dd>
+</dl>
+</dd>
+
+
+<h3 id="pin-set">&lt;pin-set&gt;</h3>
+
+<dl class="xml">
+ <dt>
+ sintaks:
+ </dt>
+
+ <dd>
+<pre class="stx">
+&lt;pin-set expiration="date"&gt;
+...
+&lt;/pin-set&gt;
+</pre>
+ </dd>
+
+ <dt>
+ Bisa Berisi:
+ </dt>
+
+ <dd>
+ Sejumlah <code><a href="#pin">&lt;pin&gt;</a></code>
+ </dd>
+
+ <dt>
+ Keterangan:
+ </dt>
+
+ <dd>
+ Satu set pin kunci publik. Agar koneksi aman bisa dipercaya, salah satu
+ kunci publik dalam rantai kepercayaan harus berada dalam set pin. Lihat
+ <code><a href="#pin">&lt;pin&gt;</a></code> untuk mengetahui format pin.
+ </dd>
+
+ <dt>
+ Atribut:
+ </dt>
+
+ <dd>
+ <dl class="attr">
+ <dt>
+ {@code expiration}
+ </dt>
+
+ <dd>
+ Tanggal, dalam format {@code yyyy-MM-dd}, pada saat dan setelah pin
+ kedaluwarsa, sehingga menonaktifkan penyematan. Jika atribut tidak diatur maka
+ pin tidak kedaluwarsa.
+ <p>
+ Tanggal kedaluwarsa membantu mencegah masalah konektivitas di aplikasi yang
+ tidak mendapatkan pembaruan untuk set pin mereka, misalnya karena pengguna
+ menonaktifkan pembaruan aplikasi.
+ </p>
+ </dd>
+ </dl>
+ </dd>
+</dl>
+
+<h3 id="pin">&lt;pin&gt;</h3>
+<dl class="xml">
+ <dt>
+ sintaks:
+ </dt>
+
+ <dd>
+<pre class="stx">
+&lt;pin digest=["SHA-256"]&gt;base64 encoded digest of X.509
+ SubjectPublicKeyInfo (SPKI)&lt;/pin&gt;
+</pre>
+ </dd>
+
+ <dt>
+ Atribut:
+ </dt>
+
+ <dd>
+ <dl class="attr">
+ <dt>
+ {@code digest}
+ </dt>
+
+ <dd>
+ Algoritma intisari yang digunakan untuk menghasilkan pin. Saat ini, hanya
+ {@code "SHA-256"} yang didukung.
+ </dd>
+ </dl>
+ </dd>
+</dl>
diff --git a/docs/html-intl/intl/in/preview/features/tv-recording-api.jd b/docs/html-intl/intl/in/preview/features/tv-recording-api.jd
new file mode 100644
index 000000000000..2f9ad7efe033
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/features/tv-recording-api.jd
@@ -0,0 +1,120 @@
+page.title=Perekaman TV
+page.keywords=preview,sdk,tv,recording
+page.tags=androidn
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+ <h2>Dalam dokumen ini</h2>
+ <ol>
+ <li><a href="#supporting">Menunjukkan Dukungan untuk Perekaman</a></li>
+ <li><a href="#recording">Merekam Sesi</a></li>
+ <li><a href="#errors">Menangani Kesalahan Perekaman</a></li>
+ <li><a href="#sessions">Mengelola Sesi yang Direkam</a></li>
+ <li><a href="#best">Praktik Terbaik</a></li>
+ </ol>
+</div>
+</div>
+
+<p>Layanan input TV memungkinkan pengguna menghentikan sementara dan melanjutkan pemutaran saluran melalui
+API perekaman atau time-shifting. Android N telah berkembang hingga ke perekaman
+dengan memungkinkan pengguna menyimpan beberapa sesi rekaman.</p>
+
+<p>Pengguna bisa menjadwalkan rekaman terlebih dahulu, atau memulai rekaman sambil menonton
+suatu acara. Setelah sistem menyimpan rekaman, pengguna bisa melihat-lihat, menata,
+dan memutar kembali rekaman tersebut menggunakan aplikasi TV di sistem.</p>
+
+<p>Jika Anda ingin menyediakan fungsionalitas perekaman untuk layanan input TV,
+Anda harus menunjukkan pada sistem bahwa aplikasi Anda mendukung perekaman, mengimplementasikan
+kemampuan untuk merekam acara, menangani dan memberitahukan setiap kesalahan yang terjadi
+selama perekaman, serta mengelola sesi yang telah Anda rekam.</p>
+
+<h2 id="supporting">Menunjukkan Dukungan untuk Perekaman</h2>
+
+<p>Untuk memberi tahu sistem bahwa layanan input TV Anda mendukung perekaman, ikuti
+langkah-langkah ini:</p>
+
+<ol>
+<li>Dalam metode<code>TvInputService.onCreate()</code> Anda, buat objek
+<code>TvInputInfo</code> baru menggunakan kelas <code>TvInputInfo.Builder</code>.
+</li>
+<li>Saat membuat objek <code>TvInputInfo</code> baru, panggil
+<code>setCanRecord(true)</code> sebelum memanggil <code>build()</code> untuk
+menunjukkan bahwa layanan Anda mendukung perekaman.</li>
+<li>Daftarkan objek <code>TvInputInfo</code> Anda pada sistem dengan memanggil
+<code>TvInputService.updateTvInputInfo()</code>.</li>
+</ol>
+
+<h2 id="recording">Merekam Sesi</h2>
+
+<p>Setelah layanan input TV Anda didaftarkan bahwa ia mendukung fungsionalitas
+perekaman, sistem akan memanggil
+<code>TvInputService.onCreateRecordingSession()</code> Anda bila perlu mengakses
+implementasi perekaman aplikasi Anda. Implementasikan subkelas
+<code>TvInputService.RecordingSession</code> Anda sendiri dan kembalikan
+bila callback <code>onCreateRecordingSession()</code> dipicu.
+ Subkelas ini bertanggung jawab mengalihkan ke saluran data yang benar,
+merekam data yang diminta, dan memberitahukan status perekaman serta kesalahan ke
+sistem.</p>
+
+<p>Bila sistem memanggil <code>RecordingSession.onTune()</code>, dengan meneruskan
+URI saluran, setel ke saluran yang ditetapkan URI. Beri tahu sistem bahwa
+aplikasi Anda telah disetel ke saluran yang diinginkan dengan memanggil <code>notifyTuned()</code>,
+atau, jika aplikasi Anda tidak bisa disetel ke saluran yang tepat, panggil
+<code>notifyError()</code>.</p>
+
+<p>Sistem berikutnya akan memanggil callback <code>RecordingSession.onStartRecording()</code>.
+ Aplikasi Anda harus segera mulai merekam. Bila sistem memanggil
+callback ini, sistem mungkin akan memberikan URI yang berisi informasi tentang program
+yang akan direkam. Bila perekaman selesai, Anda perlu menyalin data
+ini ke tabel data <code>RecordedPrograms</code>.</p>
+
+<p>Terakhir, sistem akan memanggil <code>RecordingSession.onStopRecording()</code>.
+Pada tahap ini, aplikasi Anda harus segera berhenti merekam. Anda juga perlu
+membuat entri dalam tabel <code>RecordedPrograms</code>. Entri ini harus
+menyertakan URI data sesi yang direkam dalam kolom
+<code>RecordedPrograms.COLUMN_RECORDING_DATA_URI</code>, dan informasi
+program yang diberikan sistem dalam panggilan awal ke
+<code>onStartRecording()</code>.</p>
+
+<p>Untuk detail selengkapnya tentang cara mengakses tabel <code>RecordedPrograms</code>
+lihat <a href="#sessions">Mengelola Sesi yang Direkam</a>.</p>
+
+<h2 id="errors">Menangani Kesalahan Perekaman</h2>
+
+<p>Jika terjadi kesalahan selama perekaman, rendering data yang terekam menjadi tidak bisa digunakan,
+beri tahu sistem dengan memanggil <code>RecordingSession.notifyError()</code>.
+Begitu pula, Anda bisa memanggil <code>notifyError()</code> setelah sesi perekaman dibuat
+agar sistem mengetahui bahwa aplikasi Anda tidak bisa lagi merekam sesi.</p>
+
+<p>Jika terjadi kesalahan selama perekaman, namun Anda ingin menyediakan rekaman parsial
+yang bisa digunakan pengguna untuk pemutaran, panggil
+<code>RecordingSession.notifyRecordingStopped()</code> untuk memungkinkan sistem
+menggunakan sesi parsial.</p>
+
+<h2 id="sessions">Mengelola Sesi yang Direkam</h2>
+
+<p>Sistem menyimpan informasi untuk semua sesi yang direkam dari semua
+aplikasi saluran yang mampu merekam dalam tabel penyedia konten <code>TvContract.RecordedPrograms</code>.
+ Informasi ini bisa diakses lewat URI konten
+<code>RecordedPrograms.Uri</code>. Gunakan API konten penyedia untuk
+membaca, menambah, dan menghapus entri dari tabel ini.</p>
+
+<p>Untuk informasi selengkapnya tentang menangani data penyedia konten, lihat
+<a href="{@docRoot}guide/topics/providers/content-provider-basics.html">
+Dasar-Dasar Penyedia Konten</a>.</p>
+
+<h2 id="best">Praktik Terbaik</h2>
+
+<p>Perangkat TV mungkin memiliki penyimpanan terbatas, jadi pertimbangkan sebaik mungkin saat
+mengalokasikan penyimpanan untuk menyimpan sesi rekaman. Gunakan
+<code>RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE)</code> bila
+tidak cukup ruang untuk menyimpan sesi rekaman.</p>
+
+<p>Bila pengguna memulai perekaman, Anda harus memulai perekaman data
+secepatnya. Untuk memfasilitasinya, selesaikan setiap tugas yang memakan waktu di awal,
+seperti mengakses dan mengalokasikan ruang penyimpanan, saat sistem memanggil callback
+<code>onCreateRecordingSession()</code>. Hal ini akan memungkinkan Anda memulai
+perekaman dengan segera bila callback <code>onStartRecording()</code>
+dipicu.</p>
diff --git a/docs/html-intl/intl/in/preview/index.jd b/docs/html-intl/intl/in/preview/index.jd
new file mode 100644
index 000000000000..38af2016e8a3
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/index.jd
@@ -0,0 +1,120 @@
+page.title=Android N Developer Preview
+page.tags="preview","developer"
+meta.tags="preview", "android"
+fullpage=true
+forcelocalnav=true
+header.hide=1
+footer.hide=1
+@jd:body
+
+<script>
+ $(document).ready(function() {
+ if (useUpdatedTemplates) {
+ $("#useUpdatedTemplates").css("display","block");
+ } else {
+ $("#useOldTemplates").css("display","block");
+ }
+ })
+</script>
+
+<section class="dac-expand dac-hero dac-light" style="background-color:#B2DFDB">
+ <div class="wrap" style="max-width:1100px;margin-top:0">
+ <div class="cols dac-hero-content" style="padding-bottom:1em;">
+
+ <div class="col-7of16 col-push-9of16" style="padding-left:2em">
+ <h1 class="dac-hero-title">Android N Developer Preview</h1>
+ <p class="dac-hero-description">
+ Bersiaplah menyambut Android N!
+ <strong>Uji aplikasi Anda</strong> pada perangkat Nexus dan perangkat lainnya. Dukunglah
+ perilaku sistem baru untuk <strong>menghemat daya dan memori</strong>.
+ Tambah aplikasi Anda dengan <strong>UI multijendela</strong>,
+ <strong>pemberitahuan balasan langsung</strong> dan lainnya.
+ </p>
+
+ <a class="dac-hero-cta" href="{@docRoot}preview/overview.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Memulai
+ </a><!--<br>
+ <a class="dac-hero-cta" href="{@docRoot}preview/support.html">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Update to Android N (final SDK)
+ </a><br>-->
+ </div>
+ <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+ <img class="dac-hero-image" src="{@docRoot}images/home/n-preview-hero.png" srcset="{@docRoot}images/home/n-preview-hero.png 1x,
+ {@docRoot}images/home/n-preview-hero_2x.png 2x">
+ </div>
+ </div>
+ <div class="dac-section dac-small">
+ <div class="resource-widget resource-flow-layout col-16"
+ data-query="collection:preview/landing/resources"
+ data-cardSizes="6x2"
+ data-maxResults="6"></div>
+ </div>
+ </div>
+</section>
+
+<div id="useUpdatedTemplates" style="display:none" class="dac-section dac-slim dac-gray dac-expand">
+ <div class="wrap dac-offset-parent">
+ <a class="dac-fab dac-scroll-button" data-scroll-button="" href="#build-apps">
+ <i class="dac-sprite dac-arrow-down-gray"></i>
+ </a>
+ <ul class="dac-actions">
+ <li class="dac-action">
+ <a class="dac-action-link" href="https://developer.android.com/preview/bug">
+ <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+ Laporkan masalah
+ </a>
+ </li>
+ <li class="dac-action">
+ <a class="dac-action-link" href="{@docRoot}preview/support.html">
+ <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+ Lihat catatan rilis
+ </a>
+ </li>
+ <li class="dac-action">
+ <a class="dac-action-link" href="{@docRoot}preview/dev-community">
+ <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
+ Bergabunglah dengan komunitas pengembang
+ </a>
+ </li>
+ </ul>
+ </div><!-- end .wrap -->
+</div><!-- end .dac-actions -->
+
+<div id="useOldTemplates" style="display:none;color:black" class="actions-bar dac-expand dac-invert">
+ <div class="wrap dac-offset-parent">
+
+ <div class="actions">
+ <div><a href="https://developer.android.com/preview/bug">
+ <span class="dac-sprite dac-auto-chevron-large"></span>
+ Laporkan masalah
+ </a></div>
+ <div><a href="{@docRoot}preview/support.html">
+ <span class="dac-sprite dac-auto-chevron-large"></span>
+ Lihat catatan rilis
+ </a></div>
+ <div><a href="{@docRoot}preview/dev-community">
+ <span class="dac-sprite dac-auto-chevron-large"></span>
+ Bergabunglah dengan komunitas pengembang
+ </a></div>
+ </div><!-- end .actions -->
+ </div><!-- end .wrap -->
+</div>
+
+<section class="dac-section dac-light"><div class="wrap">
+ <h1 class="dac-section-title">Sumber Daya</h1>
+ <div class="dac-section-subtitle">
+ Informasi penting guna membantu mempersiapkan aplikasi untuk Android N.
+ </div>
+
+ <div class="resource-widget resource-flow-layout col-16"
+ data-query="collection:preview/landing/more"
+ data-cardSizes="6x6"
+ data-items-per-page="6"
+ data-maxResults="15"
+ data-initial-results="6"></div>
+
+ </div>
+</section>
+
diff --git a/docs/html-intl/intl/in/preview/j8-jack.jd b/docs/html-intl/intl/in/preview/j8-jack.jd
new file mode 100644
index 000000000000..4b25246c1e03
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/j8-jack.jd
@@ -0,0 +1,183 @@
+page.title=Fitur Bahasa Java 8
+page.keywords="android N", "Java 8", "Jack"
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <ol>
+ <li>
+ <a href="#supported-features">API dan Fitur Bahasa Java 8 yang didukung</a>
+ </li>
+ <li>
+ <a href="#configuration">Mengaktifkan Fitur Java 8 dan Jack Toolchain</a>
+ </li>
+ </ol>
+ </div>
+</div>
+
+<p>Android N memperkenalkan dukungan untuk fitur bahasa Java 8
+ yang bisa Anda gunakan saat mengembangkan aplikasi yang menargetkan Android N.
+ Halaman ini menjelaskan fitur bahasa baru yang didukung dalam Android N
+ Preview, cara menyiapkan proyek Anda dengan benar untuk menggunakannya, dan setiap masalah
+ yang diketahui yang mungkin Anda temui.
+</p>
+
+<p>Untuk mulai menggunakan fitur-fitur ini, Anda perlu mengunduh dan menyiapkan Android
+Studio 2.1 (preview) dan Android N Preview SDK, yang menyertakan
+Jack toolchain yang diperlukan dan Plugin Android untuk Gradle yang telah diperbarui. Jika Anda belum menginstal
+Android N Preview SDK, lihat <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pengembangan untuk Android N</a>.</p>
+
+
+
+<p class="note">
+ <strong>Catatan:</strong> Menggunakan fitur bahasa Java 8 yang baru bukanlah
+ persyaratan untuk mengembangkan aplikasi yang menargetkan platform Android N. Jika Anda
+ tidak ingin menulis kode dengan fitur bahasa Java 8, Anda bisa membiarkan nilai kompatibilitas
+ sumber dan target proyek Anda diatur ke Java 7, namun Anda tetap harus
+ mengompilasi dengan JDK 8 untuk membangun pada platform Android N.
+</p>
+
+<h2 id="supported-features">
+ API dan Fitur Bahasa Java 8 yang Didukung
+</h2>
+
+<p>
+ Saat ini tidak semua fitur bahasa Java 8 didukung Android. Akan tetapi,
+ fitur berikut sekarang tersedia saat mengembangkan aplikasi yang menargetkan
+ Android N Preview:
+</p>
+
+<ul>
+ <li>
+ <a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html">Metode-metode
+ antarmuka default dan statis</a>
+ </li>
+
+ <li>
+ <a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html">
+ Ekspresi Lambda</a>
+ </li>
+
+ <li>
+ <a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/annotations/repeating.html">Anotasi
+ yang bisa diulang</a>
+ </li>
+</ul>
+
+
+<p>
+ Selain itu, API fitur bahasa Java 8 berikut ini sekarang tersedia:
+</p>
+
+<ul>
+ <li>Reflection API dan API terkait bahasa:
+ </li>
+
+ <li style="list-style: none; display: inline">
+ <ul>
+ <li>{@code java.lang.FunctionalInterface}
+ </li>
+
+ <li>{@code java.lang.annotation.Repeatable}
+ </li>
+
+ <li>{@code java.lang.reflect.Method.isDefault()}
+ </li>
+
+ <li>dan Reflection API yang terkait dengan anotasi yang bisa diulang, seperti
+ {@code AnnotatedElement.getAnnotationsByType(Class)}
+ </li>
+ </ul>
+ </li>
+ <li>Utility API:
+ </li>
+
+ <li style="list-style: none; display: inline">
+ <ul>
+ <li>{@code java.util.function}
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<p class="note">
+ <strong>Catatan:</strong> Android N mendasarkan implementasi ekspresi
+ lambda pada kelas anonim. Pendekatan ini memungkinkannya kompatibel
+ mundur dan bisa dieksekusi pada versi Android sebelumnya. Untuk menguji ekspresi
+ lambda pada versi sebelumnya, jangan lupa masuk ke file {@code
+ build.gradle} Anda, serta mengatur {@code compileSdkVersion} dan {@code
+ targetSdkVersion} ke 23 atau yang lebih rendah.
+</p>
+
+<h2 id="configuration">
+ Mengaktifkan Fitur Java 8 dan Jack Toolchain
+</h2>
+
+<p>
+ Agar bisa menggunakan fitur bahasa Java 8 yang baru, Anda juga perlu menggunakan
+ <a class="external-link" href="https://source.android.com/source/jack.html">Jack toolchain</a>
+ yang baru. Android Toolchain yang baru ini mengompilasi sumber bahasa Java menjadi dex
+ bytecode yang bisa dibaca Android, memiliki format pustaka {@code .jack} sendiri, dan menyediakan sebagian besar fitur
+ toolchain sebagai bagian dari alat tunggal: pengemasan ulang, penciutan, pengaburan dan
+ multidex.
+</p>
+
+<p>Inilah perbandingan dua toolchain yang digunakan untuk membangun file Android DEX:</p>
+<ul>
+ <li>Toolchain javac lama:<br>
+ <b>javac</b> ({@code .java} --&gt; {@code .class}) --&gt; <b>dx</b> ({@code
+ .class} --&gt; {@code .dex})
+ </li>
+
+ <li>Jack Toolchain baru:<br>
+ <b>Jack</b> ({@code .java} --&gt; {@code .jack} --&gt; {@code .dex})
+ </li>
+</ul>
+
+<h3>
+ Mengonfigurasi Gradle
+</h3>
+
+<p>
+ Untuk mengaktifkan fitur bahasa Java 8 dan Jack untuk proyek Anda, masukkan
+ yang berikut dalam file {@code build.gradle} yang spesifik untuk modul:
+</p>
+
+<pre>
+android {
+ ...
+ defaultConfig {
+ ...
+ jackOptions {
+ enabled true
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+</pre>
+
+<h3>
+ Masalah yang Diketahui
+</h3>
+
+<p>
+ Instant Run, yang diperkenalkan dalam Android Studio 2.0 (Beta), saat ini tidak berfungsi
+ dengan Jack dan akan dinonaktifkan saat menggunakan toolchain baru.
+</p>
+
+<p>Karena Jack tidak menghasilkan file kelas antara saat mengompilasi sebuah
+aplikasi, alat yang bergantung pada file-file ini sekarang tidak berfungsi pada Jack. Beberapa
+contoh alat-alat ini adalah:</p>
+
+<ul>
+ <li>Pendeteksi lint yang beroperasi pada file kelas
+ </li>
+
+ <li>Alat dan pustaka yang mewajibkan file kelas aplikasi (misalnya JaCoCo
+ dan Mockito)</li>
+</ul>
+
+<p>Jika Anda menemukan masalah lain saat menggunakan Jack, <a href="http://tools.android.com/filing-bugs">laporkan bug</a>.</p> \ No newline at end of file
diff --git a/docs/html-intl/intl/in/preview/overview.jd b/docs/html-intl/intl/in/preview/overview.jd
new file mode 100644
index 000000000000..4b48a220b5c9
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/overview.jd
@@ -0,0 +1,440 @@
+page.title=Ikhtisar Program
+page.metaDescription=Persiapkan aplikasi Anda untuk versi Android berikutnya.
+page.image=images/cards/card-n-overview_2x.png
+meta.tags="preview", "pengembang", "android"
+page.tags="preview", "developer", "android"
+
+@jd:body
+<!--
+<div class="cols" style=
+"background-color:#f2daf5; padding: 5px 0;margin-bottom:1em; text-align:center;">
+<h3>
+ Developer Preview 3 is now available
+ </h3>
+ <p>Includes final SDK and near-final system images</p>
+ <div style="margin:auto 1em">
+ <ul class="dac-section-links">
+ <li class="dac-section-link">
+ <a href="{@docRoot}preview/support.html#preview3-notes">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Read the Notes</a>
+ </li>
+
+ <li class="dac-section-link">
+ <a href="{@docRoot}preview/support.html#preview3-get">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Get the Update</a>
+ </li>
+
+ <li class="dac-section-link">
+ <a href="https://code.google.com/p/android-developer-preview/">
+ <span class="dac-sprite dac-auto-chevron"></span>
+ Report Issues</a>
+ </li>
+ </ul>
+ </div>
+</div>
+-->
+
+<p>
+ Selamat datang di <strong>Android N Developer Preview</strong>, program yang
+ akan memberi apa saja yang Anda butuhkan untuk menguji dan mengoptimalkan aplikasi untuk versi
+ Android berikutnya. Program ini tersedia gratis, dan Anda bisa langsung memulai hanya dengan
+ mengunduh alat bantu N Developer Preview.
+</p>
+
+
+
+
+
+
+
+<div style="background-color:#eceff1;padding:1em;">
+<div class="wrap">
+ <div class="cols">
+ <div class="col-4of12">
+ <h5>
+ Gambar perangkat keras dan emulator
+ </h5>
+
+ <p>
+ Jalankan dan uji aplikasi Anda pada berbagai perangkat atau pada emulator.
+
+ </p>
+ </div>
+
+ <div class="col-4of12">
+ <h5>
+ Kode platform terbaru
+ </h5>
+
+ <p>
+ Kami akan menyediakan pembaruan setiap bulan selama Preview, agar Anda bisa menguji perubahan platform terbaru.
+ </p>
+ </div>
+
+ <div class="col-4of12">
+ <h5>
+ Prioritas untuk masalah pengembang
+ </h5>
+
+ <p>
+ Selama beberapa minggu pertama, kami akan memberikan prioritas pada masalah-masalah
+ yang dilaporkan pengembang, jadi ujilah dan berikan umpan balik sesegera mungkin.
+ </p>
+ </div>
+
+ </div>
+
+ <div class="cols">
+
+
+ <div class="col-4of12">
+ <h5>
+ Kemampuan dan perilaku baru
+ </h5>
+
+ <p>
+ Mulailah pekerjaan lebih awal untuk mendukung perilaku platform baru dan kembangkan dengan fitur-fitur baru.
+ </p>
+ </div>
+
+ <div class="col-4of12">
+ <h5>
+ Pembaruan dikirim melalui OTA
+ </h5>
+
+ <p>
+ Pembaruan lewat jaringan seluler tanpa kendala untuk setiap perangkat yang didukung melalui
+ Android Beta Program. Flashing tidak diperlukan.
+ </p>
+ </div>
+
+ <div class="col-4of12">
+ <h5>
+ Umpan balik dan dukungan
+ </h5>
+
+ <p>
+ Laporkan masalah dan berikan umpan balik kepada kami dengan menggunakan
+ <a href="{@docRoot}preview/bug">Issue Tracker</a> kami. Hubungkan dengan
+ pengembang lain di
+ <a href="{@docRoot}preview/dev-community">N&nbsp;Developer Community</a>.
+ </p>
+ </div>
+ </div>
+</div>
+</div>
+
+<!--
+<p>New in the Android N Developer Preview: </p>
+
+<ul>
+ <li> Accompanying Android Beta Program for consumers, starting later in the preview</li>
+ <li> More supported devices, including devices from OEM partners</li>
+ <li> Seamless OTAs for your devices, from initial release to final N release without flashing</li>
+</ul>
+-->
+
+<h2 id="timeline">Kronologi dan pembaruan</h2>
+<img src="{@docRoot}images/n-preview-updates_2x.png">
+
+<p>
+ N Developer Preview berjalan dari 9 Maret 2016 hingga rilis publik Android N
+ final dirilis ke AOSP dan OEM, yang direncanakan selama Kuartal 3 2016.
+</p>
+
+<p>
+ Pada tahapan pencapaian pengembangan utama kami akan mengirimkan pembaruan untuk lingkungan pengujian dan
+ pengembangan Anda. Umumnya Anda boleh berharap mendapatkan pembaruan setiap bulan (dengan interval 4 hingga 6
+ minggu). Tahapan pencapaian tercantum di bawah ini.
+</p>
+
+<ul>
+ <li><strong><a href="{@docRoot}preview/support.html">Preview 1</a></strong> (rilis pertama, alfa)</li>
+ <li><strong>Preview 2</strong> (pembaruan bertahap, beta)</li>
+ <li><strong>Preview 3</strong> (pembaruan bertahap, beta)</li>
+ <li><strong>Preview 4</strong> (API final dan SDK resmi, publikasi di Play)</li>
+ <li><strong>Preview 5</strong> (citra sistem hampir final untuk pengujian akhir)</li>
+ <li><strong>Rilis Final</strong> ke AOSP dan ekosistem</li>
+</ul>
+
+<p>
+ Setiap pembaruan menyertakan SDK Tools, citra sistem preview, emulator, dokumentasi
+ referensi, dan diff API.
+</p>
+
+<p>
+ <strong>Tiga tahapan pencapaian preview pertama</strong> memberikan <strong>pengujian
+ awal dan lingkungan pengembangan</strong> yang membantu Anda mengidentifikasi
+ masalah kompatibilitas dalam aplikasi Anda saat ini dan merencanakan migrasi atau menampilkan pekerjaan
+ yang diperlukan untuk menargetkan platform baru. Ini adalah periode prioritas yang akan
+ memberi kami umpan balik dari Anda tentang fitur dan API serta masalah kompatibilitas file
+ &mdash; untuk semua ini, harap gunakan <a href="{@docRoot}preview/bug">Issue
+ Tracker</a>. Anda boleh mengharapkan beberapa perubahan API selama pembaruan ini.
+</p>
+
+<p>
+ Pada <strong>preview 4 dan 5</strong> Anda akan memiliki akses ke <strong>API
+ dan SDK N final</strong> untuk dikembangkan, serta citra sistem yang hampir final
+ untuk menguji perilaku dan fitur sistem. Android N akan memberikan level API
+ standar pada saat ini. Anda bisa mulai melakukan pengujian kompatibilitas akhir atas aplikasi
+ lama dan menyempurnakan kembali setiap kode baru yang menggunakan API atau fitur N.
+</p>
+
+<p>
+ Juga, mulai preview 4, Anda akan bisa <strong>mempublikasikan aplikasi ke
+ perangkat</strong> yang menjalankan Android N pada level API resmi, seperti
+ perangkat konsumen yang telah memilih mengikuti program Android Beta. Anda bisa
+ mempublikasikan ke saluran alfa dan beta Google Play terlebih dahulu, sehingga Anda bisa menguji
+ aplikasi pada konsumen Android Beta sebelum mendistribusikan secara luas di
+ toko.
+</p>
+
+<p>
+ Saat Anda menguji dan mengembangkan di Android N, kami sangat menyarankan<strong>terus memperbarui
+ lingkungan pengembangan</strong> saat pembaruan preview
+ dirilis. Untuk mempermudah prosesnya, Anda bisa mendaftarkan perangkat pengujian di program
+ Android Beta dan mengambil <strong>pembaruan lewat jaringan seluler (OTA)</strong> pada
+ setiap tahapan pencapaian. Atau, citra preview yang diperbarui
+ tersedia bila Anda mengunduh dan mem-flash secara manual.
+</p>
+
+<p>
+ Kami akan memberi tahu Anda bila pembaruan preview telah tersedia lewat <a href="http://android-developers.blogspot.com/">Android Developers Blog</a> serta
+ situs ini dan <a href="{@docRoot}preview/dev-community">Android
+ N Developer Community</a>.
+</p>
+
+
+<h2 id="preview_tools">Apa yang ada di N Developer Preview?</h2>
+
+<p>
+ N Developer Preview menyertakan apa saja yang Anda perlukan untuk menguji aplikasi
+ yang ada pada berbagai ukuran layar, teknologi jaringan, chipset CPU/GPU,
+ dan arsitektur perangkat keras.
+</p>
+
+<h3 id="sdk_tools">SDK Tools</h3>
+
+<p>Anda bisa mengunduh komponen-komponen ini melalui SDK Manager di <a href="{@docRoot}sdk/installing/adding-packages.html">Android Studio</a>:</p>
+
+<ul>
+ <li> <strong>SDK dan alat</strong> N Developer Preview
+ <li> <strong>Citra sistem emulator</strong> N Developer Preview (32-bit &amp; 64-bit)
+ <li> <strong>Citra sistem emulator</strong> N Developer Preview untuk Android TV (32-bit)
+ <li> N Developer Preview mendukung pustaka (untuk template aplikasi baru)
+</ul>
+
+<p>
+ Kami akan menyediakan pembaruan untuk alat pengembangan ini di setiap tahapan pencapaian jika diperlukan.
+</p>
+
+<h3 id="hardware_system_images">Citra sistem perangkat keras</h3>
+
+<p>
+ N Developer Preview menyertakan citra sistem Nexus dan perangkat keras lainnya yang bisa Anda gunakan saat
+ menguji dan mengembangkan pada perangkat fisik. Lihat halaman <a href="{@docRoot}preview/download.html">Citra Perangkat</a> untuk melihat daftar lengkap
+ citra perangkat keras.
+</p>
+
+<p>
+ Kami akan menyediakan citra sistem yang diperbarui untuk perangkat ini di setiap tahapan pencapaian. Anda
+ bisa mengunduh dan mem-flash citra sistem yang diperbarui ke perangkat pengujian
+ secara manual, sesering yang Anda perlukan. Ini terutama berguna untuk lingkungan pengujian
+ otomatis bila Anda mungkin perlu mem-flash ulang perangkat beberapa
+ kali.
+</p>
+
+<p class="note"><strong>Catatan</strong>:
+ <strong>Perangkat yang di-flash secara manual tidak akan mendapatkan pembaruan OTA</strong> seperti di
+ preview tahun lalu. Tahun ini, Anda bisa memperoleh OTA dengan mendaftarkan perangkat dalam
+ Android Beta Program &mdash; lihat detailnya di bagian berikutnya.
+</p>
+
+<h3 id="android_beta">Pembaruan OTA melalui Android Beta Program</h3>
+
+<p>
+ Yang baru untuk Android N adalah program pembaruan lewat jaringan seluler (OTA) yang secara otomatis
+ mengirim pembaruan preview terbaru Android N secara langsung ke perangkat yang telah mendaftar
+ di program ini. Program ini gratis dan terbuka bagi siapa saja yang memiliki
+ perangkat yang didukung dan telah didaftarkan ke akun Google mereka.
+</p>
+
+<p>
+ Untuk mendaftarkan dalam program ini, kunjungi situs <a href="https://g.co/androidbeta">Android
+ Beta Program</a>. Anda akan
+ melihat semua perangkat yang telah didaftarkan ke akun Anda yang memenuhi syarat untuk mendaftar
+ dalam Android Beta.
+</p>
+
+<ol>
+ <li> Pilih perangkat yang Anda inginkan untuk menerima pembaruan Android N
+ <li> Klik Enroll, baca dan setujui ketentuan layanan, kemudian klik OK
+</ol>
+
+<p>
+ Setelah terdaftar, perangkat Anda akan segera menerima pembaruan. Umumnya
+ Anda tidak perlu pengaturan ulang penuh atas data untuk beralih ke Android N, namun
+ Anda disarankan mencadangkan setiap data yang tidak ingin hilang sebelum
+ mendaftarkan perangkat.
+</p>
+
+<p>
+ Saat pembaruan dikirim ke perangkat Anda, kami menyarankan Anda untuk segera mengunduh dan
+ menginstalnya sesegera mungkin. Anda perlu memantau perubahan terbaru
+ di UI sistem, perilaku, API, dan fitur.
+</p>
+
+<p>
+ Di akhir periode Developer Preview, perangkat Anda yang telah didaftarkan akan
+ menerima pembaruan ke rilis resmi Android N.
+</p>
+
+<p>
+ Anda bisa membatalkan pendaftaran perangkat dari program Android Beta kapan saja dari
+ situs Android Beta. Sebelum membatalkan pendaftaran, pastikan Anda telah mencadangkan data pada
+ perangkat.
+</p>
+
+ <p class="note"><strong>Catatan</strong>:
+ Bila Anda membatalkan pendaftaran, <strong>perangkat Anda akan diatur ulang</strong>
+ ke versi terbaru
+ Android 6.0 Marshmallow (tidak mesti ke versi yang telah Anda
+ instal sebelum mendaftarkan perangkat). Untuk memastikan instalasi yang bersih,
+ data Anda akan dihapus dari perangkat, termasuk kontak, pesan,
+ foto, dan seterusnya.
+</p>
+
+<h3 id="documentation_and_sample_code">Dokumentasi dan kode contoh</h3>
+
+<p>
+ Sumber daya dokumentasi ini tersedia pada situs Developer Preview untuk
+ membantu Anda mempelajari tentang Android&nbsp;N:
+</p>
+
+<ul>
+ <li> <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pengembangan untuk
+Android N</a> memiliki
+ instruksi langkah demi langkah untuk memulai.</li>
+ <li> <a href="{@docRoot}preview/behavior-changes.html">Perubahan
+ Perilaku</a> akan menunjukkan kepada Anda bidang-bidang utama untuk diuji.</li>
+ <li> Dokumentasi API baru, termasuk <a href="{@docRoot}preview/api-overview.html">Ikhtisar API</a>,
+ <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
+ API</a> yang bisa diunduh, dan panduan pengembang detail mengenai fitur-fitur utama seperti
+ menambahkan dukungan multi-jendela, bundel pemberitahuan, dukungan multilokal, dan lainnya.
+ <li> <a href="{@docRoot}preview/samples.html">Kode contoh</a> yang
+ memperagakan cara mendukung izin dan fitur baru lainnya.
+ <li> <a href="{@docRoot}preview/support.html#release-notes">Catatan rilis</a>
+ untuk versi N Developer Preview saat ini, termasuk catatan perubahan dan
+ laporan diff.
+</ul>
+
+<h4 id="reference">Referensi API yang Bisa Diunduh</h4>
+
+<p>
+ Selama pembaruan preview awal, Anda bisa mengunduh
+ <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API
+ untuk platform Android N</a> sebagai arsip zip terpisah. Unduhan
+ referensi juga menyertakan laporan diff yang akan membantu Anda mengenali perubahan API dari
+ API 23 dan pembaruan sebelumnya.
+</p>
+
+<p>
+ Bila API Android N sudah final dan API Level resmi telah ditetapkan,
+ kami akan menyediakan referensi API kepada Anda secara online di <a href="https://developer.android.com">https://developer.android.com</a>.
+</p>
+
+<h3 id="support_resources">
+ Sumber daya dukungan
+</h3>
+
+<p>
+ Saat Anda menguji dan mengembangkan N Developer Preview, gunakan saluran
+ ini untuk melaporkan masalah dan memberikan umpan balik.
+</p>
+
+<ul>
+ <li> <a href="https://code.google.com/p/android-developer-preview/">N Developer Preview Issue
+ Tracker</a> adalah <strong>saluran umpan balik utama.</strong> Anda bisa melaporkan bug, masalah
+ kinerja, dan umpan balik umum melalui Issue Tracker. Anda juga bisa memeriksa
+<a href="{@docRoot}preview/bug">masalah yang telah diketahui</a> dan
+ menemukan langkah-langkah solusinya. Kami akan terus mengabari mengenai masalah Anda saat masalah tersebut bila telah dipilah dan dikirimkan ke
+ tim teknis Android untuk ditinjau. </li>
+ <li> <a href="{@docRoot}preview/dev-community">Android N Developer Community</a> adalah
+ sebuah komunitas Google+ tempat Anda bisa <strong>terhubung dengan pengembang lain</strong> yang menggunakan
+ Android N. Anda bisa menyampaikan pengamatan atau ide atau menemukan jawaban atas
+ pertanyaan-pertanyaan mengenai Android N. Kami akan memoderasi komunitas ini dan memberikan jawaban serta
+ panduan jika diperlukan.</li>
+</ul>
+
+<h3 id="targeting">Menargetkan, API preview, dan mempublikasikan</h3>
+
+<p>
+ N Developer Preview menyediakan sistem pengembangan semata dan pustaka Android
+ yang <strong>tidak memiliki API level standar</strong>. Jika Anda tidak ingin
+ mengikuti perilaku kompatibilitas untuk menguji aplikasi Anda (sangat
+ disarankan), Anda bisa menargetkan versi preview Android N dengan mengatur
+ <code><a href=
+ "{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code>
+ aplikasi Anda ke <code>ā€œNā€</code>.
+</p>
+
+<p>
+ Android N Developer Preview menghasilkan <strong>API preview</strong>
+ &mdash; API ini tidak akan resmi hingga SDK final dirilis,
+ yang saat ini direncanakan pada kuartal ketiga 2016. Ini berarti Anda boleh
+ <strong>berharap adanya perubahan kecil pada API </strong> selama waktu ini, terutama selama
+ minggu-minggu pertama program ini. Kami akan menyediakan rangkuman perubahan pada Anda bersama
+ setiap pembaruan Android N Developer Preview.
+</p>
+
+<p class="note">
+ <strong>Catatan</strong>: Meskipun API preview mungkin berubah, perilaku dasar
+ sistem stabil dan siap diuji.
+
+</p>
+
+<p>
+ Google Play <strong>akan mencegah publikasi aplikasi yang menargetkan N Developer
+ Preview</strong>. Bila SDK final Android N telah tersedia, Anda akan dapat
+ menargetkan Android N API level resmi dan mempublikasikan aplikasi ke Google
+ Play lewat saluran rilis alfa dan beta. Sementara itu, jika Anda ingin
+ mendistribusikan aplikasi yang menargetkan Android N kepada penguji, Anda bisa melakukannya lewat email atau
+ melalui pengunduhan langsung dari situs Anda.
+</p>
+
+<p>
+ Pada saat rilis penuh Android N ke AOSP dan OEM, yang direncanakan selama Kuartal 3 2016,
+ Anda akan dapat mempublikasikan aplikasi yang menargetkan Android N ke saluran
+ rilis publik di Google Play.
+</p>
+
+
+<h2 id="how_to_get_started">Cara memulai</h2>
+
+<p>
+ Untuk memulai pengujian aplikasi Anda dengan Android N:
+</p>
+
+<ol>
+ <li> Tinjau <a href="{@docRoot}preview/api-overview.html">Ikhtisar API</a>
+ dan <a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a> untuk
+ mendapatkan gambaran mengenai apa saja yang baru dan bagaimana pengaruhnya pada aplikasi Anda. Khususnya,
+ pelajari tentang fitur baru <a href="{@docRoot}preview/features/notification-updates.html">pemberitahuan</a> dan
+ <a href="{@docRoot}preview/features/multi-window.html">dukungan multi-jendela</a>.</li>
+ <li> Siapkan lingkungan Anda dengan mengikuti instruksi berikut untuk <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan SDK Preview</a>
+ dan mengonfigurasi perangkat pengujian.</li>
+ <li> Ikuti <a href="https://developers.google.com/android/nexus/images">instruksi
+ flashing</a> untuk mem-flash citra sistem Android N terbaru ke perangkat Anda. </li>
+ <li> Tinjau <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi API</a>
+ dan <a href="{@docRoot}preview/samples.html">contoh Android N</a> untuk mendapatkan wawasan
+ lebih luas mengenai fitur-futur API yang baru dan cara menggunakannya dalam aplikasi Anda.
+ <li> Bergabunglah dengan <a href="{@docRoot}preview/dev-community">Android N
+ Developer Community</a> untuk mendapatkan berita terbaru dan terhubung dengan pengembang
+ lainnya yang menggunakan platform baru ini.</li>
+</ol>
+
+<p>
+ Terima kasih atas partisipasi Anda dalam program Android N Developer Preview!
+</p>
diff --git a/docs/html-intl/intl/in/preview/samples.jd b/docs/html-intl/intl/in/preview/samples.jd
new file mode 100644
index 000000000000..3c51f48da3b9
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/samples.jd
@@ -0,0 +1,85 @@
+page.title=Contoh
+page.tags="preview", "samples", "android"
+page.image=images/cards/card-n-samples_2x.png
+@jd:body
+
+<p>
+ Contoh kode berikut disediakan untuk Android N. Untuk
+ mengunduh contoh di Android Studio, pilih opsi menu <b>File &gt; Import
+ Samples</b>.
+</p>
+
+<p class="note">
+ <strong>Catatan:</strong> Proyek yang bisa diunduh ini didesain
+ untuk digunakan bersama Gradle dan Android Studio.
+</p>
+
+
+<h3 id="mw">Multi-Window Playground</h3>
+<img src="{@docRoot}preview/images/sample-multiwindow.png" style="float: left; padding-right: 0.5em" height="250" width="156" />
+<p>
+ Contoh ini memperagakan cara memanfaatkan antarmuka pengguna
+ multijendela bersama aplikasi Anda.
+</p>
+<p>
+ <a href="https://github.com/googlesamples/android-MultiWindowPlayground">
+ Dapatkan di GitHub</a>
+</p>
+
+<div style="clear: both;"></div>
+<h3 id="an">Active Notifications</h3>
+<img src="{@docRoot}preview/images/sample-activenotifications.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<p>
+ Ini adalah contoh yang telah ada sebelumnya yang menampilkan layanan sederhana yang mengirimkan
+ pemberitahuan menggunakan NotificationCompat. Setiap percakapan yang belum dibaca dari pengguna
+ akan dikirim sebagai pemberitahuan tersendiri.
+</p>
+<p>
+ Contoh ini telah diperbarui untuk memanfaatkan fitur pemberitahuan baru
+ yang tersedia di Android N.
+</p>
+<p>
+ <a href="https://github.com/googlesamples/android-ActiveNotifications">
+ Dapatkan di GitHub</a>
+</p>
+
+<div style="clear: both;"></div>
+<h3 id="ms">Messaging Service</h3>
+<img src="{@docRoot}preview/images/sample-messagingservice.png" style="float: left; padding-right: 0.5em" height="250" width="150" />
+<p>
+ Ini adalah contoh yang telah ada sebelumnya yang memperagakan cara menggunakan
+ NotificationManager untuk memberi tahu jumlah pemberitahuan yang saat ini ditampilkan
+ oleh aplikasi.
+</p>
+<p>
+ Contoh ini telah diperbarui untuk memanfaatkan fitur pemberitahuan baru
+ yang tersedia di Android N.
+</p>
+<p>
+ <a href="https://github.com/googlesamples/android-MessagingService">
+ Dapatkan di GitHub</a>
+</p>
+
+<div style="clear: both;"></div>
+<h3 id="fbe">Direct Boot</h3>
+<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<p>
+ Contoh ini memperagakan cara menyimpan dan mengakses data dalam penyimpanan yang dienkripsi
+ dengan perangkat yang selalu tersedia saat perangkat booting.
+</p>
+<p>
+ <a href="https://github.com/googlesamples/android-DirectBoot">
+ Dapatkan di GitHub</a>
+</p>
+
+<div style="clear: both;"></div>
+<h3 id="sda">Scoped Directory Access</h3>
+<img src="{@docRoot}preview/images/sample-scopeddirectoryaccess.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
+<p>
+ Contoh ini memperagakan cara membaca dan menulis data dari direktori
+ spesifik, sekaligus meminta izin lebih sedikit.
+</p>
+<p>
+ <a href="https://github.com/googlesamples/android-ScopedDirectoryAccess">
+ Dapatkan di GitHub</a>
+</p> \ No newline at end of file
diff --git a/docs/html-intl/intl/in/preview/setup-sdk.jd b/docs/html-intl/intl/in/preview/setup-sdk.jd
new file mode 100644
index 000000000000..5187e9910f9c
--- /dev/null
+++ b/docs/html-intl/intl/in/preview/setup-sdk.jd
@@ -0,0 +1,226 @@
+page.title=Menyiapkan Preview
+meta.keywords="preview", "android"
+page.tags="preview", "developer preview"
+page.image=images/cards/card-n-sdk_2x.png
+
+@jd:body
+
+
+<div id="qv-wrapper">
+ <div id="qv">
+<ol>
+ <li><a href="#get-as13">Dapatkan Android Studio 2.1</a></li>
+ <li><a href="#get-sdk">Dapatkan Android N SDK</a>
+ <ol>
+ <li><a href="#docs-dl">Dokumentasi referensi</a>
+ </ol>
+ </li>
+ <li><a href="#java8">Dapatkan Java 8 JDK dan JRE</a></li>
+ <li><a href="#create-update">Perbarui atau Buat sebuah Proyek</a></li>
+ <li><a href="#next">Langkah Berikutnya</a></li>
+</ol>
+ </div>
+</div>
+
+<p>Untuk mengembangkan aplikasi bagi Android N Preview, Anda perlu membuat beberapa pembaruan
+pada lingkungan pengembang, seperti dijelaskan pada halaman ini.</p>
+
+<p>Untuk sekedar menguji kompatibilitas aplikasi Anda pada
+citra sistem Android N, ikuti panduan untuk <a href="{@docRoot}preview/download.html">Menguji pada Perangkat Android N</a>.</p>
+
+<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
+
+
+<h2 id="get-as13">Dapatkan Android Studio 2.1 (preview)</h2>
+
+<p>Platform Android N menambahkan dukungan untuk <a href="{@docRoot}preview/j8-jack.html">fitur bahasa Java 8</a>,
+yang memerlukan compiler baru yang disebut Jack. Versi terbaru Jack
+saat ini hanya didukung di Android Studio 2.1. Jadi jika ingin
+menggunakan fitur bahasa Java 8, Anda perlu menggunakan Android Studio 2.1 untuk
+membangun aplikasi. Jika tidak, Anda tidak perlu menggunakan compiler Jack, namun Anda
+tetap perlu memperbarui ke JDK 8 untuk mengompilasi pada platform Android N,
+seperti dijelaskan di bawah ini.
+</p>
+
+<iframe width="400" height="225" src="//www.youtube.com/embed/SBbWGxXCMqQ?autohide=1&amp;showinfo=0" frameborder="0" allowfullscreen="" style="float: right; margin: 0 0 20px 20px;"></iframe>
+
+<p>Android Studio 2.1 saat ini tersedia sebagai preview di
+Canary Release Channel. Jika Anda sudah
+memiliki Android Studio dan tidak ingin memperbarui ke Canary Channel, Anda bisa
+mengunduh Android Studio 2.1 sebagai instalasi terpisah dan menggunakannya
+untuk pengembangan dengan Android N, sehingga membuat lingkungan Android Studio
+utama Anda tidak terpengaruh.</p>
+
+<p>Untuk mengunduh Android Studio 2.1 sebagai instalasi terpisah, ikuti langkah-langkah
+ini (atau jika Anda ingin menerima Android Studio 2.1 sebagai pembaruan pada
+instalasi yang ada, lompat ke langkah 4):</p>
+
+<ol>
+ <li>Edit nama
+ instalasi Android Studio yang ada dan tambahkan nomor versinya. Dengan cara ini,
+ bila Anda menginstal versi baru, versi yang ada tidak akan ditimpa.</li>
+ <li>Unduh file ZIP yang sesuai untuk sistem operasi Anda dari
+ <a href="http://tools.android.com/download/studio/canary/latest">halaman pengunduhan Canary Channel</a>.
+ </li>
+ <li>Unzip paket tersebut kemudian pindahkan konten Android Studio 2.1 ke
+ lokasi yang sesuai untuk aplikasi pada sistem Anda, kemudian jalankan.</li>
+ <li>Buka dialog Settings
+ (<strong>File &gt; Settings</strong> pada Windows/Linux, atau
+ <strong>Android Studio &gt; Preferences</strong> pada Mac). Di panel
+ kiri, pilih <strong>Appearance &amp; Behavior &gt; System Settings &gt;
+ Updates</strong>.
+ </li>
+ <li>Pada panel Updates, pilih kotak cek <strong>Automatically
+ check updates for</strong> dan pilih
+ <strong>Canary Channel</strong> dari daftar tarik-turun.
+ </li>
+</ol>
+
+<p>Biarkan jendela pengaturan ini tetap terbuka untuk langkah berikutnya.</p>
+
+
+<h2 id="get-sdk">Dapatkan N Preview SDK</h2>
+
+<p>Untuk mulai mengembangkan dengan Android N API, Anda perlu menginstal
+Android N Preview SDK di Android Studio sebagai berikut:</p>
+
+<ol>
+ <li>Saat panel Updates masih ditampilkan (langkah 4 dari di atas),
+ pilih kotak cek <strong>Automatically
+ check updates for Android SDK</strong> dan pilih
+ <strong>Preview Channel</strong> dari daftar tarik-turun.
+ </li>
+ <li>Klik <strong>Check Now</strong>.</li>
+
+ <li>Di panel kiri, pilih <strong>Appearance &amp; Behavior &gt;
+ System Settings &gt; Android SDK</strong>.
+
+ <li>Klik tab <strong>SDK Platforms</strong>, kemudian pilih kotak cek
+ <strong>Android N Preview</strong>.</li>
+
+ <li>Klik tab <strong>SDK Tools</strong>, kemudian pilih
+ kotak cek <strong>Android SDK Build Tools</strong>, <strong>Android SDK
+ Platform-Tools</strong>, dan <strong>Android SDK Tools</strong>.
+
+ </li>
+
+ <li>Klik <strong>OK</strong>, kemudian terima
+ perjanjian lisensi untuk setiap paket yang perlu diinstal.
+ </li>
+</ol>
+
+<h3 id="docs-dl">Dapatkan dokumentasi referensi N Preview</h3>
+
+<p>
+ Informasi detail tentang Android N API tersedia dalam dokumentasi referensi N Preview,
+ yang bisa Anda unduh dari tabel berikut.
+ Paket ini berisi versi offline untuk situs web pengembang Android yang disederhanakan,
+ dan termasuk referensi API yang diperbarui untuk Android N API dan
+ laporan perbedaan API.
+</p>
+
+<table>
+ <tr>
+ <th scope="col">Dokumentasi</th>
+ <th scope="col">Checksum</th>
+ </tr>
+ <tr>
+ <td style="white-space: nowrap">
+ <a href="{@docRoot}shareables/preview/n-preview-1-docs.zip">n-preview-1-docs.zip</a></td>
+ <td width="100%">
+ MD5: 4ab33ccbe698f46f125cc5b807cf9c2f<br>
+ SHA-1: 6a3880b3ccd19614daae5a4d0698ea6ae11c20a5
+ </td>
+ </tr>
+<table>
+
+
+
+<h2 id="java8">Dapatkan Java 8 JDK dan JRE</h2>
+
+<p>Untuk mengompilasi aplikasi Anda sesuai platform Android N, Anda perlu menggunakan
+Java 8 Developer Kit (JDK 8), dan untuk menggunakan beberapa alat bersama Android
+Studio 2.1, Anda perlu menginstal Java 8 Runtime Environment (JRE 8). Jadi, jika
+Anda belum versi terbarunya, unduhlah JDK 8 dan JRE 8
+sekarang.</p>
+
+<p>Kemudian atur versi JDK di Android Studio sebagai berikut:</p>
+
+<ol>
+ <li>Buka proyek Android di Android Studio, kemudian buka
+ dialog Project Structure dengan memilih <strong>File &gt;
+ Project Structure</strong>. (Atau, Anda bisa mengatur default
+ untuk semua proyek dengan memilih <strong>File &gt; Other Settings &gt;
+ Default Project Structure</strong>.)
+ </li>
+ <li>Di panel kiri dialog, klik <strong>SDK Location</strong>.
+ </li>
+ <li>Dalam bidang <strong>JDK Location</strong>, masukkan lokasi
+ Java 8 JDK (klik tombol di sebelah kanan
+ untuk menjelajahi file Anda), kemudian klik <strong>OK</strong>.
+ </li>
+</ol>
+
+<img src="{@docRoot}preview/images/studio-jdk-location.jpg" width="700" alt="" />
+
+
+<h2 id="create-update">Perbarui atau Buat sebuah Proyek</h2>
+
+<p>
+ Untuk menggunakan Android N API, proyek Anda harus dikonfigurasi dengan benar.
+</p>
+
+<p>Jika Anda berencana menggunakan fitur bahasa Java 8, Anda juga harus membaca
+<a href="{@docRoot}preview/j8-jack.html">Fitur Bahasa Java 8</a>
+untuk informasi tentang fitur Java 8 yang didukung dan
+cara mengonfigurasi proyek Anda dengan Jack compiler.</p>
+
+
+<h3 id="update">Perbarui proyek yang ada</h3>
+
+<p>Buka file
+ <code>build.gradle</code> untuk modul Anda dan perbarui nilainya sebagai
+ berikut:
+</p>
+
+<pre>
+android {
+ compileSdkVersion <strong>'android-N'</strong>
+ buildToolsVersion <strong>'24.0.0-rc1'</strong>
+ ...
+
+ defaultConfig {
+ minSdkVersion <strong>'N'</strong>
+ targetSdkVersion <strong>'N'</strong>
+ ...
+ }
+ ...
+}</pre>
+
+
+<h3 id="create">Buat proyek baru</h3>
+
+
+<p>Untuk membuat proyek baru bagi pengembangan dengan Android N Preview SDK:</p>
+
+<ol>
+ <li>Klik <strong>File &gt; New Project</strong>, dan ikuti langkah-langkahnya hingga
+ Anda tiba di halaman Target Android Devices.
+ </li>
+ <li>Pada halaman ini, pilih opsi <strong>Phone and Tablet</strong>.</li>
+ <li>Pada opsi <strong>Phone and Tablet</strong>, dalam daftar opsi <strong>Minimum
+ SDK</strong>, pilih
+ <strong>N: Android API 23, N Preview (Preview)</strong>.</li>
+</ol>
+
+
+<h2 id="next">Langkah Berikutnya</h2>
+
+<ul>
+ <li>Ikuti panduan untuk <a href="{@docRoot}preview/download.html">Menguji pada Perangkat Android N</a>.</li>
+ <li>Ketahui selengkapnya tentang platform Android N dengan
+<a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a>
+dan <a href="{@docRoot}preview/api-overview.html">Android N API
+dan Fiturnya</a>.</li>
+</ul>
+