1page.title=Panduan Pengujian 2page.image=images/cards/card-n-guide_2x.png 3meta.tags="preview", "testing" 4page.tags="preview", "developer preview" 5 6@jd:body 7 8<div id="tb-wrapper"> 9 <div id="tb"> 10 <h2>Dalam dokumen ini</h2> 11 <ol> 12 <li><a href="#runtime-permissions">Izin Pengujian</a></li> 13 <li><a href="#doze-standby">Menguji Istirahatkan dan Aplikasi Siaga</a></li> 14 <li><a href="#ids">Pencadangan Otomatis dan Identifier Perangkat</a></li> 15 </ol> 16 </div> 17</div> 18 19<p> 20 Android N memberi Anda kesempatan untuk memastikan aplikasi bekerja pada 21 platform versi berikutnya. Pratinjau ini berisi beberapa API dan perubahan perilaku yang bisa 22 memengaruhi aplikasi Anda, sebagaimana dijelaskan dalam <a href="{@docRoot}preview/api-overview.html">Ringkasan 23 API</a> dan <a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a>. Dalam menguji 24 aplikasi dengan pratinjau, ada beberapa perubahan sistem spesifik yang harus Anda fokuskan untuk 25 memastikan pengguna mendapatkan pengalaman yang bagus. 26</p> 27 28<p> 29 Panduan ini menjelaskan apa dan bagaimana menguji fitur pratinjau dengan aplikasi Anda. Anda harus 30 mengutamakan pengujian fitur pratinjau spesifik ini, dikarenakan pengaruhnya yang besar pada 31 perilaku aplikasi Anda: 32</p> 33 34<ul> 35 <li><a href="#runtime-permissions">Izin</a> 36 </li> 37 <li><a href="#doze-standby">Istirahatkan dan Aplikasi Siaga</a> 38 </li> 39 <li><a href="#ids">Pencadangan Otomatis dan Identifier Perangkat</a></li> 40</ul> 41 42<p> 43 Untuk informasi selengkapnya tentang cara menyiapkan perangkat atau perangkat maya dengan citra sistem pratinjau 44 untuk pengujian, lihat <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan 45Android N SDK</a>. 46</p> 47 48 49<h2 id="runtime-permissions">Izin Pengujian</h2> 50 51<p> 52 Model <a href="{@docRoot}preview/features/runtime-permissions.html">Izin</a> yang baru 53 mengubah cara alokasi izin untuk aplikasi Anda oleh pengguna. Sebagai ganti memberi semua 54 izin selama prosedur pemasangan, aplikasi Anda harus meminta izin kepada pengguna secara individual 55 pada waktu proses. Bagi pengguna, perilaku ini memberi kontrol yang lebih detail atas setiap aktivitas aplikasi, dan 56 juga konteks yang lebih untuk memahami sebab aplikasi meminta izin tertentu. Pengguna 57 bisa memberi atau mencabut izin yang diberikan pada suatu aplikasi secara individual kapan saja. Fitur 58 pratinjau ini kemungkinan besar memengaruhi perilaku aplikasi Anda dan mungkin menghambat fungsi beberapa 59 fitur aplikasi Anda, atau mengurangi kualitas kerjanya. 60</p> 61 62<p class="caution"> 63 Perubahan ini memengaruhi semua aplikasi yang berjalan di platform baru, bahkan aplikasi yang tidak menargetkan versi 64 platform baru. Platform ini memberikan perilaku kompatibilitas terbatas untuk aplikasi lawas, namun Anda 65 harus mulai merencanakan migrasi aplikasi ke model izin baru sekarang juga, dengan tujuan 66 mempublikasikan versi terbaru aplikasi Anda saat peluncuran platform secara resmi. 67</p> 68 69 70<h3 id="permission-test-tips">Tip pengujian</h3> 71 72<p> 73 Gunakan tip berikut untuk membantu Anda merencanakan dan menjalankan pengujian aplikasi dengan 74 perilaku izin yang baru. 75</p> 76 77<ul> 78 <li>Identifikasi izin aplikasi Anda saat ini dan jalur kode terkait.</li> 79 <li>Uji alur pengguna pada semua layanan dan data yang dilindungi izin.</li> 80 <li>Uji dengan berbagai kombinasi izin yang diberikan/dicabut.</li> 81 <li>Gunakan alat bantu {@code adb} untuk mengelola izin dari baris perintah: 82 <ul> 83 <li>Cantumkan daftar izin dan status berdasarkan kelompok: 84 <pre>adb shell pm list permissions -d -g</pre> 85 </li> 86 <li>Beri atau cabut satu atau beberapa izin menggunakan sintaks berikut:<br> 87 <pre>adb shell pm [grant|revoke] <permission.name> ...</pre> 88 </li> 89 </ul> 90 </li> 91 <li>Analisis aplikasi Anda untuk layanan yang menggunakan izin.</li> 92</ul> 93 94<h3 id="permission-test-strategy">Strategi pengujian</h3> 95 96<p> 97 Perubahan izin memengaruhi struktur dan desain aplikasi Anda, begitu juga 98 pengalaman pengguna dan alur yang Anda sediakan untuk pengguna. Anda harus menilai penggunaan izin 99 aplikasi saat ini dan mulai merencanakan alur baru yang ingin ditawarkan. Rilis platform 100 resmi menyediakan perilaku kompatibilitas, namun Anda harus merencanakan pembaruan aplikasi dan tidak 101 bergantung pada perilaku ini. 102</p> 103 104<p> 105 Identifikasi izin yang sebenarnya diperlukan dan digunakan aplikasi Anda, kemudian temukan berbagai 106 jalur kode yang menggunakan layanan yang dilindungi izin. Anda bisa melakukan ini melalui kombinasi 107 pengujian pada platform baru dan analisis kode. Dalam pengujian, Anda harus fokus pada pemilihan 108 izin waktu proses dengan mengubah {@code targetSdkVersion} aplikasi ke versi pratinjau. Untuk 109 informasi selengkapnya, lihat <a href="{@docRoot}preview/setup-sdk.html#">Menyiapkan 110Android N SDK</a>. 111</p> 112 113<p> 114 Uji dengan berbagai kombinasi izin yang dicabut dan ditambahkan, untuk menyoroti alur pengguna yang 115 bergantung pada izin. Jika dependensi tidak jelas atau logis, Anda harus mempertimbangkan 116optimalisasi atau kompartementalisasi alur tersebut untuk mengeliminasi dependensi atau menjelaskan alasan 117 diperlukannya izin. 118</p> 119 120<p> 121 Untuk informasi selengkapnya tentang perilaku izin waktu proses, pengujian, dan praktik terbaik, lihat 122 halaman pratinjau <a href="{@docRoot}preview/features/runtime-permissions.html">Izin</a> 123 pengembang. 124</p> 125 126 127<h2 id="doze-standby">Menguji Istirahatkan dan Aplikasi Siaga</h2> 128 129<p> 130 Fitur penghematan daya Istirahatkan dan Aplikasi Siaga membatasi jumlah pemrosesan latar belakang yang 131 bisa dikerjakan aplikasi Anda saat perangkat dalam keadaan diam atau saat aplikasi Anda sedang tidak fokus. Pembatasan 132 yang dapat diberlakukan oleh sistem pada aplikasi termasuk akses jaringan terbatas atau tidak ada, 133 tugas latar belakang yang ditangguhkan, Pemberitahuan yang ditangguhkan, permintaan membangunkan yang diabaikan, serta alarm. Untuk memastikan 134 aplikasi Anda berperilaku dengan benar pada optimalisasi penghematan daya ini, Anda harus menguji aplikasi dengan 135 menyimulasikan keadaan baterai yang sedang tinggal sedikit ini. 136</p> 137 138<h4 id="doze">Menguji aplikasi Anda dengan Istirahatkan</h4> 139 140<p>Untuk menguji Istirahatkan dengan aplikasi Anda:</p> 141 142<ol> 143<li>Konfigurasikan perangkat keras atau perangkat maya dengan citra sistem Android N.</li> 144<li>Hubungkan perangkat dengan mesin pengembangan dan pasang aplikasi Anda.</li> 145<li>Jalankan aplikasi Anda dan biarkan aktif.</li> 146<li>Simulasikan perangkat yang sedang masuk ke dalam mode Istirahatkan dengan menjalankan perintah berikut: 147 148<pre> 149$ adb shell dumpsys battery unplug 150$ adb shell dumpsys deviceidle step 151$ adb shell dumpsys deviceidle -h 152</pre> 153 154 </li> 155 <li>Amati perilaku aplikasi Anda saat perangkat diaktifkan kembali. Pastikan aplikasi 156 pulih dengan baik saat perangkat keluar dari Istirahatkan.</li> 157</ol> 158 159 160<h4 id="standby">Menguji aplikasi dengan Aplikasi Siaga</h4> 161 162<p>Untuk menguji mode Aplikasi Siaga dengan aplikasi Anda:</p> 163 164<ol> 165 <li>Konfigurasikan perangkat keras atau perangkat maya dengan citra sistem Android N.</li> 166 <li>Hubungkan perangkat dengan mesin pengembangan dan pasang aplikasi Anda.</li> 167 <li>Jalankan aplikasi Anda dan biarkan aktif.</li> 168 <li>Simulasikan aplikasi yang sedang masuk ke dalam mode siaga dengan menjalankan perintah berikut: 169 170<pre> 171$ adb shell am broadcast -a android.os.action.DISCHARGING 172$ adb shell am set-idle <packageName> true 173</pre> 174 175 </li> 176 <li>Simulasikan membangunkan aplikasi Anda menggunakan perintah berikut: 177 <pre>$ adb shell am set-idle <packageName> false</pre> 178 </li> 179 <li>Amati perilaku aplikasi Anda saat dibangunkan. Pastikan aplikasi pulih dengan baik 180 dari mode siaga. Secara khusus, Anda harus memeriksa apakah Pemberitahuan aplikasi dan pekerjaan latar belakang 181 tetap berjalan sebagaimana yang diharapkan.</li> 182</ol> 183 184<h2 id="ids">Auto Backup for Apps dan Identifier Perangkat Spesifik</h2> 185 186<p>Jika aplikasi Anda mempertahankan identifier perangkat spesifik, seperti ID pendaftaran Google 187Cloud Messaging, dalam penyimpanan internal, 188pastikan Anda mengikuti praktik terbaik untuk mengecualikan lokasi 189penyimpanan dari pencadangan otomatis, seperti dijelaskan dalam <a href="{@docRoot}preview/backup/index.html">Auto 190Backup for Apps</a>. </p> 191