Berikut adalah catatan rilis Android Studio 3.6 dan versi yang lebih lama, serta plugin Android Gradle 3.6.0 dan versi yang lebih lama.
Rilis Android Studio versi yang lebih lama
3.6 (Februari 2020)
Android Studio 3.6 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.
Kami juga ingin berterima kasih kepada semua kontributor komunitas yang telah membantu kami dalam rilis ini.
3.6.3 (April 2020)
Update minor ini menyertakan berbagai perbaikan bug. Untuk melihat daftar perbaikan bug penting, baca postingan terkait di blog Update Rilis.
3.6.2 (Maret 2020)
Update minor ini menyertakan berbagai perbaikan bug. Untuk melihat daftar perbaikan bug penting, baca postingan terkait di blog Update Rilis.
3.6.1 (Februari 2020)
Update minor ini menyertakan berbagai perbaikan bug. Untuk melihat daftar perbaikan bug penting, baca postingan terkait di blog Update Rilis.
Alat desain
Versi Android Studio ini menyertakan update untuk beberapa alat desain, termasuk Layout Editor dan Resource Manager.
Tampilan terpisah dan zoom dalam editor desain
Update berikut untuk editor desain visual disertakan dalam rilis ini:
-
Editor desain, seperti Layout Editor dan Navigation Editor, kini menyediakan tampilan Split yang memungkinkan Anda melihat tampilan Design dan Code UI secara bersamaan. Di pojok kanan atas jendela editor, kini ada tiga tombol untuk memilih opsi tampilan:
- Untuk mengaktifkan tampilan terpisah, klik ikon Split .
- Untuk mengaktifkan tampilan sumber XML, klik ikon Source .
- Untuk mengaktifkan tampilan desain, klik ikon Design .
-
Kontrol untuk memperbesar/memperkecil dan menggeser dalam editor desain telah dipindahkan ke panel mengambang di pojok kanan bawah jendela editor.
Untuk mempelajari lebih lanjut, lihat Membangun UI dengan Layout Editor.
Tab Resource Pemilih Warna
Untuk membantu Anda memperbarui nilai resource warna dengan cepat di aplikasi saat menggunakan pemilih warna dalam XML atau alat desain, IDE kini mengisi nilai resource warna untuk Anda.
Resource Manager
Resource Manager berisi pembaruan berikut:
- Resource Manager sekarang mendukung sebagian besar jenis resource.
- Saat menelusuri resource, Resource Manager kini menampilkan hasil dari semua modul project. Sebelumnya, penelusuran hanya menampilkan hasil dari modul yang dipilih.
- Tombol filter memungkinkan Anda melihat resource dari modul dependen lokal, library eksternal, dan framework Android. Anda juga dapat menggunakan filter untuk menampilkan atribut tema.
- Anda kini dapat mengganti nama resource selama proses impor dengan mengklik dalam kotak teks di atas resource.
Untuk mempelajari lebih lanjut, lihat Mengelola resource UI aplikasi dengan Resource Manager.
Update pada plugin Android Gradle
Versi terbaru plugin Android Gradle menyertakan banyak update, termasuk pengoptimalan untuk kecepatan build, dukungan untuk plugin publikasi Maven, dan dukungan untuk View Binding. Untuk mempelajari lebih lanjut, baca catatan rilis lengkap.
View binding
Dengan View binding, menulis kode yang berinteraksi dengan tampilan menjadi lebih mudah, yakni dengan menghasilkan class binding untuk setiap file tata letak XML. Class ini berisi referensi langsung ke semua tampilan yang memiliki ID dalam tata letak terkait.
Karena menggantikan findViewById()
, view binding menghilangkan risiko
pengecualian pointer null yang dihasilkan dari ID tampilan yang tidak valid.
Untuk mengaktifkan view binding, Anda harus menggunakan plugin Android Gradle
3.6.0 atau versi yang lebih baru dan menyertakan kode berikut dalam setiap
file build.gradle
modul:
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
Apply Changes
Kini Anda dapat menambahkan class, lalu men-deploy perubahan kode tersebut ke aplikasi yang sedang berjalan dengan mengklik Apply Code Changes atau Apply Changes and Restart Activity .
Untuk mempelajari perbedaan antara dua tindakan ini lebih lanjut, lihat Apply Changes.
Memfaktorkan ulang opsi menu untuk mengaktifkan dukungan Aplikasi Instan
Kini Anda dapat mengaktifkan secara instan modul dasar kapan pun setelah membuat project aplikasi seperti berikut:
- Buka panel Project dengan memilih View > Tool Windows > Project dari panel menu.
- Klik kanan modul dasar Anda, biasanya dinamai 'app', lalu pilih Refactor > Enable Instant Apps Support.
- Pada dialog yang muncul, pilih modul dasar dari menu dropdown.
- Klik OK.
Catatan:Opsi untuk mengaktifkan secara instan modul aplikasi dasar dari wizard Create New Project telah dihapus.
Untuk mempelajari lebih lanjut, baca Ringkasan Google Play Instan.
Men-deobfuscate class dan bytecode metode pada APK Analyzer
Saat menggunakan APK Analyzer untuk memeriksa file DEX, Anda dapat men-deobfuscate class dan bytecode metode sebagai berikut:
- Pilih Build > Analyze APK dari panel menu.
- Pada dialog yang muncul, buka APK yang ingin Anda periksa dan pilih.
- Klik Open.
- Di APK Analyzer, pilih file DEX yang ingin diperiksa.
- Di penampil file DEX, muat file pemetaan ProGuard untuk APK yang sedang Anda analisis.
- Klik kanan pada class atau metode yang ingin Anda periksa dan pilih Show bytecode.
Alat native
Update berikut mendukung pengembangan native (C/C++) di Android Studio.
Dukungan Kotlin
Fitur NDK di Android Studio berikut, yang sebelumnya didukung dalam Java, kini juga didukung dalam Kotlin:
-
Navigasikan dari deklarasi JNI ke fungsi implementasi terkait pada C/C++. Lihat pemetaan ini dengan mengarahkan kursor ke penanda item C atau C++ di dekat nomor baris dalam file kode sumber terkelola.
-
Otomatis buat fungsi implementasi stub untuk deklarasi JNI. Tentukan deklarasi JNI terlebih dahulu, lalu ketik "jni" atau nama metode dalam file C/C++ untuk mengaktifkan.
-
Fungsi implementasi native yang tidak digunakan ditandai sebagai peringatan dalam kode sumber. Deklarasi JNI yang tidak memiliki implementasi juga ditandai sebagai error.
-
Jika Anda mengganti nama (memfaktorkan ulang) fungsi implementasi native, semua deklarasi JNI terkait akan diperbarui. Ganti nama deklarasi JNI untuk memperbarui fungsi implementasi native.
-
Pemeriksaan tanda tangan untuk implementasi JNI yang terikat secara implisit.
Pengoptimalan JNI lainnya
Editor kode di Android Studio kini mendukung alur kerja pengembangan JNI yang lebih lancar, termasuk petunjuk jenis yang lebih baik, pelengkapan otomatis, pemeriksaan, dan pemfaktoran ulang kode.
Pemuatan ulang APK untuk library native {:#3.6-reload-apk}
Anda tidak perlu lagi membuat project baru jika APK dalam project diupdate di luar IDE. Android Studio mendeteksi perubahan pada APK dan memberikan opsi untuk mengimpornya ulang.
Melampirkan sumber APK khusus Kotlin
Kini Anda dapat melampirkan sumber APK eksternal khusus Kotlin saat membuat profil dan men-debug APK yang sudah dibuat sebelumnya. Untuk mempelajari lebih lanjut, lihat Melampirkan sumber Kotlin/Java.
Deteksi kebocoran di Memory Profiler
Saat menganalisis heap dump di Memory Profiler, kini Anda dapat memfilter data
pembuatan profil yang dianggap Android Studio dapat menunjukkan kebocoran memori untuk instance Activity
dan
Fragment
di aplikasi.
Jenis data yang ditampilkan filter mencakup berikut ini:
-
Instance
Activity
yang telah dihancurkan tetapi masih direferensikan. -
Instance
Fragment
yang tidak memilikiFragmentManager
valid tetapi masih direferensikan.
Melampirkan sumber APK khusus Kotlin
Kini Anda dapat melampirkan sumber APK eksternal khusus Kotlin saat membuat profil dan men-debug APK yang sudah dibuat sebelumnya. Untuk mempelajari lebih lanjut, lihat Melampirkan sumber Kotlin/Java.
Deteksi kebocoran di Memory Profiler
Saat menganalisis heap dump di Memory Profiler, kini Anda dapat memfilter data
pembuatan profil yang dianggap Android Studio dapat menunjukkan kebocoran memori untuk instance Activity
dan
Fragment
di aplikasi.
Jenis data yang ditampilkan filter mencakup berikut ini:
-
Instance
Activity
yang telah dihancurkan tetapi masih direferensikan. -
Instance
Fragment
yang tidak memilikiFragmentManager
yang valid tetapi masih direferensikan.
Dalam situasi tertentu, seperti berikut ini, filter mungkin menghasilkan positif palsu:
Fragment
dibuat tetapi belum digunakan.Fragment
di-cache tetapi bukan sebagai bagian dariFragmentTransaction
.
Untuk menggunakan fitur ini, pertama ambil heap dump atau impor file heap dump ke Android Studio. Untuk menampilkan fragmen dan aktivitas yang mungkin membocorkan memori, pilih kotak centang Activity/Fragment Leaks pada panel heap dump Memory Profiler.
Emulator
Android Studio 3.6 membantu Anda memanfaatkan beberapa update yang disertakan dalam Android Emulator 29.2.7 dan versi yang lebih baru, sebagaimana dijelaskan di bawah ini.
Peningkatan Dukungan Lokasi
Android Emulator 29.2.7 dan yang lebih tinggi menyediakan dukungan tambahan untuk mengemulasi koordinat GPS dan informasi rute. Saat Anda membuka Extended controls Emulator, opsi di tab Location kini disusun dalam dua tab: Single points dan Routes.
Single points
Di tab Single points, Anda dapat menggunakan webview Google Maps untuk menelusuri lokasi menarik, sama seperti yang dilakukan saat menggunakan Google Maps di ponsel atau browser. Saat menelusuri atau mengklik lokasi di peta, Anda dapat menyimpan lokasi dengan memilih Save point di dekat bagian bawah peta. Semua lokasi yang disimpan tercantum di sisi kanan jendela Extended controls.
Untuk menetapkan lokasi Emulator ke lokasi yang Anda pilih di peta, klik tombol Set location di dekat bagian kanan bawah jendela Extended controls.
.
Routes
Serupa dengan tab Single points, tab Routes juga memberikan webview Google Maps yang dapat Anda gunakan untuk membuat rute antara dua atau beberapa lokasi. Untuk membuat dan menyimpan rute, lakukan langkah berikut:
- Dalam tampilan peta, gunakan kolom teks untuk menelusuri tujuan pertama dalam rute Anda.
- Pilih lokasi dari hasil penelusuran.
- Pilih tombol Navigate.
- Pilih titik awal rute Anda dari peta.
- (Opsional) Klik Add destination untuk menambahkan perhentian tambahan ke rute Anda.
- Simpan rute Anda dengan mengklik Save route di tampilan peta.
- Tentukan nama untuk rute dan klik Save.
Untuk menyimulasikan Emulator yang mengikuti rute yang Anda simpan, pilih rute dari daftar Saved routes dan klik Play route di dekat kanan bawah jendela Extended controls. Untuk menghentikan simulasi, klik Stop route.
.
Untuk terus menyimulasikan Emulator mengikuti rute yang ditentukan, aktifkan tombol di sebelah Repeat playback. Untuk mengubah seberapa cepat Emulator mengikuti rute yang ditentukan, pilih opsi dari menu drop-down Playback speed.
Dukungan multi-tampilan
Android Emulator kini memungkinkan Anda men-deploy aplikasi ke beberapa tampilan, yang mendukung dimensi yang dapat disesuaikan dan dapat membantu Anda menguji aplikasi yang mendukung multi-aplikasi dan multi-tampilan. Saat perangkat virtual sedang berjalan, Anda dapat menambahkan hingga dua tampilan tambahan seperti berikut:
-
Buka Extended controls, lalu buka tab Displays.
-
Tambahkan tampilan lain dengan mengklik Add secondary display.
-
Dari menu drop-down di bagian Secondary displays, lakukan salah satu langkah berikut:
-
Pilih salah satu rasio aspek yang telah ditetapkan sebelumnya
-
Pilih custom, lalu setel height, width, dan dpi untuk tampilan kustom.
-
(Opsional) Klik Add secondary display untuk menambahkan tampilan ketiga.
-
Klik Apply changes untuk menambahkan tampilan yang ditentukan ke perangkat virtual yang sedang berjalan.
Template perangkat virtual dan project baru untuk Android Automotive OS
Saat membuat project baru menggunakan Android Studio, kini Anda dapat memilih dari tiga template dari tab Automotive di wizard Create New Project: No Activity, Media service, dan Messaging service. Untuk project yang ada, Anda dapat menambahkan dukungan untuk perangkat Android Automotive dengan memilih File > New > New Module dari panel menu, lalu memilih Automotive Module. Wizard Create New Module akan memandu Anda dalam membuat modul baru menggunakan salah satu template project Android Automotive.
.
Selain itu, kini Anda dapat membuat AVD (Perangkat Virtual Android) untuk perangkat Android Automotive OS dengan memilih salah satu opsi berikut di tab Automotive dalam wizard Virtual Device Configuration.
- Polestar 2: Membuat AVD yang mengemulasi head unit Polestar 2.
- Automotive (lanskap 1024p): Membuat AVD untuk head unit 1024 x 768 px Android Automotive generik.
.
Download SDK yang dapat dilanjutkan
Jika mendownload komponen dan alat SDK menggunakan SDK Manager, Android Studio kini memungkinkan Anda melanjutkan download yang terhenti (misalnya, karena masalah jaringan), bukan memulai ulang download dari awal. Pengoptimalan ini sangat berguna untuk download besar, seperti Android Emulator atau image sistem, bila koneksi internet tidak dapat diandalkan.
Selain itu, jika memiliki tugas download SDK yang berjalan di latar belakang, kini Anda dapat menjeda atau melanjutkan download menggunakan kontrol di status bar.
Win32 tidak digunakan lagi
Android Studio versi Windows 32 bit tidak lagi menerima update setelah Desember 2019, dan tidak akan lagi menerima dukungan setelah Desember 2020. Anda dapat terus menggunakan Android Studio. Namun, untuk menerima update tambahan, upgrade komputer ke Windows versi 64 bit.
Untuk mempelajari lebih lanjut, baca blog depresiasi Windows 32 bit.
Opsi baru untuk mengoptimalkan waktu sinkronisasi Gradle
Dalam rilis sebelumnya, Android Studio mengambil daftar semua tugas Gradle selama Sinkronisasi Gradle. Untuk project besar, mengambil daftar tugas dapat memperlambat waktu sinkronisasi.
Untuk meningkatkan performa Sinkronisasi Gradle, buka File > Settings > Experimental, lalu pilih Do not build Gradle task list during Gradle sync.
Jika Anda mengaktifkan opsi ini, Android Studio akan melewati pembuatan daftar tugas selama sinkronisasi, yang memungkinkan Sinkronisasi Gradle selesai lebih cepat dan meningkatkan responsivitas UI. Perlu diingat, saat IDE melewati pembuatan daftar tugas, daftar tugas di panel Gradle akan kosong, dan pelengkapan otomatis nama tugas dalam file build tidak akan berfungsi.
Lokasi baru untuk beralih mode offline Gradle
Untuk mengaktifkan atau menonaktifkan mode offline Gradle, pertama-tama pilih View > Tool Windows > Gradle dari panel menu. Kemudian, di dekat bagian atas jendela Gradle, klik Toggle Offline Mode .
IntelliJ IDEA 2019.2
Android Studio IDE inti telah diupdate dengan pengoptimalan dari IntelliJ IDEA melalui rilis 2019.2.
Untuk mempelajari lebih lanjut pengoptimalan dari versi IntelliJ lain yang disertakan secara kumulatif dengan versi 2019.2, lihat halaman berikut:
Kontributor komunitas
Terima kasih kepada semua kontributor komunitas yang telah membantu kami menemukan bug dan cara lain untuk mengoptimalkan Android Studio 3.6. Secara khusus, kami ingin berterima kasih kepada orang-orang berikut yang melaporkan bug:
|
|
|
3.5 (Agustus 2019)
Android Studio 3.5 merupakan rilis utama dan hasil dari Project Marble. Mulai dari rilis Android Studio 3.3, inisiatif Project Marble telah diterapkan dalam beberapa rilis yang berfokus pada peningkatan tiga area utama IDE: kondisi sistem, pengoptimalan fitur, dan perbaikan bug.
Untuk informasi tentang hal ini dan update Project Marble lainnya, baca postingan blog Developer Android atau bagian di bawah.
Kami juga ingin berterima kasih kepada semua kontributor komunitas yang telah membantu kami dalam rilis ini.
3.5.3 (Desember 2019)
Update minor ini menyertakan berbagai perbaikan bug dan peningkatan performa.
3.5.2 (November 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.5.1 (Oktober 2019)
Update minor ini menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan terkait di blog Update Rilis.
Project Marble: Kesiapan sistem
Bagian ini menjelaskan perubahan pada Android Studio 3.5 yang berfokus pada peningkatan kondisi sistem.
Setelan memori yang direkomendasikan
Android Studio kini akan memberi notifikasi jika mendeteksi Anda dapat mengoptimalkan performa dengan meningkatkan jumlah maksimum RAM yang harus dialokasikan oleh OS untuk proses Android Studio, seperti IDE inti, daemon Gradle, dan daemon Kotlin. Anda dapat menyetujui setelan yang direkomendasikan dengan mengklik link tindakan di notifikasi, atau menyesuaikan setelan ini secara manual dengan memilih File > Settings (atau Android Studio > Preferences di macOS), lalu menemukan bagian Memory Settings dalam Appearance & Behavior > System Settings. Untuk mempelajari lebih lanjut, lihat Ukuran heap maksimum.
Laporan penggunaan memori
Masalah memori di Android Studio terkadang sulit direproduksi dan dilaporkan. Untuk membantu mengatasi masalah ini, Android Studio memungkinkan Anda membuat laporan penggunaan memori dengan mengklik Help > Analyze Memory Usage dari panel menu. Jika Anda melakukannya, IDE akan membersihkan data yang berisi informasi pribadi secara lokal sebelum menanyakan apakah Anda ingin mengirimnya ke tim Android Studio untuk membantu mengidentifikasi sumber masalah memori. Untuk mempelajari lebih lanjut, lihat Menjalankan laporan penggunaan memori.
Windows: Pengoptimalan I/O file antivirus
Android Studio kini otomatis memeriksa apakah direktori project tertentu dikecualikan dari pemindaian antivirus real-time. Jika penyesuaian dapat dilakukan untuk meningkatkan performa build, Android Studio akan memberi tahu Anda dan memberikan petunjuk tentang cara mengoptimalkan konfigurasi antivirus. Untuk mempelajari lebih lanjut, lihat Meminimalkan dampak software antivirus pada kecepatan build.
Project Marble: Pengoptimalan fitur
Bagian ini menjelaskan perubahan pada Android Studio 3.5 yang berfokus pada pengoptimalan fitur yang ada.
Apply Changes
Apply Changes memungkinkan Anda mengirim perubahan kode dan resource ke aplikasi yang sedang berjalan tanpa memulai ulang aplikasi—dan, dalam kasus tertentu, tanpa memulai ulang aktivitas saat ini. Apply Changes mengimplementasikan pendekatan yang benar-benar baru untuk mempertahankan status aplikasi. Tidak seperti Instant Run, yang menulis ulang bytecode APK, Apply Changes menentukan kembali class sewaktu proses berjalan dengan memanfaatkan instrumentasi runtime yang didukung di Android 8.0 (API level 26) atau yang lebih baru.
Untuk mempelajari lebih lanjut, lihat Apply Changes.
Alur deployment aplikasi
IDE memiliki menu drop-down baru yang memungkinkan Anda dengan cepat memilih perangkat yang ingin digunakan untuk men-deploy aplikasi. Menu ini juga menyertakan opsi baru yang memungkinkan Anda menjalankan aplikasi di beberapa perangkat sekaligus.
Peningkatan sinkronisasi Gradle dan deteksi cache
IDE kini mendeteksi dengan lebih baik jika Gradle menghapus cache build secara berkala saat mengurangi pemakaian hard disk. Dalam versi sebelumnya, status ini menyebabkan IDE melaporkan dependensi yang tidak ada dan gagalnya sinkronisasi Gradle. Kini, IDE cukup mendownload dependensi sesuai kebutuhan untuk memastikan bahwa sinkronisasi Gradle berhasil diselesaikan.
Peningkatan output error build
Jendela Build kini menyediakan laporan error yang lebih baik, seperti link ke file dan baris tempat error yang dilaporkan terjadi, untuk proses build berikut:
- Penautan dan kompilasi AAPT
- R8 dan ProGuard
- Dexing
- Penggabungan resource
- Penguraian file XML
- Kompilasi Javac, Kotlinc, dan CMake
Upgrade Project
Peningkatan pengalaman update untuk memberikan lebih banyak informasi dan tindakan guna membantu Anda mengupdate IDE dan plugin Android Gradle. Misalnya, lebih banyak error sinkronisasi dan build menyertakan tindakan untuk membantu Anda mengurangi error saat mengupdate.
Perlu diingat bahwa Anda dapat mengupdate IDE secara terpisah dari komponen lain, seperti plugin Android Gradle. Jadi, Anda dapat mengupdate IDE dengan aman begitu versi yang lebih baru tersedia, dan memperbarui komponen lainnya nanti.
Layout Editor
Android Studio 3.5 menyertakan beberapa peningkatan untuk visualisasi tata letak, pengelolaan, dan interaksi.
Saat menangani ConstraintLayout
, bagian Constraints baru dalam
panel Attributes mencantumkan hubungan batasan komponen UI
yang dipilih. Anda dapat memilih batasan dari platform desain
atau daftar batasan untuk menandai batasan di kedua area.
Demikian pula, kini Anda dapat menghapus batasan dengan memilihnya, lalu menekan
tombol Delete
. Anda juga dapat menghapus batasan dengan menahan tombol
Control
(Command
di macOS), lalu mengklik
anchor batasan. Perlu diketahui bahwa saat Anda menahan tombol Control
atau
Command
dan mengarahkan kursor ke anchor, semua batasan terkait
akan berubah menjadi merah untuk menunjukkan bahwa Anda dapat mengklik untuk menghapusnya.
Saat tampilan dipilih, Anda dapat membuat batasan dengan mengklik ikon + apa pun di bagian Constraint Widget pada panel Attributes, sebagaimana ditunjukkan dalam gambar berikut. Saat Anda membuat batasan baru, Layout Editor kini memilih dan menandai batasan, sehingga memberikan masukan visual langsung untuk batasan yang baru ditambahkan.
Saat membuat batasan, Layout Editor kini hanya menampilkan titik link yang memenuhi syarat yang dapat dibatasi. Sebelumnya, Layout Editor menandai semua titik link pada semua tampilan, terlepas dari apakah Anda dapat membatasinya atau tidak. Selain itu, overlay biru kini menandai target batasan. Penandaan ini sangat berguna saat mencoba membatasi komponen yang tumpang tindih dengan komponen lain.
Selain update di atas, Android Studio 3.5 juga berisi peningkatan Layout Editor berikut:
- Constraint Widget dan drop-down margin default kini memungkinkan Anda menggunakan resource dimensi untuk margin.
- Pada toolbar Layout Editor, daftar perangkat yang menentukan ukuran platform desain telah diupdate. Selain itu, perilaku pengepasan saat mengubah ukuran telah ditingkatkan, dan ukurannya yang menangani pada permukaan desain sekarang selalu terlihat. Saat mengubah ukuran, overlay baru akan muncul yang menunjukkan ukuran perangkat yang umum.
- Layout Editor memiliki skema warna baru yang meningkatkan konsistensi dan mengurangi kontras antara komponen, teks, dan batasan.
- Mode cetak biru kini menyertakan dukungan teks untuk beberapa komponen yang tidak menampilkan teks.
Untuk informasi selengkapnya tentang perubahan ini, lihat Project Marble Android Studio: Layout Editor.
Data Binding
Selain menambahkan dukungan pemrosesan anotasi inkremental untuk Data Binding, IDE meningkatkan performa dan fitur editor cerdas saat membuat ekspresi data binding dalam XML.
Peningkatan dukungan untuk project C/C++
Android Studio 3.5 menyertakan beberapa perubahan yang meningkatkan dukungan untuk project C/C++.
Peningkatan panel Varian Build untuk sinkronisasi varian tunggal
Kini Anda dapat menentukan varian build aktif dan ABI aktif di panel Build Variants. Fitur ini menyederhanakan konfigurasi build per modul dan juga dapat meningkatkan performa sinkronisasi Gradle.
Untuk mempelajari lebih lanjut, lihat Mengubah varian build.
Versi NDK berdampingan
Kini Anda dapat menggunakan beberapa versi NDK secara berdampingan. Fitur ini memberikan lebih banyak fleksibilitas saat mengonfigurasi project—misalnya, jika Anda memiliki project yang menggunakan versi NDK berbeda pada mesin yang sama.
Jika project menggunakan plugin Android Gradle 3.5.0 atau versi yang lebih baru, Anda juga dapat menentukan versi NDK yang harus digunakan oleh setiap modul dalam project. Anda dapat menggunakan fitur ini untuk membuat build yang dapat direproduksi dan mengurangi inkompatibilitas antara versi NDK dan plugin Android Gradle.
Untuk mempelajari lebih lanjut, lihat Menginstal serta mengonfigurasi NDK, CMake, dan LLDB.
Dukungan ChromeOS
Android Studio kini secara resmi mendukung perangkat ChromeOS, seperti HP Chromebook x360 14, Acer Chromebook 13/Spin 13, dan perangkat lainnya, yang dapat dibaca di persyaratan sistem. Untuk memulai, download Android Studio di perangkat ChromeOS yang kompatibel, lalu ikuti petunjuk penginstalan.
Catatan: Android Studio di ChromeOS saat ini hanya mendukung deployment aplikasi ke perangkat hardware yang terhubung. Untuk mempelajari lebih lanjut, baca Menjalankan aplikasi di perangkat hardware.
Pengiriman bersyarat untuk modul fitur
Pengiriman bersyarat memungkinkan Anda menetapkan persyaratan konfigurasi perangkat tertentu agar modul fitur otomatis didownload selama penginstalan aplikasi. Misalnya, Anda dapat mengonfigurasi agar modul fitur yang mencakup fungsi augmented reality (AR) disediakan saat menginstal aplikasi di perangkat yang mendukung AR saja.
Mekanisme pengiriman ini saat ini mendukung pengontrolan download modul selama proses penginstalan aplikasi berdasarkan konfigurasi perangkat berikut:
- Fitur hardware dan software perangkat, termasuk versi OpenGL ES
- Negara pengguna
- API level
Jika perangkat tidak memenuhi semua persyaratan yang Anda tentukan, modul tidak akan didownload pada saat penginstalan aplikasi. Namun, aplikasi Anda dapat meminta untuk mendownload modul secara on demand pada lain waktu menggunakan Play Core Library. Untuk mempelajari lebih lanjut, baca Mengonfigurasi pengiriman bersyarat.
IntelliJ IDEA 2019.1
Android Studio IDE inti telah diupdate dengan peningkatan dari IntelliJ IDEA melalui rilis 2019.1, seperti penyesuaian tema.
Versi IntelliJ terakhir yang disertakan dengan Android Studio adalah 2018.3.4. Untuk informasi selengkapnya tentang peningkatan dari versi IntelliJ lain yang disertakan secara kumulatif dengan rilis Android Studio ini, lihat update perbaikan bug berikut:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
Update plugin Android Gradle 3.5.0
Untuk mendapatkan informasi tentang hal yang baru dalam plugin Android Gradle 3.5.0, seperti peningkatan dukungan untuk pemrosesan anotasi inkremental dan pengujian unit yang dapat di-cache, lihat catatan rilis.
Kontributor komunitas
Terima kasih kepada semua kontributor komunitas yang telah membantu kami menemukan bug dan cara lain untuk meningkatkan Android Studio 3.5. Secara khusus, kami ingin berterima kasih kepada orang-orang berikut yang melaporkan bug P0 dan P1:
|
|
|
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 di 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:
- Di panel kiri PSD, pilih Dependencies.
- Di panel Modules, pilih modul dengan dependensi ditetapkan yang ingin Anda periksa.
- 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 objekVectorDrawable
. - 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.
Sekarang, dengan R8, desugaring, penyingkatan, obfuscation, pengoptimalan, dan dexing (D8) dapat diselesaikan dalam satu langkah, seperti yang diilustrasikan di bawah ini.
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.
Navigation Editor kini mendukung semua jenis argumen
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.
3.3 (Januari 2019)
Android Studio 3.3 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.
3.3.2 (Maret 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.3.1 (Februari 2019)
Update minor ini menyertakan berbagai perbaikan bug dan peningkatan performa.
IntelliJ IDEA 2018.2.2
Android Studio IDE inti telah diupdate dengan peningkatan dari IntelliJ IDEA melalui rilis 2018.2.2.
Update plugin Android Gradle
Untuk mendapatkan informasi tentang hal yang baru dalam plugin Android Gradle, lihat catatan rilis.
Navigation Editor
Navigation Editor memungkinkan Anda dengan cepat memvisualisasikan dan mem-build navigasi untuk aplikasi menggunakan Komponen Arsitektur Navigasi.
Untuk mengetahui informasi selengkapnya, lihat Mengimplementasikan navigasi dengan Komponen Arsitektur Navigation
Menghapus direktori Android Studio yang tidak digunakan
Saat Anda menjalankan versi utama Android Studio untuk pertama kalinya, Android Studio akan mencari direktori yang berisi cache, setelan, indeks, dan log untuk versi Android Studio dengan penginstalan terkait yang tidak dapat ditemukan. Kemudian, dialog Delete Unused Android Studio Directories akan menampilkan lokasi, ukuran, dan waktu perubahan terakhir untuk direktori yang tidak digunakan tersebut dan memberikan opsi untuk menghapusnya.
Direktori yang dipertimbangkan untuk dihapus oleh Android Studio adalah:
- Linux:
~/.AndroidStudio[Preview]X.Y
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
- Windows:
%USER%.AndroidStudio[Preview]X.Y
Pengoptimalan lint
Performa lint saat dipanggil dari Gradle menjadi jauh lebih cepat. Lint dapat berjalan hingga empat kali lebih cepat untuk project yang lebih besar.
Wizard Create New Project
Wizard Create New Project memiliki tampilan baru dan berisi pembaruan yang membantu menyederhanakan pembuatan project Android Studio baru.
Untuk mengetahui informasi selengkapnya, lihat Membuat project.
Update profiler
Android Studio 3.3 menyertakan update untuk beberapa profiler individual.
Peningkatan performa
Berdasarkan masukan pengguna, performa rendering saat menggunakan profiler telah meningkat secara signifikan. Terus berikan masukan, terutama jika Anda mengalami masalah performa yang berkelanjutan.
Opsi pelacakan alokasi memori profiler
Untuk meningkatkan performa aplikasi saat membuat profil, kini Memori Profiler akan secara berkala mengambil sampel alokasi memori secara default. Jika ingin, Anda dapat mengubah perilaku ini menggunakan drop-down Allocation Tracking saat menguji perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih tinggi.
Dengan drop-down Allocation Tracking, Anda dapat memilih mode berikut:
-
Full: merekam semua alokasi memori objek. Perlu diketahui jika Anda memiliki aplikasi yang mengalokasikan banyak objek, mungkin akan terjadi masalah performa yang signifikan saat membuat profil.
-
Sampled: merekam sampel alokasi memori objek secara berkala. Ini merupakan perilaku default dan tidak berdampak terlalu besar terhadap performa aplikasi saat membuat profil. Anda mungkin akan mengalami beberapa masalah performa pada aplikasi yang mengalokasikan banyak objek dalam jangka waktu singkat.
-
Off: menonaktifkan alokasi memori. Jika belum dipilih, mode ini otomatis diaktifkan saat mengambil rekaman CPU, lalu dikembalikan ke setelan sebelumnya setelah perekaman selesai. Anda dapat mengubah perilaku ini di dialog konfigurasi perekaman aktivitas CPU.
Pelacakan memengaruhi objek Java dan referensi JNI.
Memeriksa data rendering frame
Di CPU Profiler, kini Anda dapat memeriksa waktu yang dibutuhkan aplikasi Java untuk merender setiap frame pada UI thread utama dan RenderThread. Data ini mungkin berguna untuk menyelidiki bottleneck yang menyebabkan jank pada UI dan frekuensi gambar rendah. Misalnya, setiap frame yang memerlukan waktu lebih dari 16 md untuk menjaga kestabilan frekuensi gambar akan ditampilkan dengan warna merah.
Untuk melihat data rendering frame, rekam aktivitas menggunakan konfigurasi yang memungkinkan Anda melacak panggilan sistem (Trace System Calls). Setelah merekam aktivitas, cari info tentang setiap frame di sepanjang linimasa untuk perekaman pada bagian yang disebut FRAMES, sebagaimana ditunjukkan di bawah ini.
Untuk mempelajari penyelidikan dan perbaikan masalah frekuensi gambar lebih lanjut, baca Rendering lambat.
Fragmen di linimasa peristiwa
Linimasa peristiwa kini menunjukkan waktu fragmen dilampirkan dan dilepas. Selain itu, saat Anda mengarahkan kursor ke sebuah fragmen, tooltip akan menampilkan status fragmen tersebut.
Melihat teks berformat untuk payload koneksi di Network profiler
Sebelumnya, Network Profiler hanya menampilkan teks mentah dari payload koneksi. Android Studio 3.3 kini memformat jenis teks tertentu secara default, termasuk JSON, XML, dan HTML. Di tab Response dan Request, klik link View Parsed untuk menampilkan teks berformat, lalu klik link View Source untuk menampilkan teks mentah.
Untuk mengetahui informasi selengkapnya, lihat Memeriksa traffic jaringan dengan Network Profiler.
Mendownload komponen SDK secara otomatis
Jika project membutuhkan komponen SDK dari platform SDK, NDK, atau CMake, Gradle kini akan mencoba untuk otomatis mendownload paket yang diperlukan asalkan sebelumnya Anda telah menyetujui semua perjanjian lisensi terkait penggunaan SDK Manager.
Untuk mengetahui informasi selengkapnya, lihat Mendownload otomatis paket yang tidak ada dengan Gradle.
Dukungan untuk Clang-Tidy
Kini Android Studio mendukung analisis kode statis menggunakan Clang-Tidy untuk project yang menyertakan kode native. Guna mengaktifkan dukungan untuk Clang-Tidy, update NDK ke versi r18 atau yang lebih tinggi.
Kemudian, Anda dapat mengaktifkan atau mengaktifkan kembali pemeriksaan ini dengan membuka dialog Settings atau Preferences, lalu memilih Editor > Inspections > C/C++ > General > Clang-Tidy. Saat memilih pemeriksaan ini pada dialog Settings atau Preferences, Anda juga dapat melihat daftar pemeriksaan Clang-Tidy yang diaktifkan dan dinonaktifkan di bagian Option pada panel paling kanan. Untuk mengaktifkan pemeriksaan tambahan, tambahkan pemeriksaan ke daftar, lalu klik Apply.
Untuk mengonfigurasi Clang-Tidy dengan opsi tambahan, klik Configure Clang-Tidy Checks Options, lalu tambahkan opsi pada dialog yang terbuka.
Penghapusan opsi untuk kustomisasi C++
Opsi berikut telah dihapus dari dialog Customize C++ Support :
- Exceptions Support (-fexceptions)
- Runtime Type Information Support (-ftti)
Masing-masing perilaku diaktifkan untuk semua project yang dibuat melalui Android Studio.
CMake versi 3.10.2
CMake versi 3.10.2 kini disertakan dalam SDK Manager. Perlu diketahui bahwa secara default, Gradle masih menggunakan versi 3.6.0.
Untuk menentukan versi CMake yang akan digunakan Gradle, tambahkan berikut ini ke file
build.gradle
modul:
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
Untuk informasi selengkapnya tentang cara mengonfigurasi CMake dalam build.gradle
, lihat
Mengonfigurasi Gradle secara manual.
Sintaksis "+" baru untuk menentukan versi minimum CMake
Saat menentukan versi CMake dalam file build.gradle
modul utama,
kini Anda dapat menambahkan “+” untuk mencocokkan perilaku perintah
cmake_minimum_required()
CMake.
Perhatian: Menggunakan sintaksis "+" dengan dependensi build lain tidak disarankan, karena dependensi dinamis dapat menyebabkan update versi yang tidak terduga dan kesulitan dalam me-resolve perbedaan versi.
Android App Bundle kini mendukung Aplikasi Instan
Kini Android Studio memungkinkan Anda membangun Android App Bundle dengan dukungan penuh untuk Google Play Instan. Dengan kata lain, kini Anda dapat membangun dan men-deploy aplikasi terinstal serta pengalaman instan dari satu project Android Studio dan menyertakannya dalam satu Android App Bundle.
Jika membuat project Android Studio baru menggunakan dialog Create New Project, pastikan Anda mencentang kotak di samping Configure your project > This project will support instant apps. Selanjutnya, Android Studio akan membuat project aplikasi baru seperti biasanya, tetapi menyertakan properti berikut dalam manifes untuk menambahkan dukungan Aplikasi instan ke modul dasar aplikasi:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
Kemudian, Anda dapat membuat modul fitur yang diaktifkan secara instan dengan memilih File > New > New Module dari panel menu, lalu memilih Instant Dynamic Feature Module dari dialog Create New Module. Perlu diingat bahwa dengan membuat modul ini, modul dasar aplikasi Anda juga diaktifkan secara instan.
Untuk men-deploy aplikasi sebagai pengalaman instan di perangkat lokal, edit konfigurasi run, lalu centang kotak di sebelah General > Deploy as instant app.
Sinkronisasi project varian tunggal
Menyinkronkan project dengan konfigurasi build merupakan langkah penting yang akan memungkinkan Android Studio memahami struktur project. Namun, untuk project besar, proses ini dapat memakan waktu lama. Jika project menggunakan berbagai varian build, kini Anda dapat mengoptimalkan sinkronisasi project dengan hanya membatasinya ke varian yang saat ini Anda pilih.
Anda harus menggunakan Android Studio 3.3 atau yang lebih tinggi dengan Plugin Android Gradle 3.3.0 atau yang lebih tinggi untuk mengaktifkan pengoptimalan ini. Jika memenuhi persyaratan ini, IDE akan meminta Anda mengaktifkan pengoptimalan ini pada saat sinkronisasi project. Pengoptimalan juga diaktifkan secara default pada project baru.
Untuk mengaktifkan pengoptimalan ini secara manual, klik File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle di Mac), lalu centang kotak Only sync the active variant.
Catatan: Saat ini pengoptimalan ini hanya mendukung project yang mencakup bahasa pemrograman Java. Misalnya, jika IDE mendeteksi kode Kotlin atau C++ dalam project, pengoptimalan ini tidak otomatis diaktifkan, dan Anda tidak boleh mengaktifkannya secara manual.
Untuk informasi selengkapnya, lihat Mengaktifkan sinkronisasi project varian tunggal.
Memberikan masukan cepat
Jika memilih membagikan statistik penggunaan untuk membantu meningkatkan Android Studio, Anda akan melihat dua ikon baru ini pada status bar di bagian bawah jendela IDE:
Cukup klik ikon yang paling mewakili pengalaman Anda saat ini dengan IDE. Setelah melakukannya, IDE akan mengirimkan statistik penggunaan agar tim Android Studio dapat lebih memahami pengalaman Anda. Dalam kasus tertentu, misalnya saat melaporkan pengalaman negatif dengan IDE, Anda akan diberi kesempatan untuk memberikan masukan tambahan.
Jika belum melakukannya, Anda dapat mengaktifkan berbagi statistik penggunaan dengan membuka dialog Settings (Preferences di Mac), memilih Appearance & Behavior > System Settings > Data Sharing, lalu mencentang Send usage statistics to Google.
3.2 (September 2018)
Android Studio 3.2 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.
3.2.1 (Oktober 2018)
Update untuk Android Studio 3.2 ini menyertakan perubahan dan perbaikan berikut:
- Versi paket Kotlin saat ini adalah 1.2.71.
- Versi alat build default saat ini adalah 28.0.3.
- Di library Navigation, jenis argumen telah diganti namanya dari
type
menjadiargType
. - Bug berikut telah diperbaiki:
- Saat menggunakan library Data Binding, nama variabel dengan garis bawah menyebabkan error kompilasi.
- CMake menyebabkan IntelliSense dan fitur CLion lainnya gagal.
- Menambahkan
SliceProvider
menyebabkan error kompilasi dalam project yang tidak menggunakan libraryandroidx.*
. - Beberapa pengujian unit Kotlin tidak dijalankan.
- Masalah dengan data binding menyebabkan
PsiInvalidElementAccessException
. - Elemen
<merge>
terkadang menyebabkan Layout Editor berhenti berfungsi.
Masalah umum 3.2.0
Catatan: Masalah ini telah diatasi di Android Studio 3.2.1
Kami sangat tidak menyarankan penggunaan Kotlin versi 1.2.70.
Kotlin versi 1.2.61 memperbaiki bug yang dapat menyebabkan Android Studio macet, tetapi Kotlin 1.2.70 tidak menyertakan perbaikan ini.
Namun, Kotlin versi 1.2.71 dan yang lebih baru menyertakan perbaikan ini.
-
Meskipun biasanya Anda tidak perlu menentukan versi alat build, saat menggunakan plugin Android Gradle 3.2.0 dengan
renderscriptSupportModeEnabled
disetel ketrue
, Anda harus menyertakan berikut ini di setiap filebuild.gradle
modul:android.buildToolsVersion "28.0.3"
Asisten Yang Baru
Asisten baru menginformasikan perubahan terbaru di Android Studio kepada Anda.
Asisten ini akan terbuka saat Anda memulai Android Studio setelah melakukan penginstalan baru atau update jika asisten mendeteksi adanya informasi baru untuk ditampilkan. Anda juga dapat membuka asisten ini dengan memilih Help > What's new in Android Studio.
Android Jetpack
Android Jetpack membantu mempercepat pengembangan Android dengan komponen, fitur, dan panduan yang meniadakan tugas berulang serta memungkinkan Anda mem-build aplikasi berkualitas tinggi yang dapat diuji dengan lebih cepat dan mudah. Android Studio menyertakan update berikut untuk mendukung Jetpack. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Jetpack.
Navigation Editor
Navigation Editor baru terintegrasi dengan komponen navigasi Android Jetpack, sehingga memberikan tampilan grafis untuk membuat struktur navigasi aplikasi. Navigation Editor menyederhanakan desain dan implementasi navigasi antar-tujuan dalam aplikasi.
Di Android Studio 3.2, Navigation Editor merupakan fitur eksperimental. Untuk mengaktifkan Navigation Editor, klik File > Settings (Android Studio > Preferences di Mac), pilih kategori Experimental pada panel kiri, centang kotak di samping Enable Navigation Editor, lalu mulai ulang Android Studio.
Untuk mempelajari lebih lanjut, baca dokumentasi Navigation Editor.
Migrasi AndroidX
Sebagai bagian dari Jetpack, kami memigrasikan Android Support Library ke library ekstensi
Android baru menggunakan namespace androidx
. Untuk mengetahui informasi
selengkapnya, lihat
ringkasan AndroidX.
Android Studio 3.2 membantu Anda menyelesaikan proses ini dengan fitur migrasi baru.
Untuk memigrasikan project yang ada ke AndroidX, pilih Refactor > Migrate to AndroidX. Jika Anda memiliki dependensi Maven yang belum dimigrasikan ke namespace AndroidX, sistem build Android Studio juga akan otomatis mengonversi dependensi project tersebut.
Plugin Android Gradle menyediakan tanda global berikut yang dapat ditetapkan
dalam file gradle.properties
:
android.useAndroidX
: Jika ditetapkan ketrue
, tanda ini menunjukkan bahwa mulai sekarang Anda ingin menggunakan AndroidX. Jika flag ini tidak ada, Android Studio akan berperilaku seolah flag ini disetel kefalse
.android.enableJetifier
: Jika disetel ketrue
, flag ini menunjukkan bahwa Anda ingin memiliki dukungan alat (dari plugin Android Gradle) untuk otomatis mengonversi library pihak ketiga yang ada, seolah library tersebut ditulis untuk AndroidX. Jika flag ini tidak ada, Android Studio akan berperilaku seolah flag ini disetel kefalse
.
Kedua flag disetel ke true
saat Anda menggunakan
perintah Migrate to AndroidX.
Jika ingin segera mulai menggunakan library AndroidX dan tidak perlu
mengonversi library pihak ketiga yang ada, Anda dapat menetapkan
tanda android.useAndroidX
ke true
dan
tanda android.enableJetifier
ke false
.
Android App Bundle
Android App Bundle adalah format upload baru yang mencakup semua kompilasi kode dan resource aplikasi Anda, tetapi menyerahkan pembuatan serta penandatanganan APK ke Google Play Store.
Model penayangan aplikasi baru Google Play menggunakan app bundle untuk membuat dan menayangkan APK yang dioptimalkan untuk setiap konfigurasi perangkat pengguna, sehingga setiap pengguna hanya perlu mendownload kode dan resource yang diperlukan untuk menjalankan aplikasi. Anda tidak perlu lagi membangun, menandatangani, serta mengelola beberapa APK, dan pengguna akan mendapatkan hasil download yang lebih kecil dan dioptimalkan.
Selain itu, Anda dapat menambahkan modul fitur ke project aplikasi dan menyertakannya dalam app bundle. Kemudian, pengguna dapat mendownload dan menginstal fitur aplikasi secara on demand.
Untuk membangun bundle, pilih Build > Build Bundle(s) / APK(s) > Build Bundle(s).
Untuk mengetahui informasi selengkapnya, termasuk petunjuk untuk mem-build dan menganalisis Android App Bundle, lihat Android App Bundle.
Data sampel di Layout Editor
Banyak tata letak Android yang memiliki data runtime yang dapat mempersulit visualisasi tampilan dan nuansa tata letak selama tahap desain pengembangan aplikasi. Kini Anda dapat melihat pratinjau tampilan di Layout Editor yang sudah diisi dengan data sampel. Saat Anda menambahkan sebuah tampilan, tombol akan muncul di bawah tampilan tersebut pada jendela Design. Klik tombol ini untuk menyetel atribut tampilan waktu desain. Anda dapat memilih dari berbagai template data sampel dan menentukan jumlah item sampel yang akan digunakan untuk mengisi tampilan.
Untuk mencoba menggunakan data sampel, tambahkan
RecyclerView
ke tata letak baru, klik tombol atribut waktu desain
di bawah tampilan, dan pilih pilihan dari carousel template data
sampel.
Slice
Slice menyediakan cara baru untuk menyematkan bagian-bagian dari fungsi aplikasi Anda di lapisan antarmuka pengguna yang lain di Android. Misalnya, dengan Slice, fungsi dan konten aplikasi dapat muncul di saran Google Penelusuran.
Android Studio 3.2 memiliki template bawaan untuk membantu Anda memperluas aplikasi dengan Slice Provider API baru, beserta pemeriksaan lint baru untuk memastikan Anda mengikuti praktik terbaik saat menyusun Slice.
Untuk memulai, klik kanan folder project dan pilih New > Other > Slice Provider.
Untuk mempelajari lebih lanjut, termasuk cara menguji interaksi Slice, baca Panduan memulai Slice.
Kotlin 1.2.61
Android Studio 3.2 menyertakan Kotlin 1.2.61, dan Android SDK yang baru terintegrasi secara lebih baik dengan Kotlin. Untuk mengetahui informasi selengkapnya, lihat blog Developer Android.
IntelliJ IDEA 2018.1.6
Android Studio IDE inti telah diupdate dengan peningkatan dari IntelliJ IDEA melalui rilis 2018.1.6.
Android profiler
Coba fitur-fitur baru Android Profiler berikut di Android Studio 3.2.
Sesi
Kini Anda dapat menyimpan data Profiler sebagai sesi untuk dibuka kembali dan diperiksa di lain waktu. Profiler menyimpan data sesi hingga Anda memulai ulang IDE.
Saat Anda merekam pelacakan metode atau merekam heap dump, IDE akan menambahkan data tersebut (beserta aktivitas jaringan aplikasi) sebagai entri terpisah ke sesi saat ini, dan Anda dapat dengan mudah beralih antar-rekaman untuk membandingkan data.
System Trace
Di CPU profiler, pilih
konfigurasi System Trace baru untuk memeriksa aktivitas thread dan CPU
sistem perangkat. Konfigurasi pelacakan ini di-build di
systrace
dan berguna untuk menyelidiki masalah level sistem, seperti jank pada UI.
Saat menggunakan konfigurasi pelacakan ini, Anda dapat menandai rutinitas kode penting
di linimasa profiler secara visual dengan menginstrumentasi kode C/C++ dengan
API pelacakan native atau kode Java dengan class
Trace
.
Memeriksa referensi JNI di Memory Profiler
Jika Anda men-deploy aplikasi ke perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih tinggi, kini Anda dapat memeriksa alokasi memori untuk kode JNI aplikasi menggunakan Memory Profiler.
Saat aplikasi sedang berjalan, pilih bagian linimasa yang ingin diperiksa, lalu pilih JNI heap dari menu drop-down di atas daftar class, sebagaimana ditunjukkan di bawah ini. Selanjutnya, Anda dapat memeriksa objek dalam heap seperti biasanya dan mengklik dua kali objek di tab Allocation Call Stack untuk melihat lokasi referensi JNI dialokasikan dan dilepas dalam kode.
Mengimpor, mengekspor, dan memeriksa file heap dump memori
Kini Anda dapat mengimpor, mengekspor, dan memeriksa file heap dumb memori .hprof
yang dibuat
dengan Memory Profiler.
Impor file .hprof
dengan mengklik Start new profiler session
pada
panel Sessions profiler, lalu memilih Load from file. Selanjutnya, Anda dapat
memeriksa datanya di Memory Profiler seperti heap dump lainnya.
Guna menyimpan heap dump untuk ditinjau di lain waktu, gunakan tombol Export Heap Dump di
sebelah kanan entri Heap Dump pada panel Sessions. Pada dialog
Export As yang muncul, simpan file dengan ekstensi nama
file .hprof
.
Merekam aktivitas CPU saat aplikasi dimulai
Kini Anda dapat merekam aktivitas CPU selama proses startup aplikasi seperti berikut:
- Pilih Run > Edit Configurations dari menu utama.
- Di bagian tab Profiling pada konfigurasi berjalan yang diinginkan, centang kotak di sebelah Start recording a method trace on startup.
- Pilih konfigurasi perekaman CPU yang ingin digunakan dari menu dropdown.
- Terapkan aplikasi Anda ke perangkat yang menjalankan Android 8.0 (level API 26) atau yang lebih baru dengan memilih Run > Profile.
Mengekspor rekaman aktivitas CPU
Setelah merekam aktivitas CPU dengan CPU Profiler, Anda dapat mengekspor datanya
sebagai file .trace
untuk dibagikan kepada orang lain atau diperiksa di lain waktu.
Untuk mengekspor rekaman aktivitas CPU, lakukan langkah berikut:
- Klik kanan pada rekaman yang ingin diekspor dari timeline CPU.
- Pilih Export trace dari menu drop-down.
- Arahkan ke lokasi yang diinginkan untuk menyimpan file, lalu klik Save.
Mengimpor dan memeriksa file rekaman aktivitas CPU
Kini Anda dapat mengimpor dan memeriksa file .trace
yang dibuat dengan
Debug API atau
CPU Profiler. (Saat ini, Anda
tidak dapat mengimpor rekaman Pelacakan Sistem.)
Impor file rekaman aktivitas dengan mengklik Start new profiler session di panel Sessions profiler, lalu pilih Load from file. Kemudian, Anda dapat memeriksa datanya di CPU Profiler dengan cara yang mirip seperti biasanya, tetapi terdapat pengecualian berikut:
- Aktivitas CPU tidak ditampilkan di sepanjang linimasa CPU.
- Linimasa aktivitas thread hanya menunjukkan lokasi data rekaman aktivitas tersedia untuk setiap thread, dan bukan status thread aktual (seperti berjalan, menunggu, atau tidur).
Merekam aktivitas CPU menggunakan Debug API
Kini Anda dapat memulai dan menghentikan perekaman aktivitas di CPU Profiler dengan
menginstrumentasi aplikasi menggunakan Debug API. Setelah
men-deploy aplikasi ke perangkat, profiler akan otomatis mulai merekam aktivitas
CPU saat aplikasi memanggil
startMethodTracing(String tracePath)
,
dan profiler akan berhenti merekam saat aplikasi memanggil
stopMethodTracing()
. Saat
merekam aktivitas CPU yang dipicu menggunakan API ini, CPU Profiler akan menampilkan
Debug API sebagai konfigurasi perekaman CPU yang dipilih.
Energy Profiler
Energy Profiler menampilkan visualisasi perkiraan penggunaan energi aplikasi, serta peristiwa sistem yang memengaruhi penggunaan energi, seperti wakelock, alarm, dan tugas.
Energy Profiler muncul sebagai baris baru di bagian bawah jendela Profiler saat Anda menjalankan aplikasi di perangkat yang terhubung atau Android Emulator yang menjalankan Android 8.0 (API 26) atau yang lebih baru.
Klik baris Energy untuk memaksimalkan tampilan Energy Profiler. Tempatkan kursor mouse pada panel di linimasa untuk melihat perincian penggunaan energi oleh CPU, jaringan, dan resource lokasi (GPS), serta peristiwa sistem yang relevan.
Peristiwa sistem yang memengaruhi penggunaan energi ditunjukkan di linimasa System di bawah linimasa Energy. Detail peristiwa sistem dalam rentang waktu yang ditentukan akan ditampilkan pada panel peristiwa saat Anda memilih rentang waktu di linimasa Energy.
Untuk melihat stack panggilan dan detail peristiwa sistem lainnya, seperti wakelock, pilih peristiwa tersebut di panel peristiwa. Guna membuka kode yang ditetapkan untuk suatu peristiwa sistem, klik dua kali entri di stack panggilan.
Pemeriksaan lint
Android Studio 3.2 menyertakan banyak fitur baru dan yang ditingkatkan untuk pemeriksaan lint.
Pemeriksaan lint baru ini membantu Anda menemukan dan mengidentifikasi masalah kode yang umum, mulai dari peringatan tentang potensi masalah kegunaan hingga error prioritas tinggi terkait potensi kerentanan keamanan.
Pemeriksaan lint untuk interoperabilitas Java/Kotlin
Untuk memastikan bahwa kode Java Anda dapat saling beroperasi dengan kode Kotlin, pemeriksaan lint baru akan menerapkan praktik terbaik yang dijelaskan dalam Panduan Interoperabilitas Kotlin. Contoh pemeriksaan ini mencakup pencarian keberadaan anotasi Nullability, penggunaan kata kunci tetap Kotlin, dan penempatan parameter lambda di akhir.
Untuk mengaktifkan pemeriksaan ini, klik File > Settings (Android Studio > Preferences di Mac) untuk membuka dialog Settings, klik bagian Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability, lalu pilih aturan yang ingin diaktifkan.
Guna mengaktifkan pemeriksaan ini untuk build command line, tambahkan berikut ini ke
file build.gradle
:
android {
lintOptions {
check 'Interoperability'
}
}
Pemeriksaan lint untuk Slice
Pemeriksaan lint baru untuk Slice membantu memastikan bahwa Anda menyusun Slice dengan benar. Misalnya, pemeriksaan lint akan memperingatkan Anda jika tindakan utama ke suatu Slice belum ditetapkan.
Target Gradle baru
Gunakan tugas Gradle lintFix
baru untuk menerapkan semua perbaikan aman
yang disarankan oleh pemeriksaan lint langsung ke kode sumber. Contoh pemeriksaan lint yang
menyarankan perbaikan yang aman untuk diterapkan adalah SyntheticAccessor
.
Pembaruan metadata
Berbagai metadata, seperti pemeriksaan cast layanan, telah diupdate agar pemeriksaan lint berfungsi dengan Android 9 (API level 28).
Peringatan jika menjalankan lint pada varian baru
Sekarang lint mencatat varian dan versi mana yang digunakan untuk merekam dasar pengukuran, dan lint akan memperingatkan jika Anda menjalankannya pada varian yang berbeda dengan yang digunakan untuk membuat dasar pengukuran.
Pengoptimalan pemeriksaan lint yang ada
Android Studio 3.2 menyertakan banyak peningkatan untuk pemeriksaan lint yang ada. Misalnya, pemeriksaan siklus resource kini berlaku pada jenis resource lain, dan detektor terjemahan dapat dengan cepat menemukan terjemahan yang tidak ada, di editor.
ID masalah lebih mudah ditemukan
Kini ID masalah ditampilkan di lebih banyak tempat, termasuk di jendela Inspection
Results. Hal ini memudahkan Anda menemukan informasi yang diperlukan
untuk mengaktifkan atau menonaktifkan pemeriksaan tertentu melalui lintOptions
di
build.gradle
.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi opsi lint dengan Gradle.
Data Binding V2
Sekarang Data Binding V2 diaktifkan secara default dan kompatibel dengan V1. Dengan kata lain, jika Anda memiliki dependensi library yang dikompilasi dengan V1, Anda dapat menggunakannya dengan project yang memakai Data Binding V2. Namun, perhatikan bahwa project yang menggunakan V1 tidak dapat menggunakan dependensi yang dikompilasi dengan V2.
Desugaring D8
Pada Android Studio 3.1, kami mengintegrasikan langkah desugaring ke dalam D8 sebagai fitur eksperimental, sehingga mengurangi waktu build keseluruhan. Pada Android Studio 3.2, desugaring dengan D8 diaktifkan secara default.
Shrinker kode baru
R8 adalah fitur baru untuk obfuscation dan penyingkatan kode yang menggantikan ProGuard. Anda dapat mulai menggunakan versi pratinjau R8 dengan menyertakan kode berikut dalam file gradle.properties
project:
android.enableR8 = true
ABI default untuk multi-APK diubah
Saat membangun multi-APK yang
masing-masing menargetkan ABI berbeda, secara default plugin tidak lagi menghasilkan APK untuk
ABI berikut: mips
, mips64
, dan armeabi
.
Jika ingin membuat APK yang menargetkan ABI ini, Anda harus menggunakan
NDK r16b atau yang lebih lama dan menentukan ABI
dalam file build.gradle
Anda, seperti ditunjukkan di bawah ini:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Catatan: Perubahan perilaku ini juga tercakup dalam Android Studio 3.1 RC1 dan yang lebih tinggi.
Fitur editor yang ditingkatkan untuk file build CMake
Jika Anda menggunakan CMake untuk menambahkan kode C dan C++ ke project, kini Android Studio menyertakan fitur editor yang ditingkatkan guna membantu Anda mengedit skrip build CMake, seperti berikut:
- Penandaan sintaksis dan pelengkapan kode: Kini IDE menandai dan menyarankan pelengkapan kode untuk perintah CMake umum. Selain itu, Anda dapat membuka file dengan mengkliknya sambil menekan tombol Control (Command di Mac).
- Pemformatan ulang kode: Kini Anda dapat menggunakan opsi pemformatan ulang kode IntelliJ untuk menerapkan gaya kode ke skrip build CMake.
- Pemfaktoran ulang yang aman: Kini alat pemfaktoran ulang bawaan IDE juga memeriksa apakah Anda mengganti nama atau menghapus file yang direferensikan dalam skrip build CMake.
Membuka file header eksternal
Saat menggunakan jendela Project di Android Studio versi sebelumnya, Anda hanya dapat membuka dan memeriksa file header yang termasuk dalam library yang Anda build dari project lokal. Dengan rilis ini, sekarang Anda juga dapat melihat dan memeriksa file header yang disertakan dengan dependensi library C/C++ eksternal yang Anda impor ke dalam project aplikasi.
Jika Anda sudah memasukkan kode dan library C/C++ dalam project, buka jendela Project di sebelah kiri IDE dengan memilih View > Tool Windows > Project dari menu utama, lalu pilih Android dari menu drop-down. Pada direktori cpp, semua header yang ada dalam cakupan project aplikasi Anda akan diatur di node include untuk setiap dependensi library C/C++ lokal, seperti ditunjukkan di bawah ini.
Native multidex diaktifkan secara default
Android Studio versi sebelumnya mengaktifkan native multidex saat men-deploy versi debug sebuah aplikasi ke perangkat yang menjalankan Android API level 21 atau lebih tinggi. Sekarang, baik Anda men-deploy ke perangkat atau mem-build APK untuk rilis, plugin Android untuk Gradle akan mengaktifkan native multidex untuk semua modul yang menetapkan minSdkVersion=21
atau yang lebih tinggi.
AAPT2 dipindahkan ke repositori Maven Google
Mulai Android Studio 3.2, sumber untuk AAPT2 (Android Asset Packaging Tool 2) adalah repositori Maven Google.
Untuk menggunakan AAPT2, pastikan Anda memiliki dependensi google()
dalam file build.gradle
, seperti ditunjukkan di sini:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
AAPT2 versi baru ini memperbaiki banyak masalah, termasuk penanganan karakter non-ASCII yang lebih baik di Windows.
Penghapusan konfigurasi sesuai permintaan
Preferensi Configure on demand telah dihapus dari Android Studio.
Android Studio tidak lagi meneruskan argumen --configure-on-demand
ke Gradle.
ADB Connection Assistant
ADB Connection Assistant yang baru menyediakan petunjuk langkah demi langkah untuk membantu Anda menyiapkan dan menggunakan perangkat melalui koneksi Android Debug Bridge (ADB).
Untuk memulai asisten ini, pilih Tools > Connection Assistant.
ADB Connection Assistant menyediakan petunjuk, kontrol sesuai konteks, dan daftar perangkat yang terhubung dalam serangkaian halaman di panel Assistant.
Peningkatan emulator
Sekarang Anda dapat menyimpan serta memuat snapshot AVD (perangkat virtual Android) kapan saja di Android Emulator, sehingga Anda dapat mengembalikan perangkat emulasi ke kondisi yang diketahui untuk pengujian dengan cepat dan mudah. Saat mengedit AVD menggunakan AVD Manager, Anda dapat menentukan snapshot AVD yang akan dimuat saat AVD dimulai.
Kini kontrol untuk menyimpan, memuat, dan mengelola snapshot AVD tersedia dari tab Snapshot di jendela Extended controls pada emulator.
Untuk mengetahui detailnya, lihat Snapshot.
Untuk mengetahui informasi tambahan tentang hal-hal yang baru dan berubah di Emulator, lihat catatan rilis Emulator.
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.
3.0 (Oktober 2017)
Android Studio 3.0.0 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.
Pengguna macOS: Jika mengupdate Android Studio versi yang lebih lama, Anda mungkin melihat dialog error update yang bertuliskan "Some conflicts were found in the installation area". Abaikan error ini, lalu klik Cancel untuk melanjutkan penginstalan.
3.0.1 (November 2017)
Ini merupakan update minor untuk Android Studio 3.0 yang menyertakan perbaikan bug umum dan peningkatan performa.
Plugin Android untuk Gradle 3.0.0
Plugin Android untuk Gradle yang baru menyertakan berbagai peningkatan dan fitur baru, terutama peningkatan performa build untuk project-project yang memiliki banyak modul. Saat menggunakan plugin baru dengan project-project besar tersebut, Anda akan merasakan perubahan berikut:
- Waktu konfigurasi build menjadi lebih cepat karena adanya resolusi dependensi baru yang tertunda.
- Resolusi dependensi berdasarkan varian hanya untuk project dan varian yang sedang di-build.
- Waktu build inkremental yang lebih cepat saat menerapkan perubahan sederhana pada kode atau resource.
Catatan: Peningkatan ini memerlukan perubahan signifikan yang mengganggu sebagian perilaku, DSL, dan API plugin. Mengupgrade ke versi 3.0.0 mungkin memerlukan perubahan pada file build dan plugin Gradle.
Versi ini juga menyertakan hal-hal berikut:
- Dukungan untuk Android 8.0.
- Dukungan untuk proses build APK terpisah berdasarkan resource bahasa.
- Dukungan untuk library Java 8 dan fitur bahasa Java 8 (tanpa compiler Jack).
- Dukungan untuk Android Test Support Library 1.0 (Android Test Utility dan Android Test Orchestrator).
- Peningkatan kecepatan ndk-build dan build cmake.
- Peningkatan kecepatan sinkronisasi Gradle.
- AAPT2 sekarang diaktifkan secara default.
- Penggunaan
ndkCompile
kini lebih dibatasi. Sebagai gantinya, beralihlah ke CMake atau ndk-build untuk mengompilasi kode native yang ingin Anda kemas ke dalam APK. Untuk mempelajari lebih lanjut, baca Bermigrasi dari ndkcompile.
Untuk mengetahui informasi selengkapnya mengenai hal-hal yang berubah, lihat catatan rilis Plugin Android untuk Gradle.
Jika Anda sudah siap melakukan upgrade ke plugin yang baru, lihat Bermigrasi ke Plugin Android untuk Gradle 3.0.0.
Dukungan Kotlin
Seperti yang diumumkan di Google I/O 2017, bahasa pemrograman Kotlin kini secara resmi didukung di Android. Jadi, dengan rilis ini, Android Studio menyertakan dukungan bahasa Kotlin untuk pengembangan Android.
Anda dapat menyertakan Kotlin ke project Anda dengan mengonversi file Java menjadi Kotlin (klik Code > Convert Java File to Kotlin File) atau dengan membuat project baru yang mendukung Kotlin melalui wizard New Project.
Untuk memulai, baca cara menambahkan Kotlin ke project Anda.
Dukungan fitur bahasa Java 8
Kini Anda dapat menggunakan fitur bahasa Java 8 tertentu dan memanfaatkan library yang di-build dengan Java 8. Jack tidak lagi diperlukan, dan Anda harus menonaktifkan Jack terlebih dahulu untuk menggunakan dukungan Java 8 yang telah ditingkatkan yang diintegrasikan ke dalam toolchain default.
Untuk memperbarui project Anda agar mendukung toolchain bahasa Java 8 yang baru, ubah Source Compatibility dan Target Compatibility menjadi 1.8 pada dialog Project Structure (klik File > Project Structure). Untuk mempelajari lebih lanjut, baca cara menggunakan fitur bahasa Java 8.
Android Profiler
Android Profiler baru menggantikan fitur Android Monitor dan menyediakan serangkaian fitur baru untuk mengukur penggunaan CPU, memori, serta jaringan aplikasi Anda secara real time. Anda dapat melakukan pelacakan metode berbasis sampel untuk mengukur waktu eksekusi kode, merekam heap dump, melihat alokasi memori, dan memeriksa detail file yang ditransmisikan melalui jaringan.
Untuk membukanya, klik View > Tool Windows > Android Profiler (atau klik Android Profiler di toolbar).
Linimasa peristiwa di bagian atas jendela ini menunjukkan peristiwa sentuh, penekanan tombol, dan perubahan aktivitas sehingga memberikan Anda lebih banyak konteks untuk memahami peristiwa performa lainnya di linimasa.
Catatan: Tampilan Logcat juga dipindahkan ke jendela terpisah (sebelumnya ada di Android Monitor, kini telah dihapus).
Dari linimasa ringkasan Android Profiler, klik linimasa CPU, MEMORY, atau NETWORK untuk mengakses alat profiler yang sesuai.
CPU Profiler
CPU Profiler membantu Anda menganalisis penggunaan thread CPU oleh aplikasi dengan memicu aktivitas CPU sampel atau yang diinstrumentasi. Kemudian, Anda dapat memecahkan masalah performa CPU menggunakan berbagai tampilan data dan filter.
Untuk mengetahui informasi selengkapnya, lihat panduan CPU Profiler.
Memory Profiler
Memory Profiler membantu Anda mengidentifikasi kebocoran memori dan churn memori yang dapat menyebabkan aplikasi tersendat, berhenti merespons, dan bahkan tidak bekerja. Memory Profiler menampilkan grafik real time tentang penggunaan memori aplikasi, sehingga memungkinkan Anda merekam heap dump, memaksa pembersihan sampah memori, dan melacak alokasi memori.
Untuk mengetahui informasi selengkapnya, lihat panduan Memory Profiler.
Network Profiler
Network Profiler memungkinkan Anda memantau aktivitas jaringan aplikasi, memeriksa payload setiap permintaan jaringan, dan menautkan kembali ke kode yang menghasilkan permintaan jaringan.
Untuk mengetahui informasi selengkapnya, lihat panduan Network Profiler.
Pembuatan profil dan proses debug APK
Android Studio kini memungkinkan Anda membuat profil dan men-debug APK mana pun tanpa harus membangunnya dari project Android Studio, dengan syarat APK dibuat untuk mengaktifkan proses debug dan Anda memiliki akses ke simbol debug dan file sumber.
Untuk memulai, klik Profile or debug APK dari layar Selamat Datang Android Studio. Atau, jika Anda sudah membuka project, klik File > Profile or debug APK dari panel menu. Ini akan menampilkan file APK yang belum dipaketkan, tetapi tidak mendekompilasi kode. Jadi, untuk menambahkan titik henti sementara dan melihat pelacakan tumpukan dengan benar, Anda harus melampirkan file sumber Java dan simbol debug native.
Untuk mengetahui informasi selengkapnya, lihat Membuat Profil dan Men-debug APK yang Sudah Di-build Sebelumnya.
Device File Explorer
Device File Explorer baru memungkinkan Anda memeriksa sistem file perangkat yang terhubung, serta mentransfer file antara perangkat dan komputer. Fitur ini menggantikan fitur sistem file yang ada di DDMS.
Untuk membukanya, klik View > Tool Windows > Device File Explorer.
Untuk mengetahui informasi selengkapnya, lihat panduan Device File Explorer.
Dukungan Aplikasi Instan
Dukungan baru untuk Aplikasi Instan Android memungkinkan Anda membuat Aplikasi Instan dalam project menggunakan dua jenis modul baru: modul Instant App dan modul Feature (keduanya mengharuskan Anda menginstal Instant Apps Development SDK).
Android Studio juga menyertakan tindakan pengoptimalan modularisasi baru guna membantu Anda menambahkan dukungan untuk Aplikasi Instan dalam project yang ada. Misalnya, jika Anda ingin memfaktorkan ulang project untuk menempatkan beberapa class dalam modul fitur Instant App, pilih class tersebut di jendela Project, lalu klik Refactor > Modularize. Pada dialog yang muncul, pilih modul tujuan class, lalu klik OK.
Jika sudah siap menguji Aplikasi Instan, Anda dapat membangun dan menjalankan modul Aplikasi Instan pada perangkat yang terhubung dengan menentukan URL Aplikasi Instan di dalam opsi jalankan peluncuran konfigurasi: Pilih Run > Edit Configurations, pilih modul Aplikasi Instan Anda, lalu setel URL di bagian Launch Options.
Untuk mengetahui informasi selengkapnya, lihat Aplikasi Instan Android.
Modul Android Things
Template Android Things baru di wizard New Project dan New Module dapat membantu Anda memulai pengembangan untuk perangkat IoT dengan teknologi Android.
Untuk mengetahui informasi selengkapnya, lihat cara membuat project Android Things.
Wizard Ikon Adaptif
Image Asset Studio kini mendukung vektor drawable dan memungkinkan Anda membuat ikon peluncur adaptif untuk Android 8.0 sekaligus membuat ikon tradisional (ikon "Legacy") untuk perangkat lama.
Untuk memulai, klik kanan folder res di project Anda, lalu klik New > Image Asset. Pada jendela Asset Studio, pilih Launcher Icons (Adaptive and Legacy) sebagai jenis ikon.
Catatan: Anda harus menetapkan compileSdkVersion
ke 26 atau lebih tinggi untuk menggunakan ikon peluncur
adaptif.
Untuk mengetahui informasi selengkapnya, baca Ikon Adaptif.
Dukungan untuk resource font
Untuk mendukung resource font baru di Android 8.0, Android Studio menyertakan pemilih resource font yang membantu memaketkan font ke dalam aplikasi Anda atau mengonfigurasi project agar mendownload font di perangkat (jika tersedia). Layout Editor juga dapat menampilkan pratinjau font di tata letak Anda.
Untuk menggunakan font yang dapat didownload, pastikan perangkat atau emulator menjalankan Layanan Google Play v11.2.63 atau yang lebih baru. Untuk mengetahui informasi selengkapnya, baca Font yang Dapat Didownload.
Firebase App Indexing Assistant
Firebase Assistant telah diperbarui dengan tutorial baru untuk menguji App Indexing. Untuk membuka Asisten ini, pilih Tools > Firebase. Kemudian pilih App Indexing > Test App Indexing.
Tutorial ini menyertakan tombol baru untuk menguji pengindeksan konten publik dan pribadi Anda:
- Pada langkah 2, klik Preview search results untuk memverifikasi bahwa URL Anda muncul dalam hasil Google Penelusuran.
- Pada langkah 3, klik Check for errors untuk memverifikasi bahwa objek yang dapat diindeks di aplikasi Anda telah ditambahkan ke indeks konten pribadi.
Android App Links Assistant
App Links Assistant telah diupdate dengan kemampuan baru berikut:
-
Menambahkan pengujian URL untuk setiap pemetaan URL guna memastikan filter intent menangani URL asli.
Anda juga dapat menentukan pengujian URL ini secara manual menggunakan tag
<tools:validation>
yang dijelaskan di bawah ini. -
Membuat file Digital Asset Links dengan entri objek yang sesuai untuk mendukung Google Smart Lock, dan menambahkan tag
<meta-data>
asset_statements
yang sesuai ke file manifes.
Validator filter intent URL
Android Studio kini mendukung tag khusus di file manifes yang memungkinkan Anda menguji URL filter intent. Tag ini sama dengan yang dapat dibuat App Links Assistant untuk Anda.
Guna mendeklarasikan URL pengujian untuk filter intent, tambahkan elemen <tools:validation>
beserta elemen <intent-filter>
yang sesuai. Contoh:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
Pastikan Anda juga menyertakan xmlns:tools="http://schemas.android.com/tools"
dalam tag <manifest>
.
Jika salah satu URL pengujian tidak memenuhi definisi filter intent, error lint akan muncul. Error seperti ini masih memungkinkan Anda mem-build varian debug, tetapi akan merusak build rilis Anda.
Layout Editor
Layout Editor telah diperbarui dengan sejumlah peningkatan, di antaranya:
- Tata letak dan ikon toolbar baru.
- Tata letak baru di component tree.
- Penyisipan tampilan tarik lalu lepas yang ditingkatkan.
- Panel error baru di bawah editor, yang menunjukkan semua masalah dengan saran perbaikan (jika tersedia).
- Berbagai peningkatan UI untuk proses build dengan
ConstraintLayout
, termasuk berikut ini:- Dukungan baru untuk membuat barrier.
- Dukungan baru untuk membuat grup: Di toolbar, pilih Guidelines > Add Group (memerlukan ConstraintLayout 1.1.0 beta 2 atau yang lebih baru)
- UI baru untuk membuat rantai: Pilih beberapa tampilan, lalu klik kanan dan pilih Chain.
Layout Inspector
Layout Inspector menyertakan peningkatan untuk memudahkan men-debug masalah dengan tata letak aplikasi Anda, termasuk mengelompokkan properti ke dalam kategori umum dan fungsi penelusuran baru di panel View Tree dan Properties.
APK Analyzer
Sekarang, Anda dapat menggunakan APK Analyzer dari command line dengan
alat apkanalyzer
.
APK Analyzer juga telah diupdate dengan pengoptimalan berikut:
- Untuk APK yang di-build dengan ProGuard, Anda dapat memuat file pemetaan ProGuard yang menambahkan
berbagai kemampuan ke penampil DEX, termasuk:
- Node dicetak tebal untuk menunjukkan bahwa node tidak boleh dihapus saat menyingkat kode.
- Tombol untuk menunjukkan node yang dihapus selama proses penyingkatan.
- Tombol yang memulihkan nama asli node dalam tampilan hierarki yang di-obfuscate oleh ProGuard.
- Penampil DEX kini menampilkan perkiraan dampak ukuran setiap paket, class, dan metode.
- Opsi pemfilteran baru di bagian atas untuk menampilkan serta menyembunyikan field dan metode.
- Dalam tampilan hierarki, node berupa referensi yang tidak didefinisikan dalam file DEX akan muncul dalam cetak miring.
Untuk mengetahui informasi selengkapnya, lihat Menganalisis Build dengan APK Analyzer.
Pratinjau compiler DEX D8
Android Studio 3.0 menyertakan kompilator DEX baru yang opsional bernama D8. Nantinya compiler ini akan menggantikan compiler DX, tetapi sekarang Anda dapat memilih untuk menggunakan compiler D8 yang baru.
Kompilasi DEX secara langsung akan memengaruhi waktu build aplikasi, ukuran file .dex
, dan performa runtime. Jika compiler D8 yang baru dibandingkan dengan compiler DX saat ini, D8 akan mengompilasi lebih cepat dan menghasilkan file .dex
yang lebih kecil, dengan performa runtime aplikasi yang sama atau lebih baik.
Untuk mencobanya, tetapkan berikut ini dalam file gradle.properties
project:
android.enableD8=true
Untuk mengetahui informasi selengkapnya, lihat postingan blog tentang compiler D8.
Repositori Maven Google
Android Studio kini menggunakan Repositori Maven Google secara default dan tidak bergantung pada Android SDK Manager untuk mendapatkan update bagi Android Support Library, Layanan Google Play, Firebase, serta dependensi lainnya. Hal ini memudahkan Anda memperbarui library, terutama saat menggunakan sistem continuous integration (CI).
Semua project baru sekarang menyertakan repositori Maven Google secara default. Untuk mengupdate
project yang ada, tambahkan google()
dalam blok repositories
file build.gradle
tingkat atas:
allprojects {
repositories {
google()
}
}
Pelajari repositori Maven Google lebih lanjut di sini.
Perubahan lainnya
- Proses debug native dengan Android Studio tidak lagi mendukung Windows 32 bit. Kami telah memutuskan untuk fokus pada platform lainnya karena sangat sedikit developer yang menggunakan platform ini. Jika menggunakan Windows 32 bit dan berencana men-debug kode native, Anda harus tetap menggunakan Android Studio 2.3.
- IDE dasar diupgrade ke IntelliJ 2017.1.2, yang menambahkan sejumlah fitur baru dari 2016.3 dan 2017.1, seperti pemfaktoran ulang bahasa Java 8, petunjuk parameter, penandaan semantik, titik henti sementara yang dapat ditarik, hasil penelusuran instan, dan masih banyak lagi.
- Banyak pemeriksaan lint baru yang ditambahkan.
- Lihat juga update Android Emulator terbaru.
2.3 (Maret 2017)
Android Studio 2.3.0 utamanya adalah rilis dengan perbaikan bug dan stabilitas, tetapi juga menyertakan sejumlah fitur baru.
2.3.3 (Juni 2017)
Ini adalah update minor yang menambahkan dukungan untuk Android O (API level 26).
2.3.2 (April 2017)
Ini adalah update minor Android Studio 2.3 untuk perubahan berikut:
- AVD Manager diupdate agar mendukung Google Play di image sistem.
- Perbaikan bug untuk build NDK saat menggunakan R14+ dari NDK.
Lihat juga update terkait untuk Android Emulator 26.0.3.
2.3.1 (April 2017)
Ini adalah update minor untuk Android Studio 2.3 yang memperbaiki masalah saat beberapa perangkat fisik Android tidak berfungsi secara benar dengan Instant Run (lihat Masalah #235879).
<h3 class="hide-from-toc">
New
</h3>
<div class="video-wrapper-left">
<iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
</iframe>
</div>
<ul>
<li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
WebP format. WebP is an image file format from Google that provides lossy
compression (like JPEG) as well as transparency (like PNG) but can provide
better compression than either JPEG or PNG. For more information, see
<a href="/studio/write/convert-webp.html">Convert images to WebP in Android
Studio</a>.
</li>
<li>The new <a href="/studio/write/app-link-indexing.html">App Links
Assistant</a> simplifies the process of adding Android App Links to your app
into a step-by-step wizard. Android App Links are HTTP URLs that bring users
directly to specific content in your Android app.
</li>
<li>The Layout Editor now includes support for two new ConstraintLayout
features:
<ul>
<li>Define a view size based on an aspect ratio.
</li>
<li>Create packed, spread, and weighted linear groups with constraint
chains.
</li>
</ul>
For more information, see <a href=
"/training/constraint-layout/index.html">Build a Responsive UI with
ConstraintLayout</a>.
</li>
<li>The Layout Editor also now lets you create a list of <a href=
"/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
you don't have to click <b>View all attributes</b> to access the attributes
you use most.
</li>
<li>When adding a material icon using the Vector Import Dialog (<b>File >
New > Vector Asset</b>), you can now filter the list of available icons by
category or by icon name. For more information, see <a href=
"/studio/write/vector-asset-studio.html#materialicon">Adding a material
icon</a>.
</li>
<li>
<a href="/studio/write/annotations.html#accessibility">New and updated
annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
classes, and packages lets you restrict an API. The updated
<code>@VisibleForTesting</code> annotation now has an optional
<code>otherwise</code> argument that lets you designate what the visibility
of a method should be if not for the need to make it visible for testing.
Lint uses the <code>otherwise</code> option to enforce the intended
visibility of the method.
</li>
<li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
allows you to use a snapshot of your project's current set of warnings as a
baseline for future inspection runs so only new issues are reported. The
baseline snapshot lets you start using lint to fail the build for new issues
without having to go back and address all existing issues first.
</li>
<li>New lint checks, including the following:
<ul>
<li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
code that checks for SDK versions.
</li>
<li>Object Animator Validation: Lint analyzes your code to make sure that
your <code>ObjectAnimator</code> calls reference valid methods with the
right signatures and checks that those methods are annotated with <code>
@Keep</code> to prevent ProGuard from renaming or removing them during
release builds.
</li>
<li>Unnecessary Item Decorator Copy: Older versions of the
<code>RecyclerView</code> library did not include a divider decorator
class, but one was provided as a sample in the support demos. Recent
versions of the library have a divider decorator class. Lint looks for
the old sample and suggests replacing it with the new one.
</li>
<li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class<T>)">Context.getSystemService()</a></code>
can cause a memory leak if the context is not the application context.
Lint looks for these initializations, and if it <em>cannot</em> determine
that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
initialization.
</li>
<li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
lint check had many limitations. You can now configure your project with
a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
}</code>, and lint makes sure that all of your resources are using this
prefix. You can use variations of the name for styles and themes. For
example for the <var>my_lib</var> prefix, you can have themes named
<code>MyLibTheme</code>, <code>myLibAttr</code>,
<code>my_lib_layout</code>, and so on.
</li>
<li>Switch to WebP: This check identifies images in your project that can
be converted to WebP format based on your project’s
<code>minSdkVersion</code> setting. An associated quickfix can
automatically convert the images, or you can <a href=
"/studio/write/convert-webp.html">convert images to WebP</a> manually.
</li>
<li>Unsafe WebP: If your project already includes WebP images, this check
analyzes your project to ensure that your <code>minSdkVersion</code>
setting is high enough to support the included images. For more
information about WebP support in Android and Android Studio, see
<a class="external" href=
"https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
Which browsers natively support WebP?</a> and <a href=
"/studio/write/convert-webp.html">Create WebP Images Using Android
Studio</a>.
</li>
</ul>
</li>
</ul>
<h3 class="hide-from-toc">
Changes
</h3>
<ul>
<li>A separate button to push changes with Instant Run: After deploying your
app, you now click <b>Apply Changes</b> <img src=
"/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
"inline-icon"> to quickly push incremental changes to your running app using
Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon"> and <b>Debug</b> <img src=
"/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
buttons are always available to you when you want to reliably push your
changes and force an app restart.
<ul>
<li>Instant Run is supported only when deploying your app to a target
device running Android 5.0 (API level 21) or higher.
</li>
<li>Instant Run is no longer disabled for projects that <a href=
"/studio/projects/add-native-code.html">link to external native
projects</a> using CMake or ndk-build. However, you can only use Instant
Run to push incremental changes to your Java code, not your native code.
</li>
<li>Cold swaps (which you can force for a running app by clicking
<strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
also fixes the issue where changes to notification and widget UIs were
not updated on the target device.
</li>
<li>Includes optimizations that make app startup much faster. These
optimizations may affect profiling, so you should temporarily <a href=
"/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
profiling your app.
</li>
</ul>
</li>
<li>
<p>
The <b>AVD Manager</b> <img src=
"/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
"inline-icon"> and <b>SDK Manager</b> <img src=
"/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
"inline-icon"> buttons are now included in the lean Navigation Bar as
well as the full Toolbar. To use the lean Navigation Bar, click
<b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
is selected and <b>Toolbar</b> is <em>not</em> selected.
</p>
<img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
</li>
<li>The "Hybrid" debugger has been renamed to "Dual" debugger.
</li>
<li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
Configurations</a> dialog, under Defaults in the left pane, the following run
configuration names have changed with no behavior changes:
<ul>
<li>The JUnit name has changed to Android JUnit. If you have a project
that uses JUnit run configurations, those configurations are transformed
to Android JUnit run configurations the first time you open the project
with Android Studio. A dialog appears to inform you of the name change.
</li>
<li>The Android Tests name has changed to Android Instrumented Tests.
</li>
</ul>
</li>
<li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
been removed from Android Studio as of version 2.3. An open-source,
standalone version of the tool is now available on <a href=
"https://github.com/google/gapid" class="external-link">GitHub</a>.
</li>
<li>The Run/Debug option is no longer available when you right-click a <code>
*.gradle build</code> script.
</li>
<li>All templates now use <code>ConstraintLayout</code> as the default
layout.
</li>
<li>The Widgets palette in the Layout Editor has been redesigned.
</li>
</ul>
<p>
This release also includes a number of bug fixes. <a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.3.0.</a>
</p>
<p class="note">
<b>Known issue:</b> Some device manufacturers block apps from automatically
launching after being installed on the device. When deploying your app to a
physical device using Android Studio 2.3, this restriction breaks the
intended behavior of Instant Run and causes the following error output:
<code>Error: Not found; no service started</code>. To avoid this issue,
either <a href="/studio/run/emulator.html">use the emulator</a> or enable
automatic launching for your app in your device's settings. The procedure
for doing this is different for each device, so check the instructions
provided by the manufacturer. To learn more about this issue, see
<a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
#235879</a>.
</p>
2.2 (September 2016)
2.2.3 (Desember 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a bug fixes
focused around gradle, the core IDE, and lint.
</p>
<p>
Highlighted build changes:
</p>
<ul>
<li>ProGuard version rollback. Due to a <a href=
"https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
have worked with the ProGuard team on getting a fix quickly, and we expect
to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
</li>
<li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
not working properly (<a href="http://b.android.com/224167">issue
224167</a>)
</li>
<li>Bug fix for Gradle autodownload for Constraint Layout library
(<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
212128</a>)
</li>
<li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
"http://b.android.com/227729">issue 227729</a>)
</li>
</ul>
<p>
<a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.2.3</a>.
</p>
2.2.2 (Oktober 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a number of small
changes and bug fixes, including:
</p>
<ul>
<li>When reporting Instant Run issues through the IDE, the report now also
includes logcat output for <code>InstantRun</code> events. To help us
improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</li>
<li>A number of small bug fixes for Gradle.
</li>
<li>A fix for problems with generating multiple APKs.
</li>
</ul>
2.2.1 (Oktober 2016)
<p>
This is a minor update to Android Studio 2.2. It includes several bug fixes
and a new feature to enable extra logging to help us troubleshoot Instant
Run issues—to help us improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</p>
Baru
- Layout Editor baru dengan alat yang dirancang khusus untuk mendukung ConstraintLayout.
<li>New <strong><a href=
"http://tools.android.com/tech-docs/layout-inspector">Layout
Inspector</a></strong> lets you examine snapshots of your layout hierarchy
while your app is running on the emulator or a device.
</li>
<li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
window to help you integrate Firebase services into your app.
</li>
<li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
Analyzer</a></strong> tool so you can inspect the contents of your packaged
app.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/test-recorder">Espresso Test
Recorder</a></strong> tool (currently in beta) to help you create UI tests by
recording your own interactions.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
(currently experimental) to speed up build performance.
</li>
<li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
Compile and build new or existing native code into libraries packaged into
your APK, and debug using lldb. For new projects, Android Studio uses CMake
by default, but also supports ndk-build for existing projects. To learn how
to include native code in your Android application, read <a href=
"/studio/projects/add-native-code.html">Add C and C++ Code to Your
Project</a>. To learn how to debug native code with lldb, see <a href=
"/studio/debug/index.html#debug-native">Debug Native Code</a>.
</li>
<li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
Browser</a></strong> so you can easily look up Google Android sample code
from within Android Studio to jump start app development.
</li>
<li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
manifest file merges with your app dependencies across project build
variants.
</li>
<li>The <strong>Run</strong> window now contains log messages for the current
running app. Note that you can configure the <a href=
"/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
<strong>Run</strong> window.
</li>
<li>New <strong><a href="/studio/run/emulator.html">Android
Emulator</a></strong> features:
<ul>
<li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
<strong>Cellular</strong> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <strong>Network type</strong> control.
</li>
<li>Added simulated vertical swipes for scrolling through vertical menus
with a mouse wheel.
</li>
</ul>
</li>
<li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
Configuration</a></strong> features:
<ul>
<li>The <strong>Debugger</strong> tab of the Android App and Android
Tests templates now contain several new options for debugging with LLDB.
</li>
<li>The <strong>Profiling</strong> tab of the Android App and Android
Tests templates now contain a <strong>Capture GPU Commands</strong>
option for enabling GPU tracing. You can display GPU traces in the GPU
Debugger (a beta feature).
</li>
<li>The Android Tests template now has a <strong>Firebase Test Lab Device
Matrix</strong> option for the <strong>Deployment Target</strong>.
</li>
<li>The Native Application template has been deprecated. If you use this
template in a project, Android Studio automatically converts it to the
Android App template.
</li>
<li>The Android Application template has been renamed to Android App.
</li>
</ul>
</li>
<li>Improved installation, configuration, performance, and UI features in the
<strong><a href="/studio/debug/am-gpu-debugger.html">GPU
Debugger</a></strong> (currently in beta).
</li>
<li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
Existing projects still use the JDK specified in <strong>File > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > SDK
Location</strong> and checking the <strong>Use embedded JDK</strong>
checkbox.
</li>
<li>Added new <strong>help menus and buttons</strong> in the UI so you can
more easily find the online documentation.
</li>
Perubahan
- Codebase IDE telah diperbarui dari IntelliJ 15 menjadi IntelliJ 2016.1
- Kini Instant Run mengharuskan penginstalan SDK platform yang sesuai dengan level API perangkat target.
- Instant Run akan otomatis dinonaktifkan jika pengguna menjalankan aplikasi dengan profil kerja atau sebagai pengguna sekunder.
- Perbaikan berbagai masalah keandalan untuk Instant Run saat perubahan
tidak di-deploy atau aplikasi tidak bekerja:
- Beberapa aset aplikasi tidak di-deploy untuk aplikasi yang sedang berjalan. (Bug: #213454 )
- Aplikasi mengalami error saat pengguna melakukan transisi antara sesi Instant Run dan non-Instant Run sementara serialVersionUID class Serializable tidak ditentukan. (Bug: #209006)
- Perubahan gaya tidak diterapkan dengan Instant Run. (Bug: #210851)
- Sesi Instant Run tidak stabil dan menyebabkan error FileNotFoundException. (Bug: #213083)
- Perubahan pada drawable tidak diterapkan hingga proses build ulang penuh dilakukan untuk KitKat. (Bug: #21530)
- Perubahan resource tidak diterapkan dengan Instant Run jika sourceSets kustom berisi jalur yang disusun bertingkat. (Bug: #219145)
- Hot swap dan warm swap tidak berfungsi jika class yang diubah berisi anotasi dengan nilai enum. (Bug: #209047)
- Perubahan data anotasi tidak diterapkan dengan Instant Run. (Bug: #210089)
- Instant Run tidak menerima perubahan kode jika Anda membuat perubahan di luar IDE. (Bug: #213205)
- Sesi Instant Run tidak stabil karena token keamanan tidak cocok. (Bug: #211989
- Cold swap gagal untuk perangkat yang tidak mendukung run-as dengan baik. (Bug: #210875)
- Aplikasi tidak berfungsi setelah instant run dimulai ulang. (Bug: #219744)
- ClassNotFoundException terjadi saat beralih dari Instant Run ke Instant Debug. (Bug: #215805)
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (April 2016)
Perubahan utama dalam update ini menyediakan dukungan untuk pengembangan dengan Pratinjau Android N.
2.1.3 (Agustus 2016)
Update ini menambahkan kompatibilitas dengan Gradle 2.14.1, yang menyertakan peningkatan performa, fitur baru, dan perbaikan keamanan penting. Lihat Catatan rilis Gradle untuk detail selengkapnya.
Secara default, project baru di Android Studio 2.1.3 menggunakan Gradle 2.14.1. Untuk project yang ada, IDE akan meminta Anda untuk mengupgrade ke Gradle 2.14.1 dan plugin Android untuk Gradle 2.1.3, yang diperlukan saat menggunakan Gradle 2.14.1 dan yang lebih tinggi.
2.1.2 (Juni 2016)
Update ini menyertakan sejumlah perubahan dan perbaikan bug kecil:
- Update Instant Run dan perbaikan bug.
- Peningkatan performa LLDB dan notifikasi error.
- Perbaikan regresi dalam update keamanan Android Studio 2.1.1 yang
menyebabkan
git rebase
gagal.
2.1.1 (Mei 2016)
Update rilis keamanan.
Platform Android N menambahkan dukungan untuk fitur bahasa Java 8, yang memerlukan compiler eksperimental baru bernama Jack. Versi terbaru Jack saat ini hanya didukung di Android Studio 2.1. Jadi, jika ingin menggunakan fitur bahasa Java 8, Anda harus menggunakan Android Studio 2.1 untuk mem-build aplikasi.
Catatan: Instant Run akan dinonaktifkan jika Anda mengaktifkan compiler Jack karena saat ini keduanya tidak kompatibel.
Meskipun Android Studio 2.1 kini sudah stabil, compiler Jack masih
dalam tahap eksperimental dan Anda harus mengaktifkannya dengan
properti jackOptions
dalam file build.gradle
.
Selain perubahan untuk mendukung Pratinjau N, Android Studio 2.1 menyertakan perbaikan bug minor dan peningkatan berikut:
- Debugger C++ yang memahami Java kini diaktifkan secara default saat Anda menggunakan emulator atau perangkat N dan memilih mode debugger Native (di tab Debugger untuk konfigurasi run/debug).
Untuk peningkatan build lainnya, termasuk kompilasi Java inkremental dan proses dexing, update plugin Android untuk Gradle ke versi 2.1.0.
2.0 (April 2016)
Catatan: Jika mengembangkan untuk N Pratinjau Developer, Anda harus menggunakan Android Studio 2.1 Pratinjau. Android Studio 2.0 tidak mendukung semua fitur yang diperlukan untuk menargetkan N Pratinjau.
Instant Run:
- Android Studio kini men-deploy clean build lebih cepat daripada sebelumnya. Selain itu, penerapan perubahan kode inkremental pada emulator atau perangkat fisik kini berlangsung dengan sangat cepat. Tinjau perubahan tanpa men-deploy ulang build debug baru atau, dalam banyak kasus, tanpa memulai ulang aplikasi.
- Dukungan Instant Run menerapkan perubahan berikut pada aplikasi yang sedang berjalan:
- Perubahan pada implementasi metode instance yang ada atau metode statis
- Perubahan pada resource aplikasi yang ada
- Perubahan pada kode struktural, seperti tanda tangan metode atau kolom statis (memerlukan perangkat target yang menjalankan API level 21 atau yang lebih tinggi).
- Baca dokumentasinya untuk mempelajari Instant
Run lebih lanjut.
Catatan: Instant Run hanya didukung jika Anda men-deploy varian build debug, menggunakan plugin Android untuk Gradle versi 2.0.0 atau yang lebih tinggi, dan mengonfigurasi file
build.gradle
level modul aplikasi untukminSdkVersion 15
atau yang lebih tinggi. Untuk mendapatkan performa terbaik, konfigurasi aplikasi untukminSdkVersion 21
atau yang lebih baru.
Tambahan baru untuk Lint:
- Pemeriksaan pernyataan
switch
menggunakan integer dengan anotasi@IntDef
untuk memastikan semua konstanta ditangani. Untuk menambahkan pernyataan yang tidak ada dengan cepat, gunakan menu drop-down tindakan intent, lalu pilih Add Missing @IntDef Constants. - Tanda untuk upaya penggunaan interpolasi string yang salah untuk memasukkan
nomor versi dalam file
build.gradle
. - Tanda untuk class anonim yang memperluas class
Fragment
. - Tanda untuk kode native di lokasi yang tidak aman, seperti folder
res/
danasset/
. Flag ini menyarankan agar kode native disimpan di folderlibs/
, yang kemudian dipaketkan dengan aman ke dalam folderdata/app-lib/
aplikasi pada waktu penginstalan. AOSP: #169950 - Tanda untuk panggilan yang tidak aman ke
Runtime.load()
dan pemanggilanSystem.load()
. AOSP: #179980 - Temukan dan hapus resource yang tidak digunakan dengan memilih Refactor > Remove
Unused Resources dari panel menu. Deteksi resource yang tidak digunakan
kini hanya mendukung resource yang direferensikan oleh resource yang tidak digunakan, referensi dalam file
mentah seperti referensi gambar
.html
, serta atributtools:keep
dantools:discard
yang digunakan oleh penyingkat resource Gradle, dengan mempertimbangkan set sumber tidak aktif (seperti resource yang digunakan dalam ragam build lainnya) dan penanganan impor kolom statis dengan benar. - Memeriksa apakah referensi API implisit didukung di semua platform
yang ditargetkan oleh
minSdkVersion
. - Memberi tanda penggunaan
RecyclerView
danParcelable
yang tidak semestinya. - Pemeriksaan
@IntDef
,@IntRange
, dan@Size
kini juga memeriksa array dan varargint
.
Peningkatan Lainnya:
- Dioptimalkan untuk Android Emulator 2.0 yang lebih cepat dari sebelumnya, mendukung lebih banyak perangkat virtual, dan memiliki UI yang jauh lebih baik. Untuk mempelajari emulator baru ini lebih lanjut, baca catatan rilis SDK Tools.
- Peningkatan untuk Pengelola Perangkat Virtual
Android:
- Image sistem kini dikategorikan pada tab berikut: Recommended, x86, dan Other.
- Di setelan lanjutan, Anda dapat mengaktifkan dukungan multi-core dan menentukan jumlah core yang dapat digunakan emulator.
- Di setelan lanjutan, Anda dapat menentukan cara grafis dirender
di emulator dengan memilih salah satu opsi berikut:
- Hardware: menggunakan kartu grafis komputer agar proses rendering lebih cepat.
- Software: menggunakan rendering berbasis software.
- Auto: membiarkan emulator menentukan pilihan terbaik. Ini adalah setelan default.
- Peningkatan efisiensi waktu pemaketan AAPT dengan menentukan target deploy sebelum aplikasi di-build. Hal ini memungkinkan Android Studio secara efisien memaketkan hanya resource yang diperlukan oleh perangkat yang ditentukan.
- Penambahan integrasi Cloud Test Lab untuk menyediakan pengujian aplikasi on demand dengan kemudahan dan skalabilitas layanan cloud. Pelajari lebih lanjut cara menggunakan Cloud Test Lab dengan Android Studio.
- Penambahan pratinjau GPU Debugger baru. Untuk aplikasi dengan grafik intensif, kini Anda dapat menyusuri kode OpenGL ES secara visual untuk mengoptimalkan aplikasi atau game.
- Penambahan Pengujian Pengindeksan Aplikasi Google. Menambahkan dukungan URL, pengindeksan aplikasi, dan fungsi penelusuran ke aplikasi untuk membantu mengarahkan lebih banyak traffic ke aplikasi, menemukan konten aplikasi yang paling sering digunakan, dan menarik perhatian pengguna baru. Menguji dan memvalidasi URL di aplikasi dalam Android Studio. Lihat Mendukung URL dan Pengindeksan Aplikasi di Android Studio.
- Meng-upgrade dari rilis terbaru IntelliJ 15, termasuk peningkatan performa dan analisis kode. Lihat Yang Baru di IntelliJ untuk deskripsi lengkap tentang peningkatan dan fitur baru.
- Pelengkapan otomatis editor XML kini menambahkan tanda kutip saat melengkapi atribut. Untuk memeriksa apakah opsi ini diaktifkan, buka dialog Setting atau Preferences, klik Editor > General > Smart Keys, lalu centang kotak di samping Add quotes for attribute value on attribute completion. Masalah: 195113
- Editor XML kini mendukung pelengkapan kode untuk ekspresi data binding.
Android Studio v1.5.1 (Desember 2015)
Perbaikan dan peningkatan:
- Masalah kegagalan rendering di Layout Editor telah diperbaiki. Masalah: 194612
- Penambahan kemampuan untuk memvariasikan atribut manifes
description
berdasarkan konfigurasi. Masalah: 194705 - Peningkatan kontras tema tampilan Android Studio Darcula di Vector Asset Studio. Masalah: 191819
- Penambahan dukungan tombol Help ke Vector Asset Studio.
- Penambahan dukungan operator
%
untuk data binding. Masalah: 194045 - Perbaikan kasus saat peluncuran aplikasi untuk proses debug menyebabkan debugger terhubung ke perangkat yang salah. Masalah: 195167
- Perbaikan pengecualian pointer null yang dapat terjadi saat mencoba menjalankan aplikasi dalam skenario tertentu.
Android Studio v1.5.0 (November 2015)
Perbaikan dan peningkatan:
- Penambahan kemampuan analisis Memory Monitor baru ke Android Monitor. Saat Anda melihat file HPROF yang diambil dari monitor ini, kini tampilannya lebih membantu sehingga Anda dapat lebih cepat menemukan masalah, seperti kebocoran memori. Untuk menggunakan monitor ini, klik Android Monitor di bagian bawah jendela utama. Di Android Monitor, klik tab Memory. Saat monitor dijalankan, klik ikon Dump Java Heap, lalu klik Captures di jendela utama dan klik dua kali file untuk melihatnya. Klik Capture Analysis di sebelah kanan. (Android Device Monitor tidak dapat dijalankan bersamaan dengan Android Monitor.)
- Penambahan dukungan deep link dan link aplikasi baru. Code Editor dapat otomatis membuat
filter intent untuk deep linking dalam file
AndroidManifest.xml
. Editor ini juga dapat menghasilkan kode untuk membantu integrasi dengan App Indexing API pada aktivitas dalam file Java. Fitur pengujian deep link membantu Anda memverifikasi bahwa deep link tertentu dapat meluncurkan aplikasi. Di tab General pada dialog Run/Debug Configurations, Anda dapat menentukan opsi peluncuran deep link. Anda juga dapat menguji pemanggilan App Indexing API dalam aktivitas menggunakan tampilan logcat Android Monitor. Alatlint
Android kini menampilkan peringatan untuk masalah tertentu yang melibatkan deep link dan App Indexing API. - Penambahan kemampuan untuk menggunakan nama pendek saat melengkapi kode tampilan kustom di Code Editor.
- Penambahan dukungan untuk elemen
VectorDrawable
lainnya ke Vector Asset Studio untuk kompatibilitas mundur. Vector Asset Studio dapat menggunakan elemen ini untuk mengonversi vektor drawable menjadi gambar raster PNG untuk digunakan dengan Android 4.4 (API level 20) dan yang lebih rendah. - Penambahan pemeriksaan
lint
baru untuk Android TV dan Android Auto agar dapat langsung memberikan masukan yang dapat ditindaklanjuti di Android Studio, beserta beberapa perbaikan cepat. Misalnya, untuk Android TV, pemeriksaan ini dapat melaporkan dan menyediakan perbaikan cepat untuk izin, hardware yang tidak didukung, elemenuses-feature
, serta masalah tidak adanya banner. Untuk Android Auto, pemeriksaan ini dapat memvalidasi penggunaan yang benar dalam file deskriptor yang dirujuk dari fileAndroidManifest.xml
, melaporkan jika tidak ada filter intent untuk classMediaBrowserService
, dan mengidentifikasi masalah voice action tertentu. - Penambahan pemeriksaan
lint
baru untuk penerima siaran, penggunaan classSSLCertificateSocketFactory
danHostnameVerifier
, serta pemanggilanFile.setReadable()
danFile.setWritable()
yang tidak aman. Pemeriksaan ini juga mendeteksi pencarian resource manifes yang tidak valid, terutama untuk resource yang bervariasi berdasarkan konfigurasi. - Perbaikan sejumlah masalah stabilitas.
Android Studio v1.4.1 (Oktober 2015)
Perbaikan dan peningkatan:
- Perbaikan masalah cache model Gradle yang dapat menyebabkan sinkronisasi Gradle berlebihan bila IDE dimulai ulang.
- Perbaikan masalah deadlock proses debug native.
- Perbaikan masalah yang memblokir pengguna sistem kontrol versi Subversion 1.9.
- Perbaikan masalah dialog Device Chooser yang tidak memungkinkan Anda memilih emulator setelah menghubungkan perangkat yang tidak sah. Masalah: 189658
- Perbaikan pelaporan error kesalahan terjemahan untuk lokal yang memiliki penentu wilayah dan terjemahan di wilayah tersebut (tetapi bukan di lokal dasar). Masalah: 188577
- Perbaikan masalah deadlock di Theme Editor terkait interaksinya dengan Layout Editor. Masalah: 188070
- Perbaikan konflik pemuatan ulang dan pengeditan Theme Editor yang menyebabkan atribut tidak diperbarui dengan benar. Masalah: 187726
- Peningkatan performa Theme Editor.
- Perbaikan masalah saat atribut
android:required
diabaikan dalam manifes. Masalah: 187665
Android Studio v1.4.0 (September 2015)
Perbaikan dan peningkatan:
- Penambahan alat Vector Asset Studio untuk mengimpor grafik vektor, seperti ikon material dan file SVG. Untuk menggunakan alat ini, pada tampilan Android di jendela Project, klik kanan folder res, lalu pilih New > Vector Asset.
- Penambahan fungsi Monitor Android, GPU, dan Jaringan baru. Untuk menggunakan monitor ini, klik Android Monitor di bagian bawah jendela utama. (Android Device Monitor tidak dapat dijalankan bersamaan dengan Android Monitor.)
- Penambahan pratinjau awal untuk Theme Editor baru. Untuk menggunakan fitur ini, pilih Tools > Android > Theme Editor.
- Update template Android untuk Design Support Library. Kini template menyertakan dukungan
untuk spesifikasi Desain Material, serta Support Library
appcompat
untuk kompatibilitas mundur.
Android Studio v1.3.2 (Agustus 2015)
Perbaikan dan peningkatan:
- Penambahan dukungan untuk Android 6.0 (level API 23), termasuk ikon baru dan dukungan AVD Manager untuk membuat perangkat dengan kepadatan layar baru.
- Perbaikan pengecualian yang terjadi selama pemeriksaan update. Masalah: 183068
- Perbaikan masalah saat koordinat tampilan yang belum terselesaikan dapat menyebabkan Layout Editor berhenti berfungsi. Masalah: 178690
- Perbaikan masalah terkait peringatan jenis resource yang tidak valid. Masalah: 182433
- Perbaikan pemeriksaan lint yang salah menandai resource sebagai pribadi. Masalah: 183120
Android Studio v1.3.1 (Agustus 2015)
Perbaikan dan peningkatan:
- Perbaikan dukungan untuk pembuatan Android Virtual Device (AVD) Android Wear di Windows.
- Update Project Wizard untuk menggunakan nama project yang dimasukkan.
- Penambahan dukungan untuk mengizinkan Android SDK disimpan di direktori yang bersifat hanya baca.
- Update Plugin Android untuk Gradle versi 1.3.0.
- Perbaikan masalah terkait peluncuran sesi debug dari shell Unix Android Debug Bridge (adb).
- Perbaikan pesan penggantian nama paket Java agar menampilkan nama paket yang benar.
Android Studio v1.3.0 (Juli 2015)
Perbaikan dan peningkatan:
- Penambahan opsi untuk mengaktifkan layanan developer, seperti Google AdMob dan Analytics, di aplikasi dari dalam Android Studio.
- Penambahan anotasi lainnya,
seperti
@RequiresPermission
,@CheckResults
, dan@MainThread
. - Penambahan kemampuan untuk membuat heap dump Java dan menganalisis alokasi thread dari Memory Monitor. Anda juga dapat mengonversi file format biner HPROF khusus Android ke format HPROF standar dari dalam Android Studio.
- Integrasi SDK Manager
ke Android Studio untuk menyederhanakan akses paket dan alat serta memberikan notifikasi update.
Catatan: SDK Manager mandiri tetap tersedia dari command line, tetapi hanya direkomendasikan untuk digunakan dengan penginstalan SDK mandiri.
- Penambahan perintah
finger
di konsol emulator untuk simulasi autentikasi sidik jari. - Penambahan deklarasi resource
<public>
untuk menetapkan resource library sebagai resource publik dan pribadi.Catatan: Memerlukan plugin Android untuk Gradle versi 1.3 atau yang lebih tinggi.
- Penambahan dukungan data binding untuk membuat tata letak deklaratif yang mengikat logika aplikasi ke elemen tata letak.
- Penambahan dukungan untuk modul APK pengujian terpisah untuk mem-build APK pengujian di Android Studio.
- Update AVD Managerdengan pengoptimalan dan notifikasi yang lebih baik.
- Penambahan dukungan emulator ARM dan MIPS 64 bit untuk QEMU 2.1.
- Penyederhanaan resolusi peringatan Lint dengan menambahkan perbaikan cepat, seperti menghasilkan implementasi Parcelable otomatis.
- Penambahan dukungan template langsung untuk menyisipkan cuplikan kode dengan cepat.
Android Studio v1.2.2(Juni 2015)
Perbaikan dan peningkatan:
- Perbaikan masalah build yang memblokir build sehingga tidak selesai.
Android Studio v1.2.1 (Mei 2015)
Perbaikan dan peningkatan:
- Perbaikan beberapa masalah kecil terkait performa dan fitur.
Android Studio v1.2.0 (April 2015)
Perbaikan dan peningkatan:
- Update jendela runtime Android untuk menyertakan alat Memory Monitor dan penambahan tab untuk pemantauan performa CPU.
- Penambahan tab Captures di margin kiri untuk menampilkan file data performa memori dan CPU yang direkam, seperti pelacakan metode CPU dan cuplikan heap memori.
- Perluasan dukungan anotasi dengan anotasi metadata tambahan dan nullability inferensi.
- Perbaikan Translation Editor dengan dukungan tambahan untuk Best Current Practice (BCP) 47, yang menggunakan kode bahasa dan wilayah 3 huruf.
- Integrasi fitur IntelliJ 14 dan 14.1 untuk meningkatkan performa dan analisis kode:
-
- Pengoptimalan proses debug guna menampilkan nilai inline untuk variabel dan objek yang merujuk, serta melakukan evaluasi inline lambda dan ekspresi operator.
- Penambahan deteksi gaya kode untuk ukuran tab dan indentasi.
- Penambahan file scratch untuk eksperimen kode dan pembuatan prototipe tanpa file project.
- Penambahan penyisipan serentak tag pembuka dan penutup dalam file HTML serta XML.
- Penambahan decompiler class Java bawaan sehingga Anda dapat melihat isi library yang kode sumbernya tidak tersedia.
Lihat Yang Baru di IntelliJ untuk deskripsi lengkap tentang peningkatan dan fitur baru.
- Penambahan Tampilan Project lainnya untuk Scratches, Project Files, Problems, Production, dan Tests untuk meningkatkan akses serta pengelolaan project.
- Mengoptimalkan menu dan dialog File > Settings agar akses dan pengelolaan setelan menjadi lebih baik.
- Penambahan dukungan untuk layar dengan kepadatan tinggi pada Windows dan Linux.
- Penambahan dukungan untuk resource 280 dpi dalam
folder
res/drawable-280dpi/
.
Android Studio v1.1.0 (Februari 2015)
Berbagai perbaikan dan peningkatan:
- Penambahan dukungan untuk template smartwatch Android Wear.
- Modifikasi pembuatan project dan modul baru guna menyertakan
folder
res/mipmap
untuk ikon peluncur khusus kepadatan. Folderres/mipmap
ini menggantikan folderres/drawable
untuk ikon peluncur. - Pembaruan ikon peluncur agar memiliki
tampilan Desain Material dan penambahan
ikon peluncur
xxxhdpi
. - Penambahan dan perbaikan pemeriksaan Lint untuk kombinasi wilayah dan bahasa, ikon peluncur, nama resource, serta masalah kode umum lainnya.
- Penambahan dukungan untuk tag bahasa Best Current Practice (BCP) 47.
Android Studio v1.0.1 (Desember 2014)
Berbagai perbaikan dan peningkatan:
- Perbaikan AVD Manager dan masalah kunci file device.xml.
- Perbaikan log emulator pada sistem Windows.
- Perbaikan masalah terkait pembuatan AVD dengan Android Studio dan Android SDK yang diinstal di drive berbeda pada sistem Windows.
- Saluran update default untuk download baru ditetapkan ke Stable. Jika Anda menginstal Android Studio versi 1.0.0 dan menginginkan update versi stabil yang siap produksi, gunakan File > Settings > Updates untuk beralih ke saluran update Stable.
Android Studio v1.0 (Desember 2014)
Rilis awal Android Studio.
Android Studio v0.8.14 (Oktober 2014)
Buka tools.android.com untuk melihat daftar lengkap perubahan.
Android Studio v0.8.6 (Agustus 2014)
Buka tools.android.com untuk melihat daftar lengkap perubahan.
Android Studio v0.8.0 (Juni 2014)
Penambahan dukungan untuk project Android Wear.
Buka tools.android.com untuk melihat daftar lengkap perubahan.
Android Studio v0.5.2 (Mei 2014)
- Buka tools.android.com untuk melihat daftar lengkap perubahan.
Android Studio v0.4.6 (Maret 2014)
- Buka tools.android.com untuk melihat daftar lengkap perubahan.
Android Studio v0.4.2 (Jan 2014)
- Buka tools.android.com untuk melihat daftar lengkap perubahan.
Android Studio v0.3.2 (Okt 2013)
- Buka tools.android.com untuk melihat daftar lengkap perubahan.
Android Studio v0.2.x (Juli 2013)
- Digabung dalam perubahan codebase IntelliJ terbaru. Menyertakan perbaikan untuk masalah yang dilaporkan oleh pengguna Studio, seperti penyesuaian ukuran font dan rendering font Linux.
- Plugin Gradle Android telah diupdate ke versi 0.5.0.
Perhatian: Versi baru ini tidak kompatibel dengan versi sebelumnya. Saat membuka project yang menggunakan plugin versi lebih lama, Studio akan menampilkan error dengan pesan Gradle <nama_project> project refresh failed.
Plugin Gradle yang diupdate menyertakan perubahan berikut:
- Perbaikan model IDE agar tetap memuat file output meskipun file tersebut disesuaikan melalui DSL. Serta
perbaikan DSL untuk mendapatkan/menetapkan file output pada objek varian agar tidak perlu
menggunakan
variant.packageApplication or variant.zipAlign
- Perbaikan resolusi dependensi agar kombinasi (konfigurasi default, jenis build, ragam) di-resolve secara bersamaan, bukan secara terpisah.
- Perbaikan dependensi untuk pengujian project library agar semua dependensi library tersebut disertakan dengan benar.
- Perbaikan kasus saat dua dependensi memiliki nama leaf yang sama.
- Perbaikan masalah saat file aturan ProGuard tidak dapat diterapkan pada ragam.
Semua catatan rilis plugin Gradle tersedia di sini: http://tools.android.com/tech-docs/new-build-system.
- Perbaikan model IDE agar tetap memuat file output meskipun file tersebut disesuaikan melalui DSL. Serta
perbaikan DSL untuk mendapatkan/menetapkan file output pada objek varian agar tidak perlu
menggunakan
- Error Gradle dari aapt tidak lagi mengarah ke file output yang digabungkan dalam folder build/, error tersebut mengarah kembali ke lokasi sumber yang sebenarnya.
- Build Paralel. Kini build paralel Gradle sudah dapat digunakan. Perlu diketahui bahwa build paralel sedang dalam tahap "inkubasi" (lihat dokumentasi Gradle.) Fitur ini dinonaktifkan secara default. Untuk mengaktifkannya, buka Preferences > Compiler, lalu centang kotak Compile independent modules in parallel.
- Update lebih lanjut pada repositori resource baru yang digunakan untuk rendering tata letak, pengemasan
resource di editor, dan lainnya:
- Dukungan dasar untuk dependensi library .aar (contohnya, menggunakan library tanpa salinan sumber lokal). Masih tidak berfungsi untuk validasi dan navigasi XML resource di editor sumber.
- Deteksi siklus dalam referensi resource.
- Dokumentasi Cepat (F1), yang dapat menampilkan semua terjemahan string dalam tanda sisipan, kini juga akan menampilkan semua overlay resource dari berbagai ragam, jenis build, serta library Gradle. Overlay tersebut tercantum dalam urutan overlay resource terbalik, dengan coretan pada versi string yang disamarkan.
- Perbaikan untuk menangani update resource yang digabungkan jika kumpulan dependensi modul berubah.
- Perbaikan rendering XML untuk menangani deklarasi entitas karakter serta escape XML dan unicode dengan benar.
- Dukungan penyimpanan screenshot untuk jendela Layout Preview dan Layout Editor.
- Perbaikan bug template.
- Perbaikan bug lint.
- Berbagai perbaikan untuk laporan kerusakan. Terima kasih, dan teruslah mengirim laporan kerusakan.
Android Studio v0.1.x (Mei 2013)
- Berbagai perbaikan bug, termasuk perbaikan untuk masalah umum penginstalan Windows.
Rilis versi Plugin Android Gradle yang lebih lama
3.6.0 (Februari 2020)
Versi plugin Android ini perlu beberapa hal berikut:
-
Gradle 5.6.4. Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
-
SDK Build Tools 28.0.3 atau yang lebih baru.
Update minor ini mendukung kompatibilitas dengan setelan default baru dan fitur untuk visibilitas paket di Android 11.
Lihat catatan rilis 4.0.1 untuk detailnya.
Fitur baru
Versi plugin Android Gradle ini menyertakan fitur baru berikut.
View Binding
View binding memberikan keamanan waktu kompilasi saat mereferensikan tampilan
dalam kode Anda. Kini Anda dapat mengganti findViewById()
dengan referensi class binding
yang dibuat secara otomatis. Untuk mulai menggunakan View binding,
sertakan baris berikut di setiap file build.gradle
modul:
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
Untuk mempelajari lebih lanjut, baca dokumentasi View Binding.
Dukungan untuk plugin Maven Publish
Plugin Android Gradle menyertakan dukungan untuk plugin Maven Publish Gradle, yang memungkinkan Anda memublikasikan artefak build ke repositori Apache Maven. Plugin Android Gradle membuat component untuk setiap artefak varian build di aplikasi atau modul library yang dapat Anda gunakan untuk menyesuaikan publication ke repositori Maven.
Untuk mempelajari lebih lanjut, buka halaman tentang cara menggunakan plugin Maven Publish .
Alat pengemasan default baru
Saat membangun versi debug aplikasi, plugin akan menggunakan alat pengemasan baru
bernama zipflinger untuk membangun APK. Alat baru ini akan
memberikan peningkatan kecepatan build. Jika alat pengemasan baru
tidak berfungsi seperti yang Anda harapkan,
laporkan bug. Anda dapat kembali menggunakan
alat pengemasan versi lama dengan menyertakan baris berikut dalam
file gradle.properties
:
android.useNewApkCreator=false
Atribusi build native
Kini Anda dapat mengetahui durasi yang diperlukan Clang untuk membuat dan menautkan setiap file C/C++ dalam project Anda. Gradle dapat menghasilkan rekaman aktivitas Chrome yang berisi stempel waktu untuk peristiwa compiler ini, sehingga Anda bisa lebih mengetahui waktu yang diperlukan untuk membuat project. Untuk menghasilkan file atribusi build ini, lakukan hal berikut:
-
Tambahkan flag
-Pandroid.enableProfileJson=true
saat menjalankan build Gradle. Contoh:gradlew assembleDebug -Pandroid.enableProfileJson=true
-
Buka browser Chrome dan ketik
chrome://tracing
di kotak penelusuran. -
Klik tombol Load dan buka
<var>project-root</var>/build/android-profile
untuk menemukan file. Nama filenya adalahprofile-<var>timestamp</var>.json.gz
.
Anda dapat melihat data atribusi build native di dekat bagian atas layar:
Perubahan perilaku
Saat menggunakan plugin versi ini, Anda mungkin mendapati perubahan perilaku berikut.
Secara default, library native dikemas tanpa dikompresi
Saat Anda mem-build aplikasi, kini plugin akan menyetel
extractNativeLibs
ke "false"
secara
default. Artinya, library native Anda akan disejajarkan dengan halaman dan dikemas
tanpa dikompresi. Meskipun hal ini menyebabkan ukuran upload menjadi lebih besar, pengguna
akan mendapatkan manfaat sebagai berikut:
- Ukuran instal aplikasi menjadi lebih kecil karena platform dapat mengakses library native secara langsung dari APK yang terinstal, tanpa membuat salinan library.
- Ukuran download menjadi lebih kecil karena kompresi Play Store biasanya akan lebih efektif jika Anda menyertakan library native yang tidak dikompresi dalam APK atau Android App Bundle.
Jika Anda ingin agar plugin Android Gradle memaketkan library native yang dikompresi, sertakan baris berikut dalam manifes aplikasi:
<application
android:extractNativeLibs="true"
... >
</application>
Catatan: Atribut manifes extractNativeLibs
telah diganti dengan opsi DSL
useLegacyPackaging
. Untuk mengetahui informasi selengkapnya, lihat catatan rilis
Menggunakan DSL untuk memaketkan library native
terkompresi.
Versi NDK default
Jika Anda mendownload beberapa versi NDK, kini plugin Android Gradle
akan memilih versi default untuk digunakan dalam proses kompilasi file kode sumber.
Sebelumnya, plugin memilih NDK versi terbaru yang didownload.
Gunakan properti android.ndkVersion
dalam
file build.gradle
modul untuk mengganti versi default yang dipilih oleh plugin.
Pembuatan class R yang disederhanakan
Plugin Android Gradle menyederhanakan classpath kompilasi dengan membuat satu class R saja untuk setiap modul library dalam project Anda, dan berbagi class R tersebut dengan dependensi modul lainnya. Pengoptimalan ini akan mempercepat proses build, tetapi Anda harus memperhatikan hal-hal berikut:
- Karena compiler ini berbagi class R dengan dependensi modul upstream, setiap modul dalam project Anda harus memiliki nama paket yang unik.
- Visibilitas class R suatu library terhadap dependensi project lainnya
ditentukan oleh konfigurasi yang digunakan untuk menyertakan library sebagai
dependensi. Misalnya, jika Library A menyertakan Library B sebagai dependensi 'api', Library
A dan library lain yang bergantung pada Library A akan memiliki
akses ke class R Library B. Namun, library lain mungkin tidak memiliki
akses ke class R pada Library B jika Library A menggunakan konfigurasi dependensi
implementation
. Untuk mempelajari lebih lanjut, baca konfigurasi dependensi.
Menghapus resource yang tidak ditemukan dalam konfigurasi default
Untuk modul Library, jika Anda menyertakan resource untuk bahasa yang
tidak disertakan ke dalam kumpulan resource default—misalnya, jika Anda menyertakan
hello_world
sebagai resource string di
/values-es/strings.xml
tetapi tidak menetapkan resource itu di
/values/strings.xml
—plugin Android Gradle tidak akan
menyertakan resource tersebut saat mengompilasi project. Perubahan perilaku ini
akan mengurangi pengecualian runtime Resource Not Found
dan meningkatkan kecepatan build.
D8 kini menerima kebijakan retensi CLASS untuk anotasi
Saat mengompilasi aplikasi, kini D8 akan menerima ketika anotasi menerapkan kebijakan retensi CLASS, dan anotasi tersebut tidak lagi tersedia pada runtime. Perilaku ini juga terjadi ketika SDK target aplikasi disetel ke API level 23, yang sebelumnya mengizinkan akses ke anotasi tersebut selama runtime jika aplikasi dikompilasi menggunakan plugin Android Gradle dan D8 versi yang lebih lama.
Perubahan perilaku lainnya
-
aaptOptions.noCompress
tidak lagi peka huruf besar/kecil pada semua platform (untuk APK dan paket) dan menerima jalur yang menggunakan karakter huruf besar. -
Data binding kini bersifat inkremental secara default. Untuk mempelajari lebih lanjut, lihat masalah #110061530.
-
Semua pengujian unit, termasuk pengujian unit Roboelectric, kini sepenuhnya dapat disimpan dalam cache. Untuk mempelajari lebih lanjut, lihat masalah #115873047.
Perbaikan bug
Plugin Android Gradle versi ini menyertakan perbaikan bug berikut:
- Pengujian unit Robolectric kini didukung di modul library yang menggunakan data binding. Untuk mempelajari lebih lanjut, lihat masalah #126775542.
- Kini Anda dapat menjalankan tugas
connectedAndroidTest
di beberapa modul saat mode eksekusi paralel Gradle diaktifkan.
Masalah umum
Bagian ini menjelaskan masalah umum yang ada di plugin Android Gradle 3.6.0.
Performa lambat pada tugas Android Lint
Android Lint memerlukan waktu lebih lama untuk menyelesaikan beberapa project karena adanya regresi dalam infrastruktur parsing-nya, sehingga komputasi jenis yang ditentukan untuk lambda berjalan lebih lambat dalam konstruksi kode tertentu.
Masalah ini dilaporkan sebagai bug di IDEA dan akan diperbaiki di Plugin Android Gradle 4.0.
Class Manifes tidak ada {:#agp-missing-manifest}
Jika aplikasi Anda menetapkan izin kustom dalam manifesnya, plugin Android Gradle biasanya akan membuat class Manifest.java
yang
menyertakan izin kustom sebagai konstanta string. Plugin memaketkan
class ini dengan aplikasi Anda, sehingga Anda dapat lebih mudah merujuk
ke izin tersebut saat runtime.
Pembuatan class manifes tidak dapat dilakukan di plugin Android Gradle 3.6.0.
Jika Anda mem-build aplikasi dengan plugin versi ini, dan plugin tersebut
mereferensikan class manifes, Anda mungkin akan melihat
pengecualian ClassNotFoundException
. Untuk mengatasi masalah ini, lakukan salah satu langkah berikut:
-
Rujuk izin kustom Anda dengan nama yang sepenuhnya memenuhi syarat. Misalnya:
"com.example.myapp.permission.DEADLY_ACTIVITY"
. -
Tentukan konstanta Anda sendiri, seperti yang ditunjukkan di bawah:
public final class CustomPermissions { public static final class permission { public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY"; } }
3.5.0 (Agustus 2019)
Plugin Android Gradle 3.5.0, beserta Android Studio 3.5, merupakan rilis utama dan hasil dari Project Marble, yang berfokus meningkatkan kualitas tiga area utama alat developer Android: kesehatan sistem, peningkatan kualitas fitur, dan perbaikan bug. Secara khusus, meningkatkan kecepatan build project adalah fokus utama update ini.
Untuk informasi tentang hal ini dan update Project Marble lainnya, baca postingan blog Developer Android atau bagian di bawah.
Versi plugin Android ini perlu beberapa hal berikut:
-
Gradle 5.4.1. Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
-
SDK Build Tools 28.0.3 atau yang lebih baru.
Update minor ini mendukung kompatibilitas dengan setelan default baru dan fitur untuk visibilitas paket di Android 11.
Lihat catatan rilis 4.0.1 untuk detailnya.
3.5.3 (Desember 2019)
Update minor ini mendukung Android Studio 3.5.3 dan menyertakan berbagai perbaikan bug dan peningkatan performa.
3.5.2 (November 2019)
Update minor ini mendukung Android Studio 3.5.2 dan menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan blog tentang Rilis Update.
3.5.1 (Oktober 2019)
Update minor ini mendukung Android Studio 3.5.1 dan menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan blog tentang Rilis Update.
Pemrosesan anotasi inkremental
Pemroses anotasi Data Binding mendukung
pemrosesan
anotasi inkremental
jika Anda menetapkan android.databinding.incremental=true
dalam file gradle.properties
. Pengoptimalan ini menghasilkan performa build inkremental yang lebih baik. Untuk daftar lengkap pemroses anotasi yang dioptimalkan, lihat tabel pemroses anotasi inkremental.
Selain itu, KAPT 1.3.30 dan yang lebih tinggi juga mendukung pemroses anotasi inkremental, yang dapat Anda aktifkan dengan memasukkan kapt.incremental.apt=true
ke dalam file gradle.properties
Anda.
Pengujian unit yang dapat di-cache
Saat Anda mengaktifkan pengujian unit untuk menggunakan resource, aset, dan
manifes Android dengan menetapkan
includeAndroidResources
ke true
, plugin Android Gradle akan menghasilkan file konfigurasi pengujian
yang berisi jalur absolut, dan hal ini akan merusak kemampuan untuk merelokasi cache. Sebaiknya Anda menginstruksikan
plugin agar menghasilkan konfigurasi pengujian menggunakan jalur relatif, agar
tugas AndroidUnitTest
dapat sepenuhnya di-cache, dengan menyertakan
baris berikut dalam file gradle.properties
Anda:
android.testConfig.useRelativePath = true
Masalah umum
-
Saat menggunakan plugin Kotlin Gradle 1.3.31 atau yang lebih lama, Anda mungkin melihat peringatan berikut saat membuat atau menyinkronkan project:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
Untuk menyelesaikan masalah ini, upgrade plugin ke versi 1.3.40 atau yang lebih baru.
3.4.0 (April 2019)
Versi plugin Android ini perlu beberapa hal berikut:
-
Gradle 5.1.1 atau yang lebih tinggi. Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
Catatan: Saat menggunakan Gradle 5.0 dan yang lebih baru, ukuran heap memori daemon Gradle default berkurang dari 1 GB menjadi 512 MB. Hal ini dapat menyebabkan regresi performa build. Untuk mengganti setelan default ini, tentukan ukuran heap daemon Gradle dalam file
gradle.properties
project Anda. -
SDK Build Tools 28.0.3 atau yang lebih baru.
Update minor ini mendukung kompatibilitas dengan setelan default baru dan fitur untuk visibilitas paket di Android 11.
Lihat catatan rilis 4.0.1 untuk detailnya.
3.4.2 (Juli 2019)
Update minor ini mendukung Android Studio 3.4.2 dan menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan blog tentang Rilis Update.
3.4.1 (Mei 2019)
Update minor ini mendukung Android Studio 3.4.1 dan menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan blog tentang Rilis Update.
Fitur baru
-
Konfigurasi dependensi pemeriksaan lint baru: Perilaku
lintChecks
telah berubah dan konfigurasi dependensi baru,lintPublish
, diperkenalkan untuk memberi Anda kontrol lebih besar atas pemeriksaan lint mana saja yang dipaketkan dalam library Android Anda.-
lintChecks
: Ini adalah konfigurasi aktif yang sebaiknya Anda gunakan untuk pemeriksaan lint yang hanya ingin Anda jalankan saat membangun project secara lokal. Jika sebelumnya menggunakan konfigurasi dependensilintChecks
untuk menyertakan pemeriksaan lint dalam AAR yang dipublikasikan, Anda harus memigrasikan dependensi tersebut untuk menggunakan konfigurasilintPublish
baru yang dijelaskan di bawah ini. -
lintPublish
: Gunakan konfigurasi baru ini dalam project library untuk pemeriksaan lint yang ingin Anda sertakan dalam AAR yang dipublikasikan, seperti ditunjukkan di bawah ini. Artinya, project yang menggunakan library Anda juga akan menerapkan pemeriksaan lint tersebut.
Contoh kode berikut menggunakan kedua konfigurasi dependensi pada project library Android lokal.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
Secara umum, tugas pengemasan dan penandatanganan akan mengalami peningkatan kecepatan build secara keseluruhan. Jika melihat adanya regresi performa terkait tugas-tugas ini, silakan laporkan bug.
-
Perubahan perilaku
-
Peringatan penghentian penggunaan plugin Fitur Android Instant Apps: Jika Anda masih menggunakan plugin
com.android.feature
untuk membangun aplikasi instan, plugin Android Gradle 3.4.0 akan memunculkan peringatan tentang penghentian penggunaan. Untuk memastikan Anda masih dapat membangun aplikasi instan pada versi plugin mendatang, migrasikan aplikasi instan Anda agar menggunakan plugin fitur dinamis, yang juga memungkinkan Anda memublikasikan pengalaman aplikasi terinstal dan aplikasi instan dari satu Android App Bundle. -
R8 diaktifkan secara default: R8 mengintegrasikan desugaring, penyingkatan, obfuscation, pengoptimalan, dan dexing ke dalam satu langkah—sehingga menghasilkan peningkatan performa build yang nyata. 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 yang lebih tinggi.
Gambar di bawah ini memberikan ringkasan umum tentang proses kompilasi sebelum R8 diperkenalkan.
Sekarang, dengan R8, desugaring, penyingkatan, obfuscation, pengoptimalan, dan dexing (D8) dapat diselesaikan dalam satu langkah, seperti yang diilustrasikan di bawah ini.
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, penyusutan 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, silakan 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 menetapkan
useProguard
ke false
dalam file
build.gradle
modul aplikasi Anda, plugin Android Gradle akan menggunakan R8 untuk menyingkat
kode aplikasi untuk jenis build tersebut, terlepas dari apakah R8 pada file gradle.properties
project Anda dinonaktifkan atau tidak.
-
ndkCompile
tidak digunakan lagi: Sekarang Anda akan melihat error build jika mencoba menggunakanndkBuild
untuk mengompilasi library native. Sebagai gantinya, gunakan CMake atau ndk-build untuk Menambahkan kode C dan C++ ke project Anda.
Masalah umum
-
Penggunaan nama paket yang unik secara benar saat ini tidak diberlakukan, tetapi akan diperketat pada versi plugin selanjutnya. Pada plugin Android Gradle versi 3.4.0, Anda dapat memilih ikut serta untuk memeriksa apakah project Anda mendeklarasikan nama paket yang dapat diterima dengan menambahkan baris di bawah ini ke file
gradle.properties
.android.uniquePackageNames = true
Untuk mempelajari lebih lanjut cara menetapkan nama paket melalui plugin Android Gradle, lihat Menetapkan ID aplikasi.
3.3.0 (Januari 2019)
Versi plugin Android ini perlu beberapa hal berikut:
-
Gradle 4.10.1 atau yang lebih tinggi. Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
Catatan: Saat menggunakan Gradle 5.0 dan yang lebih baru, ukuran heap memori daemon Gradle default berkurang dari 1 GB menjadi 512 MB. Hal ini dapat menyebabkan regresi performa build. Untuk mengganti setelan default ini, tentukan ukuran heap daemon Gradle dalam file
gradle.properties
project Anda. -
SDK Build Tools 28.0.3 atau yang lebih baru.
Update minor ini mendukung kompatibilitas dengan setelan default baru dan fitur untuk visibilitas paket di Android 11.
Lihat catatan rilis 4.0.1 untuk detailnya.
3.3.2 (Maret 2019)
Update minor ini mendukung Android Studio 3.3.2 dan menyertakan berbagai perbaikan bug dan peningkatan performa. Untuk melihat daftar perbaikan bug penting, baca postingan blog tentang Rilis Update.
3.3.1 (Februari 2019)
Update minor ini mendukung Android Studio 3.3.1 dan menyertakan berbagai perbaikan bug dan peningkatan performa.
Fitur baru
-
Sinkronisasi classpath yang lebih baik: Saat menyelesaikan dependensi pada classpath runtime dan classpath waktu kompilasi, plugin Android Gradle mencoba memperbaiki konflik versi downstream tertentu untuk dependensi yang muncul di beberapa classpath.
Misalnya, jika classpath runtime menyertakan Library A versi 2.0 dan classpath kompilasi menyertakan Library A versi 1.0, plugin akan otomatis mengupdate dependensi pada classpath kompilasi ke Library A versi 2.0 untuk menghindari error.
Namun, jika classpath runtime menyertakan Library A versi 1.0 dan classpath kompilasi menyertakan Library A versi 2.0, plugin tidak akan mendowngrade dependensi pada classpath kompilasi ke Library A versi 1.0, dan Anda akan mengalami error. Untuk mempelajari lebih lanjut, lihat Memperbaiki konflik antara classpath.
-
Perbaikan kompilasi Java inkremental saat menggunakan pemroses anotasi: Update ini mengurangi waktu build dengan meningkatkan kualitas dukungannya untuk kompilasi Java inkremental saat menggunakan pemroses anotasi.
Catatan: Fitur ini kompatibel dengan Gradle 4.10.1 dan yang lebih baru, kecuali Gradle 5.1 karena adanya masalah Gradle 8194.
-
Untuk project yang menggunakan Kapt (kebanyakan project khusus Kotlin dan project campuran Kotlin-Java): Kompilasi Java inkremental diaktifkan, sekalipun Anda menggunakan data binding atau plugin retro-lambda. Pemrosesan anotasi oleh tugas Kapt belum inkremental.
-
Untuk project yang tidak menggunakan Kapt (project khusus Java): Jika pemroses anotasi yang Anda gunakan semuanya mendukung pemrosesan anotasi inkremental, maka kompilasi Java inkremental akan diaktifkan secara default. Untuk memantau adopsi pemroses anotasi inkremental, lihat Masalah Gradle 5277.
Namun, jika satu atau beberapa pemroses anotasi tidak mendukung build inkremental, kompilasi Java inkremental tidak akan diaktifkan. Sebagai gantinya, Anda dapat menyertakan flag berikut dalam file
gradle.properties
:android.enableSeparateAnnotationProcessing=true
Jika flag ini Anda sertakan, plugin Android Gradle akan menjalankan pemroses anotasi dalam tugas terpisah dan memungkinkan tugas kompilasi Java berjalan secara inkremental.
-
-
Info debug yang lebih baik saat menggunakan API usang: Jika plugin mendeteksi Anda menggunakan API yang tidak lagi didukung, sekarang plugin dapat memberikan informasi yang lebih mendetail untuk membantu Anda menentukan tempat API tersebut digunakan. Untuk melihat info tambahan, Anda perlu menyertakan baris berikut dalam file
gradle.properties
project Anda:android.debug.obsoleteApi=true
Anda juga dapat mengaktifkan flag ini dengan meneruskan
-Pandroid.debug.obsoleteApi=true
dari command line. -
Anda dapat menjalankan uji instrumentasi pada modul fitur dari command line.
Perubahan perilaku
-
Konfigurasi tugas yang kurang penting: Sekarang plugin menggunakan API pembuatan tugas baru dari Gradle untuk menghindari inisialisasi dan konfigurasi tugas-tugas yang tidak diperlukan untuk menyelesaikan build saat ini (atau tugas-tugas yang tidak ada di grafik tugas eksekusi). Misalnya, jika Anda memiliki beberapa varian build, seperti varian build "rilis" dan "debug", dan membuat versi "debug" aplikasi, plugin akan menghindari inisialisasi dan konfigurasi tugas untuk versi "rilis" aplikasi Anda.
Memanggil metode lama tertentu dalam Variants API, misalnya
variant.getJavaCompile()
, mungkin masih akan memaksakan konfigurasi tugas. Guna memastikan build Anda dioptimalkan untuk konfigurasi tugas yang kurang penting, panggil metode baru yang akan menampilkan objek TaskProvider, sepertivariant.getJavaCompileProvider()
.Jika menjalankan tugas build kustom, pelajari cara beradaptasi dengan API pembuatan tugas baru dari Gradle.
-
Untuk jenis build tertentu, jika
useProguard false
ditetapkan, sekarang plugin akan menggunakan R8, bukan ProGuard, untuk menyingkat dan meng-obfuscate kode dan resource aplikasi Anda. Untuk mempelajari R8 lebih lanjut, baca postingan blog ini dari Blog Android Developer. -
Pembuatan class R yang lebih cepat untuk project library: Sebelumnya, plugin Android Gradle akan menghasilkan file
R.java
untuk setiap dependensi project, lalu mengompilasi class R tersebut bersama class lain dalam aplikasi Anda. Sekarang plugin akan langsung membuat JAR yang berisi class R terkompilasi dari aplikasi Anda, tanpa terlebih dahulu membuat classR.java
perantara. Pengoptimalan ini dapat meningkatkan performa build secara signifikan untuk project yang menyertakan banyak subproject dan dependensi library, serta meningkatkan kecepatan pengindeksan pada Android Studio. -
Saat mem-build Android App Bundle, APK yang dihasilkan dari app bundle yang menargetkan Android 6.0 (API level 23) atau yang lebih baru kini menyertakan versi library native yang tidak dikompresi secara default. Dengan pengoptimalan ini, perangkat tidak perlu lagi membuat salinan library sehingga mengurangi ukuran aplikasi dalam disk. Jika ingin menonaktifkan pengoptimalan ini, tambahkan baris berikut ke file
gradle.properties
:android.bundle.enableUncompressedNativeLibs = false
-
Plugin ini menerapkan versi minimum beberapa plugin pihak ketiga.
-
Sinkronisasi project varian tunggal: Menyinkronkan project Anda dengan konfigurasi build merupakan langkah penting yang akan memungkinkan Android Studio memahami struktur project Anda. Namun, untuk project besar, proses ini dapat membutuhkan waktu lama. Jika project menggunakan berbagai varian build, kini Anda dapat mengoptimalkan sinkronisasi project dengan hanya membatasinya ke varian yang saat ini Anda pilih.
Anda harus menggunakan Android Studio 3.3 atau yang lebih tinggi dengan Plugin Android Gradle 3.3.0 atau yang lebih tinggi untuk mengaktifkan pengoptimalan ini. Jika memenuhi persyaratan ini, IDE akan meminta Anda mengaktifkan pengoptimalan ini pada saat sinkronisasi project. Pengoptimalan juga diaktifkan secara default pada project baru.
Untuk mengaktifkan pengoptimalan ini secara manual, klik File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle di Mac), lalu centang kotak Only sync the active variant.
Catatan: Pengoptimalan ini mendukung sepenuhnya project yang menggunakan bahasa Java dan C++, serta menyediakan dukungan untuk Kotlin. Jika Anda mengaktifkan pengoptimalan untuk project dengan konten Kotlin, sinkronisasi Gradle akan melakukan fallback untuk menggunakan varian lengkap secara internal.
-
Download otomatis paket SDK yang hilang: Fungsionalitas ini diperluas untuk mendukung NDK. Untuk mempelajari lebih lanjut, baca Otomatis mendownload paket yang hilang dengan Gradle.
Perbaikan Bug
-
Plugin Android Gradle 3.3.0 memperbaiki masalah berikut:
- Proses build yang memanggil
android.support.v8.renderscript.RenderScript
, alih-alih versi AndroidX, meskipun Jetifier diaktifkan - Error terjadi karena
androidx-rs.jar
menyertakanannotation.AnyRes
yang dipaketkan secara statis - Saat menggunakan RenderScript, Anda tidak perlu lagi menetapkan versi Build Tools dalam file
build.gradle
secara manual
- Proses build yang memanggil
3.2.0 (September 2018)
Versi plugin Android ini perlu beberapa hal berikut:
- Gradle 4.6 atau yang lebih tinggi. Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
- SDK Build Tools 28.0.3 atau yang lebih baru.
3.2.1 (Oktober 2018)
Dengan update ini, Anda tidak perlu lagi menentukan versi untuk SDK Build Tools. Plugin Android Gradle sekarang menggunakan versi 28.0.3 secara default.
Fitur baru
-
Dukungan untuk membuat Android App Bundle: App bundle adalah format upload baru yang menyertakan semua kode dan resource terkompilasi aplikasi Anda, sedangkan pembuatan dan penandatanganan APK-nya diserahkan ke Google Play Store. Anda tidak perlu lagi membuat, menandatangani, dan mengelola banyak APK, dan pengguna mendapatkan download yang lebih kecil yang dioptimalkan untuk perangkat mereka. Untuk mempelajari lebih lanjut, baca Tentang Android App Bundle.
-
Dukungan untuk peningkatan kecepatan build inkremental saat menggunakan pemroses anotasi: DSL
AnnotationProcessorOptions
sekarang memperluasCommandLineArgumentProvider
yang memungkinkan Anda atau penulis pemroses anotasi untuk menganotasi argumen bagi pemroses yang menggunakan anotasi jenis properti build inkremental. Penggunaan anotasi ini meningkatkan keakuratan dan performa build inkremental atau clean build yang di-cache. Untuk mempelajari lebih lanjut, baca Meneruskan argumen ke pemroses anotasi. -
Alat migrasi untuk AndroidX: Saat menggunakan plugin Android Gradle 3.2.0 dengan Android 3.2 dan versi yang lebih baru, Anda dapat memigrasikan dependensi Maven dan lokal project agar menggunakan library AndroidX baru dengan memilih Refactor > Migrate to AndroidX dari panel menu. Penggunaan alat migrasi ini juga menetapkan tanda berikut ke
true
dalam filegradle.properties
Anda:-
android.useAndroidX
: Jika ditetapkan ketrue
, plugin Android akan menggunakan library AndroidX yang sesuai, bukan Support Library. Jika flag ini tidak ditentukan, plugin akan menyetelnya kefalse
secara default. -
android.enableJetifier
: Jika disetel ketrue
, plugin Android akan otomatis memigrasikan library pihak ketiga yang ada agar menggunakan AndroidX dengan menulis ulang biner library tersebut. Jika flag ini tidak ditentukan, plugin akan menyetelnya kefalse
secara default. Anda dapat menetapkan tanda ini ketrue
hanya jikaandroid.useAndroidX
juga ditetapkan ketrue
; jika tidak, Anda akan mengalami error build.Untuk mempelajari lebih lanjut, baca Ringkasan AndroidX.
-
-
Penyingkat kode baru, R8: R8 adalah alat penyingkatan dan obfuscation kode baru yang menggantikan ProGuard. Anda dapat mulai menggunakan versi pratinjau R8 dengan menyertakan baris berikut dalam file
gradle.properties
project Anda:android.enableR8 = true
android.enableR8 = true
Perubahan perilaku
-
Desugaring dengan D8 sekarang diaktifkan secara default.
-
AAPT2 sekarang ada di repositori Maven Google. Untuk menggunakan AAPT2, pastikan Anda memiliki dependensi
google()
dalam filebuild.gradle
, seperti ditunjukkan di bawah ini:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
Multidex native sekarang diaktifkan secara default. Android Studio versi sebelumnya mengaktifkan multidex native saat men-deploy versi debug sebuah aplikasi ke perangkat yang menjalankan Android API level 21 atau yang lebih tinggi. Sekarang, baik Anda men-deploy ke perangkat atau membuat APK untuk rilis, plugin Android Gradle akan mengaktifkan multidex native untuk semua modul yang menetapkan
minSdkVersion=21
atau yang lebih tinggi. -
Plugin sekarang memberlakukan versi minimum dari plugin protobuf (0.8.6), plugin Kotlin (1.2.50), dan plugin Crashlytics (1.25.4).
-
Plugin modul fitur,
com.android.feature
, sekarang memberlakukan penggunaan huruf, angka, dan garis bawah saja saat menentukan nama modul. Misalnya, jika nama modul fitur Anda menyertakan tanda hubung, Anda akan mengalami error build. Perilaku ini sesuai dengan plugin fitur dinamis.
Perbaikan bug
- JavaCompile kini bisa disimpan dalam cache pada project dengan data binding. (Masalah #69243050)
- Pencegahan kompilasi yang lebih baik untuk modul library dengan data binding. (Masalah #77539932)
- Sekarang Anda dapat mengaktifkan kembali konfigurasi sesuai permintaan jika menonaktifkannya pada versi sebelumnya karena beberapa error build yang tidak terprediksi. (Masalah #77910727)
3.1.0 (Maret 2018)
Versi plugin Android ini perlu beberapa hal berikut:
-
Gradle 4.4 atau yang lebih tinggi.
Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
-
Build Tools 27.0.3 atau yang lebih tinggi.
Perlu diingat, Anda tidak perlu lagi menentukan versi untuk build tools menggunakan properti
android.buildToolsVersion
. Plugin karena plugin tersebut secara default menggunakan versi minimum yang diperlukan.
Compiler DEX baru, D8
Secara default, Android Studio sekarang menggunakan compiler DEX baru bernama D8. Kompilasi DEX adalah proses mengubah bytecode .class
menjadi bytecode .dex
untuk Android Runtime (atau Dalvik, untuk versi Android yang lebih lama). Dibanding compiler sebelumnya, yang bernama DX, D8 mengompilasi lebih cepat dan menghasilkan file DEX lebih kecil, dengan performa runtime aplikasi yang sama atau bahkan lebih baik.
D8 tidak mengubah alur kerja rutin pengembangan aplikasi Anda. Namun, jika mengalami masalah terkait compiler baru, silakan laporkan bug. Anda dapat untuk sementara menonaktifkan D8 dan menggunakan DX dengan menyertakan baris berikut dalam file gradle.properties
project:
android.enableD8=false
Untuk project yang menggunakan fitur bahasa Java 8, desugaring inkremental diaktifkan secara default. Anda dapat menonaktifkannya dengan menentukan baris berikut dalam file gradle.properties
project:
android.enableIncrementalDesugaring=false.
Pratinjau pengguna: Jika Anda sudah menggunakan versi pratinjau D8, ingatlah bahwa D8 sekarang membuat kompilasi berdasarkan library yang disertakan dalam SDK build tools—bukan JDK. Jadi, jika Anda mengakses API yang ada di JDK tetapi tidak ada di library SDK build tools, Anda akan mengalami error kompilasi.
Perubahan perilaku
-
Saat membuat multi-APK yang masing-masing menargetkan ABI berbeda, secara default plugin tidak lagi menghasilkan APK untuk ABI berikut:
mips
,mips64
, danarmeabi
.Jika ingin membangun APK yang menargetkan ABI ini, Anda harus menggunakan NDK r16b atau yang lebih rendah dan menentukan ABI dalam file
build.gradle
, seperti yang ditunjukkan di bawah ini:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Cache build plugin Android kini akan menghapus entri cache yang tersimpan lebih dari 30 hari.
-
Meneruskan
"auto"
keresConfig
tidak lagi otomatis memilih resource string yang akan dikemas dalam APK Anda. Jika Anda terus menggunakan"auto"
, plugin akan memaketkan semua resource string yang disediakan oleh aplikasi Anda dan dependensinya. Jadi, sebaiknya tentukan setiap lokal yang Anda ingin dikemas oleh plugin ke dalam APK Anda. -
Karena modul lokal tidak dapat bergantung pada APK pengujian aplikasi Anda, menambahkan dependensi ke uji instrumentasi menggunakan konfigurasi
androidTestApi
, bukanandroidTestImplementation
, akan menyebabkan Gradle mengeluarkan peringatan berikut:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Perbaikan
- Memperbaiki masalah saat Android Studio tidak mengenali dependensi pada build gabungan.
- Memperbaiki masalah saat mengalami error sinkronisasi project ketika memuat plugin Android berkali-kali dalam satu build–misalnya, saat beberapa subproject masing-masing menyertakan plugin Android pada classpath buildscript-nya.
3.0.0 (Oktober 2017)
Plugin Android Gradle 3.0.0 mencakup berbagai perubahan yang ditujukan untuk mengatasi masalah performa pada project berskala besar.
Misalnya, pada project sample skeleton dengan ~130 modul dan sejumlah besar dependensi eksternal (tetapi tanpa kode atau resource), Anda dapat menikmati peningkatan performa yang serupa dengan berikut ini:
Versi plugin Android + versi Gradle | Plugin Android 2.2.0 + Gradle 2.14.1 | Plugin Android 2.3.0 + Gradle 3.3 | Plugin Android 3.0.0 + Gradle 4.1 |
---|---|---|---|
Konfigurasi (misalnya, menjalankan ./gradlew --help ) |
~2 mnt | ~9 d | ~2,5 d |
Perubahan Java 1-line (perubahan implementasi) | ~2 mnt 15 d | ~29 d | ~6,4 d |
Beberapa perubahan ini merusak build yang ada. Jadi, sebaiknya pertimbangkan\ untuk memigrasikan project Anda sebelum menggunakan plugin baru ini.
Jika tidak merasakan peningkatan performa seperti yang dijelaskan di atas, laporkan bug dan sertakan rekaman aktivitas build menggunakan Gradle Profiler.
Versi plugin Android ini perlu beberapa hal berikut:
- Gradle 4.1 atau yang lebih tinggi. Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
-
Build Tools 26.0.2
atau yang lebih tinggi. Dengan update ini, Anda tidak perlu lagi menentukan versi untuk build tools—plugin menggunakan versi minimum yang diperlukan secara default.
Jadi, sekarang Anda dapat menghapus properti
android.buildToolsVersion
.
3.0.1 (November 2017)
Ini merupakan update minor untuk Android Studio 3.0.1, dan menyertakan perbaikan bug umum dan peningkatan performa.
Pengoptimalan
- Paralelisme yang lebih baik untuk project multi-modul melalui grafik tugas yang mendetail.
- Saat mengubah dependensi, Gradle melakukan build lebih cepat dengan tidak mengompilasi ulang modul yang tidak memiliki akses ke API dependensi tersebut. Sebaiknya Anda membatasi dependensi mana yang membocorkan API-nya ke modul lain menggunakan konfigurasi dependensi baru Gradle:
implementation
,api
,compileOnly
, danruntimeOnly
. - Peningkatan kecepatan build inkremental karena dexing per class. Setiap class sekarang dikompilasi ke dalam beberapa file DEX terpisah, dan hanya class yang dimodifikasi yang akan mengalami dexing ulang. Kecepatan build juga akan meningkat untuk aplikasi yang menetapkan
minSdkVersion
ke 20 atau yang lebih rendah, dan menggunakan multi-dex lama. - Peningkatan kecepatan build dengan mengoptimalkan penggunaan output yang di-cache untuk tugas-tugas tertentu. Untuk mendapatkan manfaat dari pengoptimalan ini, Anda perlu mengaktifkan cache build Gradle terlebih dahulu.
- Peningkatan pemrosesan resource inkremental menggunakan AAPT2, yang kini
diaktifkan secara default. Jika mengalami masalah saat menggunakan AAPT2, silakan laporkan bug. Anda juga dapat menonaktifkan AAPT2 dengan menetapkan
android.enableAapt2=false
dalam filegradle.properties
dan memulai ulang daemon Gradle dengan menjalankan./gradlew --stop
dari command line.
Fitur baru
- Pengelolaan dependensi berdasarkan varian. Saat membuat varian modul tertentu, plugin akan otomatis mencocokkan varian dependensi modul library lokal dengan varian modul yang Anda build.
- Menyertakan plugin modul Feature baru untuk mendukung Android Instant Apps dan Android Instant Apps SDK (yang dapat Anda download menggunakan SDK Manager). Untuk mempelajari lebih lanjut cara membuat modul Feature dengan plugin baru ini, baca Struktur aplikasi instan dengan multi-fitur.
- Dukungan bawaan untuk menggunakan fitur bahasa Java 8 dan library Java 8 tertentu. Jack sekarang sudah tidak lagi digunakan dan diperlukan, dan Anda harus menonaktifkan Jack terlebih dahulu untuk menggunakan dukungan Java 8 yang telah diperbaiki dan tertanam dalam toolchain default. Untuk mengetahui informasi selengkapnya, baca Menggunakan fitur bahasa Java 8.
-
Menambahkan dukungan untuk menjalankan pengujian dengan Android Test Orchestrator, yang memungkinkan Anda menjalankan setiap pengujian aplikasi pada pemanggilan Instrumentation-nya sendiri. Karena setiap pengujian menjalankan instance Instrumentation-nya sendiri, status apa pun yang dibagikan antara pengujian tidak terakumulasi pada CPU atau memori perangkat Anda. Dan, meskipun satu pengujian mengalami error, hanya instance Instrumentation-nya yang akan dikeluarkan, sehingga pengujian lainnya akan tetap berjalan.
- Menambahkan
testOptions.execution
untuk menentukan apakah akan menggunakan orkestrasi pengujian di perangkat atau tidak. Jika ingin menggunakan Android Test Orchestrator, Anda perlu menentukanANDROID_TEST_ORCHESTRATOR
, seperti ditunjukkan di bawah ini. Secara default, properti ini ditetapkan keHOST
, yang menonaktifkan orkestrasi di perangkat dan merupakan metode standar untuk menjalankan pengujian.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Menambahkan
-
Konfigurasi dependensi
androidTestUtil
yang baru memungkinkan Anda menginstal APK helper pengujian lain sebelum menjalankan uji instrumentasi, seperti Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
Menambahkan
testOptions.unitTests.includeAndroidResources
untuk mendukung pengujian unit yang memerlukan resource Android, seperti Roboelectric. Jika Anda menetapkan properti ini ketrue
, plugin akan melakukan penggabungan resource, aset, dan manifes sebelum menjalankan pengujian unit. Pengujian Anda selanjutnya dapat memeriksacom/android/tools/test_config.properties
pada classpath untuk kunci berikut:-
android_merged_assets
: jalur absolut ke direktori aset gabungan.Catatan: Untuk modul library, aset gabungan tidak memuat aset dependensi (lihat masalah #65550419).
-
android_merged_manifest
: jalur absolut ke file manifes gabungan. -
android_merged_resources
: jalur absolut ke direktori resource gabungan, yang memuat semua resource dari modul ini dan semua dependensinya. -
android_custom_package
: nama paket class R akhir. Jika Anda mengubah ID aplikasi secara dinamis, nama paket ini mungkin tidak cocok dengan atributpackage
dalam manifes aplikasi.
-
- Dukungan untuk font sebagai resource (yang merupakan fitur baru yang diperkenalkan di Android 8.0 (API level 26)).
- Dukungan untuk APK khusus bahasa dengan Android Instant Apps SDK 1.1 dan yang lebih baru.
-
Sekarang Anda dapat mengubah direktori output untuk project build native eksternal Anda, seperti yang ditunjukkan di bawah:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Sekarang Anda dapat menggunakan CMake 3.7 atau yang lebih baru saat mem-build project native dari Android Studio.
-
Konfigurasi dependensi
lintChecks
baru memungkinkan Anda membuat JAR yang menentukan aturan lint kustom, dan memaketkannya ke dalam project AAR dan APK Anda.Aturan lint kustom Anda harus termasuk dalam project terpisah yang meng-output JAR tunggal dan hanya mencakup dependensi
compileOnly
. Modul aplikasi dan library lainnya selanjutnya dapat bergantung pada project lint Anda menggunakan konfigurasilintChecks
:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Perubahan perilaku
- Plugin Android 3.0.0 menghapus API tertentu, dan build Anda akan rusak jika menggunakan API tersebut. Misalnya, Anda tidak dapat lagi menggunakan Variants API untuk mengakses objek
outputFile()
atau menggunakanprocessManifest.manifestOutputFile()
untuk mendapatkan file manifes untuk setiap varian. Untuk mempelajari lebih lanjut, baca Perubahan API. - Anda tidak perlu lagi menentukan versi untuk build tools (jadi, sekarang Anda dapat menghapus properti
android.buildToolsVersion
). Secara default, plugin otomatis menggunakan versi build tools minimum yang diperlukan untuk versi plugin Android yang Anda gunakan. - Sekarang Anda mengaktifkan/menonaktifkan pemrosesan PNG dalam blok
buildTypes
, seperti ditunjukkan di bawah. Pemrosesan PNG diaktifkan secara default untuk semua build kecuali build debug karena build tersebut meningkatkan waktu build untuk project yang mencantumkan banyak file PNG. Jadi, guna meningkatkan waktu build untuk jenis build yang lain, sebaiknya Anda menonaktifkan pemrosesan PNG atau mengonversi gambar menjadi WebP.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Plugin Android sekarang otomatis membuat target yang dieksekusi yang Anda konfigurasi di project CMake eksternal.
- Sekarang Anda harus
menambahkan pemroses anotasi
ke classpath pemroses menggunakan konfigurasi dependensi
annotationProcessor
. - Penggunaan
ndkCompile
yang telah dihentikan kini semakin dibatasi. Sebagai gantinya, beralihlah ke CMake atau ndk-build untuk mengompilasi kode native yang ingin Anda kemas ke dalam APK. Untuk mempelajari lebih lanjut, baca Bermigrasi dari ndkcompile.
3.0.0 (Oktober 2017)
Plugin Android Gradle 3.0.0 mencakup berbagai perubahan yang ditujukan untuk mengatasi masalah performa pada project berskala besar.
Misalnya, pada project sample skeleton dengan ~130 modul dan sejumlah besar dependensi eksternal (tetapi tanpa kode atau resource), Anda dapat menikmati peningkatan performa yang serupa dengan berikut ini:
Versi plugin Android + versi Gradle | Plugin Android 2.2.0 + Gradle 2.14.1 | Plugin Android 2.3.0 + Gradle 3.3 | Plugin Android 3.0.0 + Gradle 4.1 |
---|---|---|---|
Konfigurasi (misalnya, menjalankan ./gradlew --help ) |
~2 mnt | ~9 d | ~2,5 d |
Perubahan Java 1-line (perubahan implementasi) | ~2 mnt 15 d | ~29 d | ~6,4 d |
Beberapa perubahan ini merusak build yang ada. Jadi, sebaiknya pertimbangkan\ untuk memigrasikan project Anda sebelum menggunakan plugin baru ini.
Jika tidak merasakan peningkatan performa seperti yang dijelaskan di atas, laporkan bug dan sertakan rekaman aktivitas build menggunakan Gradle Profiler.
Versi plugin Android ini perlu beberapa hal berikut:
- Gradle 4.1 atau yang lebih tinggi. Untuk mempelajari lebih lanjut, baca bagian tentang mengupdate Gradle.
-
Build Tools 26.0.2
atau yang lebih tinggi. Dengan update ini, Anda tidak perlu lagi menentukan versi untuk build tools—plugin menggunakan versi minimum yang diperlukan secara default.
Jadi, sekarang Anda dapat menghapus properti
android.buildToolsVersion
.
3.0.1 (November 2017)
Ini merupakan update minor untuk Android Studio 3.0.1, dan menyertakan perbaikan bug umum dan peningkatan performa.
Pengoptimalan
- Paralelisme yang lebih baik untuk project multi-modul melalui grafik tugas yang mendetail.
- Saat mengubah dependensi, Gradle melakukan build lebih cepat dengan tidak mengompilasi ulang modul yang tidak memiliki akses ke API dependensi tersebut. Sebaiknya Anda membatasi dependensi mana yang membocorkan API-nya ke modul lain menggunakan konfigurasi dependensi baru Gradle:
implementation
,api
,compileOnly
, danruntimeOnly
. - Peningkatan kecepatan build inkremental karena dexing per class. Setiap class sekarang dikompilasi ke dalam beberapa file DEX terpisah, dan hanya class yang dimodifikasi yang akan mengalami dexing ulang. Kecepatan build juga akan meningkat untuk aplikasi yang menetapkan
minSdkVersion
ke 20 atau yang lebih rendah, dan menggunakan multi-dex lama. - Peningkatan kecepatan build dengan mengoptimalkan penggunaan output yang di-cache untuk tugas-tugas tertentu. Untuk mendapatkan manfaat dari pengoptimalan ini, Anda perlu mengaktifkan cache build Gradle terlebih dahulu.
- Peningkatan pemrosesan resource inkremental menggunakan AAPT2, yang kini
diaktifkan secara default. Jika mengalami masalah saat menggunakan AAPT2, silakan laporkan bug. Anda juga dapat menonaktifkan AAPT2 dengan menetapkan
android.enableAapt2=false
dalam filegradle.properties
dan memulai ulang daemon Gradle dengan menjalankan./gradlew --stop
dari command line.
Fitur baru
- Pengelolaan dependensi berdasarkan varian. Saat membuat varian modul tertentu, plugin akan otomatis mencocokkan varian dependensi modul library lokal dengan varian modul yang Anda build.
- Menyertakan plugin modul Feature baru untuk mendukung Android Instant Apps dan Android Instant Apps SDK (yang dapat Anda download menggunakan SDK Manager). Untuk mempelajari lebih lanjut cara membuat modul Feature dengan plugin baru ini, baca Struktur aplikasi instan dengan multi-fitur.
- Dukungan bawaan untuk menggunakan fitur bahasa Java 8 dan library Java 8 tertentu. Jack sekarang sudah tidak lagi digunakan dan diperlukan, dan Anda harus menonaktifkan Jack terlebih dahulu untuk menggunakan dukungan Java 8 yang telah diperbaiki dan tertanam dalam toolchain default. Untuk mengetahui informasi selengkapnya, baca Menggunakan fitur bahasa Java 8.
-
Menambahkan dukungan untuk menjalankan pengujian dengan Android Test Orchestrator, yang memungkinkan Anda menjalankan setiap pengujian aplikasi pada pemanggilan Instrumentation-nya sendiri. Karena setiap pengujian menjalankan instance Instrumentation-nya sendiri, status apa pun yang dibagikan antara pengujian tidak terakumulasi pada CPU atau memori perangkat Anda. Dan, meskipun satu pengujian mengalami error, hanya instance Instrumentation-nya yang akan dikeluarkan, sehingga pengujian lainnya akan tetap berjalan.
- Menambahkan
testOptions.execution
untuk menentukan apakah akan menggunakan orkestrasi pengujian di perangkat atau tidak. Jika ingin menggunakan Android Test Orchestrator, Anda perlu menentukanANDROID_TEST_ORCHESTRATOR
, seperti ditunjukkan di bawah ini. Secara default, properti ini ditetapkan keHOST
, yang menonaktifkan orkestrasi di perangkat dan merupakan metode standar untuk menjalankan pengujian.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Menambahkan
-
Konfigurasi dependensi
androidTestUtil
yang baru memungkinkan Anda menginstal APK helper pengujian lain sebelum menjalankan uji instrumentasi, seperti Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
Menambahkan
testOptions.unitTests.includeAndroidResources
untuk mendukung pengujian unit yang memerlukan resource Android, seperti Roboelectric. Jika Anda menetapkan properti ini ketrue
, plugin akan melakukan penggabungan resource, aset, dan manifes sebelum menjalankan pengujian unit. Pengujian Anda selanjutnya dapat memeriksacom/android/tools/test_config.properties
pada classpath untuk kunci berikut:-
android_merged_assets
: jalur absolut ke direktori aset gabungan.Catatan: Untuk modul library, aset gabungan tidak memuat aset dependensi (lihat masalah #65550419).
-
android_merged_manifest
: jalur absolut ke file manifes gabungan. -
android_merged_resources
: jalur absolut ke direktori resource gabungan, yang memuat semua resource dari modul ini dan semua dependensinya. -
android_custom_package
: nama paket class R akhir. Jika Anda mengubah ID aplikasi secara dinamis, nama paket ini mungkin tidak cocok dengan atributpackage
dalam manifes aplikasi.
-
- Dukungan untuk font sebagai resource (yang merupakan fitur baru yang diperkenalkan di Android 8.0 (API level 26)).
- Dukungan untuk APK khusus bahasa dengan Android Instant Apps SDK 1.1 dan yang lebih baru.
-
Sekarang Anda dapat mengubah direktori output untuk project build native eksternal Anda, seperti yang ditunjukkan di bawah:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Sekarang Anda dapat menggunakan CMake 3.7 atau yang lebih baru saat mem-build project native dari Android Studio.
-
Konfigurasi dependensi
lintChecks
baru memungkinkan Anda membuat JAR yang menentukan aturan lint kustom, dan memaketkannya ke dalam project AAR dan APK Anda.Aturan lint kustom Anda harus termasuk dalam project terpisah yang meng-output JAR tunggal dan hanya mencakup dependensi
compileOnly
. Modul aplikasi dan library lainnya selanjutnya dapat bergantung pada project lint Anda menggunakan konfigurasilintChecks
:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Perubahan perilaku
- Plugin Android 3.0.0 menghapus API tertentu, dan build Anda akan rusak jika menggunakan API tersebut. Misalnya, Anda tidak dapat lagi menggunakan Variants API untuk mengakses objek
outputFile()
atau menggunakanprocessManifest.manifestOutputFile()
untuk mendapatkan file manifes untuk setiap varian. Untuk mempelajari lebih lanjut, baca Perubahan API. - Anda tidak perlu lagi menentukan versi untuk build tools (jadi, sekarang Anda dapat menghapus properti
android.buildToolsVersion
). Secara default, plugin otomatis menggunakan versi build tools minimum yang diperlukan untuk versi plugin Android yang Anda gunakan. - Sekarang Anda mengaktifkan/menonaktifkan pemrosesan PNG dalam blok
buildTypes
, seperti ditunjukkan di bawah. Pemrosesan PNG diaktifkan secara default untuk semua build kecuali build debug karena build tersebut meningkatkan waktu build untuk project yang mencantumkan banyak file PNG. Jadi, guna meningkatkan waktu build untuk jenis build yang lain, sebaiknya Anda menonaktifkan pemrosesan PNG atau mengonversi gambar menjadi WebP.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Plugin Android sekarang otomatis membuat target yang dieksekusi yang Anda konfigurasi di project CMake eksternal.
- Sekarang Anda harus
menambahkan pemroses anotasi
ke classpath pemroses menggunakan konfigurasi dependensi
annotationProcessor
. - Penggunaan
ndkCompile
yang telah dihentikan kini semakin dibatasi. Sebagai gantinya, beralihlah ke CMake atau ndk-build untuk mengompilasi kode native yang ingin Anda kemas ke dalam APK. Untuk mempelajari lebih lanjut, baca Bermigrasi dari ndkcompile.
2.3.0 (Februari 2017)
2.3.3 (Juni 2017)
Ini adalah update minor yang menambahkan kompatibilitas dengan Android Studio 2.3.3.
2.3.2 (Mei 2017)
Ini adalah update minor yang menambahkan kompatibilitas dengan Android Studio 2.3.2.
2.3.1 (April 2017)
Ini adalah update minor untuk plugin Android 2.3.0 yang memperbaiki masalah saat beberapa perangkat Android fisik tidak berfungsi optimal dengan Instant Run (lihat Masalah #235879).
- Dependensi:
-
- Gradle 3.3 atau yang lebih tinggi.
- Build Tools 25.0.0 atau yang lebih tinggi.
- Baru:
-
- Menggunakan Gradle 3.3, yang menyertakan peningkatan performa dan fitur baru. Lihat Catatan rilis Gradle untuk detail selengkapnya.
- Cache build: menyimpan output tertentu yang dihasilkan plugin Android saat membangun project (seperti AAR yang tidak dipaketkan dan dependensi remote pre-dexed). Clean build Anda
jauh lebih cepat saat menggunakan cache karena sistem build dapat
menggunakan kembali file yang tersimpan dalam cache pada pembuatan berikutnya,
daripada membuatnya kembali. Project yang menggunakan plugin Android 2.3.0 dan yang lebih tinggi menggunakan build cache secara default. Untuk mempelajari lebih lanjut, baca
Meningkatkan Kecepatan Build dengan
Cache Build.
- Mencakup tugas
cleanBuildCache
yang menghapus cache build. - Jika Anda menggunakan cache build versi eksperimental (yang disertakan dalam plugin versi lama), Anda harus mengupdate plugin ke versi terbaru.
- Mencakup tugas
- Perubahan:
-
- Mendukung perubahan pada Instant Run yang tercantum pada Android Studio 2.3.
- Waktu konfigurasi untuk projects yang sangat besar akan lebih cepat secara signifikan.
- Memperbaiki masalah download otomatis untuk library tata letak batasan.
- Plugin kini menggunakan ProGuard version 5.3.2.
- Mencakup banyak perbaikan untuk bug yang dilaporkan. Silakan laporkan bug jika Anda mengalami masalah.
2.2.0 (September 2016)
- Dependensi:
-
- Gradle 2.14.1 atau yang lebih tinggi.
- Build Tools 23.0.2 atau yang lebih tinggi.
- Baru:
-
- Menggunakan Gradle 2.14.1, yang mencakup peningkatan performa dan fitur baru, serta memperbaiki kerentanan keamanan yang memungkinkan eskalasi akses lokal saat menggunakan daemon Gradle. Lihat Catatan rilis Gradle untuk detail selengkapnya.
- Menggunakan DSL
externalNativeBuild {}
, sekarang Gradle memungkinkan Anda menautkan ke sumber native dan mengompilasi library native menggunakan CMake atau ndk-build. Setelah mem-build library native, Gradle akan memaketkannya ke dalam APK. Untuk mempelajari lebih lanjut cara menggunakan CMake dan ndk-build dengan Gradle, baca Menambahkan Kode C dan C++ ke Project Anda. - Jika menjalankan build dari command line, Gradle akan berupaya mendownload otomatis komponen SDK yang hilang atau update yang menjadi dependensi project Anda. Untuk mempelajari lebih lanjut, baca Mendownload otomatis paket yang tidak ditemukan dengan Gradle.
- Fitur caching eksperimental baru memungkinkan Gradle mempercepat waktu build dengan melakukan pre-dexing, menyimpan, dan menggunakan kembali library versi pre-dexed. Untuk mempelajari lebih lanjut cara menggunakan fitur eksperimental ini, baca panduan Cache Build.
- Meningkatkan performa build dengan mengadopsi pipeline pengemasan default baru yang menangani pembuatan zip, penandatanganan, dan zipaligning dalam satu tugas. Anda
dapat kembali ke alat pengemasan lama dengan menambahkan
android.useOldPackaging=true
ke filegradle.properties
Anda. Saat menggunakan alat pengemasan baru, tugaszipalignDebug
tidak tersedia. Namun, Anda dapat membuatnya sendiri dengan memanggil metodecreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - Penandatanganan APK kini menggunakan APK Signature Scheme v2 selain penandatanganan JAR tradisional. Semua platform Android akan menerima
APK yang dihasilkan. Setiap modifikasi pada APK setelah penandatanganan akan menjadikan tanda tangan v2 tidak valid dan mencegah penginstalan pada perangkat. Untuk menonaktifkan fitur ini,
tambahkan kode berikut ke file
build.gradle
level modul:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Untuk build multidex, sekarang Anda dapat menggunakan aturan ProGuard untuk menentukan class
mana yang harus dikompilasi Gradle ke dalam file DEX utama aplikasi Anda. Karena
sistem Android memuat file DEX utama terlebih dahulu saat memulai aplikasi, Anda
dapat memprioritaskan class tertentu selama proses startup dengan mengompilasinya ke dalam file DEX
utama. Setelah membuat file konfigurasi ProGuard khusus untuk file DEX utama, teruskan jalur file konfigurasi ini ke Gradle menggunakan
buildTypes.multiDexKeepProguard
. Penggunaan DSL ini berbeda dengan penggunaanbuildTypes.proguardFiles
, yang menyediakan aturan ProGuard umum untuk aplikasi Anda dan tidak menentukan class untuk file DEX utama. - Menambahkan dukungan untuk tanda
android:extractNativeLibs
, yang dapat mengurangi ukuran aplikasi Anda saat diinstal di perangkat. Jika Anda menetapkan tanda ini kefalse
dalam elemen<application>
manifes aplikasi, Gradle akan memaketkan versi library native yang tidak terkompresi dan telah diselaraskan ke dalam APK. Akibatnya,PackageManager
tidak akan menyalin library native dari APK ke sistem file perangkat selama penginstalan dan memberikan manfaat tambahan berupa ukuran update delta yang lebih kecil untuk aplikasi Anda. - Sekarang Anda dapat menetapkan
versionNameSuffix
danapplicationIdSuffix
untuk ragam produk. (Masalah 59614)
- Perubahan:
-
-
getDefaultProguardFile
sekarang menampilkan file ProGuard default yang disediakan oleh plugin Android untuk Gradle dan tidak lagi menggunakan file ProGuard yang ada di Android SDK. - Peningkatan performa dan fitur kompiler Jack:
- Sekarang Jack mendukung cakupan pengujian Jacoco jika
testCoverageEnabled
ditetapkan ketrue
. - Peningkatan kualitas dukungan untuk pemroses anotasi. Pemroses anotasi di classpath Anda, seperti dependensi
compile
, otomatis diterapkan ke build Anda. Anda juga dapat menentukan pemroses anotasi dalam argumen build dan pass menggunakanjavaCompileOptions.annotationProcessorOptions {}
DSL dalam filebuild.gradle
level modul:Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
Jika ingin menerapkan pemroses anotasi selama proses kompilasi tetapi tidak ingin menyertakannya ke dalam APK, gunakan lingkup dependensi
annotationProcessor
:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
Untuk daftar parameter yang dapat Anda tetapkan, jalankan perintah berikut dari command line:
java -jar /build-tools/jack.jar --help-properties
- Sekarang Jack mendukung cakupan pengujian Jacoco jika
- Secara default, jika ukuran heap daemon Gradle setidaknya 1,5 GB, Jack akan berjalan dalam proses yang sama dengan Gradle. Untuk menyesuaikan
ukuran heap daemon, tambahkan baris berikut ke
file
gradle.properties
Anda:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
2.1.0 (April 2016)
2.1.3 (Agustus 2016)
Update ini memerlukan Gradle 2.14.1 dan yang lebih baru. Gradle 2.14.1 mencakup peningkatan performa, fitur baru, dan perbaikan keamanan penting. Untuk detail selengkapnya, lihat catatan rilis Gradle.
- Dependensi:
-
- Gradle 2.10 atau yang lebih baru.
- Build Tools 23.0.2 atau yang lebih baru.
- Baru:
-
- Penambahan dukungan untuk Pratinjau Developer N, JDK 8, dan berbagai fitur bahasa Java 8 yang menggunakan toolchain Jack. Untuk mengetahui lebih lanjut, baca Panduan N Preview.
Catatan: Instant Run saat ini tidak berfungsi dengan Jack dan akan dinonaktifkan jika toolchain baru digunakan. Anda hanya perlu menggunakan Jack jika mengembangkan aplikasi untuk N Preview dan ingin menggunakan fitur bahasa Java 8 yang didukung.
- Penambahan dukungan default untuk kompilasi Java inkremental guna mengurangi waktu kompilasi selama pengembangan. Ini dilakukan dengan hanya mengompilasi ulang bagian-bagian kode sumber yang telah berubah atau perlu dikompilasi ulang. Untuk menonaktifkan
fitur ini, tambahkan kode berikut ke file
build.gradle
level modul:Groovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
Penambahan dukungan untuk dexing-in-process yang menjalankan dexing pada proses build, bukan dalam proses VM eksternal terpisah. Cara ini tidak hanya mempercepat proses build inkremental, tetapi juga build penuh. Fitur ini diaktifkan secara default untuk project yang telah menetapkan ukuran heap maksimum daemon Gradle ke setidaknya 2048 MB. Anda dapat melakukannya dengan menyertakan baris berikut ke dalam file
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
project:Jika Anda telah menentukan nilai untuk
```none org.gradle.jvmargs = -Xmx3072m ```javaMaxHeapSize
dalam filebuild.gradle
level modul, Anda harus menetapkanorg.gradle.jvmargs
ke nilaijavaMaxHeapSize
+ 1024 MB. Misalnya, jika Anda telah menetapkanjavaMaxHeapSize
ke "2048m", Anda harus menambahkan berikut ini ke filegradle.properties
project:Untuk menonaktifkan dexing-in-process, tambahkan kode berikut ke file
build.gradle
level modul:Groovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- Penambahan dukungan untuk Pratinjau Developer N, JDK 8, dan berbagai fitur bahasa Java 8 yang menggunakan toolchain Jack. Untuk mengetahui lebih lanjut, baca Panduan N Preview.
2.0.0 (April 2016)
- Dependensi:
-
- Gradle 2.10 atau yang lebih baru.
- Build Tools 21.1.1 atau yang lebih baru.
- Baru:
-
- Mengaktifkan Instant Run dengan mendukung injeksi bytecode, dan mengirim update kode dan resource ke aplikasi yang berjalan di emulator atau perangkat fisik.
- Penambahan dukungan untuk build inkremental, bahkan saat aplikasi tidak berjalan. Waktu build penuh dipersingkat dengan mengirim perubahan inkremental melalui Android Debug Bridge ke perangkat yang terhubung.
- Penambahan
maxProcessCount
untuk mengontrol jumlah proses dex pekerja yang dapat dibuat secara serentak. Kode berikut, dalam filebuild.gradle
level modul, menetapkan jumlah maksimum proses serentak ke 4:Groovy
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
Kotlin
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
</li> <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing of dependencies, which are not supported with Proguard. This improves the build speed of your debug build variant. Because the experimental shrinker does not support optimization and obfuscation, you should enable Proguard for your release builds. To enable the experimental shrinker for your debug builds, add the following to your module-level <code>build.gradle</code> file:
Groovy
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
Kotlin
android { ... buildTypes { getByName("debug") { minifyEnabled = true useProguard = false } getByName("release") { minifyEnabled = true useProguard = true // this is a default setting } } }
</li> <li>Added logging support and improved performance for the resource shrinker. The resource shrinker now logs all of its operations into a <code>resources.txt</code> file located in the same folder as the Proguard log files. </li> </ul>
- Perilaku yang berubah:
-
- Jika
minSdkVersion
disetel ke 18 atau lebih tinggi, penandatanganan APK akan menggunakan SHA256.
<li>DSA and ECDSA keys can now sign APK packages. <p class="note"> <strong>Note:</strong> The <a href= "/training/articles/keystore.html">Android keystore</a> provider no longer supports <a href= "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore"> DSA keys on Android 6.0</a> (API level 23) and higher. </p> </li> </ul>
- Jika
- Perbaikan masalah:
-
- Memperbaiki masalah yang menyebabkan dependensi AAR duplikat dalam pengujian dan konfigurasi build utama.
Plugin Android untuk Gradle, revisi 1.5.0 (November 2015)
- Dependensi:
-
- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
- Catatan Umum:
-
- Mengintegrasikan plugin Data Binding ke dalam plugin Android untuk Gradle. Untuk mengaktifkannya, tambahkan kode berikut ke setiap file
build.gradle
per project yang menggunakan plugin: - Menambahkan Transform API baru untuk memungkinkan plugin pihak ketiga memanipulasi file
.class
terkompilasi sebelum dikonversi menjadi file.dex
. Transform API menyederhanakan injeksi manipulasi class kustom sekaligus menawarkan fleksibilitas yang lebih baik terkait apa saja yang dapat Anda manipulasi. Untuk menyisipkan transform ke dalam build, buatlah class baru yang mengimplementasikan salah satu antarmukaTransform
, lalu daftarkan keandroid.registerTransform(theTransform)
atauandroid.registerTransform(theTransform, dependencies)
. Tidak perlu menyatukan tugas. Perhatikan hal-hal berikut terkait Transform API: - Sebuah transform dapat berlaku untuk satu atau beberapa dari berikut ini: project saat ini, subproject, library eksternal.
- Transform harus didaftarkan secara global, yang akan menerapkannya ke semua varian.
- Pemrosesan kode internal, melalui Java Code Coverage Library (JaCoCo), ProGuard, dan MultiDex, sekarang menggunakan Transform API. Namun, Java Android Compiler Kit (Jack) tidak menggunakan API ini: hanya jalur kode
javac/dx
yang menggunakannya. - Gradle menjalankan transform dalam urutan sebagai berikut: JaCoCo, plugin pihak ketiga, ProGuard. Urutan eksekusi untuk plugin pihak ketiga cocok dengan urutan penambahan transform oleh plugin pihak ketiga; developer plugin pihak ketiga tidak dapat mengontrol urutan eksekusi transform melalui API.
- Menghentikan penggunaan pengambil
dex
dari classApplicationVariant
. Anda tidak dapat lagi mengakses tugasDex
melalui API varian karena hal tersebut sekarang diselesaikan melalui transform. Saat ini belum ada pengganti untuk mengontrol proses dex. - Memperbaiki dukungan inkremental untuk aset.
- Meningkatkan dukungan MultiDex dengan menyediakannya untuk project pengujian, dan pengujian sekarang otomatis memiliki dependensi
com.android.support:multidex-instrumentation
. - Menambahkan kemampuan untuk menggagalkan proses build Gradle dengan baik dan melaporkan penyebab error yang mendasarinya saat build Gradle memanggil tugas asinkron dan terjadi kegagalan dalam proses pekerja.
- Menambahkan dukungan untuk mengonfigurasi Antarmuka Biner Aplikasi (ABI) khusus pada varian yang memuat banyak ABI.
- Menambahkan dukungan untuk daftar nomor seri perangkat yang dipisahkan koma untuk variabel lingkungan
ANDROID_SERIAL
saat menginstal atau menjalankan pengujian. - Memperbaiki kegagalan penginstalan pada perangkat yang menjalankan Android 5.0 (API level 20) dan yang lebih tinggi jika nama APK memuat spasi.
- Memperbaiki berbagai masalah yang terkait dengan output error Android Asset Packaging Tool (AAPT).
- Menambahkan dukungan instrumentasi inkremental JaCoCo untuk mempercepat proses build inkremental. Plugin Android untuk Gradle sekarang memanggil instrumenter JaCoCo secara langsung. Untuk memaksakan versi instrumenter JaCoCo yang lebih baru, Anda harus menambahkannya sebagai dependensi skrip build.
- Memperbaiki dukungan JaCoCo sehingga mengabaikan file yang bukan merupakan class.
- Menambahkan dukungan vektor drawable untuk menghasilkan PNG selama waktu build agar kompatibel dengan versi sebelumnya.
Plugin Android untuk Gradle menghasilkan PNG untuk setiap vector drawable yang ditemukan di direktori resource yang tidak menentukan versi API atau yang menentukan atribut
android:minSdkVersion
20 atau lebih lama dalam elemen<uses-sdk>
di manifes aplikasi. Anda dapat menetapkan kepadatan PNG menggunakan propertigeneratedDensities
di bagiandefaultConfig
atauproductFlavor
filebuild.gradle
. - Menambahkan kemampuan berbagi
android.jar
tiruan, yang hanya dihasilkan satu kali oleh plugin dan digunakan untuk pengujian unit. Beberapa modul, sepertiapp
danlib
, sekarang membagikannya. Hapus$rootDir/build
untuk membuatnya kembali. - Mengubah pemrosesan resource Java agar terjadi sebelum tugas obfuscation, bukan selama pengemasan APK. Dengan perubahan ini, tugas obfuscation memiliki waktu untuk menyesuaikan resource Java setelah obfuscation paket.
- Memperbaiki masalah penggunaan kode Java Native Interface (JNI) dalam plugin library eksperimental.
- Menambahkan kemampuan untuk menetapkan versi platform secara terpisah dari atribut
android:compileSdkVersion
dalam plugin library eksperimental.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Mengintegrasikan plugin Data Binding ke dalam plugin Android untuk Gradle. Untuk mengaktifkannya, tambahkan kode berikut ke setiap file
Plugin Android untuk Gradle, revisi 1.3.1 (Agustus 2015)
Dependensi:- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
- Memperbaiki tugas ZipAlign agar menggunakan output dari tugas sebelumnya dengan benar saat menggunakan nama file yang disesuaikan.
- Memperbaiki pengemasan Renderscript dengan NDK.
- Mempertahankan dukungan untuk tugas build
createDebugCoverageReport
. - Memperbaiki dukungan untuk penggunaan yang disesuaikan atas properti
archiveBaseName
dalam file buildbuild.gradle
. - Memperbaiki peringatan lint
Invalid ResourceType
yang disebabkan oleh pencarian anotasi metode parameter saat menjalankan lint di luar Android Studio.
Plugin Android untuk Gradle, revisi 1.3.0 (Juli 2015)
Dependensi:- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
-
Menambahkan dukungan untuk properti
com.android.build.threadPoolSize
guna mengontrol ukuran kumpulan thread tugasAndroid
dari filegradle.properties
atau command line. Contoh berikut menetapkan properti ini ke 4.-Pcom.android.build.threadPoolSize=4
- Menetapkan perilaku build default agar mengecualikan file
LICENSE
danLICENSE.txt
dari APK. Untuk menyertakan file tersebut dalam APK, hapus file dari propertipackagingOptions.excludes
dalam filebuild.gradle
. Contoh:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- Menambahkan tugas
sourceSets
untuk menginspeksi set yang terdiri dari semua set sumber yang tersedia. - Meningkatkan dukungan pengujian unit untuk mengenali folder sumber multi-ragam dan varian build. Misalnya, untuk menguji aplikasi dengan multi-ragam
flavor1
danflavorA
serta jenis buildDebug
, set sumber pengujiannya adalah:- test
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
Pengujian Android sudah mengenali folder sumber multi ragam.
- Memperbaiki dukungan pengujian unit untuk:
- Menjalankan
javac
pada sumber utama dan pengujian, meskipun propertiuseJack
dalam file build Anda ditetapkan ketrue
. - Mengenali dependensi untuk setiap jenis build dengan benar.
- Menjalankan
- Menambahkan dukungan untuk menentukan argumen test-runner instrumentasi dari command line.
Misalnya:
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
Menambahkan dukungan untuk parameter Android Asset Packaging Tool (AAPT) tambahan arbitrer dalam file
build.gradle
. Contoh:android { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- Menambahkan dukungan untuk
modul APK pengujian sebagai modul pengujian terpisah, menggunakan
properti
targetProjectPath
dantargetVariant
untuk menentukan jalur APK dan varian target.Catatan: Modul APK pengujian tidak mendukung ragam produk dan hanya dapat menargetkan varian tunggal. Selain itu, Jacoco masih belum didukung.
- Menambahkan validasi nama resource sebelum menggabungkan resource.
- Saat membuat paket AAR (Android ARchive) untuk modul library, jangan sediakan placeholder
@{applicationId}
otomatis dalam setelan penggabungan manifes. Sebagai gantinya, gunakan placeholder lain, seperti@{libApplicationId}
, dan berikan nilai untuknya jika Anda ingin menyertakan ID aplikasi dalam library arsip.
Plugin Android untuk Gradle, revisi 1.2.0 (April 2015)
- Dependensi:
-
- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
- Catatan Umum:
-
- Meningkatkan dukungan untuk menjalankan pengujian unit dengan Gradle.
- Menambahkan dukungan untuk menyertakan resource bergaya Java di classpath saat menjalankan pengujian unit langsung dari Gradle.
- Menambahkan dukungan dependensi pengujian unit untuk artefak Android Archive (AAR).
- Menambahkan dukungan untuk properti
unitTestVariants
sehingga varian pengujian unit dapat dimanipulasi menggunakan filebuild.gradle
. - Menambahkan blok kode
unitTest.all
di bawahtestOptions
guna mengonfigurasi tugas-tugas yang disesuaikan untuk pengujian unit. Kode contoh di bawah menunjukkan cara menambahkan setelan konfigurasi pengujian unit menggunakan opsi baru ini:android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
- Memperbaiki penanganan enum dan kolom instance publik dalam
pengemasan file
mockable-android.jar
. - Memperbaiki dependensi tugas project library sehingga class pengujian dikompilasi ulang setelah perubahan.
- Menambahkan properti
testProguardFile
untuk menerapkan file ProGuard saat meminifikasi APK pengujian. - Menambahkan properti
timeOut
ke blok kodeadbOptions
guna menyetel waktu perekaman maksimum untuk perekaman layar Android Debug Bridge. - Menambahkan dukungan untuk resource 280 dpi.
- Meningkatkan performa selama evaluasi project.
- Meningkatkan dukungan untuk menjalankan pengujian unit dengan Gradle.
Plugin Android untuk Gradle, revisi 1.1.3 (Maret 2015)
- Dependensi:
-
- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
- Catatan Umum:
-
- Memperbaiki masalah dependensi duplikat pada aplikasi pengujian yang memicu kegagalan Proguard.
- Memperbaiki implementasi Comparator yang tidak mematuhi kontrak JDK Comparator dan menghasilkan error JDK 7.
Plugin Android untuk Gradle, revisi 1.1.2 (Februari 2015)
- Dependensi:
-
- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
- Catatan Umum:
-
- Menormalkan jalur saat membuat JAR tiruan untuk pengujian unit.
- Memperbaiki setelan
archivesBaseName
dalam filebuild.gradle
. - Memperbaiki kegagalan placeholder yang belum terselesaikan dalam penggabungan manifes saat mem-build aplikasi pengujian library.
Plugin Android untuk Gradle, revisi 1.1.1 (Februari 2015)
- Dependensi:
-
- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
- Catatan Umum:
-
- Memodifikasi varian build sehingga hanya varian yang memaketkan aplikasi Wear yang dapat memicu tugas build khusus Wear.
- Mengubah masalah terkait dependensi agar gagal pada saat build, bukan pada saat debug. Perilaku ini memungkinkan Anda menjalankan tugas diagnostik (seperti 'dependensi') untuk membantu mengatasi konflik.
- Memperbaiki metode
android.getBootClasspath()
agar menampilkan sebuah nilai.
Plugin Android untuk Gradle, revisi 1.1.0 (Februari 2015)
- Dependensi:
-
- Gradle 2.2.1 atau yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
- Catatan Umum:
-
- Menambahkan dukungan pengujian unit baru
- Mengaktifkan pengujian unit agar berjalan di JVM lokal terhadap versi khusus file
android.jar
yang kompatibel dengan framework tiruan populer, misalnya Mockito. - Menambahkan tugas-tugas pengujian baru
testDebug
,testRelease
, dantestMyFlavorDebug
saat menggunakan ragam produk. - Menambahkan folder sumber baru yang dikenali sebagai pengujian unit:
src/test/java/
,src/testDebug/java/
,src/testMyFlavor/java/
. - Menambahkan konfigurasi baru dalam file
build.gradle
untuk mendeklarasikan dependensi khusus pengujian, misalnyatestCompile 'junit:junit:4.11'
,testMyFlavorCompile 'some:library:1.0'
.Catatan: Dependensi khusus pengujian saat ini tidak kompatibel dengan Jack (Java Android Compiler Kit).
- Menambahkan opsi
android.testOptions.unitTests.returnDefaultValues
untuk mengontrol perilaku android.jar tiruan. - Mengganti
Test
dalam nama tugas pengujian denganAndroidTest
. Misalnya, tugasassembleDebugTest
sekarang menjadi tugasassembleDebugAndroidTest
. Tugas pengujian unit masih mencantumkanUnitTest
dalam nama tugasnya, misalnyaassembleDebugUnitTest
. - Memodifikasi file konfigurasi ProGuard agar tidak lagi berlaku untuk APK pengujian. Jika minifikasi diaktifkan, ProGuard akan memproses APK pengujian dan hanya menerapkan file pemetaan yang dihasilkan saat meminifikasi APK utama.
- Mengupdate pengelolaan dependensi
- Memperbaiki masalah menggunakan cakupan
provided
danpackage
.Catatan: Cakupan ini tidak kompatibel dengan paket AAR (Android ARchive) dan akan menyebabkan build aplikasi dengan paket AAR gagal.
- Memodifikasi resolusi dependensi untuk membandingkan dependensi aplikasi yang sedang diuji dengan aplikasi pengujian. Jika artefak dengan versi yang sama ditemukan untuk kedua aplikasi, artefak tersebut tidak akan disertakan dalam aplikasi pengujian dan hanya akan dikemas dengan aplikasi yang sedang diuji. Jika artefak dengan versi berbeda ditemukan untuk kedua aplikasi, build akan gagal.
- Memperbaiki masalah menggunakan cakupan
- Menambahkan dukungan untuk
penentu resource
anyDpi
dalam penggabungan resource. - Meningkatkan evaluasi dan kecepatan sinkronisasi IDE untuk project yang terdiri dari banyak modul Android.
Plugin Android untuk Gradle, revisi 1.0.1 (Januari 2015)
- Dependensi:
-
-
Gradle 2.2.1 hingga 2.3.x.
Catatan: Versi plugin Android untuk Gradle ini tidak kompatibel dengan Gradle 2.4 dan yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
-
- Catatan Umum:
-
- Memperbaiki masalah build Gradle gagal saat mengakses modul
extractReleaseAnnotations
. (Masalah 81638). - Memperbaiki masalah saat
Disable
meneruskan setelan--no-optimize
ke bytecode Dalvik Executable (dex). (Masalah 82662). - Memperbaiki masalah merger manifes saat mengimpor library dengan
targetSdkVersion
di bawah 16. - Memperbaiki masalah pengurutan kepadatan saat menggunakan Android Studio dengan JDK 8.
- Memperbaiki masalah build Gradle gagal saat mengakses modul
Plugin Android untuk Gradle, revisi 1.0.0 (Desember 2014)
- Dependensi:
-
-
Gradle 2.2.1 hingga 2.3.x.
Catatan: Versi plugin Android untuk Gradle ini tidak kompatibel dengan Gradle 2.4 dan yang lebih tinggi.
- Build Tools 21.1.1 atau yang lebih tinggi.
-
- Catatan Umum:
-
- Rilis plugin awal.