Membuat dan menjalankan aplikasi Anda

Android Studio menyiapkan project baru untuk di-deploy ke Android Emulator atau perangkat yang terhubung hanya dengan beberapa klik. Setelah aplikasi Anda diinstal, Instant Run memungkinkan Anda mengirimkan perubahan kode tanpa perlu membuat APK baru.

Untuk membuat dan menjalankan aplikasi, pilih Run > Run di panel menu (atau klik Run di toolbar). Jika ini pertama kalinya aplikasi dijalankan, Android Studio akan meminta Anda untuk memilih target deployment seperti ditunjukkan pada gambar 1. Pilih perangkat untuk menginstal dan menjalankan aplikasi Anda.

Gambar 1. Dialog Select Deployment Target menampilkan perangkat yang tersedia

Jika dialog ini menampilkan pesan "No USB devices or running emulators detected", berarti Anda perlu menyiapkan dan menghubungkan perangkat atau meluncurkan emulator dengan mengklik perangkat yang tercantum pada daftar Available Virtual Devices. Jika tidak ada perangkat virtual yang tercantum pada daftar, klik Create New Virtual Device dan ikuti wizard Virtual Device Configuration (lihat Membuat dan Mengelola Perangkat Virtual).

Untuk menampilkan dialog Select Deployment Target, batalkan pilihan Use same device for future launches atau hentikan aplikasi dengan mengklik Run > Stop aplikasi atau Stop , lalu mulai lagi.

Catatan: Anda juga dapat men-deploy aplikasi dalam mode debug dengan mengeklik Debug . Menjalankan aplikasi dalam mode debug memungkinkan Anda menetapkan titik henti sementara dalam kode, memeriksa variabel dan mengevaluasi ekspresi saat runtime, dan menjalankan fitur debug. Untuk mempelajari lebih lanjut, lihat Men-debug Aplikasi Anda.

Mengubah konfigurasi run/debug

Saat Anda menjalankan aplikasi untuk pertama kalinya, Android Studio akan menggunakan konfigurasi run default. Konfigurasi run menentukan apakah aplikasi akan di-deploy dari APK atau Android App Bundle, modul yang akan dijalankan, paket yang akan di-deploy, aktivitas yang akan dimulai, perangkat target, setelan emulator, opsi logcat, dan banyak lagi.

Konfigurasi run/debug default akan membuat APK, meluncurkan aktivitas project default, dan menggunakan dialog Select Deployment Target untuk pemilihan perangkat target. Jika setelan default ini tidak sesuai dengan project atau modul Anda, Anda dapat menyesuaikan konfigurasi run/debug, atau bahkan membuat konfigurasi baru, pada tingkat project, default, dan modul. Untuk mengedit konfigurasi run/debug, pilih Run > Edit Configurations. Untuk informasi selengkapnya, lihat Membuat dan Mengedit Konfigurasi Run/Debug.

Mengubah varian build

Secara default, Android Studio akan membuat versi debug aplikasi Anda saat Anda mengklik Run. Versi ini hanya untuk digunakan selama pengembangan.

Untuk mengubah varian build yang digunakan Android Studio, pilih Build > Select Build Variant pada panel menu (atau klik Build Variants pada panel jendela fitur), lalu pilih varian build dari menu drop-down. Secara default, project baru disiapkan dengan dua varian build: varian debug dan varian rilis. Anda perlu membuat varian rilis untuk menyiapkan aplikasi untuk rilis publik.

Untuk membuat variasi lain dari aplikasi Anda, masing-masing dengan fitur atau persyaratan perangkat yang berbeda, Anda dapat menentukan varian build tambahan.

Membuat project Anda

Tombol Run membuat dan men-deploy aplikasi Anda ke perangkat. Namun, untuk membuat aplikasi yang akan dibagikan atau diupload ke Google Play, Anda harus menggunakan salah satu opsi pada menu Build untuk mengompilasi bagian-bagian atau semua project Anda. Sebelum memilih salah satu opsi build yang tercantum pada tabel 1, terlebih dahulu pastikan Anda memilih varian build yang ingin Anda gunakan.

Tabel 1. Opsi build pada menu Build.

Item Menu Deskripsi
Make Module Mengompilasi semua file sumber dalam modul yang dipilih, yang telah dimodifikasi sejak build terakhir, dan semua modul yang menjadi dependensi dari modul yang dipilih secara rekursif. Kompilasi ini mencakup file sumber dependen dan semua tugas build yang terkait. Anda dapat memilih modul yang akan dibuat dengan memilih nama modul atau salah satu filenya di jendela Project. Perintah ini tidak menghasilkan APK.
Make Project Membuat semua modul.
Clean Project Menghapus semua file build perantara/cache.
Rebuild Project Menjalankan Clean Project untuk varian build yang dipilih dan menghasilkan APK.
Build Bundle(s) / APK(s) > Build APK(s)

Membuat APK dari semua modul dalam project saat ini untuk varian yang dipilih. Setelah build selesai, notifikasi konfirmasi ditampilkan, yang menyediakan link ke file APK dan link untuk menganalisisnya di Penganalisis APK.

Jika varian build yang Anda pilih adalah jenis build debug, maka APK akan ditandatangani dengan kunci debug dan siap diinstal. Jika Anda telah memilih varian rilis, maka secara default APK tidak ditandatangani dan Anda harus menandatangani APK secara manual. Atau, Anda dapat memilih Build > Generate Signed Bundle / APK dari panel menu.

Android Studio menyimpan APK yang Anda buat di project-name/module-name/build/outputs/apk/.

Build Bundle(s) / APK(s) > Build Bundle(s)

Membuat Android App Bundle dari semua modul dalam project saat ini untuk varian yang dipilih. Setelah build selesai, notifikasi konfirmasi ditampilkan, yang menyediakan link ke app bundle dan link untuk menganalisisnya di Penganalisis APK.

Jika varian build yang Anda pilih adalah jenis build debug, maka app bundle akan ditandatangani dengan kunci debug, dan Anda dapat menggunakan bundletool untuk men-deploy aplikasi dari app bundle ke perangkat yang terhubung. Jika Anda memilih varian rilis, maka app bundle secara default tidak ditandatangani, dan Anda harus menandatanganinya secara manual menggunakan jarsigner. Atau, Anda dapat memilih Build > Generate Signed Bundle / APK dari panel menu.

Android Studio menyimpan APK yang Anda buat di project-name/module-name/build/outputs/bundle/.

Generate Signed Bundle / APK Memunculkan dialog dengan wizard untuk menyiapkan konfigurasi penandatanganan baru, dan membuat APK atau app bundle bertanda tangan. Anda harus menandatangani aplikasi dengan kunci rilis sebelum dapat menguploadnya ke Konsol Play. Untuk informasi selengkapnya tentang penandatanganan aplikasi, lihat Menandatangani aplikasi Anda.

Catatan: Tombol Run membuat APK dengan testOnly="true", yang berarti APK hanya dapat diinstal melalui adb (yang digunakan Android Studio). Jika Anda menginginkan APK yang dapat di-debug, yang dapat diinstal tanpa adb, pilih varian debug, lalu klik Build Bundle(s) / APK(s) > Build APK(s).

Untuk detail tentang tugas-tugas yang dijalankan Gradle untuk setiap perintah, buka jendela Build seperti yang dijelaskan di bagian berikutnya. Untuk informasi selengkapnya tentang Gradle dan proses build, lihat Mengonfigurasi Build Anda.

Memantau proses build

Anda dapat melihat detail proses build dengan mengklik View > Tool Windows > Build (atau dengan mengklik Build di panel jendela fitur). Jendela ini menampilkan tugas-tugas yang dijalankan Gradle untuk membuat aplikasi Anda, seperti ditunjukkan pada gambar 2.

Gambar 2. Jendela output Build di Android Studio

  1. Tab Build: Menampilkan tugas-tugas yang dijalankan Gradle sebagai sebuah hierarki, di mana setiap node mewakili fase pembuatan atau sekelompok dependensi tugas. Jika Anda menerima error selama proses pembuatan atau kompilasi build, periksa hierarki dan pilih sebuah elemen untuk membaca output error-nya, seperti ditunjukkan pada gambar 3 di bawah ini.

    Gambar 3. Periksa jendela output Build untuk melihat pesan error

  2. Tab Sync: Menampilkan tugas-tugas yang dijalankan Gradle untuk menyinkronkan dengan file project Anda. Mirip dengan tab Build, jika Anda menemukan error sinkronisasi, pilih sebuah elemen pada hierarki untuk menemukan informasi selengkapnya tentang error tersebut.
  3. Restart: Melakukan tindakan yang sama seperti memilih Build > Make Project dengan membuat file build perantara untuk semua modul dalam project Anda.
  4. Toggle view: Beralih antara menampilkan eksekusi tugas sebagai hierarki grafis dan menampilkan output teks yang lebih mendetail dari Gradle — ini adalah output yang sama dengan yang Anda lihat di jendela Gradle Console pada Android Studio 3.0 dan yang lebih lama.

Jika varian build Anda menggunakan ragam produk, Gradle juga memanggil tugas untuk membuat ragam produk tersebut. Untuk melihat daftar semua tugas build yang tersedia, klik View > Tool Windows > Gradle (atau klik Gradle pada panel jendela fitur).

Jika terjadi error selama proses build, Gradle dapat merekomendasikan beberapa opsi command line untuk membantu Anda menyelesaikan masalah, seperti --stacktrace atau --debug. Untuk menggunakan opsi command line dengan proses build Anda:

  1. Buka dialog Settings atau Preferences:
    • Pada Windows atau Linux, pilih File > Settings dari panel menu.
    • Pada Mac OSX, pilih Android Studio > Preferensi dari panel menu.
  2. Arahkan ke Build, Execution, Deployment > Compiler.
  3. Dalam kolom teks di samping Command-line Options, masukkan opsi command line Anda.
  4. Klik OK untuk menyimpan dan keluar.

Gradle menerapkan opsi command line ini saat berikutnya Anda mencoba membuat aplikasi.

Tentang Instant Run

Pada Android Studio 2.3 dan yang lebih tinggi, Instant Run mengurangi secara signifikan waktu yang diperlukannya untuk mengupdate APK dengan perubahan kode dan resource. Setelah men-deploy aplikasi Anda ke perangkat target yang menjalankan Android 5.0 (API level 21) atau yang lebih tinggi, Anda dapat mengklik Apply Changes untuk mengirim perubahan kode dan resource tertentu ke aplikasi yang sedang berjalan tanpa membuat APK baru — dan, dalam beberapa kasus, bahkan tanpa memulai ulang aktivitas saat ini. Tombol Run dan Debug selalu tersedia saat Anda ingin mengirim perubahan dan memaksa aplikasi dimulai ulang. Namun, Anda mungkin mendapati bahwa penggunaan tombol Apply Changes menyediakan alur kerja yang lebih cepat untuk sebagian besar perubahan inkremental pada aplikasi Anda.

Tips: Anda juga dapat menekan Control + F10 (atau Control + Command + R pada Mac) untuk menerapkan perubahan dengan Instant Run.

Tindakan Apply Changes hanya tersedia saat Anda memenuhi kondisi berikut:

  • Membuat APK aplikasi menggunakan varian build debug. Instant Run belum didukung saat Anda melakukan deployment dari app bundle.
  • Menggunakan Android Gradle Plugin versi 2.3.0 atau yang lebih tinggi.
  • Menetapkan minSdkVersion ke 15 atau lebih tinggi pada file build.gradle tingkat modul aplikasi.
  • Men-deploy aplikasi ke perangkat target yang menjalankan Android 5.0 (API level 21) dan yang lebih tinggi.

Untuk informasi selengkapnya tentang mengaktifkan Instant Run, buka bagian tentang mengonfigurasi project.

Instant Run mengirim perubahan Anda dengan melakukan hot swap, warm swap, atau cold swap— jenis swap yang dijalankan bergantung pada jenis perubahan yang Anda buat. Saat Anda mengklik Apply Changes setelah membuat perubahan kode atau resource pada aplikasi yang sedang berjalan, Instant Run otomatis menentukan cara terbaik untuk mengirim perubahan Anda ke perangkat target, seperti dijelaskan dalam tabel berikut.

Mengklik Run (atau Debug ) akan memaksakan cold swap dan tindakan mulai ulang aplikasi. Jika Anda membuat perubahan pada manifes aplikasi atau resource yang direferensikan oleh manifes, Android Studio selalu mengirim perubahan Anda bersama penginstalan ulang APK secara lengkap.

Perubahan Kode Perilaku Apply Changes
  • Mengubah kode implementasi untuk metode yang sudah ada

Melakukan hot swap: Ini adalah jenis pertukaran tercepat dan membuat perubahan terlihat jauh lebih cepat. Aplikasi Anda tetap berjalan dan metode stub dengan implementasi baru akan digunakan saat berikutnya metode ini dipanggil.

Hot swap tidak menginisialisasi ulang objek pada aplikasi yang sedang berjalan. Agar dapat melihat update tertentu, Anda mungkin perlu memulai ulang aktivitas saat ini dengan memilih Run > Restart Activity, atau memulai ulang aplikasi dengan mengklik Run (atau Debug ). Secara default, Android Studio otomatis memulai ulang aktivitas saat ini setelah melakukan hot swap. Jika tidak menginginkan perilaku ini, Anda dapat menonaktifkan aktivitas mulai ulang otomatis.

  • Mengubah atau menghapus resource yang sudah ada
Melakukan warm swap: Pertukaran ini masih sangat cepat, tetapi Instant Run harus memulai ulang aktivitas saat ini ketika mengirim resource yang telah diubah ke aplikasi Anda. Aplikasi Anda tetap berjalan, tetapi layar mungkin sedikit berkedip saat aktivitas dimulai ulang—ini normal.
Perubahan kode struktural, seperti:
  • Menambahkan, menghapus, atau mengubah:
    • anotasi
    • kolom instance
    • kolom statis
    • tanda tangan metode statis
    • tanda tangan metode instance
  • Mengubah class induk mana yang diturunkan ke kelas saat ini
  • Mengubah daftar antarmuka yang diimplementasikan
  • Mengubah penginisialisasi statis class
  • Menyusun ulang elemen tata letak yang menggunakan ID resource dinamis

Melakukan cold swap: Pertukaran ini sedikit lebih lambat karena, meskipun APK baru tidak diperlukan, Instant Run harus memulai ulang seluruh aplikasi saat mengirimkan perubahan kode struktural.

  • Mengubah manifes aplikasi
  • Mengubah resource yang dirujuk oleh manifes aplikasi
  • Mengubah elemen UI sistem Android, seperti widget atau notifikasi

Saat membuat perubahan pada manifes aplikasi atau resource yang direferensikan oleh manifes, mengklik Apply Changes akan men-deploy ulang build lengkap aplikasi Anda beserta perubahan tersebut. Hal ini karena informasi tertentu tentang aplikasi, seperti nama, resource ikon aplikasi, dan filter intent, ditentukan dari manifes saat APK diinstal pada perangkat.

Jika proses build Anda otomatis mengupdate setiap bagian manifes aplikasi, seperti otomatis mengiterasi versionCode atau versionName, Anda tidak akan mendapatkan manfaat dari performa penuh Instant Run. Saat menggunakan Instant Run, Anda harus menonaktifkan update otomatis untuk setiap bagian manifes aplikasi dalam varian build debug Anda.

Saat mengupdate elemen UI sistem Android, seperti widget atau notifikasi, Anda perlu mengklik Run (atau Debug ).

Catatan: Jika Anda perlu memulai ulang aplikasi setelah terjadinya error, jangan luncurkan aplikasi tersebut dari perangkat target. Memulai ulang aplikasi dari perangkat target tidak akan menerapkan perubahan kode apa pun sesudah cold swap terakhir atau build inkremental. Untuk meluncurkan aplikasi Anda beserta semua perubahan terbarunya, klik Run (atau Debug ) dari Android Studio.

Menonaktifkan mulai ulang aktivitas otomatis

Saat menjalankan hot swap, aplikasi Anda tetap berjalan tetapi Android Studio otomatis memulai ulang aktivitas saat ini. Untuk menonaktifkan setelan default ini:

  1. Buka dialog Settings atau Preferences:
    • Pada Windows atau Linux, pilih File > Settings dari panel menu.
    • Pada Mac OSX, pilih Android Studio > Preferensi dari panel menu.
  2. Arahkan ke Build, Execution, Deployment > Instant Run.
  3. Hapus centang pada kotak di samping Restart activity on code changes.

Jika mulai ulang aktivitas otomatis dinonaktifkan, Anda dapat memulai ulang aktivitas saat ini secara manual dari panel menu dengan memilih Run > Restart Activity.

Mengonfigurasi project Anda untuk Instant Run

Android Studio mengaktifkan Instant Run secara default untuk project yang dibuat menggunakan Android Gradle Plugin 2.0.0 dan yang lebih tinggi.

Untuk mengupdate project yang sudah ada dengan versi plugin terbaru:

  1. Buka dialog Settings atau Preferences.
  2. Arahkan ke Build, Execution, Deployment > Instant Run dan klik Update Project, seperti ditunjukkan pada gambar 4.

    Jika opsi untuk mengupdate project tidak terlihat, berarti project sudah menggunakan Android Gradle Plugin terbaru. Tetapi pastikan kotak di samping Enable Instant Run dicentang.

    Gambar 4. Mengupdate Android Gradle Plugin untuk project yang ada.

Untuk mulai menggunakan Instant Run, Anda juga perlu mengubah varian build ke versi debug aplikasi Anda dan men-deploy aplikasi tersebut ke perangkat target yang menjalankan Android 5.0 (API level 21) atau yang lebih tinggi. Untuk mempelajari lebih lanjut teknik yang mempercepat build Anda, baca Mengoptimalkan Kecepatan Build

Mengecualikan project Anda dari Windows Defender

Pada sistem Windows, Windows Defender dapat menyebabkan pelambatan saat menggunakan Instant Run. Jika menggunakan Windows Defender, Anda harus mengecualikan folder project Android Studio dari pemindaian malware Windows Defender.

Meningkatkan waktu pembuatan build saat menggunakan Crashlytics

Jika versi Fabric Gradle Plugin yang Anda gunakan lebih rendah dari 1.21.6, Crashlytics dapat menyebabkan waktu pembuatan build yang lebih lambat. Untuk meningkatkan performa pembuatan build saat mengembangkan aplikasi, Anda dapat mengupdate plugin ke versi terbaru atau menonaktifkan Crashlytics untuk varian build debug.

Keterbatasan Instant Run

Instant Run dirancang untuk mempercepat proses build dan deployment pada sebagian besar situasi. Namun, ada beberapa aspek dari penggunaan Instant Run yang mungkin memengaruhi perilaku dan kompatibilitasnya dengan aplikasi Anda. Jika Anda mengalami masalah lain apa pun saat menggunakan Instant Run, aktifkan logging tambahan dan laporkan bug.

Melakukan deployment ke banyak perangkat

Instant Run menggunakan berbagai teknik untuk melakukan hot swap, warm swap, dan cold swap yang sesuai dengan level API perangkat target. Karena alasan ini, ketika men-deploy aplikasi ke banyak perangkat sekaligus, Android Studio akan menonaktifkan Instant Run untuk sementara.

Menjalankan multidex pada aplikasi Anda

Jika minSdkVersion ditetapkan ke 21 atau yang lebih tinggi, Instant Run otomatis mengonfigurasi aplikasi Anda untuk multidex. Karena Instant Run hanya berfungsi dengan versi debug aplikasi, Anda mungkin perlu mengonfigurasi aplikasi untuk multidex saat men-deploy varian build rilis.

Menjalankan pengujian berinstrumen dan profiler performa

Pengujian berinstrumen memuat APK debug dan APK pengujian ke dalam proses yang sama pada perangkat pengujian, yang memungkinkan metode kontrol untuk mengganti siklus proses normal aplikasi dan menjalankan pengujian. Saat menjalankan atau mend-debug pengujian berinstrumen, Android Studio tidak memasukkan metode tambahan yang diperlukan untuk Instant Run dan mematikan fitur ini.

Saat membuat profil aplikasi, sebaiknya Anda menonaktifkan Instant Run. Ada sedikit dampak terhadap performa saat Anda menggunakan Instant Run dan dampak yang sedikit lebih besar jika Anda mengganti metode melalui hot swap. Dampak terhadap performa ini dapat mengganggu informasi yang diberikan oleh fitur pembuat profil performa. Selain itu, metode stub yang dihasilkan dari setiap hot swap dapat mempersulit pelacakan tumpukan.

Menggunakan plugin pihak ketiga

Android Studio menonaktifkan Java Code Coverage Library (JaCoCo) dan ProGuard untuk sementara waktu selama menggunakan Instant Run. Karena Instant Run hanya dapat digunakan dengan versi debug, penonaktifan ini tidak memengaruhi build rilis.

Plugin pihak ketiga tertentu yang melakukan penyempurnaan bytecode dapat menimbulkan masalah dengan bagaimana Instant Run memperlengkapi aplikasi Anda. Jika mengalami masalah ini, tetapi ingin terus menggunakan Instant Run, Anda harus menonaktifkan plugin tersebut untuk varian build debug Anda. Anda juga dapat membantu meningkatkan kompatibilitas dengan plugin pihak ketiga dengan melaporkan bug.

Mengirim perubahan ke aplikasi multi-proses

Instant Run hanya memperlengkapi proses utama aplikasi Anda agar dapat melakukan hot swap dan warm swap. Saat mengirim perubahan kode ke proses aplikasi lainnya, seperti perubahan pada implementasi metode atau resource yang ada, Instant Run akan melakukan cold swap.

Meluncurkan aplikasi di profil kerja

Jika Anda menjalankan aplikasi dengan Instant Run dan membuka aplikasi menggunakan profil kerja (atau profil sekunder lainnya), aplikasi Anda akan mengalami error karena file DEX berinstrumentasi yang digunakan oleh Instant Run hanya dapat diakses dari ruang pengguna profil utama.

Jika Anda ingin terus menggunakan Instant Run, hindari membuka aplikasi dengan profil kerja dan pastikan konfigurasi run Anda tidak menggunakan flag --user user_id.

Jika perlu menggunakan aplikasi dengan profil kerja, sebaiknya Anda membuat konfigurasi run baru yang mencakup flag --user user_id, yang akan menentukan ID pengguna profil kerja. Anda dapat menemukan ID pengguna dengan mengeksekusi adb shell pm list users dari command line. Saat Anda menggunakan flag --user, Android Studio akan menonaktifkan Instant Run hanya untuk deployment itu; Instant Run akan berfungsi lagi saat Anda beralih ke konfigurasi yang tidak menggunakan flag --user.

Menonaktifkan Instant Run

Untuk menonaktifkan Instant Run:

  1. Buka dialog Settings atau Preferences.
  2. Arahkan ke Build, Execution, Deployment > Instant Run.
  3. Hapus centang pada kotak di sebelah Enable Instant Run.