Android Studio 3.1 (Maret 2018)
Android Studio 3.1.0 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.
3.1.4 (Agustus 2018)
Update untuk Android Studio 3.1 ini menyertakan perubahan dan perbaikan berikut:
- Versi paket Kotlin saat ini adalah 1.2.50.
- Project baru dibuat dengan
kotlin-stdlib-jdk* artifacts
, bukan dengan artefakkotlin-stdlib-jre*
yang sudah tidak digunakan lagi. - Penguraian R8 untuk aturan ProGuard telah ditingkatkan.
- Bug berikut telah diperbaiki:
- Gagal saat mencoba menjalankan class Kotlin Main dengan error:
"Error: Could not find or load main class..."
- R8 memasuki loop tanpa batas saat melakukan pengoptimalan tertentu.
- Penggunaan perintah Rerun failed tests di jendela Run terkadang secara keliru menampilkan pesan "No tests were found".
- D8 tidak menangani instance
invoke-virtual
dengan benar, sehingga menyebabkan error denganVerifyError
:invoke-super/virtual can't be used on private method
-
Kompilator Data Binding bergantung pada versi
com.android.tools:annotations
yang lama. Kini kompilator ini menggunakan anotasi alat dari project dasar jika tersedia. - Android Studio mengalami error saat transisi fragmen jika menggunakan profiler.
- Debugger tidak berfungsi saat men-debug tata letak yang memiliki kotak teks.
- D8 gagal membaca beberapa file ZIP dengan karakter khusus.
3.1.3 (Juni 2018)
Update untuk Android Studio 3.1 ini menyertakan perbaikan bug berikut:
- Kebocoran memori menyebabkan Android Studio menjadi lambat dan tidak responsif setelah Anda menggunakan Layout Editor. Update ini menyertakan perbaikan untuk sebagian besar masalah tersebut. Kami berencana untuk segera merilis update lain guna mengatasi kebocoran memori tambahan.
- Beberapa aplikasi yang di-build dengan D8 mengalami error pada sebagian tablet Verizon Ellipsis.
- Penginstalan aplikasi yang di-build dengan D8 gagal disertai error
INSTALL_FAILED_DEXOPT
pada perangkat yang menjalankan Android 5.0 atau 5.1 (API level 21 atau 22). - Beberapa aplikasi yang menggunakan library OkHttp dan di-build dengan D8 mengalami error pada perangkat yang menjalankan Android 4.4 (API level 19).
- Terkadang Android Studio gagal dimulai, dengan pesan
ProcessCanceledException
saat inisialisasi class untukcom.intellij.psi.jsp.JspElementType
.
3.1.2 (April 2018)
Update untuk Android Studio 3.1 ini menyertakan perbaikan bug berikut:
- Dalam beberapa kasus, terjadi hang selama waktu yang tidak tentu saat keluar dari Android Studio.
-
Jika Instant Run diaktifkan, build yang dikonfigurasi dengan kumpulan sumber gagal dengan pesan berikut:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Jika Instan Run diaktifkan, build project Kotlin baru akan gagal saat dipicu oleh perintah Run.
- Saat mengedit file
build.gradle
, terkadang ada penundaan yang cukup terasa antara mengetik karakter hingga karakter muncul di layar. -
Dalam beberapa project dengan modul atau dependensi eksternal yang berjumlah besar, terjadi kegagalan build saat proses dexing disertai pesan error berikut:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- Komputasi daftar DEX utama D8 tidak memperhitungkan sebagian pemanggilan reflektif.
Update ini juga menyertakan perubahan yang membuat pemeriksaan lint dari Gradle menjadi jauh lebih cepat dalam beberapa skenario.
3.1.1 (April 2018)
Update untuk Android Studio 3.1 ini menyertakan perbaikan bug berikut:
-
Dalam beberapa kasus, saat project yang dibuat di Android Studio 3.0 dibuka untuk pertama kalinya di Android Studio 3.1, tugas Gradle-aware Make akan dihapus dari area Before launch pada Run/Debug Configurations. Hasilnya, project tersebut tidak di-build saat tombol Run atau Debug diklik, yang kemudian menyebabkan kegagalan seperti men-deploy APK yang salah dan error saat menggunakan Instant Run.
Untuk mengatasi masalah ini, Android Studio 3.1.1 menambahkan tugas Gradle-aware Make ke konfigurasi peluncuran untuk project yang tidak memiliki entri ini. Modifikasi ini terjadi setelah sinkronisasi Gradle pertama ketika project dimuat.
- Debugger mengalami error saat men-debug tata letak yang memiliki kotak teks jika pembuatan profil lanjutan diaktifkan.
- Android Studio berhenti merespons setelah Anda mengklik Build Variants.
- File AAR (Android archive) diekstrak dua kali, sekali saat proses sinkronisasi Gradle dan sekali saat proses build Gradle.
- Elemen tidak ditemukan pada beberapa vektor drawable yang diimpor dari file SVG.
-
Peringatan mengenai penghentian konfigurasi dependensi
compile
telah diperbarui dengan panduan konfigurasiimplementation
danapi
yang lebih baik. Untuk mengetahui detail terkait pengalihan dari penggunaan konfigurasicompile
, lihat dokumentasi untuk konfigurasi dependensi baru.
Coding/IDE
IntelliJ 2017.3.3
Android Studio IDE inti telah diupdate dengan peningkatan dari IntelliJ IDEA melalui rilis 2017.3.3. Peningkatan ini mencakup analisis alur kontrol yang lebih baik untuk koleksi dan string, peningkatan inferensi nullability, berbagai perbaikan cepat baru, serta masih banyak lagi.
Untuk mengetahui detailnya, lihat catatan rilis JetBrains untuk IntelliJ IDEA versi 2017.2 dan 2017.3, serta catatan rilis JetBrains untuk update perbaikan bug.
Pengoptimalan pengeditan SQL dengan Room
Saat menggunakan library database Room, Anda dapat memanfaatkan beberapa peningkatan pada pengeditan SQL:
- Pelengkapan kode dalam
Query
dapat mengidentifikasi tabel (entity), kolom, parameter kueri, alias, gabungan, sub-kueri, dan klausa WITH SQL. - Penandaan sintaksis SQL kini berfungsi.
- Anda dapat mengklik kanan nama tabel dalam SQL dan mengganti namanya, yang juga akan menulis ulang kode Java atau Kotlin terkait (termasuk, misalnya, jenis nilai yang ditampilkan kueri). Penggantian nama ini juga berfungsi secara dua arah, sehingga mengganti nama class atau field Java akan menulis ulang kode SQL terkait.
- Penggunaan SQL akan ditampilkan saat menggunakan Find usages (klik kanan, lalu pilih Find usages dari menu konteks).
- Untuk melihat deklarasi entity SQL dalam kode Java atau Kotlin, tekan tombol Control (Command di Mac) sambil mengklik entity.
Untuk mengetahui informasi tentang cara menggunakan SQL dengan Room, lihat Menyimpan data di database lokal menggunakan Room.
Update untuk data binding
Update ini menyertakan beberapa peningkatan untuk data binding:
-
Kini Anda dapat menggunakan objek
LiveData
sebagai kolom yang dapat diobservasi dalam ekspresi data binding. ClassViewDataBinding
kini menyertakan metodesetLifecycle()
baru yang digunakan untuk mengamati objekLiveData
. -
Class
ObservableField
kini dapat menerima objekObservable
lain dalam konstruktornya. -
Anda dapat melihat pratinjau compiler inkremental baru untuk class data binding. Untuk mengetahui detail tentang compiler baru ini dan petunjuk untuk mengaktifkannya, lihat Compiler Data Binding V2.
Manfaat compiler baru ini mencakup hal berikut:
-
Class
ViewBinding
dibuat oleh Plugin Android untuk Gradle sebelum compiler Java. - Library mempertahankan class binding yang dihasilkan saat aplikasi dikompilasi, bukan dibuat ulang setiap kalinya. Hal ini dapat meningkatkan performa secara signifikan untuk project multi-modul.
-
Class
Compiler dan Gradle
D8 merupakan compiler DEX default
Kompilator D8 sekarang digunakan secara default untuk menghasilkan bytecode DEX.
Kompilator DEX baru ini memiliki beberapa kegunaan, di antaranya:
- Proses dexing yang lebih cepat
- Penggunaan memori yang lebih rendah
- Pembuatan kode telah ditingkatkan (alokasi register yang lebih baik, tabel string yang lebih canggih)
- Pengalaman proses debug yang lebih baik saat meninjau kode
Anda tidak perlu membuat perubahan apa pun pada kode atau alur kerja pengembangan untuk mendapatkan manfaat ini, kecuali jika sebelumnya Anda menonaktifkan compiler D8 secara manual.
Jika Anda menetapkan android.enableD8
ke false
dalam
gradle.properties
, hapus tanda tersebut atau tetapkan ke
true
:
android.enableD8=true
Untuk mengetahui detailnya, lihat Compiler DEX baru.
Desugaring inkremental
Untuk project yang menggunakan fitur bahasa Java 8, desugaring inkremental diaktifkan secara default, sehingga dapat mengefisienkan waktu build.
Desugaring mengonversi sugar sintaktis menjadi bentuk yang dapat diproses compiler secara lebih efisien.
Anda dapat menonaktifkan desugaring inkremental dengan menetapkan berikut ini dalam
file gradle.properties
project:
android.enableIncrementalDesugaring=false
Jendela output yang disederhanakan
Gradle Console telah diganti dengan jendela Build, yang memiliki tab Sync dan Build.
Untuk mengetahui detail tentang cara menggunakan jendela Build baru yang telah disederhanakan, lihat Memantau proses build.
Kumpulan update dan pengindeksan serentak
Sinkronisasi Gradle dan proses pengindeksan IDE kini jauh lebih efisien, sehingga mengurangi waktu yang dihabiskan untuk banyak operasi pengindeksan yang tidak perlu.
C++ dan LLDB
Kami telah menerapkan banyak peningkatan performa dan kualitas dalam tahap coding, sinkronisasi, proses build, serta proses debug untuk pengembangan C++. Peningkatan ini meliputi:
-
Jika mengerjakan project C++ yang besar, Anda akan melihat peningkatan signifikan dalam mengurangi waktu yang dihabiskan untuk mem-build simbol. Waktu sinkronisasi juga jauh berkurang untuk project besar.
-
Performa saat mem-build dan menyinkronkan dengan CMake telah ditingkatkan melalui penggunaan ulang hasil yang di-cache secara lebih agresif.
-
Penambahan pemformat ("pretty printer") untuk struktur data C++ lainnya menjadikan output LLDB lebih mudah dibaca.
-
Kini LLDB hanya berfungsi dengan Android 4.1 (API level 16) dan yang lebih tinggi.
Catatan: Proses debug native dengan Android Studio 3.0 atau yang lebih tinggi tidak berfungsi di Windows 32 bit. Jika Anda menggunakan Windows 32 bit dan perlu men-debug kode native, gunakan Android Studio 2.3.
Kotlin
Kotlin telah diupgrade ke versi 1.2.30
Android Studio 3.1 menyertakan Kotlin versi 1.2.30.
Kini kode Kotlin dianalisis dengan pemeriksaan lint command line
Kini menjalankan lint dari command line akan menganalisis class Kotlin.
Untuk setiap project tempat lint akan dijalankan,
repositori
Maven Google harus disertakan dalam file build.gradle
level
teratas. Repositori Maven sudah disertakan untuk project yang dibuat di
Android Studio 3.0 dan yang lebih tinggi.
Alat performa
Mengambil sampel proses C++ native dengan CPU Profiler
Kini CPU Profiler menyertakan konfigurasi default untuk merekam aktivitas dengan sampel dari thread native aplikasi. Anda dapat menggunakan konfigurasi ini dengan men-deploy aplikasi ke perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih baru, lalu memilih Sampled (Native) dari menu dropdown konfigurasi perekaman CPU Profiler. Setelah itu, rekam dan periksa aktivitas seperti yang biasa Anda lakukan.
Anda dapat mengubah setelan default, seperti interval pengambilan sampel, dengan membuat konfigurasi perekaman.
Untuk beralih kembali ke pelacakan thread Java, pilih konfigurasi Sampled (Java) atau Instrumented (Java).
Memfilter rekaman aktivitas CPU, hasil alokasi memori, dan heap dump
CPU Profiler dan Memory Profiler menyertakan fitur penelusuran yang memungkinkan Anda memfilter hasil dari perekaman pelacakan metode, alokasi memori, atau heap dump.
Untuk melakukan penelusuran, klik Filter di pojok kanan atas panel, ketik kueri, lalu tekan Enter.
Tips: Anda juga dapat membuka kolom penelusuran dengan menekan Control + F (Command + F di Mac).
Pada tab Flame Chart di CPU Profiler, stack panggilan yang menyertakan metode terkait kueri penelusuran akan ditandai dan dipindahkan ke sisi kiri diagram.
Untuk informasi selengkapnya tentang pemfilteran berdasarkan metode, class, atau nama paket, lihat Merekam dan memeriksa pelacakan metode.
Tab Request di Network Profiler
Kini Network Profiler dilengkapi tab Request yang memberikan detail tentang permintaan jaringan selama linimasa yang dipilih. Dalam versi sebelumnya, Network Profiler hanya memberikan informasi tentang respons jaringan.
Thread View di Network Profiler
Setelah memilih bagian linimasa di Network Profiler, Anda dapat memilih salah satu tab berikut untuk melihat detail selengkapnya tentang aktivitas jaringan selama jangka waktu tersebut:
- Connection View: Memberikan informasi yang sama dengan versi Android Studio sebelumnya, yaitu mencantumkan file yang telah dikirim atau diterima selama bagian linimasa yang dipilih di seluruh thread CPU aplikasi. Untuk setiap permintaan, Anda dapat memeriksa ukuran, jenis, status, dan durasi transmisi.
- Thread View: Menampilkan aktivitas jaringan setiap thread CPU aplikasi. Tampilan ini memungkinkan Anda memeriksa thread aplikasi yang menangani setiap permintaan jaringan.
Layout Inspector
Layout Inspector mendapatkan fitur-fitur baru, termasuk beberapa fungsi yang sebelumnya disediakan oleh fitur Hierarchy Viewer dan Pixel Perfect yang tidak digunakan lagi:
- Tombol zoom dan pintasan keyboard untuk menavigasi serta memeriksa tata letak
- Overlay petak referensi
- Kemampuan memuat gambar referensi dan menggunakannya sebagai overlay (berguna untuk membandingkan tata letak dengan tiruan UI)
- Render subtree preview untuk memisahkan tampilan dalam tata letak yang kompleks
Layout Editor
Palette di Layout Editor mendapatkan banyak peningkatan:
- Penataan ulang kategori untuk tampilan dan tata letak.
- Kategori Common baru untuk tampilan dan tata letak, yang dapat ditambahkan dengan perintah Favorite.
- Peningkatan penelusuran untuk tampilan dan tata letak.
- Perintah baru untuk membuka dokumentasi tentang elemen tampilan atau tata letak tertentu.
Anda dapat menggunakan perintah Convert view baru di Component tree atau editor desain untuk mengonversi tampilan atau tata letak menjadi jenis tampilan atau tata letak lain.
Kini Anda dapat dengan mudah membuat batasan untuk item di dekat tampilan yang dipilih menggunakan tombol Create a connection baru pada pemeriksa tampilan di bagian atas jendela Attributes.
Run dan Instant Run
Perilaku opsi Use same selection for future launches pada dialog Select deployment target dibuat lebih konsisten. Jika opsi Use same selection diaktifkan, maka dialog Select deployment target hanya akan terbuka saat Anda pertama kali menggunakan perintah Run hingga perangkat yang dipilih tidak lagi terhubung.
Saat menargetkan perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih baru, Instant Run dapat men-deploy perubahan pada resource tanpa menyebabkan aplikasi dimulai ulang. Hal ini memungkinkan karena resource dimuat dalam APK pecahan.
Emulator
Untuk detail tentang hal yang baru dan yang berubah di emulator sejak Android Studio 3.0, lihat catatan rilis Android Emulator dari versi 27.0.2 hingga versi 27.1.12.
Peningkatan utamanya mencakup:
- Snapshot Quick Boot untuk menyimpan status emulator dan memulai lebih cepat, dengan kemampuan menggunakan perintah Save now untuk menyimpan status mulai kustom.
- Layar emulator tanpa jendela.
- Image sistem untuk Android 8.0 (API level 26), Android 8.1 (API level 27), dan Android P Pratinjau Developer.
Pengoptimalan antarmuka pengguna dan pengalaman pengguna
Lebih banyak tooltip, pintasan keyboard, dan pesan yang membantu
Kami telah menambahkan tooltip dan overlay pesan yang membantu di banyak tempat di Android Studio.
Guna melihat pintasan keyboard untuk berbagai perintah, cukup tahan kursor mouse di atas tombol hingga tooltip muncul.
Menu Tools > Android telah dihapus
Menu Tools > Android telah dihapus. Perintah yang sebelumnya ada dalam menu ini telah dipindahkan.
- Banyak perintah yang dipindahkan langsung ke menu Tools.
- Perintah Sync project with gradle files dipindahkan ke menu File.
- Perintah Device Monitor telah dihapus, seperti dijelaskan di bawah.
Device Monitor tersedia dari command line
Di Android Studio 3.1, peran Device Monitor tidak sebesar sebelumnya. Dalam banyak kasus, fungsi yang tersedia melalui Device Monitor kini disediakan oleh fitur baru yang lebih baik.
Lihat dokumentasi Device Monitor untuk mendapatkan petunjuk tentang cara memanggil Device Monitor dari command line dan detail tentang alat yang tersedia melalui Device Monitor.