Android Studio Bumblebee | 2021.1.1 (Jan 2022)

Berikut adalah fitur baru di Android Studio Bumblebee.

Dukungan untuk eksekusi uji KMP

Anda dapat menjalankan pengujian untuk project Kotlin Multiplatform (KMP) dari Android Studio Bumblebee.

Untuk memastikan pengujian berhasil berjalan dari Android Studio, pastikan Anda memiliki semua persyaratan di bawah ini:

  • AGP 7.0.0-alpha08 atau yang lebih tinggi
  • Gradle 6.8.2 atau yang lebih tinggi
  • Plugin Kotlin 1.4.30 atau yang lebih tinggi

Pengelola Perangkat Baru

Jendela Pengelola Perangkat baru dengan

Pengelola Perangkat adalah pengganti AVD Manager, baik dari Layar Selamat Datang Android Studio maupun setelah Anda membuka project. Pengelola Perangkat memperkenalkan beberapa kemampuan baru yang menjadikan fitur ini lebih mudah membuat dan mengelola semua perangkat pengujian lokal Anda, seperti:

  • UI lebih fleksibel yang bisa dikaitkan ke IDE, jendela mengambang, atau di jendela terpisah, seperti yang dapat Anda lakukan dengan jendela alat Android Studio lainnya. Hal ini akan mempermudah akses ke perangkat Anda tanpa menghalangi jendela IDE lainnya.
  • Tab Virtual yang memungkinkan Anda membuat, mengelola, dan men-deploy perangkat virtual; melihat detail setiap perangkat secara sekilas; atau memeriksa perangkat dengan cepat di Device File Explorer dengan sekali klik.
  • Tab Physical yang memungkinkan Anda dengan cepat menyambungkan ke perangkat baru menggunakan ADB Wifi dan melihat detail setiap perangkat fisik secara sekilas. Anda juga dapat memeriksa sistem file setiap perangkat secara cepat menggunakan Device File Explorer dengan mengklik tombol.

Untuk membuka Pengelola Perangkat baru, lakukan salah satu hal berikut:

  • Dari layar Selamat Datang Android Studio, pilih More Actions > Virtual Device Manager.
  • Setelah membuka project, pilih View > Tool Windows > Device Manager dari panel menu utama.

Baru di Layout Inspector

Mengambil snapshot hierarki tata letak

Layout Inspector kini memungkinkan Anda menyimpan snapshot hierarki tata letak aplikasi yang sedang berjalan, sehingga Anda dapat membagikannya dengan mudah kepada orang lain atau menunjukkannya nanti.

Snapshot merekam data yang biasanya akan Anda lihat saat menggunakan Layout Inspector, termasuk rendering 3D mendetail dari tata letak, hierarki komponen tata letak View, Compose, atau hybrid, serta atribut mendetail untuk setiap komponen UI Anda. Untuk menyimpan snapshot, lakukan hal berikut:

  1. Deploy aplikasi ke perangkat yang menjalankan API level 23 atau yang lebih tinggi
  2. Buka Layout Inspector dengan memilih View > Tool Windows > Layout Inspector.
  3. Layout Inspector akan otomatis terhubung ke proses aplikasi Anda. Jika tidak, pilih proses aplikasi dari menu dropdown.
  4. Jika Anda ingin mengambil snapshot, klik Export snapshot Ikon
ekspor dari toolbar Layout Inspector.
  5. Pada dialog sistem yang muncul, tentukan nama dan lokasi yang diinginkan untuk menyimpan snapshot. Pastikan untuk menyimpan file dengan ekstensi *.li.

Anda dapat memuat snapshot Layout Inspector dengan memilih File > Open dari panel menu utama, dan membuka file *.li.

Snapshot Layout Inspector untuk aplikasi contoh Sunflower

Dukungan untuk memeriksa semantik Compose

Di Compose, Semantik mendeskripsikan UI dengan cara alternatif yang dapat dipahami untuk layanan Aksesibilitas dan untuk framework Pengujian. Di Android Studio Bumblebee, Anda kini dapat menggunakan Layout Inspector untuk memeriksa informasi semantik di tata letak Compose.

Informasi semantik yang ditampilkan melalui Layout Inspector

Saat memilih node Compose, gunakan jendela Attributes untuk memeriksa apakah node mendeklarasikan informasi semantik secara langsung, menggabungkan semantik dari turunannya, atau keduanya. Untuk mengidentifikasi node yang menyertakan semantik dengan cepat, baik dideklarasikan ataupun digabungkan, gunakan menu dropdown View options di jendela Component Tree dan pilih Highlight Semantics Layers. Tindakan ini hanya akan menandai node dalam hierarki yang menyertakan semantik, dan Anda dapat menggunakan keyboard untuk berpindah antar-node dengan cepat.

Menghindari mulai ulang Activity

Menghubungkan Layout Inspector ke aplikasi yang berjalan pada Android Studio versi lama akan menyebabkan Activity aplikasi dimulai ulang. Hal ini diperlukan untuk menyetel flag perangkat yang memungkinkan pemeriksaan tata letak aplikasi Anda.

Di Android Studio Bumblebee, Anda dapat menghindari Activity dimulai ulang saat menghubungkan Layout Inspector dengan menyetel flag ini sebelumnya menggunakan salah satu langkah berikut:

  • Mengaktifkan opsi Run Configuration

    1. Pilih Run > Edit Configurations dari panel menu utama. Dialog Run/Debug Configurations akan muncul.
    2. Buka konfigurasi run yang ingin Anda gunakan.
    3. Di bagian Layout Inspector options, centang kotak di samping Connect to Layout Inspector without restarting activity.
    4. Gunakan konfigurasi run saat lain kali Anda ingin memeriksa aplikasi menggunakan Layout Inspector.
  • Menyetel flag dari command line:

    1. Buka jendela terminal pada mesin yang terhubung ke perangkat Anda
    2. Setel flag perangkat untuk aplikasi Anda menggunakan perintah berikut:
    adb shell settings put global debug_view_attributes_application_package <my_package_name>
    
    1. Deploy aplikasi Anda ke perangkat dan hubungkan Layout Inspector. Android Studio akan memeriksa apakah flag telah disetel dan menghindari mulai ulang Activity jika memungkinkan.

Mendokumentasikan snapshot Layout Inspector

Anda kini dapat mengambil snapshot hierarki tata letak aplikasi untuk disimpan, dibagikan, atau diperiksa nanti. Snapshot merekam data yang biasanya akan Anda lihat saat menggunakan Layout Inspector, termasuk rendering 3D mendetail dari tata letak, hierarki komponen tata letak View, Compose, atau hybrid, serta atribut mendetail untuk setiap komponen UI Anda. Saat memeriksa tata letak aplikasi yang sedang berjalan, klik Export snapshot Ikon
ekspor dari toolbar Layout Inspector dan simpan snapshot dengan ekstensi *.li. Anda dapat memuat snapshot Layout Inspector dengan memilih File > Open dari panel menu utama, dan membuka file *.li. Snapshot akan muncul di tab dalam jendela Editor, sehingga Anda dapat mudah membandingkannya dengan aplikasi yang sedang berjalan.

Baru di App Inspection

Di Android Studio Bumblebee, ada beberapa alat dan fungsi baru di jendela App Inspection. Anda dapat membuka App Inspector dengan memilih View > Tool Windows > App Inspection dari panel menu utama.

Network Inspector

Network Profiler di jendela alat Profiler kini telah dipindahkan ke jendela alat App Inspection. Jika sebelumnya Anda telah menggunakan Network Profiler, semua fitur dan data traffic jaringan lengkap yang sama masih tersedia. Cukup deploy aplikasi Anda ke perangkat yang menjalankan API level 26 dan yang lebih tinggi, lalu buka tab App Inspector > Network Inspector.

Memeriksa Tugas, Alarm, dan Wakelock

Kini Background Task Inspector memungkinkan Anda memeriksa Tugas, Alarm, dan Wakelocks aplikasi, selain dukungan yang ada untuk memeriksa Pekerja. Setiap jenis tugas asinkron kini muncul dengan judul yang sesuai di tab inspector, yang memungkinkan Anda memantau status dan progresnya dengan mudah. Serupa dengan Pekerja, Anda dapat memilih Tugas, Alarm, atau Wakelock untuk memeriksa informasi mendetailnya di panel Task Details.

Background Task Inspector menampilkan Tugas, Alarm, dan Wakelock

Karena Pekerja menggunakan Tugas dan Wakelock di balik layar, tugas yang dijadwalkan oleh Pekerja akan muncul sebagai turunan dari setiap Pekerja. Perlu diingat, Anda hanya dapat melihat Pekerja dalam mode Grafik.

Baru di Profiler

Di Android Studio Bumblebee, ada fitur-fitur baru yang memberikan lebih banyak insight tentang cara aplikasi Anda menggunakan resource. Untuk membuat profil aplikasi, pilih View > Tool Windows > Profiler dari panel menu utama.

Jalur deteksi jank

Saat membuat profil aplikasi menggunakan perangkat yang menjalankan Android 11 (API level 30) atau yang lebih tinggi, CPU profiler kini menampilkan grup jalur baru yang mengilustrasikan tahap setiap frame pada Frame Lifecycle: Application, Wait for GPU, Composition, dan Frames on display. Setiap jalur melabeli frame dengan nomor frame dan memberi kode warna persegi panjang untuk memudahkan Anda memvisualisasikan posisi frame tertentu dalam siklus prosesnya, beserta panduan untuk beralih untuk dibandingkan dengan peristiwa Vsync. Anda dapat menggunakan data ini untuk mengetahui kemungkinan lokasi jank di aplikasi dan menyelidiki penyebab utamanya. Di panel Analysis, kini ada tab Frames, yang dengan mudah meringkas informasi rendering untuk semua frame. Untuk informasi selengkapnya, lihat Deteksi jank UI.

Dukungan pembuatan profil aplikasi profileable

Saat membuat profil aplikasi, penting untuk membuat data yang akurat dengan versi aplikasi yang paling mirip dengan versi yang akan diinstal pengguna. Untuk melakukannya, kini Anda dapat menyertakan properti <profileable> dalam manifes aplikasi ke aplikasi profil yang tidak dapat di-debug, seperti yang ditunjukkan oleh kode berikut.

<profileable android:shell="true"/>

Profileable adalah konfigurasi manifes yang diperkenalkan di Android 10, dan tersedia untuk tugas pembuatan profil CPU dan Memori. Penggunaan flag profileable, bukan flag debuggable, memiliki keunggulan utama berupa overhead lebih rendah untuk pengukuran performa. Namun, fitur pembuatan profil tertentu tidak tersedia untuk build Profileable, seperti linimasa Peristiwa, pembuatan profil CPU yang dimulai oleh API, heap dump, atau rekaman lokasi langsung. Untuk informasi selengkapnya, lihat Aplikasi Profileable.

Menciutkan frame callstack

Anda kini dapat menciutkan frame yang tidak relevan dengan investigasi Anda saat memeriksa Callstack Sample Recording di jendela alat Profilers. Callstack berguna untuk memahami bagian kode mana yang telah dieksekusi, dan alasan kode dipanggil. Namun, callstack untuk program Java/Kotlin biasanya tidak hanya menyertakan kode Java/Kotlin, tetapi juga frame dari kode native yang dapat mengganggu. Untuk mempelajari lebih lanjut cara menyaring tampilan callstack, lihat Memeriksa frame callstack.

Proses debug nirkabel

Android Studio Bumblebee mendukung fitur proses debug nirkabel di Android 11 dan perangkat yang lebih tinggi. Sambungkan dan deploy aplikasi dari Android Studio melalui Wi-Fi tanpa menggunakan kabel USB atau mengelola koneksi Android Debug Bridge (adb) dengan command line. Untuk menggunakannya, buka opsi Pair devices using Wi-Fi dari menu pilihan perangkat, lalu pilih kode QR atau Kode PIN Penyambungan. Kemudian, pada perangkat Android 11 dan yang lebih tinggi, di bagian Developer options, temukan layar Wireless Debugging, lalu lakukan inisialisasi dan hubungkan ke sesi adb secara nirkabel dengan Android Studio. Pelajari lebih lanjut penyiapan proses debug nirkabel di Menghubungkan ke perangkat melalui Wi-Fi (Android 11+).

Menyambungkan perangkat melalui Wi-Fi

Pratinjau interaktif Compose diaktifkan secara default

Mulai dari Android Studio Bumblebee, fitur pratinjau interaktif diaktifkan secara default. Pratinjau interaktif memungkinkan Anda berinteraksi dengan pratinjau layaknya berinteraksi dengan perangkat. Pratinjau interaktif diisolasi dari pratinjau lain di lingkungan sandbox. Di sini, Anda dapat mengklik elemen dan memasukkan input pengguna dalam pratinjau. Ini adalah cara cepat untuk menguji berbagai status dan gestur dari composable Anda, seperti kotak centang yang dicentang atau kosong.

Mode interaktif pratinjau berjalan langsung di dalam Android Studio tanpa menjalankan emulator, yang menyebabkan beberapa batasan:

  • Tidak ada akses jaringan.
  • Tidak ada akses file.
  • Beberapa Context API mungkin tidak sepenuhnya tersedia.

Pengguna berinteraksi dengan pratinjau di dalam Android Studio

Pratinjau Animated Vector Drawable (AVD)

Alat Animated Vector Drawable menawarkan kemampuan untuk melihat pratinjau resource drawable animasi. Alat ini membantu Anda melihat pratinjau resource <animation-list>, <animated-vector>, dan <animated-selector> di Android Studio dan mempermudah penyesuaian animasi kustom.

Pengguna melihat pratinjau dan memutar animasi di dalam Android Studio

Class R non-transitif aktif secara default

Class R non-transitif kini aktif secara default. Anda dapat menggunakan class R non-transitif dengan plugin Android Gradle guna membuat build yang lebih cepat untuk aplikasi dengan beberapa modul. Cara ini membantu mencegah duplikasi resource dengan memastikan bahwa class R setiap modul hanya berisi referensi ke resource-nya sendiri, tanpa mengambil referensi dari dependensinya. Dengan demikian, build menjadi lebih baru dan Anda dapat menghindari kompilasi terkait.

Anda bisa mendapatkan bantuan menggunakan fitur ini dengan membuka Refactor > Migrate to Non-Transitive R Classes...

Update dukungan Apple Silicon

Bagi pengguna macOS dengan hardware Apple Silicon (arm64), Android Studio Arctic Fox dan Android Emulator telah mendukung arsitektur baru ini sejak tahun lalu. Namun, dengan rilis ini, kami kini telah mengupdate alat platform Android SDK v32.0.0 (yang menyertakan adb dan fastboot) dan alat build v32.1.0 (yang menyertakan aapt) menjadi biner universal sehingga alat developer Android tidak lagi memerlukan penerjemah biner Rosetta. Lihat catatan rilis alat platform SDK.

Update alat pilih perangkat untuk alat desain

Guna menyederhanakan desain aplikasi Anda untuk beragam perangkat Android, kami telah mengupdate alat pilih perangkat di berbagai jendela alat desain, seperti Layout Editor dan Layout Validation, dengan perangkat referensi yang mencerminkan ukuran populer setiap faktor bentuk perangkat. Mulai dari ponsel hingga tablet dan perangkat Wear hingga Android TV, kini pratinjau, validasi, atau pengeditan tata letak di ukuran layar yang paling mewakili perangkat populer di dunia nyata menjadi lebih mudah.

Alat pilih perangkat dengan perangkat serta ukuran dan kepadatannya, yang dikelompokkan menurut class

Pengujian Android

Android Studio Bumblebee dan AGP 7.1 memperkenalkan beberapa fitur dan peningkatan baru untuk membantu Anda menjalankan pengujian instrumentasi otomatis dengan lebih andal dan skalabel serta melihat hasil yang bermanfaat dan dapat digunakan untuk men-debug masalah.

Runner pengujian Gradle terpadu

Plugin Android Gradle 7.1.0 dan Android Studio Bumblebee dan yang lebih tinggi menggunakan implementasi Gradle sendiri untuk runner pengujian berinstrumen Android guna menjalankan pengujian berinstrumen. Dengan menggunakan runner pengujian yang sama, hasilnya kemungkinan akan konsisten baik Anda berjalan menggunakan AGP dari command line, seperti di server integrasi berkelanjutan, atau dari Android Studio.

Runner pengujian Gradle terpadu di Bumblebee

Android Studio versi sebelumnya menggunakan runner pengujian berinstrumen Android IntelliJ, bukan runner pengujian berinstrumen Android Gradle. Jadi, jika Anda tidak menggunakan Android Studio versi terbaru, bergantung pada apakah Anda menjalankan pengujian dari Android Studio atau dari command line menggunakan plugin Gradle, Anda mungkin akan melihat hasil pengujian yang berbeda: seperti pengujian yang lulus menggunakan satu runner dan gagal dengan runner lainnya.

Runner pengujian terpisah pada Android Studio versi lama

Jika Anda sudah memiliki konfigurasi pengujian berinstrumen yang disimpan ke project, konfigurasi tersebut akan menggunakan Gradle untuk menjalankan pengujian pada perangkat yang terhubung. Anda dapat membuat konfigurasi pengujian berinstrumen baru menggunakan tindakan gutter di samping class atau metode pengujian Anda, seperti yang ditunjukkan di bawah.

Menjalankan pengujian dari tindakan gutter

Saat menjalankan pengujian berinstrumen, Anda dapat mengonfirmasi bahwa Android Studio menggunakan runner pengujian Gradle dengan memeriksa output pengujian dalam output tugas Matriks Uji untuk Gradle. Meskipun kami meningkatkan fitur ini di setiap rilis Android Studio, ada beberapa masalah umum. Jika Anda mengalami masalah, silakan laporkan bug. Anda juga dapat menonaktifkan pipeline pengujian baru untuk kembali ke perilaku lama.

Android Emulator kini berjalan langsung di dalam Android Studio secara default

Android Emulator berjalan langsung di dalam Android Studio secara default. Hal ini memungkinkan Anda mempertahankan real estate layar, berpindah dengan cepat antara emulator dan jendela editor menggunakan hotkeys, serta mengatur alur kerja IDE dan emulator dalam satu jendela aplikasi.

Emulator diluncurkan di jendela alat di Android Studio.

Saat emulator berjalan, Anda akan memiliki akses ke tindakan emulator umum seperti memutar, dan opsi kontrol yang diperluas seperti pemutaran navigasi. Untuk menjalankan emulator di jendela terpisah, buka File > Settings > Tools > Emulator (Android Studio > Preferences > Tools > Emulator di macOS), lalu batalkan pilihan Launch in a tool window.

Menonaktifkan pipeline pengujian baru

Secara default, Android Studio Bumblebee menggunakan Gradle untuk menjalankan uji instrumentasinya. Jika mengalami masalah, Anda dapat menonaktifkan perilaku berikut:

  1. Pilih File > Settings > Build, Execution, Deployment > Testing (atau Android Studio > Preferences > Build, Execution, Deployment > Testing di MacOS.)
  2. Hapus centang pada kotak di samping Run Android instrumented tests using Gradle dan klik OK.

Anda juga dapat kembali ke perilaku lama dengan melakukan salah satu tindakan berikut:

  • Saat menjalankan tugas Gradle dari command line, gunakan parameter command line berikut: -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false
  • Tambahkan parameter berikut ke file gradle.properties project Anda: android.experimental.androidTest.useUnifiedTestPlatform=false

Untuk membantu menyelesaikan masalah yang mungkin Anda alami, laporkan bug.

Rilis patch

Berikut adalah rilis patch di Android Studio Bumblebee.

Android Studio Bumblebee | 2021.1.1 Patch 3 (April 2022)

Update minor ini mencakup perbaikan bug berikut:

  • Plugin Android Gradle
    • Masalah class duplikat yang dilaporkan oleh R8
  • Varian Build
    • versionNameSuffix tidak lagi berfungsi jika nama versi varian ditetapkan melalui onVariants API yang baru
  • Pratinjau Compose
    • Perbaikan bug terkait performa dan stabilitas.
    • Mengatasi masalah freeze yang terjadi sesekali saat menggunakan fitur Edit Live Literal.
  • Impor/Sinkronisasi
    • Pesan "Gradle sync needed" memiliki versi AGP yang berlebihan
    • Kompilasi ulang Foo.java/kt membersihkan terlalu banyak dan tidak mengompilasi ulang komponen yang tepat
  • Struktur Project
    • Peningkatan stabilitas AGP Upgrade Assistant saat mengubah versi target
    • AGP Upgrade Assistant kini memberi tahu pengguna tentang plugin Gradle yang sedang diupgrade
  • Network Inspector
    • Network Inspector baru mengalami error setelah Bumblebee diupdate
    • Saya terus-menerus mendapatkan error ini saat debugger terhubung pada Android Studio versi terbaru.
    • TrackedHttpURLConnection.getHeaderField mengalami error dengan NullPointerException

Untuk mengetahui informasi selengkapnya, lihat postingan blog Android Studio Bumblebee Patch 3.

Android Studio Bumblebee | 2021.1.1 Patch 2 (Februari 2022)

Update ini mencakup perbaikan bug berikut:

  • Build C++
    • ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") tidak boleh null
  • Editor Kode
    • Bug di Android Studio Live Templates - ekspresi className() tidak me-resolve nama class
  • D8/R8
    • java.lang.NoSuchMethodError: Tidak ada metode statis $jacocoInit
    • Cakupan pengujian Android rusak karena error Mockito
    • Memerlukan solusi untuk penerapan CAS yang rusak di API 31
    • Class tertutup tidak didukung
    • NullPointerException saat mengaktifkan penggabungan class horizontal di Chrome
    • AbstractMethodError setelah penggabungan metode virtual
    • Kegagalan untuk memverifikasi frame stack karena jenis luar class init salah
    • Input dex menggunakan register yang tidak ditentukan
    • StringBuilderOptimizerAnalysisTest gagal pada cabang rilis
    • Non-determinisme di R8
  • Deployment
    • Gagal menjalankan project aplikasi pemilik perangkat dengan pesan error Couldn't terminate the existing process for
  • Alat Desain
    • Pratinjau Compose gagal menemukan resource dari modul lain saat class R non-transitif diaktifkan
    • Studio berhenti berfungsi di build.
  • Emulator Tersemat
    • Beragam peningkatan performa dan stabilitas.
  • Impor/Sinkronisasi
    • Error IDE saat meluncurkan Bumblebee: File build listingan output tidak tersedia untuk APK jenis output di IdeBuildTasksAndOutputInformationImp
  • IntelliJ
    • Variabel Env tidak bersumber saat diluncurkan dari Mac OS X Monterey Dock
  • Jetpack (androidx) > Navigasi
    • Mengupgrade SafeArgs agar dibuat di AGP stabil terbaru
  • Jendela Alat
    • Tidak dapat menjalankan Pengelola Perangkat Android
    • Network Inspector di BumbleBee tidak menampilkan respons API dalam format yang dapat dibaca

Untuk mengetahui informasi selengkapnya, lihat postingan blog Android Studio Bumblebee Patch 2.

Android Studio Bumblebee | 2021.1.1 Patch 1 (Februari 2022)

Update minor ini mencakup perbaikan bug berikut:

  • Emulator
    • Tidak dapat terhubung ke emulator sematan setelah mengupgrade ke Bumblebee (Mac M1)
  • IntelliJ
    • Variabel Env tidak bersumber saat diluncurkan dari Mac OS X Monterey Dock

Untuk mengetahui informasi selengkapnya, lihat postingan blog Android Studio Bumblebee Patch 1.