Skip to content

Most visited

Recently visited

navigation

Men-debug Aplikasi Anda

Android Studio menyertakan debugger yang memungkinkan Anda untuk men-debug aplikasi yang berjalan pada Android Emulator atau perangkat Android yang terhubung. Dengan debugger Android Studio, Anda bisa:

Untuk memulai debugging, klik Debug di bilah alat. Android Studio membuat APK, menandatanganinya dengan kunci debug, memasangnya pada perangkat yang dipilih, kemudian menjalankannya dan membuka jendela Debug, seperti yang ditunjukkan pada gambar 1. Jika Anda menambahkan kode C dan C++ ke proyek Anda, Android Studio juga akan menjalankan LLDB debugger di jendela Debug untuk men-debug kode asli Anda.

Jika tidak ada perangkat yang terlihat di jendela Select Deployment Target setelah Anda mengeklik Debug, maka Anda perlu menghubungkan perangkat atau mengeklik Create New Emulator untuk menyiapkan Android Emulator.

Gambar 1. Jendela Debugger, menunjukkan thread saat ini dan pohon objek untuk variabel.

Jika aplikasi sudah berjalan pada perangkat atau emulator yang terhubung, Anda bisa memulai debugging seperti berikut:

  1. Klik Attach debugger to Android process .
  2. Pada dialog Choose Process, pilih proses yang ingin Anda berikan debugger.

    Secara default, debugger menampilkan perangkat dan proses aplikasi untuk proyek saat ini, serta perangkat keras atau perangkat virtual yang terhubung pada komputer Anda. Pilih Show all processes untuk menampilkan semua proses pada semua perangkat; tampilan berisi semua layanan yang dibuat aplikasi serta proses sistem, misalnya.

    Dari menu Debugger, Anda bisa memilih tipe debug yang berbeda. Secara default, Android Studio menggunakan tipe debug Auto untuk memilih opsi debugger terbaik bagi Anda, berdasarkan pada apakah proyek Anda menyertakan kode Java atau C/C++.

  3. Klik OK.

    Muncul jendela Debug. Dalam hal ini, perhatikan dua tab di sebelah kanan judul jendela Debug: satu tab untuk melakukan debug kode asli dan yang lainnya untuk kode Java, seperti yang ditunjukkan oleh -java.

    Sesi debugging terpisah memiliki tab terpisah dan nomor porta berbeda, yang ditampilkan dengan tanda kurung dalam tab.

  4. Untuk mengakhiri sesi debug, klik tab untuk sesi tersebut, kemudian klik Terminate .

Catatan: Debugger dan pengumpul sampah Android Studio terintegrasi dengan bebas. Mesin virtual Android menjamin bahwa setiap objek yang diketahui debugger, tidak akan dikumpulkan sampahnya sampai setelah debugger terputus koneksinya. Hal ini bisa mengakibatkan penumpukan objek dari waktu ke waktu ketika debugger terhubung. Misalnya, jika debugger melihat thread yang berjalan, objek Thread yang berkaitan tidak dapat dikumpulkan sampahnya bahkan setelah thread berakhir.

Tipe debug

Secara default, Android Studio menggunakan tipe debug Auto untuk memutuskan mana debugger yang digunakan, sehingga Anda tidak perlu mengubah konfigurasi ketika beralih antara debugging kode Java dan C/C++. Namun, Anda bisa membuat atau mengedit konfigurasi debug untuk menyesuaikan setelan tertentu, seperti menambahkan direktori simbol atau perintah LLDB, atau menggunakan tipe debug yang berbeda. Anda juga bisa memilih tipe debug dari daftar tarik-turun Debugger dalam dialog Choose Process ketika Anda menyematkan debugger pada proses Android yang sedang berjalan.

Tipe debug yang tersedia untuk Anda berisi hal berikut ini:

Auto
Pilih jika Anda menginginkan Android Studio untuk secara otomatis memilih pilihan terbaik untuk kode yang sedang Anda debug. Misalnya, jika Anda memiliki kode C atau C++ dalam proyek, Android Studio secara otomatis menggunakan tipe debug Hybrid. Jika tidak, Android Studio menggunakan tipe debug Java.
Java
Pilih jika Anda hanya ingin men-debug kode yang ditulis dalam Java—debugger Java mengabaikan semua breakpoint atau jam yang diatur dalam kode asli.
Native
Pilih jika Anda hanya ingin menggunakan LLDB untuk men-debug kode. Bila menggunakan tipe debug ini, tampilan sesi debugger Java tidak tersedia. Secara default, LLDB hanya memeriksa kode asli Anda dan mengabaikan breakpoint dalam kode Java. Jika Anda juga ingin men-debug kode Java, Anda harus beralih ke tipe debug Auto atau Hybrid.
Hybrid
Pilih jika Anda ingin beralih antara debugging kode Java dan native. Android Studio menyematkan debugger Java dan LLDB ke proses aplikasi, satu untuk debugger Java dan satu untuk LLDB, sehingga Anda bisa memeriksa breakpoint baik di kode Java maupun asli tanpa memulai ulang aplikasi atau mengubah konfigurasi debug.

Catatan: Android Studio menyediakan fitur eksperimental debugger C++ sadar-Java yang memungkinkan Anda untuk men-debug breakpoint C/C++ dan Java menggunakan proses LLDB tunggal. Meskipun fitur ini masih dalam development, Anda bisa mencobanya sendiri di Android Studio 2.2 dan yang lebih tinggi. Untuk mengetahui selengkapnya, kunjungi situs web Android Tools.

Menggunakan log sistem

Log sistem menampilkan pesan sistem ketika Anda men-debug aplikasi. Pesan ini berisi informasi dari aplikasi yang berjalan pada perangkat. Jika Anda ingin menggunakan log sistem untuk men-debug aplikasi, pastikan kode Anda menulis pesan log dan mencetak pelacakan tumpukan untuk pengecualian ketika aplikasi dalam tahap development.

Mencatat pesan log dalam kode Anda

Untuk mencatat pesan log dalam kode Anda, gunakan kelas Log. Pesan log membantu Anda memahami alur eksekusi dengan mengumpulkan keluaran debug sistem saat Anda berinteraksi dengan aplikasi. Pesan log bisa memberi tahu Anda tentang bagian aplikasi yang gagal berfungsi. Untuk informasi selengkapnya tentang pembuatan log, lihat Membaca dan Menulis Log.

Contoh berikut menunjukkan bagaimana Anda bisa menambahkan pesan log untuk menentukan apakah informasi status sebelumnya tersedia ketika aktivitas dimulai:

import android.util.Log;
...
public class MyActivity extends Activity {
    private static final String TAG = MyActivity.class.getSimpleName();
    ...
    @Override
    public void onCreate(Bundle savedInstanceState) {
        if (savedInstanceState != null) {
            Log.d(TAG, "onCreate() Restoring previous state");
            /* restore state */
        } else {
            Log.d(TAG, "onCreate() No saved state available");
            /* initialize app */
        }
    }
}

Selama development, kode Anda juga bisa menangkap pengecualian dan menulis pelacakan tumpukan ke sistem log:

void someOtherMethod() {
    try {
        ...
    } catch (SomeException e) {
        Log.d(TAG, "someOtherMethod()", e);
    }
}

Catatan: Membuang pesan log debug dan panggilan cetak pelacakan tumpukan dari kode ketika Anda siap mempublikasikan aplikasi. Anda bisa melakukan ini dengan menyetel flag DEBUG dan menempatkan pesan log debug dalam pernyataan bersyarat.

Menampilkan log sistem

Android DDMS (Dalvik Debug Monitor Server) dan jendela Android Monitor menampilkan log dari sistem dan setiap proses aplikasi. Untuk menampilkan log sistem pada jendela alat Android DDMS:

  1. Mulai aplikasi seperti yang dijelaskan di Menjalankan Aplikasi Anda dalam Mode Debug.
  2. Klik Android Monitor .
  3. Jika log sistem kosong dalam tampilan Logcat, klik Restart .

Gambar 2. Log sistem di jendela alat Android DDMS.

Jendela alat Android DDMS menyediakan akses ke beberapa fitur DDMS dari Android Studio. Untuk informasi selengkapnya tentang DDMS, lihat Menggunakan DDMS.

Log sistem menampilkan pesan dari layanan Android dan aplikasi Android lainnya. Untuk memfilter pesan log agar hanya menampilkan yang menarik bagi Anda, gunakan alat di jendela Android DDMS:

Bekerja dengan breakpoint

Android Studio mendukung beberapa tipe breakpoint yang memicu tindakan debug yang berbeda. Tipe yang paling umum adalah breakpoint baris yang menghentikan sementara eksekusi aplikasi pada baris kode yang ditetapkan. Ketika berhenti, Anda bisa memeriksa variabel, mengevaluasi ekspresi, kemudian melanjutkan eksekusi baris demi baris untuk menentukan penyebab kesalahan waktu proses.

Untuk menambahkan breakpoint baris, lakukan seperti berikut:

  1. Cari baris kode tempat eksekusi akan dihentikan sementara, lalu klik gutter kiri di sepanjang baris kode tersebut atau menempatkan tanda sisip pada baris dan tekan Control+F8 (pada Mac, Command+F8).
  2. Jika aplikasi sudah berjalan, Anda tidak perlu memperbaruinya untuk menambahkan breakpoint—cukup klik Attach debugger to Android proccess . Jika tidak, mulai debug dengan mengeklik Debug .

Gambar 3. Titik merah akan muncul di sebelah baris ketika Anda menetapkan breakpoint.

Bila eksekusi kode sudah mencapai breakpoint, Android Studio akan menghentikan sementara eksekusi aplikasi Anda. Anda kemudian bisa menggunakan alat di tab Debugger untuk mengidentifikasi status aplikasi:

Jika proyek Anda menggunakan kode asli, secara default, tipe debug Auto menyematkan debugger Java dan LLDB untuk aplikasi sebagai dua proses yang terpisah, sehingga Anda bisa beralih antara memeriksa breakpoint C/C++ dan Java tanpa memulai ulang aplikasi atau mengubah setelan.

Catatan: Agar Android Studio mendeteksi breakpoint dalam kode C atau C++, Anda harus menggunakan tipe debug yang mendukung LLDB, seperti Auto, Native, atau Hybrid. Anda bisa mengubah tipe debug yang digunakan Android Studio dengan mengedit konfigurasi debug. Untuk mengetahui selengkapnya tentang tipe debug yang berbeda, baca bagian tentang menggunakan tipe debug lainnya.

Ketika Android Studio menerapkan aplikasi ke perangkat target, jendela Debug terbuka dengan tab, atau tampilan sesi debug, untuk setiap proses debugger, seperti yang ditunjukkan pada gambar 4.

Gambar 4. Men-debug kode asli menggunakan LLDB.

  1. Android Studio secara otomatis beralih ke tab <your-module> ketika debugger LLDB menjumpai breakpoint dalam kode C/C++. Panel Frames, Variables, dan Watches juga tersedia dan bekerja sama persis seperti ketika Anda men-debug kode Java. Meskipun panel Threads tidak tersedia dalam tampilan sesi LLDB, Anda bisa mengakses proses aplikasi menggunakan daftar tarik-turun di panel Frames. Anda bisa mengetahui selengkapnya tentang panel ini di bagian tentang cara Men-debug Window Frames dan Memeriksa Variabel.

    Catatan: Ketika memeriksa breakpoint dalam kode asli, sistem Android menangguhkan mesin virtual yang menjalankan bytecode Java aplikasi. Ini berarti bahwa Anda tidak bisa berinteraksi dengan debugger Java atau mengambil informasi status apa pun dari sesi debugger Java saat memeriksa breakpoint dalam kode asli.

  2. Android Studio secara otomatis beralih ke tab <your-module>-java ketika debugger Java menjumpai breakpoint dalam kode Java Anda.
  3. Ketika melakukan debug dengan LLDB, Anda bisa menggunakan terminal LLDB dalam tampilan sesi LLDB untuk meneruskan pilihan baris perintah ke LLDB.

    Tip: Jika Anda memiliki perintah tertentu yang diinginkan agar dieksekusi oleh LLDB setiap kali Anda memulai debug aplikasi, baik sebelum atau sesudah debugger yang disematkan ke proses aplikasi, Anda bisa menambahkan perintah tersebut ke konfigurasi debug.

Ketika men-debug kode C/C++, Anda juga bisa mengatur tipe breakpoint khusus, bernama watchpoint, yang dapat menangguhkan proses aplikasi ketika aplikasi Anda berinteraksi dengan blok memori tertentu. Untuk mengetahui selengkapnya, baca bagian tentang cara menambahkan watchpoint.

Menampilkan dan mengonfigurasi breakpoint

Untuk menampilkan semua breakpoint dan mengonfigurasi setelan breakpoint, klik View Breakpoints di sisi kiri jendela Debug. Jendela Breakpoints muncul, seperti yang ditunjukkan pada gambar 5.

Gambar 5. Jendela Breakpoints memperlihatkan daftar semua breakpoint saat ini dan menyertakan setelan perilaku untuk masing-masing.

Jendela Breakpoints memungkinkan Anda untuk mengaktifkan atau menonaktifkan setiap breakpoint dari daftar di sebelah kiri. Jika breakpoint dinonaktifkan, Android Studio tidak menghentikan aplikasi ketika menemukan breakpoint tersebut. Pilih breakpoint dari daftar untuk mengonfigurasi setelannya. Anda bisa mengonfigurasi breakpoint agar dinonaktifkan pada awalnya dan meminta sistem mengaktifkannya setelah menemukan breakpoint yang berbeda. Anda juga bisa mengonfigurasi apakah sebuah breakpoint harus dinonaktifkan setelah ditemukan. Untuk mengatur sebuah breakpoint agar masuk dalam pengecualian, pilih Exception Breakpoints dalam daftar breakpoint.

Men-debug bingkai jendela

Dalam jendela Debugger, panel Frames memungkinkan Anda untuk memeriksa tumpukan bingkai yang menyebabkan breakpoint saat ini ditemukan. Hal ini memungkinkan Anda untuk menjelajahi dan memeriksa tumpukan bingkai dan juga memeriksa daftar thread di aplikasi Android. Untuk memilih thread, gunakan pemilih thread tarik-turun dan melihat tumpukan bingkainya. Mengeklik elemen dalam bingkai akan membuka sumber dalam editor. Anda juga bisa menyesuaikan presentasi thread dan mengekspor tumpukan bingkai seperti yang dibahas dalam Panduan Window Frames.

Memeriksa variabel

Pada jendela Debugger, panel Variables memungkinkan Anda untuk memeriksa variabel ketika sistem menghentikan aplikasi pada breakpoint dan Anda memilih bingkai dari panel Frames. Panel Variables juga memungkinkan Anda untuk mengevaluasi ekspresi ad-hoc menggunakan metode statis dan/atau variabel yang tersedia dalam frame yang dipilih.

Panel Watches menyediakan fungsionalitas yang sama kecuali bahwa ekspresi yang ditambahkan ke panel Watches akan terus ada di antara sesi debugging. Anda harus menambahkan jam tangan untuk variabel dan bidang yang sering Anda akses atau yang menyediakan keadaan yang membantu untuk sesi debugging saat ini. Panel Variables dan Watches ditampilkan seperti diperlihatkan pada gambar 5.

Untuk menambahkan variabel atau ekspresi ke daftar Watches, ikuti langkah-langkah berikut:

  1. Mulai debugging.
  2. Pada panel Watches, klik Add .
  3. Dalam kotak teks yang muncul, ketik nama variabel atau ekspresi yang ingin Anda lihat dan kemudian tekan Enter.

Untuk membuang item dari daftar Watches, pilih item dan kemudian klik Remove .

Anda bisa mengubah urutan elemen dalam daftar Watches dengan memilih item lalu mengeklik Naik atau Turun .

Gambar 6. Panel Variables dan Watches di jendela Debugger.

Menambahkan watchpoint

Ketika melakukan debug kode C/C++, Anda bisa mengatur tipe breakpoint khusus, bernama watchpoint, yang dapat menangguhkan proses aplikasi ketika aplikasi Anda berinteraksi dengan blok memori tertentu. Misalnya, jika Anda menetapkan dua pointer ke blok memori dan menetapkan watchpoint ke situ, maka menggunakan salah satu pointer untuk mengakses blok memori akan memicu watchpoint tersebut.

Di Android Studio, Anda bisa membuat watchpoint selama waktu proses dengan memilih variabel tertentu, namun LLDB menetapkan watchpoint hanya untuk blok memori yang dialokasikan sistem ke variabel tersebut, bukan variabel itu sendiri. Hal ini berbeda dari menambahkan variabel ke panel Watches, yang memungkinkan Anda untuk mengamati nilai variabel namun tidak mengizinkan Anda untuk menangguhkan proses aplikasi ketika sistem membaca atau mengubah nilai dalam memori.

Catatan: Ketika proses aplikasi keluar, fungsi dan sistem mengalokasikan kembali variabel lokal dari memori, Anda harus menetapkan ulang setiap watchpoint yang Anda buat untuk variabel tersebut.

Agar dapat menyetel watchpoint, Anda harus memenuhi persyaratan berikut:

Jika Anda memenuhi persyaratan di atas, Anda bisa menambahkan watchpoint sebagai berikut:

  1. Ketika aplikasi ditangguhkan pada breakpoint, arahkan ke panel Variables dalam tampilan sesi LLDB.
  2. Klik kanan pada variabel yang menempati blok memori yang ingin Anda lacak dan pilih Add Watchpoint. Sebuah dialog untuk mengonfigurasi watchpoint akan muncul, seperti yang ditunjukkan pada gambar 7.

    Gambar 7. Menambahkan watchpoint ke variabel dalam memori.

  3. Mengonfigurasi watchpoint Anda dengan opsi berikut:
    • Enabled: Anda bisa membatalkan opsi ini jika Anda ingin memerintahkan Android Studio untuk mengabaikan watchpoint pada saat ini. Android Studio tetap menyimpan watchpoint sehingga Anda bisa mengaksesnya lagi di sesi debug.
    • Suspend: Secara default, sistem Android menangguhkan proses aplikasi ketika mengakses blok memori yang Anda tetapkan untuk watchpoint. Anda bisa membatalkan pilihan ini jika Anda tidak menginginkan perilaku ini—ini menunjukkan opsi tambahan yang dapat digunakan untuk menyesuaikan perilaku ketika sistem berinteraksi dengan watchpoint: Mencatat pesan ke konsol dan Membuang [watchpoint] ketika ditemukan.
    • Access Type: Pilih apakah aplikasi Anda harus memicu watchpoint ketika mencoba Read atau Write ke blok memori yang dialokasikan sistem untuk variabel. Untuk memicu watchpoint Anda pada mode baca atau tulis, pilih Any.
  4. Klik Done.

Untuk menampilkan semua watchpoint dan mengonfigurasi setelan watchpoint, klik View Breakpoints di sisi kiri jendela Debug. Dialog Breakpoints terlihat, seperti yang ditunjukkan pada gambar 8.

Gambar 8. Dialog Breakpoints berisi daftar watchpoint saat ini dan menyertakan setelan perilaku untuk setiap dari mereka.

Setelah Anda menambahkan watchpoint, klik Resume Program di sisi kiri jendela Debug untuk melanjutkan proses aplikasi. Secara default, jika aplikasi mencoba untuk mengakses blok memori yang telah ditetapkan watchpoint, sistem Android akan menangguhkan proses aplikasi dan ikon watchpoint ( ) akan muncul di sebelah baris kode yang terakhir dijalankan aplikasi Anda, seperti yang ditunjukkan pada gambar 9.

Gambar 9. Android Studio menunjukkan baris kode yang dijalankan aplikasi Anda sebelum memicu watchpoint.

Melacak alokasi objek

Android Studio memungkinkan Anda melacak objek yang dialokasikan pada heap Java dan melihat mana kelas-kelas dan thread yang mengalokasikan objek-objek ini. Hal ini memungkinkan Anda untuk melihat daftar objek yang dialokasikan selama periode ketertarikan. Informasi ini sangat berharga untuk mengkaji penggunaan memori yang bisa memengaruhi kinerja aplikasi.

  1. Jalankan aplikasi Anda seperti yang dijelaskan dalam Run Your App in Debug Mode, dan pilih View > Tool Windows > Android Monitor (atau klik Android Monitor di bilah jendela).
  2. Pada jendela Android Monitor, klik tab Monitors.
  3. Di jendela bagian atas, pilih perangkat dan proses aplikasi dari daftar tarik-turun.
  4. Di panel Memory, klik Start Allocation Tracking .
  5. Gunakan aplikasi pada perangkat.
  6. Klik tombol yang sama lagi untuk Stop Allocation Tracking.

Android Monitor menampilkan informasi tentang penggunaan Memori, CPU, GPU, dan Jaringan aplikasi. Lihat Dasar-Dasar Android Monitor untuk informasi tentang cara menggunakan Android Monitor. Lihat juga Ringkasan Android Monitor untuk pengenalan fitur Android Monitor, yang meliputi logging catalog (logcat), monitor kinerja, alat analisis data, serta alat tangkap layar dan video.

Gambar 10. Pelacakan alokasi objek di Android Studio.

Menampilkan dan mengubah format tampilan nilai sumber daya

Dalam mode debug, Anda bisa menampilkan nilai-nilai sumber daya dan memilih format tampilan yang berbeda. Dengan tab Variables ditampilkan dan bingkai telah dipilih, lakukan hal berikut:

  1. Dalam daftar Variables, klik kanan di mana saja pada baris sumber daya untuk menampilkan daftar tarik-turun.
  2. Pada daftar tarik-turun, pilih View as dan pilih format yang ingin Anda gunakan.

    Format yang tersedia tergantung pada tipe data sumber daya yang Anda pilih. Anda mungkin melihat satu atau beberapa pilihan berikut:

    • Class: Menampilkan definisi kelas.
    • toString: Menampilkan format string.
    • Object: Menampilkan definisi (instance dari kelas) objek.
    • Array: Menampilkan dalam format larik.
    • Timestamp: Menampilkan tanggal dan waktu dalam format berikut: yyyy-mm-dd hh:mm:ss.
    • Auto: Android Studio memilih format terbaik berdasarkan tipe data.
    • Binary: Menampilkan nilai biner menggunakan nol dan satu.
    • MeasureSpec: Nilai yang diberikan dari induk ke anak yang dipilih. Lihat MeasureSpec.
    • Hex: Ditampilkan sebagai nilai heksadesimal.
    • Primitive: Ditampilkan sebagai nilai numerik menggunakan tipe data primitif.
    • Integer: Menampilkan nilai numerik bertipe Integer.

Anda bisa membuat format khusus (tipe data renderer), seperti berikut:

  1. Klik kanan nilai sumber daya.
  2. Pilih View as.
  3. Pilih Create. Tampilan dialog Java Data Type Renderers.
  4. Ikuti petunjuk pada Java Data Type Renderers.

Menganalisis metrik waktu proses untuk mengoptimalkan Aplikasi Anda

Bahkan jika aplikasi Anda tidak menghasilkan kesalahan waktu proses, tidak berarti itu bebas dari masalah. Anda juga harus mempertimbangkan masalah-masalah berikut:

Android Device Monitor adalah alat mandiri dengan Graphical User Interface untuk beberapa debugging aplikasi Android dan alat analisis Android, termasuk Dalvik Debug Monitor Server (DDMS). Anda bisa menggunakan Android Device Monitor untuk menganalisis penggunaan memori, metode profil, memonitor lalu lintas jaringan dan menyimulasikan pesan dan panggilan masuk.

Untuk membuka Android Device Monitor dari Android Studio, klik Monitor pada bilah alat. Android Device Monitor terbuka di jendela baru.

Untuk informasi selengkapnya tentang Android Device Monitor dan DDMS, lihat Device Monitor dan Menggunakan DDMS.

Mengambil tangkapan layar dan video

Android Studio memungkinkan Anda untuk mengambil tangkapan layar atau video pendek dari layar perangkat selagi aplikasi berjalan. Tangkapan layar dan video berguna sebagai materi promosi untuk aplikasi, dan Anda juga bisa melampirkannya untuk laporan bug yang dikirimkan ke tim development.

Untuk mengambil tangkapan layar dari aplikasi:

  1. Mulai aplikasi seperti yang dijelaskan di Menjalankan Aplikasi Anda dalam Mode Debug.
  2. Klik Android Monitor .
  3. Klik Screen Capture di sebelah kiri.
  4. Opsional: Untuk menambahkan bingkai perangkat di sekitar tangkapan layar, klik Frame screenshot.
  5. Klik Save.

Untuk merekam video aplikasi Anda:

  1. Mulai aplikasi seperti yang dijelaskan di Menjalankan Aplikasi Anda dalam Mode Debug.
  2. Klik Android Monitor .
  3. Klik Screen Record di sebelah kiri.
  4. Klik Start Recording.
  5. Gunakan aplikasi.
  6. Klik Stop Recording.
  7. Masukkan nama file untuk rekaman tersebut dan klik OK.
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)