Android Studio 3.4 (April 2019)

Android Studio 3.4 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.

3.4.2 (Juli 2019)

Update minor ini menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan terkait di blog Update Rilis.

3.4.1 (Mei 2019)

Update minor ini menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan terkait di blog Update Rilis.

Masalah umum 3.4.0

  • Pembuatan profil dinonaktifkan saat men-deploy aplikasi ke perangkat yang menjalankan Android Q Beta.

  • Saat menggunakan Library Data Binding, LiveDataListener.onChanged() mungkin gagal dengan NPE. Perbaikan untuk masalah ini akan disertakan dalam Android Studio 3.4.1 dan sudah tersedia di Versi pratinjau Android Studio 3.5 terbaru. (Lihat masalah #122066788)

IntelliJ IDEA 2018.3.4

Android Studio IDE inti telah diupdate dengan peningkatan dari IntelliJ IDEA melalui rilis 2018.3.4.

Update plugin Android Gradle 3.4.0

Untuk mendapatkan informasi tentang hal yang baru dalam plugin Gradle Android 3.4.0, lihat catatan rilis-nya.

Dialog Project Structure Baru

PSD (Dialog Project Structure) baru memudahkan update dependensi serta konfigurasi beragam aspek project, seperti modul, varian build, konfigurasi penandatanganan, dan variabel build.

Anda dapat membuka PSD dengan memilih File > Project Structure dari panel menu. Anda juga dapat membuka PSD dengan menekan Ctrl+Shift+Alt+S di Windows dan Linux, atau Command+; (titik koma) di macOS. Anda dapat menemukan deskripsi beberapa bagian PSD yang diupdate di bawah ini.

Variabel

Bagian variabel baru PSD memungkinkan Anda membuat dan mengelola berbagai variabel build, seperti variabel untuk menjaga agar nomor versi untuk dependensi tetap konsisten di seluruh project.

  • Lihat dan edit variabel build yang sudah ada di skrip build Gradle project Anda dengan cepat.
  • Tambahkan variabel build baru pada level project atau modul langsung dari PSD.

Catatan: Jika nilai dalam file konfigurasi build yang ada ditetapkan melalui skrip Groovy yang kompleks, Anda mungkin tidak dapat mengedit nilai tersebut melalui PSD. Selain itu, Anda tidak dapat mengedit file build yang ditulis dalam Kotlin menggunakan PSD.

Modul

Konfigurasikan properti yang diterapkan pada semua varian build dalam modul yang ada atau tambahkan modul baru ke project dari bagian Modules. Misalnya, di sini Anda dapat mengonfigurasi properti defaultConfig atau mengelola konfigurasi penandatanganan.

Dependensi

Periksa dan visualisasikan setiap dependensi di grafik dependensi project, sebagaimana di-resolve oleh Gradle saat sinkronisasi project berlangsung, dengan mengikuti langkah-langkah berikut:

  1. Di panel kiri PSD, pilih Dependencies.
  2. Di panel Modules, pilih modul dengan dependensi ditetapkan yang ingin Anda periksa.
  3. Di sisi kanan PSD, buka panel Resolved Dependencies yang ditampilkan di bawah ini.

Anda juga dapat dengan cepat menelusuri dan menambahkan dependensi ke project dengan terlebih dahulu memilih modul dari bagian Dependencies PSD, mengklik tombol (+) di bagian Declared Dependencies, lalu memilih jenis dependensi yang ingin ditambahkan.

Bergantung pada jenis dependensi yang dipilih, Anda akan melihat dialog seperti yang ada di bawah ini, yang membantu Anda menambahkan dependensi ke modul.

Varian Build

Di bagian PSD ini, buat dan konfigurasi varian build serta ragam produk untuk setiap modul dalam project. Anda dapat menambahkan placeholder manifes dan file ProGuard, serta menetapkan kunci penandatanganan, dan lainnya.

Saran

Lihat update yang disarankan untuk dependensi project dan variabel build di bagian Suggestions, sebagaimana ditunjukkan di bawah ini.

Resource Manager Baru

Resource Manager adalah jendela alat baru untuk mengimpor, membuat, mengelola, dan menggunakan resource di aplikasi. Anda dapat membuka jendela alat dengan memilih View > Tool Windows > Resource Manager dari panel menu. Resource Manager memungkinkan Anda melakukan hal berikut:

  • Memvisualisasikan resource: Anda dapat melihat pratinjau drawable, warna, dan tata letak untuk menemukan resource yang diperlukan dengan cepat.
  • Impor massal: Anda dapat mengimpor beberapa aset yang dapat digambar sekaligus dengan menarik lalu melepas aset ke jendela fitur Resource Manager atau dengan menggunakan wizard Import drawables. Untuk mengakses wizard tersebut, pilih tombol (+) di pojok kiri atas jendela alat, lalu pilih Import Drawables dari menu drop-down.
  • Mengonversi SVG menjadi objek VectorDrawable: Anda dapat menggunakan wizard Import Drawables untuk mengonversi gambar SVG ke dalam objek VectorDrawable.
  • Menarik lalu melepas aset: Dari jendela alat Resource Manager, Anda dapat menarik lalu melepas drawable ke tampilan desain atau XML di Layout Editor.
  • Melihat versi alternatif: Kini Anda dapat melihat versi alternatif resource dengan mengklik dua kali pada resource yang ada di dalam jendela Tool. Tampilan ini menunjukkan berbagai versi yang telah Anda buat dan qualifier yang disertakan.
  • Tampilan kartu dan daftar: Anda dapat mengubah tampilan di dalam jendela alat untuk memvisualisasikan resource dengan pengaturan yang berbeda.

Untuk mempelajari lebih lanjut, baca panduan tentang cara Mengelola resource aplikasi.

Memeriksa ID build saat pembuatan profil dan proses debug APK

Setelah Anda memberikan file simbol debug untuk library bersama .so dalam APK, Android Studio akan memverifikasi bahwa ID build file simbol yang diberikan cocok dengan ID build dari library .so dalam APK.

Jika Anda membangun library native di APK dengan ID build, Android Studio akan memeriksa apakah ID build dalam file simbol cocok dengan ID build dalam library native, dan akan menolak file simbol jika tidak cocok. Jika Anda tidak membangun menggunakan ID build, memberikan file simbol yang salah dapat menyebabkan masalah saat proses debug.

R8 diaktifkan secara default

R8 mengintegrasikan desugaring, penyingkatan, obfuscation, pengoptimalan, dan dexing dalam satu langkah, sehingga menghasilkan peningkatan performa build yang cukup signifikan. R8 diperkenalkan pada plugin Android Gradle 3.3.0 dan kini diaktifkan secara default untuk aplikasi dan project library Android yang menggunakan plugin 3.4.0 dan versi yang lebih baru.

Gambar di bawah ini memberikan ringkasan umum tentang proses kompilasi sebelum R8 diperkenalkan.

Sebelum R8, ProGuard adalah langkah kompilasi yang berbeda dengan dexing dan
            desugaring.

Sekarang, dengan R8, desugaring, penyingkatan, obfuscation, pengoptimalan, dan dexing (D8) dapat diselesaikan dalam satu langkah, seperti yang diilustrasikan di bawah ini.

Dengan R8, desugaring, penyingkatan, obfuscation, pengoptimalan, dan dexing
            dilakukan dalam satu langkah kompilasi.

Perlu diperhatikan bahwa R8 dirancang agar kompatibel dengan aturan ProGuard yang telah ada, sehingga Anda mungkin tidak perlu mengambil tindakan apa pun untuk mendapatkan manfaat dari R8. Namun, karena teknologinya berbeda dengan ProGuard yang secara khusus dirancang untuk project Android, penyingkatan dan pengoptimalan dapat menyebabkan penghapusan kode yang mungkin tidak dilakukan ProGuard. Jadi, dalam situasi yang jarang terjadi ini, Anda mungkin perlu menambahkan aturan lain untuk menjaga kode tersebut pada output build Anda.

Jika mengalami masalah saat menggunakan R8, baca FAQ kompatibilitas R8 untuk memeriksa apakah ada solusi untuk masalah Anda. Jika solusi tidak terdokumentasi, harap laporkan bug. Anda dapat menonaktifkan R8 dengan menambahkan salah satu baris berikut ke file gradle.properties project:

    # Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
    
  

Catatan: Untuk jenis build tertentu, jika Anda menyetel useProguard ke false dalam file build.gradle modul aplikasi Anda, plugin Android Gradle akan menggunakan R8 untuk menyingkat kode aplikasi untuk jenis build tersebut, baik ketika R8 pada file gradle.properties project Anda dinonaktifkan maupun tidak.

Semua jenis argumen yang didukung oleh komponen Navigation kini didukung di Navigation Editor. Untuk informasi selengkapnya tentang jenis yang didukung, lihat Meneruskan data antar-tujuan.

Peningkatan Layout Editor {:#layout-editor}

Panel Attributes di Layout Editor telah disederhanakan menjadi satu halaman dengan bagian yang dapat diluaskan untuk menampilkan atribut yang dapat dikonfigurasi. Panel Attributes juga menyertakan update berikut:

  • Bagian Declared Attributes baru mencantumkan atribut yang ditentukan file tata letak dan memungkinkan Anda menambahkan atribut baru dengan cepat.
  • Panel Attributes kini juga menampilkan indikator di samping setiap atribut, yaitu solid jika nilai atribut merupakan referensi resource dan kosong jika sebaliknya.
  • Atribut yang memiliki error atau peringatan kini ditandai. Sorotan berwarna merah menunjukkan error (misalnya, saat Anda menggunakan nilai tata letak yang tidak valid) dan sorotan berwarna jingga menunjukkan peringatan (misalnya, saat Anda menggunakan nilai hard code).

Tindakan intent baru untuk mengimpor dependensi dengan cepat

Jika Anda mulai menggunakan class Jetpack dan Firebase tertentu dalam kode, tindakan intent baru akan menyarankan penambahan dependensi library Gradle yang diperlukan ke project, jika Anda belum melakukannya. Misalnya, jika Anda mereferensikan class WorkManager tanpa mengimpor dependensi android.arch.work:work-runtime yang diperlukan terlebih dahulu, tindakan intent memudahkan Anda melakukannya dengan sekali klik, sebagaimana ditunjukkan di bawah ini.

Secara khusus, karena Jetpack memaketkan ulang library dukungan menjadi paket terpisah yang lebih mudah dikelola dan diperbarui, tindakan intent ini membantu Anda dengan cepat menambahkan hanya dependensi yang diperlukan untuk komponen Jetpack yang ingin digunakan.