Android Studio Dolphin | 2021.3.1 (Sep 2022)

Berikut adalah fitur baru di Android Studio Dolphin.

Baru di Compose

Berikut adalah fitur baru dan peningkatan pada Jetpack Compose di Android Studio.

Koordinasi Animasi Compose

Jika animasi dijelaskan dalam pratinjau composable, kini Anda dapat menggunakan Pratinjau Animasi untuk memeriksa dan mengoordinasikan semuanya sekaligus. Anda juga dapat membekukan animasi tertentu.

Gif yang menampilkan inspeksi dengan All Animations UI

Anotasi Multipratinjau Compose

Kini Anda dapat menentukan class anotasi yang menyertakan beberapa definisi Pratinjau dan menggunakan anotasi baru tersebut untuk membuat pratinjau tersebut sekaligus. Gunakan anotasi baru ini untuk melihat pratinjau beberapa perangkat, font, dan tema secara bersamaan—tanpa mengulangi definisi tersebut untuk setiap satu composable.

UI anotasi multipratinjau

Jumlah Rekomposisi Compose di Layout Inspector

Saat men-debug tata letak Compose, penting untuk mengetahui kapan composable melakukan atau tidak merekomposisi agar memahami apakah UI Anda diterapkan dengan benar. Misalnya, jika terlalu sering direkomposisi, aplikasi Anda mungkin melakukan lebih banyak pekerjaan daripada yang diperlukan. Di sisi lain, komponen yang tidak merekomposisi saat Anda mengharapkannya dapat menyebabkan perilaku yang tidak terduga.

Layout Inspector kini memungkinkan Anda melihat kapan composable berlainan di hierarki tata letak telah direkomposisi atau dilewati. Informasi ini ditampilkan secara langsung saat Anda berinteraksi dengan aplikasi. Untuk memulai, pastikan aplikasi Anda menggunakan Compose 1.2.0-alpha03 atau yang lebih tinggi. Kemudian, deploy aplikasi seperti biasa.

Komposisi baru dan penghitung lewati di Layout Inspector

Buka jendela Layout Inspector dan hubungkan ke proses aplikasi Anda. Di Component Tree, Anda akan melihat dua kolom baru muncul di samping hierarki tata letak. Kolom pertama menampilkan jumlah komposisi untuk setiap node. Kolom kedua menampilkan jumlah lewati untuk setiap node. Anda juga dapat melihat informasi serupa di panel Attributes saat memilih composable dari Component Tree atau Layout Display.

Jika Anda ingin mereset jumlah, klik Reset di dekat bagian atas panel Component Tree. Mereset jumlah dapat membantu Anda memahami rekomposisi atau lewati selama interaksi tertentu dengan aplikasi Anda.

Mengaktifkan penghitung komposisi dan lewati di Layout Inspector

Update Asisten penyambungan emulator Wear OS

Mulai dari Android Studio Dolphin Canary 3, asisten penyambungan emulator Wear OS telah meningkatkan fitur yang memudahkan untuk mengelola dan menghubungkan emulator Wear. Sekarang Anda dapat melakukan hal berikut:

  • Lihat perangkat Wear di Device Manager.
  • Sambungkan beberapa perangkat Wear dengan satu ponsel virtual atau fisik.
  • Hubungkan kembali perangkat yang disambungkan sebelumnya saat diluncurkan secara otomatis. Android Studio kini mengingat dan menyambungkan ulang penyiapan pasangan terakhir.

Untuk menggunakan fitur baru ini, pastikan emulator ponsel Anda adalah API level 30 atau yang lebih tinggi dan telah menginstal Google Play Store. Selain itu, pastikan emulator Wear menggunakan API level 28 atau yang lebih tinggi. Untuk mengupgrade ke image sistem terbaru bagi perangkat yang diemulasi, buka Tools > SDK Manager.

Untuk informasi selengkapnya, lihat Menggunakan asisten penyambungan emulator Wear OS.

Update toolbar emulator Wear OS

Mulai dari Android Studio Dolphin Canary 2, untuk emulator Wear dengan API level 28 atau yang lebih tinggi, toolbar emulator kini memiliki tombol yang menyimulasikan tombol fisik dan tindakan umum pada perangkat. Tombol barunya adalah: Tombol 1 dan Tombol 2 (Tombol 2 hanya tersedia di API level 30 atau yang lebih tinggi), tombol Palm, dan tombol Miring. Berikut beberapa tindakan yang dapat Anda lakukan menggunakan tombol baru di emulator Wear:

  • Untuk menyetel perangkat ke mode standby, klik tombol Palm.
  • Untuk mengembalikan perangkat ke layar terakhir sebelum mode standby, klik tombol Miring.

Untuk mengetahui informasi selengkapnya, lihat Melakukan tindakan umum di emulator.

Emulator Wear dengan tombol khusus Wear

Konfigurasi run Wear OS baru

Konfigurasi run baru telah ditambahkan untuk menjalankan dan men-debug platform khusus untuk Wear OS dengan cepat seperti tampilan jam, Kartu, dan widget tampilan jam. Anda bisa membuat konfigurasi baru ini dari dialog Run/Debug Configurations saat menjalankan aplikasi.

Untuk informasi selengkapnya, lihat Konfigurasi run/debug Wear OS.

Konfigurasi peluncuran baru WearOS

Logcat Baru

Logcat telah diupdate untuk mempermudah penguraian, kueri, dan pelacakan log.

Pemformat baru

Logcat sekarang memformat log untuk mempermudah pemindaian informasi yang berguna, seperti tag dan pesan, serta mengidentifikasi berbagai jenis log, seperti peringatan dan error.

Pemformatan baru untuk log di Logcat

Membuat beberapa jendela Logcat

Kini Anda dapat membuat beberapa tab dalam Logcat sehingga Anda dapat dengan mudah beralih di antara perangkat atau kueri yang berbeda. Dengan mengklik kanan tab, Anda dapat mengganti namanya, dan Anda dapat mengklik lalu menarik untuk mengatur ulang tab.

Selain itu, untuk memudahkan Anda membandingkan antara dua kumpulan log, kini Anda dapat membagi tampilan dalam tab dengan mengklik kanan tampilan log dan memilih Split Right Split Down. Untuk menutup pemisahan, klik kanan dan pilih Close. Setiap pemisahan memungkinkan Anda menyetel koneksi perangkat, opsi tampilan, dan kuerinya sendiri.

Membuat beberapa jendela logcat menggunakan pemisahan

Beralih antarpreset tampilan

Logcat kini memungkinkan Anda beralih dengan cepat antara mode tampilan yang berbeda—Standar, Ringkas, dan Kustom—dengan mengklik Pemilih mode tampilan. Setiap mode tampilan menyediakan setelan default yang berbeda untuk menampilkan informasi lebih banyak atau lebih sedikit, seperti stempel waktu, tag, dan ID proses (PID). Anda juga dapat menyesuaikan setiap mode tampilan default, serta mode tampilan kustom, dengan memilih Modify View.

Screenshot untuk beralih antara mode tampilan yang berbeda

Pada Logcat versi sebelumnya, Anda memiliki opsi untuk menggunakan penelusuran string (dengan dukungan untuk ekspresi reguler) atau membuat filter baru dengan mengisi berbagai kolom menggunakan UI Logcat. Opsi pertama membuat penelusuran menjadi lebih kompleks dan opsi kedua membuat berbagi serta menyiapkan kueri menjadi lebih sulit. Sekarang kami telah menyederhanakan pengalaman tersebut dengan memperkenalkan penelusuran nilai kunci langsung dari kolom kueri utama.

Screenshot sintaksis kueri baru dengan pelengkapan otomatis

Sistem kueri baru ini memberikan akurasi kueri yang Anda inginkan, tanpa mengandalkan ekspresi reguler, dengan kemampuan untuk mengingat kueri sebelumnya dari histori dan membagikan kueri tersebut dengan orang lain. Selain itu, Anda masih memiliki opsi untuk menggunakan RegEx dan mengecualikan log berdasarkan nilai kunci. Berikut adalah beberapa contoh cara menggunakan sistem kueri baru, tetapi Anda juga dapat mulai mengetik di kolom kueri untuk melihat saran:

  • PID untuk project aplikasi lokal: package:mine
  • Nilai tertentu:
    • package:<package-ID>
    • tag:<tag>
    • level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
  • Kecualikan nilai tertentu dengan menambahkan kunci - terlebih dahulu:
    • -tag:<exclude-tag>
  • Gunakan ekspresi reguler dengan kunci yang ditentukan dengan menempatkan ~ setelah kunci:
    • tag~:<regular-expression-tag>
    • Gabungkan dengan tag pengecualian: -tag~:<exclude-regular-expression-tag>

Anda juga dapat melihat histori kueri dengan mengklik Pemilih histori kueri di kolom kueri dan memilihnya dari drop-down. Untuk memfavoritkan kueri agar tetap berada di bagian atas daftar di semua project studio Anda, klik Kueri favorit di akhir kolom kueri.

Screenshot histori kueri dengan favorit

Melacak log saat aplikasi mengalami error/dimulai ulang

Logcat baru kini mempermudah pelacakan log dari aplikasi Anda saat error dan dimulai ulang sehingga Anda tidak melewatkan log penting di peristiwa ini. Saat Logcat melihat bahwa proses aplikasi telah berhenti dan dimulai ulang, Anda akan melihat pesan dalam output—seperti PROCESS ENDED dan PROCESS STARTED—seperti yang ditunjukkan di bawah ini:

Screenshot proses mulai ulang di logcat

Selain itu, memulai ulang Logcat akan mempertahankan konfigurasi sesi, seperti pemisahan tab, filter, dan opsi tampilan sehingga Anda dapat melanjutkan sesi dengan mudah.

Perangkat yang Dikelola Gradle

Untuk meningkatkan konsistensi, performa, dan keandalan saat menggunakan Perangkat Virtual Android untuk pengujian berinstrumen otomatis Anda, kami memperkenalkan Perangkat yang Dikelola Gradle. Fitur ini, yang tersedia untuk API level 27 dan yang lebih tinggi, memungkinkan Anda mengonfigurasi perangkat pengujian virtual dalam file Gradle project. Sistem build menggunakan konfigurasi untuk sepenuhnya mengelola—yaitu, membuat, men-deploy, dan menghancurkan—perangkat tersebut saat menjalankan pengujian otomatis.

Fitur ini memberikan visibilitas Gradle tidak hanya pada pengujian yang Anda jalankan, tetapi juga siklus proses perangkat sehingga meningkatkan kualitas pengalaman pengujian Anda dengan cara berikut:

  • Menangani masalah terkait perangkat untuk memastikan pengujian Anda dijalankan
  • Memanfaatkan snapshot emulator untuk meningkatkan waktu startup perangkat dan penggunaan memori, serta memulihkan perangkat ke kondisi bersih di antara pengujian
  • Meng-cache hasil pengujian dan hanya menjalankan ulang pengujian yang kemungkinan akan memberikan hasil yang berbeda
  • Memberikan lingkungan yang konsisten untuk menjalankan pengujian antara pengujian lokal dan jarak jauh

Selain itu, Perangkat yang Dikelola Gradle memperkenalkan jenis baru perangkat Emulator, yang disebut Perangkat Pengujian Otomatis (ATD), yang dioptimalkan untuk meningkatkan performa saat menjalankan uji instrumentasi Anda. Dikombinasikan dengan dukungan untuk sharding pengujian, Anda dapat bereksperimen dengan membagi rangkaian pengujian di beberapa instance ATD untuk mengurangi waktu eksekusi uji secara keseluruhan. Untuk mempelajari lebih lanjut Perangkat yang Dikelola Gradle dan fitur terkaitnya, lihat Menskalakan pengujian dengan Perangkat yang Dikelola Gradle.

Dukungan R8 menggunakan file pemetaan berdasarkan offset petunjuk DEX

Saat mengoptimalkan informasi baris, R8 kini dapat mengenkode informasi di objek informasi proses debug bersama dengan tabel baris berdasarkan offset petunjuk. Hal ini secara substansial mengurangi overhead informasi baris. Akibatnya, baris dalam metode tidak lagi berurutan, tetapi mungkin melompat secara interval bergantung pada ukuran petunjuk. Perhatikan bahwa beberapa alat tidak mempertimbangkan encoding bersama ini.

Selain itu, VM Android yang dimulai dari O (API Level 26) mendukung offset petunjuk pencetakan dalam pelacakan tumpukan jika metode ini tidak memiliki informasi nomor baris. Saat mengompilasi dengan minSdk 26 atau yang lebih tinggi, dan tanpa informasi file sumber, R8 menghapus informasi nomor baris sepenuhnya.

Lambda stateless tidak lagi di-desugar sebagai singleton

Lambda stateless tidak lagi dialokasikan sebagai singleton dengan desugaring. Representasi sebagai singleton menambahkan overhead ukuran kode karena kolom yang ditambahkan dan penginisialisasi class, serta overhead startup, karena inisialisasi class statis. Lambda stateless kini dialokasikan di situs penggunaan dengan cara yang sama seperti lambda stateful (lambda dengan tangkapan).

R8 menghindari pelambatan verifikasi pada runtime Android

Untuk menghilangkan masalah performa pada runtime Android (Dalvik dan ART), R8 (bukan D8) kini memperkenalkan stub library dan panggilan outline ke metode library untuk class library dan metode yang mungkin tidak ada saat runtime. Tindakan ini akan menghilangkan banyak masalah verifikasi dan meningkatkan performa runtime. Fitur ini selalu diaktifkan.

Dukungan untuk JDK-11 API dengan desugaring API Java 8+

Saat menggunakan dependensi coreLibraryDesugaring, kini terdapat dukungan untuk library implementasi berdasarkan JDK-11. Lihatdesugar_jdk_libs log perubahan untuk informasi selengkapnya.

Rilis patch

Berikut adalah daftar rilis Patch di Android Studio Dolphin.

Android Studio Dolphin | 2021.3.1 Patch 1 (Oktober 2022)

Dengan rilis Patch 1, Android Studio Dolphin kini mendukung plugin Kotlin 1.7.20. Update minor ini juga mencakup perbaikan bug berikut:

Perbaikan Masalah
Plugin Android Gradle
Menjalankan pengujian Android berinstrumen melalui gradle gagal menerapkan desugaring dengan benar
AGP 7.3.0 merusak sinkronisasi gradle untuk project platform gradle
Dexer (D8)
Menambahkan API publik untuk menyelesaikan konflik saat menggabungkan DEX (untuk bazel guna mengizinkan class duplikat)
Impor/Sinkronisasi
Impor Project Gradle gagal setelah diupgrade dari Chipmunk Patch 2 (2021.2.1)
Referensi
NPE di AarResourceRepositoryCache.createCachingData (AS Dolphin+)
Penyingkat (R8)
Metadata Kotlin tidak disalin saat mengetik kolom pengganti
Konversi tak terduga dari jenis yang tidak akurat: TOP (semuanya)
Gradle 7.3.0 menyebabkan error build APK com.android.tools.r8.CompilationFailedException
Menghapus konstruktor default yang mati dalam mode kompatibilitas.
Konflik dengan JetBrains Markdown
Dukungan untuk ThreadLocal.withInitial(java.util.function.Supplier
AGP 7.3 menghasilkan dex untuk class dengan konstruktor yang rusak
Upaya yang tidak terduga untuk menentukan apakah kode non-CF memerlukan desugaring
ktor VerifyError
Nilai yang tidak ditentukan ditemukan selama kompilasi yang ditampilkan saat memproses okio-jvm 3.2.0
Kegagalan kompilasi dari class yang menyisipkan objek dengan instance pengguna tidak langsung
java.lang.IllegalAccessError dengan R8 3.3.75