Rilis sebelumnya

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

tampilan terpisah menampilkan desain dan tampilan teks secara bersamaan

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 ikon tampilan untuk memilih opsi tampilan:

    • Untuk mengaktifkan tampilan terpisah, klik ikon Split ikon tampilan terpisah.
    • Untuk mengaktifkan tampilan sumber XML, klik ikon Source ikon tampilan sumber.
    • Untuk mengaktifkan tampilan desain, klik ikon Design ikon tampilan desain.
  • 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.

Pemilih warna dengan nilai warna terisi

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:

  1. Buka panel Project dengan memilih View > Tool Windows > Project dari panel menu.
  2. Klik kanan modul dasar Anda, biasanya dinamai 'app', lalu pilih Refactor > Enable Instant Apps Support.
  3. Pada dialog yang muncul, pilih modul dasar dari menu dropdown.
  4. 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:

  1. Pilih Build > Analyze APK dari panel menu.
  2. Pada dialog yang muncul, buka APK yang ingin Anda periksa dan pilih.
  3. Klik Open.
  4. Di APK Analyzer, pilih file DEX yang ingin diperiksa.
  5. Di penampil file DEX, muat file pemetaan ProGuard untuk APK yang sedang Anda analisis.
  6. 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 memiliki FragmentManager 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 memiliki FragmentManager 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 dari FragmentTransaction.

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.

Profiler: Deteksi Kebocoran Memori

Memfilter heap dump untuk kebocoran memori.

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.

Tab Single Points di Extended Controls Emulator..

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:

  1. Dalam tampilan peta, gunakan kolom teks untuk menelusuri tujuan pertama dalam rute Anda.
  2. Pilih lokasi dari hasil penelusuran.
  3. Pilih tombol Navigate.
  4. Pilih titik awal rute Anda dari peta.
  5. (Opsional) Klik Add destination untuk menambahkan perhentian tambahan ke rute Anda.
  6. Simpan rute Anda dengan mengklik Save route di tampilan peta.
  7. 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.

Tab Routes di Kontrol Extended Controls Emulator..

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:

  1. Buka Extended controls, lalu buka tab Displays.

  2. Tambahkan tampilan lain dengan mengklik Add secondary display.

  3. Dari menu drop-down di bagian Secondary displays, lakukan salah satu langkah berikut:

  4. Pilih salah satu rasio aspek yang telah ditetapkan sebelumnya

  5. Pilih custom, lalu setel height, width, dan dpi untuk tampilan kustom.

  6. (Opsional) Klik Add secondary display untuk menambahkan tampilan ketiga.

  7. Klik Apply changes untuk menambahkan tampilan yang ditentukan ke perangkat virtual yang sedang berjalan.

Tambahkan beberapa tampilan untuk tab Extended Controls Display.

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.

Memilih 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.

  1. Polestar 2: Membuat AVD yang mengemulasi head unit Polestar 2.
  2. Automotive (lanskap 1024p): Membuat AVD untuk head unit 1024 x 768 px Android Automotive generik.

Memilih perangkat virtual Android Automotive..

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.

Tugas download latar belakang di status bar dengan kontrol baru yang
            memungkinkan Anda menjeda atau melanjutkan download.

Tugas download latar belakang di status bar dengan kontrol baru yang memungkinkan Anda menjeda atau melanjutkan download.

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 Tombol offline Gradle pada panel Gradle..

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:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luke Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Mike Scamell
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Goncalves
  • Roar Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan Wolf
  • Stephen D'Amico
  • Tao Wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi Lin
  • Zac Sweers
  • 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.

    Notifikasi terkait setelan memori yang direkomendasikan.

    Notifikasi terkait setelan memori yang direkomendasikan.

    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.

    Laporan penggunaan memori.

    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.

    Tombol toolbar untuk Apply Changes.

    Tombol toolbar untuk 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.

    Menu drop-down perangkat target.

    Menu drop-down perangkat target.

    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 Ikon 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.

    Hubungan batasan untuk elemen UI yang dipilih.

    Hubungan batasan untuk elemen UI yang dipilih.

    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.

    Animasi yang menunjukkan cara menggunakan widget batasan untuk membuat
            batasan.

    Menggunakan widget batasan untuk membuat batasan.

    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.

    Animasi yang menunjukkan cara membuat batasan untuk komponen yang
            tumpang tindih di Android Studio 3.4.

    Membuat batasan untuk komponen yang tumpang-tindih di Android Studio 3.4.

    Animasi yang menunjukkan cara membuat batasan untuk komponen yang
            tumpang tindih di Android Studio 3.5.

    Membuat batasan untuk komponen yang tumpang-tindih di Android Studio 3.5.

    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.

    Animasi yang menunjukkan performa editor kode di Android Studio
            3.4.

    Performa editor kode di Android Studio 3.4.

    Animasi yang menunjukkan performa editor kode di Android Studio
            3.5.

    Peningkatan performa pengeditan kode di Android Studio 3.5.

    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.

    Panel Build Variants yang menampilkan pemilihan varian tunggal oleh ABI.

    Panel Build Variants dengan pemilihan varian tunggal oleh ABI.

    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:

    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:

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

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

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

    Varian Build

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

    Saran

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

    Resource Manager Baru

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

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

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

    Memeriksa ID build saat pembuatan profil dan proses debug APK

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

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

    R8 diaktifkan secara default

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

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

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

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

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

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

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

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

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

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

    Peningkatan Layout Editor {:#layout-editor}

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

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

    Tindakan intent baru untuk mengimpor dependensi dengan cepat

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

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

    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 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 menjadi argType.
    • 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 library androidx.*.
      • 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 ke true, Anda harus menyertakan berikut ini di setiap file build.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 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 ke true, tanda ini menunjukkan bahwa mulai sekarang Anda ingin menggunakan AndroidX. Jika flag ini tidak ada, Android Studio akan berperilaku seolah flag ini disetel ke false.
    • android.enableJetifier: Jika disetel ke true, 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 ke false.

    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:

    1. Pilih Run > Edit Configurations dari menu utama.
    2. Di bagian tab Profiling pada konfigurasi berjalan yang diinginkan, centang kotak di sebelah Start recording a method trace on startup.
    3. Pilih konfigurasi perekaman CPU yang ingin digunakan dari menu dropdown.
    4. 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:

    1. Klik kanan pada rekaman yang ingin diekspor dari timeline CPU.
    2. Pilih Export trace dari menu drop-down.
    3. 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.

    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 artefak kotlin-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 dengan VerifyError: 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 untuk com.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 dependensicompile telah diperbarui dengan panduan konfigurasi implementation dan api yang lebih baik. Untuk mengetahui detail terkait pengalihan dari penggunaan konfigurasi compile, 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. Class ViewDataBinding kini menyertakan metode setLifecycle() baru yang digunakan untuk mengamati objek LiveData.

    • Class ObservableField kini dapat menerima objek Observable 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.

    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.

    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 &gt;
      New &gt; 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&lt;T&gt;)">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&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;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&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;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> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <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 &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; 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 untuk minSdkVersion 15 atau yang lebih tinggi. Untuk mendapatkan performa terbaik, konfigurasi aplikasi untuk minSdkVersion 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/ dan asset/. Flag ini menyarankan agar kode native disimpan di folder libs/, yang kemudian dipaketkan dengan aman ke dalam folder data/app-lib/ aplikasi pada waktu penginstalan. AOSP: #169950
    • Tanda untuk panggilan yang tidak aman ke Runtime.load() dan pemanggilan System.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 atribut tools:keep dan tools: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 dan Parcelable yang tidak semestinya.
    • Pemeriksaan @IntDef, @IntRange, dan @Size kini juga memeriksa array dan vararg int.

    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. Alat lint 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, elemen uses-feature, serta masalah tidak adanya banner. Untuk Android Auto, pemeriksaan ini dapat memvalidasi penggunaan yang benar dalam file deskriptor yang dirujuk dari file AndroidManifest.xml, melaporkan jika tidak ada filter intent untuk class MediaBrowserService, dan mengidentifikasi masalah voice action tertentu.
    • Penambahan pemeriksaan lint baru untuk penerima siaran, penggunaan class SSLCertificateSocketFactory dan HostnameVerifier, serta pemanggilan File.setReadable() dan File.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. Folder res/mipmap ini menggantikan folder res/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)

    Android Studio v0.4.6 (Maret 2014)

    Android Studio v0.4.2 (Jan 2014)

    Android Studio v0.3.2 (Okt 2013)

    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.

    • 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:

    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:

    1. Tambahkan flag -Pandroid.enableProfileJson=true saat menjalankan build Gradle. Contoh:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Buka browser Chrome dan ketik chrome://tracing di kotak penelusuran.

    3. Klik tombol Load dan buka <var>project-root</var>/build/android-profile untuk menemukan file. Nama filenya adalah profile-<var>timestamp</var>.json.gz.

    Anda dapat melihat data atribusi build native di dekat bagian atas layar:

    Rekaman aktivitas atribusi build native di Chrome

    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:

    3.5.4 (Juli 2020)

    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:

    3.4.3 (Juli 2020)

    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 dependensi lintChecks untuk menyertakan pemeriksaan lint dalam AAR yang dipublikasikan, Anda harus memigrasikan dependensi tersebut untuk menggunakan konfigurasi lintPublish 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.

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

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

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

    Perlu diperhatikan bahwa R8 dirancang agar kompatibel dengan aturan ProGuard yang telah ada, sehingga Anda mungkin tidak perlu mengambil tindakan apa pun untuk mendapatkan manfaat dari R8. Namun, karena teknologinya berbeda dengan ProGuard yang secara khusus dirancang untuk project Android, 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 menggunakan ndkBuild 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:

    3.3.3 (Juli 2020)

    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, seperti variant.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 class R.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 menyertakan annotation.AnyRes yang dipaketkan secara statis
      • Saat menggunakan RenderScript, Anda tidak perlu lagi menetapkan versi Build Tools dalam file build.gradle secara manual

    3.2.0 (September 2018)

    Versi plugin Android ini perlu beberapa hal berikut:

    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 memperluas CommandLineArgumentProvider 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 file gradle.properties Anda:

      • android.useAndroidX: Jika ditetapkan ke true, plugin Android akan menggunakan library AndroidX yang sesuai, bukan Support Library. Jika flag ini tidak ditentukan, plugin akan menyetelnya ke false secara default.

      • android.enableJetifier: Jika disetel ke true, 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 ke false secara default. Anda dapat menetapkan tanda ini ke true hanya jika android.useAndroidX juga ditetapkan ke true; 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 file build.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

    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, dan armeabi.

      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" ke resConfig 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, bukan androidTestImplementation, 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, dan runtimeOnly.
    • 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 file gradle.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 menentukan ANDROID_TEST_ORCHESTRATOR, seperti ditunjukkan di bawah ini. Secara default, properti ini ditetapkan ke HOST, 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"
                }
              }
              
    • 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 ke true, plugin akan melakukan penggabungan resource, aset, dan manifes sebelum menjalankan pengujian unit. Pengujian Anda selanjutnya dapat memeriksa com/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 atribut package 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 konfigurasi lintChecks:

      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 menggunakan processManifest.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, dan runtimeOnly.
    • 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 file gradle.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 menentukan ANDROID_TEST_ORCHESTRATOR, seperti ditunjukkan di bawah ini. Secara default, properti ini ditetapkan ke HOST, 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"
                }
              }
              
    • 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 ke true, plugin akan melakukan penggabungan resource, aset, dan manifes sebelum menjalankan pengujian unit. Pengujian Anda selanjutnya dapat memeriksa com/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 atribut package 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 konfigurasi lintChecks:

      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 menggunakan processManifest.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:
    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.
    Perubahan:

    2.2.0 (September 2016)

    Dependensi:
    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 file gradle.properties Anda. Saat menggunakan alat pengemasan baru, tugas zipalignDebug tidak tersedia. Namun, Anda dapat membuatnya sendiri dengan memanggil metode createZipAlignTask(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 penggunaan buildTypes.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 ke false 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 dan applicationIdSuffix 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 ke true.
      • 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 menggunakan javaCompileOptions.annotationProcessorOptions {} DSL dalam file build.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
        
      • 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:
    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 gradle.properties project:

      ```none org.gradle.jvmargs = -Xmx2048m ```

      Jika Anda telah menentukan nilai untuk javaMaxHeapSize dalam file build.gradle level modul, Anda harus menetapkan org.gradle.jvmargs ke nilai javaMaxHeapSize + 1024 MB. Misalnya, jika Anda telah menetapkan javaMaxHeapSize ke "2048m", Anda harus menambahkan berikut ini ke file gradle.properties project:

      ```none org.gradle.jvmargs = -Xmx3072m ```

      Untuk menonaktifkan dexing-in-process, tambahkan kode berikut ke file build.gradle level modul:

      Groovy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }
      

    2.0.0 (April 2016)

    Dependensi:
    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 file build.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>
      

    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:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • 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 antarmuka Transform, lalu daftarkan ke android.registerTransform(theTransform) atau android.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 tugas Dex 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 properti generatedDensities di bagian defaultConfig atau productFlavor file build.gradle.
    • Menambahkan kemampuan berbagi android.jar tiruan, yang hanya dihasilkan satu kali oleh plugin dan digunakan untuk pengujian unit. Beberapa modul, seperti app dan lib, 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.

    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.
    Catatan Umum:
    • 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 build build.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.
    Catatan Umum:
    • Menambahkan dukungan untuk properti com.android.build.threadPoolSize guna mengontrol ukuran kumpulan thread tugas Android dari file gradle.properties atau command line. Contoh berikut menetapkan properti ini ke 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Menetapkan perilaku build default agar mengecualikan file LICENSE dan LICENSE.txt dari APK. Untuk menyertakan file tersebut dalam APK, hapus file dari properti packagingOptions.excludes dalam file build.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 dan flavorA serta jenis build Debug, 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 properti useJack dalam file build Anda ditetapkan ke true.
      • Mengenali dependensi untuk setiap jenis build dengan benar.
    • 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 dan targetVariant 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 file build.gradle.
      • Menambahkan blok kode unitTest.all di bawah testOptions 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 kode adbOptions guna menyetel waktu perekaman maksimum untuk perekaman layar Android Debug Bridge.
    • Menambahkan dukungan untuk resource 280 dpi.
    • Meningkatkan performa selama evaluasi project.

    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 file build.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, dan testMyFlavorDebug 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, misalnya testCompile '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 dengan AndroidTest. Misalnya, tugas assembleDebugTest sekarang menjadi tugas assembleDebugAndroidTest. Tugas pengujian unit masih mencantumkan UnitTest dalam nama tugasnya, misalnya assembleDebugUnitTest.
    • 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 dan package.

        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.
    • 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.

    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.