Bergabunglah bersama kami di ⁠#Android11: The Beta Launch Show pada tanggal 3 Juni!

Fitur-fitur baru di Pratinjau Android Studio

Android Studio 3.6 telah dirilis ke saluran stabil. Download di sini.

Android Studio 4.1 saat ini ada dalam saluran Canary dan Dev, serta Android Studio 4.0 saat ini ada dalam saluran Beta.

Untuk berita terbaru tentang rilis, termasuk daftar perbaikan penting di setiap rilis, lihat juga Berita rilis.

Jika Anda mengalami masalah saat menggunakan versi pratinjau Android Studio, harap beri tahu kami. Laporan bug Anda akan membantu kami menyempurnakan Android Studio.

Android Studio 4.1

Bagian ini menyediakan ringkasan fitur dan perubahan baru pada Android Studio 4.1.

Database Inspector

Dengan Android Studio 4.1 Canary 6 dan yang lebih tinggi, Anda dapat memeriksa, mengkueri, dan mengubah database aplikasi Anda menggunakan Database Inspector yang baru. Misalnya, Anda dapat men-debug aplikasi yang berjalan dengan memodifikasi nilai di database dan menguji perubahan tersebut di perangkat.

Mengubah nilai tabel dan melihat perubahan pada aplikasi yang berjalan

Untuk memulai, deploy aplikasi Anda ke perangkat yang menjalankan API level 26 atau yang lebih tinggi, lalu pilih View > Tool Windows > Database Inspector dari panel menu.

Jika jendela Database Inspector tidak otomatis memilih proses aplikasi Anda, pilih dari menu drop-down.

Memeriksa dan memodifikasi tabel

Pada panel Database, Anda dapat melihat database untuk aplikasi Anda, dan Anda dapat memperluas node database untuk melihat tabelnya. Jika Anda mengklik dua kali pada tabel, pemeriksa akan membuka tabel tersebut di tab terpisah di sebelah kanan, seperti yang ditampilkan pada screenshot di bawah, tempat Anda dapat memeriksa data, mengurutkan berdasarkan kolom, atau bahkan mengubah nilai saat aplikasi berjalan di perangkat.

Untuk mengubah nilai sel tabel, cukup klik dua kali pada sel, ubah nilainya, lalu tekan Enter. Jika Anda menggunakan library persistensi Room dan mengamati database Anda (seperti pada LiveData), perubahan tersebut harus segera terlihat di aplikasi yang berjalan. Jika tidak, Anda mungkin perlu memuat ulang kueri database aplikasi Anda untuk melihat perubahannya.

Memeriksa, mengkueri, dan memodifikasi database aplikasi

Jika aplikasi melakukan update pada database-nya dan Anda ingin otomatis melihat update tersebut di jendela pemeriksa, centang kotak di samping Live update. Perlu diingat, saat opsi ini diaktifkan, tabel di pemeriksa menjadi hanya baca dan Anda tidak dapat mengubah nilainya.

Atau, Anda dapat memperbarui data secara manual di pemeriksa dengan mengklik Refresh Table. Selain itu, jika ada perubahan pada skema database, klik Refresh Schema di panel Database.

Mengkueri database Anda

Untuk mengkueri database, klik Run SQL di panel Database. Tindakan ini akan membuka tab New Query di sebelah kanan. Jika aplikasi Anda menyertakan lebih dari satu database, pilih database yang ingin Anda kueri menggunakan menu drop-down di jendela tab. Di kolom teks, Anda dapat menentukan kueri SQLite, lalu klik Run. Pemeriksa akan mengkueri database aplikasi Anda lalu menampilkan hasilnya, seperti yang ditampilkan di bawah.

Mengkueri database Anda

Jika Anda menggunakan library persistensi Room, Android Studio juga menyediakan tindakan gutter untuk membantu Anda menjalankan kueri yang ditetapkan pada anotasi @Query dengan cepat. Saat aplikasi Anda di-deploy ke perangkat yang kompatibel dan Database Inspector terbuka di IDE, klik tombol di samping anotasi @Query, seperti yang ditampilkan di bawah.

Tindakan gutter anotasi Room Query

Database Inspector akan membuka tab baru, menjalankan kueri, dan menampilkan hasilnya. Jika kueri Anda menyertakan parameter pengikat bernama, seperti :name, Android Studio akan meminta nilai untuk setiap parameter sebelum menjalankan kueri.

Native Memory Profiler

Memory Profiler Android Studio kini menyertakan Native Memory Profiler untuk aplikasi yang di-deploy ke perangkat fisik yang menjalankan Android 10 atau yang lebih baru. Dengan ukuran sampel 32 byte, Native Memory Profiler melacak alokasi/dealokasi objek dalam kode native selama jangka waktu tertentu dan memberikan informasi berikut:

  • Allocations: Jumlah objek yang dialokasikan melalui operator malloc() atau new selama jangka waktu yang dipilih.
  • Deallocations: Jumlah objek yang dibatalkan alokasinya melalui operator free() ataudelete selama jangka waktu yang dipilih.
  • Allocations Size: Ukuran gabungan dalam byte dari semua alokasi selama jangka waktu yang dipilih.
  • Deallocations Size: Ukuran gabungan dalam byte dari semua memori yang dibebaskan selama jangka waktu yang dipilih.
  • Total Count: Nilai di kolom Allocations dikurangi nilai di kolom Deallocations.
  • Remaining Size: Nilai di kolom Allocations Size dikurangi nilai di kolom Deallocations Size.

Native Memory Profiler

Untuk memulai perekaman, klik Record native allocations di bagian atas jendela Memory Profiler:

Tombol Record native allocations

Begitu Anda siap menyelesaikan rekaman, klik Stop recording.

Menggunakan model TensorFlow Lite

ML Model Binding memudahkan Anda untuk langsung mengimpor file model .tflite dan menggunakannya dalam project Anda. Android Studio menghasilkan class yang mudah digunakan sehingga Anda dapat menjalankan model dengan lebih sedikit kode dan type safety yang lebih baik.

Model yang didukung

Penerapan Canary saat ini pada ML Model Binding mendukung klasifikasi gambar dan model transfer gaya, asalkan disempurnakan dengan metadata. Seiring waktu, dukungan akan diperluas ke domain masalah lainnya, seperti deteksi objek, segmentasi gambar, dan klasifikasi teks.

Beragam model klasifikasi gambar terlatih tersedia di TensorFlow Hub – cukup cari dan download format model yang menyebutkan "metadata". Anda juga dapat menambahkan sendiri metadata ke model TensorFlow Lite, seperti yang dijelaskan dalam Menambahkan metadata ke model TensorFlow Lite.

Mengimpor file model

Untuk mengimpor file model yang didukung, ikuti langkah-langkah berikut:

  1. Buka dialog impor model TensorFlow Lite pada menu File di File > New > Other > TensorFlow Lite Model.
  2. Pilih file model .tflite yang sebelumnya Anda download atau buat.
  3. Klik Finish.

Tindakan ini akan mengimpor file model ke project Anda dan menempatkannya di folder ml/. Jika direktori tersebut tidak ada, Android Studio akan membuatnya untuk Anda.

Mengimpor model TensorFlow Lite

Melihat metadata model

Untuk melihat detail model yang diimpor dan mendapatkan petunjuk cara menggunakannya di aplikasi Anda, klik dua kali file model di project Anda untuk membuka halaman penampil model, yang menampilkan hal berikut:

  • Model: Deskripsi tingkat tinggi model
  • Tensor: Deskripsi tensor input dan output
  • Kode contoh: Contoh cara berinteraksi dengan model di aplikasi Anda

Screenshot penampil model TensorFlow Lite

Jika model tidak memiliki metadata, layar ini hanya akan memberikan sedikit informasi.

Menggunakan model di aplikasi Anda

Penampil model menyediakan kode contoh untuk membantu Anda mulai menggunakan model di aplikasi Anda.

Berikut contoh menggunakan mobilenet_quant_metadata.tflite:

Kotlin

    try {
        val model: MobilenetQuantMetadata = MobilenetQuantMetadata.newInstance(this)

        // Creates a TensorImage instance from Bitmap.
        val tensorImage = TensorImage()
        tensorImage.load(bitmap)

        // Runs model inference and gets result.
        val outputs: MobilenetQuantMetadata.Outputs = model.process(tensorImage)
        val tensorLabel: TensorLabel = outputs.getProbabilityAsTensorLabel()
        val probMap = tensorLabel.mapWithFloatValue

        for ((key, value) in probMap) {
            Log.d(TAG, "label = $key, prob = $value")
        }
    } catch (e: IOException) {
        // Handles exception
    }
    

Java

    try {
        MobilenetQuantMetadata model = MobilenetQuantMetadata.newInstance(this);

        // Creates a TensorImage instance from Bitmap.
        TensorImage tensorImage = new TensorImage();
        tensorImage.load(bitmap);

        // Runs model inference and gets results.
        MobilenetQuantMetadata.Outputs outputs = model.process(tensorImage);
        TensorLabel tensorLabel = outputs.getProbabilityAsTensorLabel();
        Map<String, Float> probMap = tensorLabel.getMapWithFloatValue();

        for (Map.Entry<String, Float> entry : probMap.entrySet()) {
          Log.d(TAG, "label = " + entry.getKey() + ", prob = " + entry.getValue());
        }
    } catch (IOException e) {
       // Handles exception
    }
    

Seperti yang ditunjukkan dalam contoh, Android Studio membuat class bernama MobilenetQuantMetadata untuk berinteraksi dengan model.

Masalah umum dan solusinya

  • Dukungan untuk model TensorFlow Lite untuk domain masalah selain klasifikasi gambar dan transfer gaya saat ini dibatasi. Meskipun impor seharusnya bekerja dengan baik, beberapa input dan/atau output model direpresentasikan oleh TensorBuffers, bukan jenis yang dikenal. Untuk model tanpa metadata, semua input dan output model akan menjadi TensorBuffers.
  • Untuk mendukung model TensorFlow lite yang berukuran di atas 20 MB, ganti properti IDE IntelliJ berikut: idea.max.content.load.filesize. Lihat halaman ini untuk mengetahui detail selengkapnya.
  • Model dengan jenis data Input dan Output berbeda dengan DataType.UINT8 atau DataType.FLOAT32 tidak didukung.

Fitur ini masih dalam pengembangan, jadi harap memberikan masukan atau melaporkan bug.

Dukungan untuk Jetpack Compose

Toolkit Jetpack Compose menyediakan pendekatan modern untuk mem-build UI aplikasi Anda. Toolkit ini juga memberikan semua manfaat Kotlin, seperti membantu Anda menulis kode singkat dan idiomatis yang sepenuhnya dapat dioperasikan dengan Java.

Untuk pengalaman terbaik dalam mengembangkan aplikasi dengan Jetpack Compose, Anda harus menggunakan versi terbaru Android Studio 4.1. Alasannya, jika menggunakan Android Studio untuk mengembangkan aplikasi dengan Jetpack Compose, Anda dapat memanfaatkan fitur editor cerdas, seperti template New Project dan kemampuan untuk langsung melihat pratinjau UI Compose Anda.

Untuk mempelajari lebih lanjut dan memulai, buka Ringkasan Jetpack Compose.

Pernyataan dalam build debug

Pernyataan dalam kode Java Anda kini diaktifkan saat men-deploy versi debug aplikasi Anda. Karena waktu proses Android tidak mendukung pengaktifan pernyataan pada waktu proses (yaitu, meneruskan tanda -ea/-enableassertions yang setara ke VM Java), pernyataan di aplikasi Anda sebelumnya tidak berpengaruh apa pun.

Sekarang, jika Anda mem-build dan men-deploy versi debug aplikasi menggunakan plugin Android Gradle 4.1.0-alpha01 dan yang lebih tinggi, compiler bawaan (D8) akan menulis ulang kode untuk mengaktifkan pernyataan pada waktu kompilasi, sehingga Anda selalu memiliki pemeriksaan pernyataan yang aktif.

Masalah umum untuk Pratinjau 4.1

Bagian ini menjelaskan masalah umum saat ini pada Pratinjau Android Studio 4.1.

Patch tidak berfungsi pada versi 4.1 Canary 2

Patch untuk Android Studio 4.1 Canary 2 saat ini tidak berfungsi. Untuk mengupdate ke versi terbaru Android Studio 4.1, nonaktifkan Android Studio, lalu download dan instal paket terbaru.

Masalah ini telah diperbaiki di Android Studio 4.1 Canary 3.

Error waktu tunggu di CPU Profiler

Anda mungkin menemukan error "Perekaman gagal berhenti" di CPU Profiler Android Studio saat memilih konfigurasi Sample Java Methods atau Trace Java Methods. Yang terjadi biasanya error waktu tunggu, terutama jika Anda melihat pesan error berikut di file idea.log:

Wait for ART trace file timed out

Error waktu tunggu cenderung memengaruhi metode yang dilacak daripada metode sampel, serta rekaman yang lebih panjang daripada rekaman yang lebih pendek. Sebagai solusi sementara, Anda dapat mencoba rekaman yang lebih pendek untuk melihat apakah error tersebut hilang.

Jika Anda mengalami masalah waktu tunggu pada Profiler, harap melaporkan bug yang menyertakan produsen/model perangkat Anda serta entri yang relevan dari idea.log dan logcat.

Error kontrol versi Git di IDE

Operasi yang memerlukan autentikasi pada kontrol versi Git tidak berfungsi di IDE untuk Android Studio 4.1 Canary 1.

Untuk memperbaiki masalah ini, upgrade ke Android Studio 4.1 Canary 2.

Android Studio 4.0

Bagian ini menyediakan ringkasan fitur dan perubahan baru pada Android Studio 4.0.

Upgrade UI CPU Profiler

Upgrade UI Pelacakan Sistem

Berdasarkan masukan Anda, UI CPU Profiler telah dirombak untuk memberikan alur kerja yang lebih intuitif. Perubahan penting meliputi:

  • Rekaman CPU kini terpisah dari linimasa profiler utama untuk memudahkan analisis. Data yang direkam diatur dalam grup di sisi kiri jendela Profiler. Anda dapat memindahkan grup ke atas dan ke bawah untuk menata ulang daftar dengan mengklik ikon opsi ikon opsi di profiler di pojok kanan atas jendela, atau dengan menarik lalu melepas setiap item dalam suatu grup.
  • Untuk memudahkan analisis secara berdampingan, Anda kini dapat menampilkan semua aktivitas thread di linimasa aktivitas thread (termasuk metode, fungsi, dan peristiwa).
  • Tab untuk analisis Flame Chart, Top Down, dan Bottom Up sekarang berada di kolom sebelah kanan. Dalam grup Thread, thread otomatis diperluas untuk perekaman Pelacakan Sistem dan diciutkan secara default untuk jenis perekaman lainnya. Klik dua kali nama thread untuk meluaskan atau menciutkan thread.
  • UI Pelacakan Sistem, seperti yang ditampilkan pada screenshot di atas, juga disempurnakan. Misalnya, peristiwa kini diberi warna unik untuk memudahkan pembedaan.

Fitur ini masih dikembangkan, jadi silakan terus memberikan masukan.

Fitur untuk memisahkan pemrosesan anotasi dihapus

Kemampuan untuk memisahkan pemrosesan anotasi menjadi tugas khusus telah dihapus. Opsi ini digunakan untuk mempertahankan kompilasi Java inkremental saat pemroses anotasi non-inkremental digunakan dalam project khusus Java; ini diaktifkan dengan menyetel android.enableSeparateAnnotationProcessing ke true dalam file gradle.properties, yang tidak lagi berfungsi.

Sebagai gantinya, Anda harus beralih menggunakan pemroses anotasi inkremental untuk meningkatkan performa build.

Jendela Build Speed

Saat menggunakan Android Studio 4.0 Canary 3 dengan plugin Android Gradle 4.0.0-alpha03 dan yang lebih tinggi, jendela Build Speed akan membantu Anda memahami dan mendiagnosis masalah pada proses build, seperti pengoptimalan yang dinonaktifkan dan tugas yang tidak dikonfigurasi dengan benar. Saat menggunakan Android Studio 4.0 Canary 3 dan yang lebih tinggi, serta plugin Android Gradle 4.0.0-alpha03 dan yang lebih tinggi, Anda dapat membuka jendela Build Speed seperti berikut:

  1. Jika belum melakukannya, build aplikasi Anda dengan memilih Build > Make Project dari panel menu.
  2. Select View > Tool Windows > Build dari panel menu.
  3. Pada jendela Build, buka jendela Build Speed dengan salah satu cara berikut:
    • Setelah Android Studio selesai mem-build project Anda, klik tab Build Speed.
    • Setelah Android Studio selesai mem-build project Anda, klik link di sebelah kanan jendela Build Output.

Jendela Build Speed mengatur masalah build yang mungkin muncul di hierarki di sebelah kiri. Anda dapat memeriksa dan mengklik setiap masalah untuk mengetahui detailnya di panel sebelah kanan. Saat menganalisis build Anda, Android Studio menghitung kumpulan tugas yang menentukan durasi build dan memberikan visualisasi untuk membantu Anda memahami dampak dari setiap tugas tersebut. Anda juga bisa mendapatkan detail tentang peringatan dengan meluaskan node Warnings.

Diagram Build Speed

Tugas mana yang menentukan durasi build?

Gradle menentukan eksekusi tugas dengan interdependensi tugas, struktur project, dan beban CPU, serta menjalankan tugas secara berurutan atau paralel. Untuk build tertentu, jendela Build Speed menandai kumpulan tugas yang dijalankan secara berurutan yang menentukan durasi build saat ini. Mengatasi inefisiensi pada tugas yang ditandai ini merupakan langkah awal paling baik untuk mengurangi waktu build Anda secara keseluruhan.

Perlu diingat bahwa pada setiap build yang Anda jalankan, Anda mungkin melihat kumpulan tugas berbeda yang menentukan durasi build. Misalnya, jika Anda membuat perubahan pada konfigurasi build, jalankan build dengan kumpulan tugas yang berbeda (seperti build inkremental), atau jalankan build dalam batasan yang berbeda (misalnya, beban CPU yang lebih berat), jendela Build Speed mungkin menandai kumpulan tugas yang berbeda yang paling memengaruhi durasi build. Karena variabilitas ini, Anda mungkin ingin menggunakan jendela Build Speed di beberapa build untuk mengurangi durasi build secara konsisten.

Live Layout Inspector

Debug tata letak Anda dengan Live Layout Inspector terbaru yang menyediakan insight real-time lengkap ke UI aplikasi Anda saat Live Layout Inspector di-deploy ke suatu perangkat.

Untuk membuka jendela Layout Inspector, buka View > Tools Windows > Layout Inspector. Selain dari sejumlah fitur yang sama dengan Layout Inspector yang ada, Live Layout Inspector juga menyertakan:

  • Dynamic layout hierarchy: Memperbarui saat tampilan di perangkat berubah.

Dynamic layout hierarchy

  • Property values resolution stack: Menyelidiki tempat asal nilai properti resource dalam kode sumber dan membuka lokasinya dengan mengikuti hyperlink di panel properties.

Property values resolution stack

  • 3D view: Melihat hierarki tampilan aplikasi Anda saat waktu proses dengan visualisasi 3D lanjutan. Untuk menggunakan fitur ini, di jendela Live Layout Inspector, cukup klik dan putar Layout tersebut.

Layout inspector: tampilan 3D

Anda dapat menggunakan Live Layout Inspector hanya saat men-deploy aplikasi ke perangkat yang menjalankan API level 29 atau yang lebih tinggi. Anda juga harus mengaktifkan fitur ini dengan membuka File > Settings > Experimental, dan mencentang kotak di samping Enable Live Layout Inspector.

Multi Preview

Multi Preview adalah alat visual untuk mempratinjau tata letak secara bersamaan di berbagai perangkat dan konfigurasi, yang dapat membantu menemukan kemungkinan masalah dalam tata letak Anda.

Anda dapat mengakses fitur ini dengan mengklik tab Multi Preview di pojok kanan atas jendela IDE:

Tab Multi Preview

Anda dapat memilih dari dua set konfigurasi berbeda: perangkat Pixel dan lokal project. Untuk beralih antara dua set konfigurasi ini, pilih dari menu drop-down di bagian atas jendela Multi Preview:

Demonstrasi Multi Preview

Desugaring library Java 8 dalam D8 dan R8

Android Studio kini menyertakan dukungan untuk menggunakan sejumlah API bahasa Java 8 tanpa memerlukan API level minimum untuk aplikasi Anda.

Melalui proses yang disebut desugaring, compiler DEX, D8, di Android Studio 3.0 dan yang lebih tinggi telah memberikan dukungan besar untuk fitur bahasa Java 8 (seperti ekspresi lambda, metode antarmuka default, coba dengan resource, dan banyak lagi). Di Android Studio 4.0, mesin desugaring telah diperluas untuk dapat melakukan desugaring API bahasa Java. Artinya, Anda kini dapat menyertakan API bahasa standar yang hanya tersedia di rilis Android terbaru (seperti java.util.streams) di aplikasi yang mendukung versi Android yang lebih lama.

Kumpulan API berikut ini didukung dalam rilis ini:

  • Aliran berurutan (java.util.stream)
  • Subset java.time
  • java.util.function
  • Penambahan terbaru pada java.util.{Map,Collection,Comparator}
  • Opsional (java.util.Optional, java.util.OptionalInt dan java.util.OptionalDouble) dan beberapa class baru lainnya yang berguna dengan API di atas
  • Beberapa tambahan pada java.util.concurrent.atomic (metode baru pada AtomicInteger, AtomicLong, dan AtomicReference)
  • ConcurrentHashMap (dengan perbaikan bug untuk Android 5.0)

Untuk mendukung API bahasa ini, D8 mengompilasi file DEX library terpisah yang berisi implementasi API yang hilang dan menyertakannya di aplikasi Anda. Proses desugaring menulis ulang kode aplikasi Anda untuk menggunakan library ini pada waktu proses.

Guna mengaktifkan dukungan untuk API bahasa ini, sertakan yang berikut ini dalam file build.gradle modul Anda:

android {
      defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled true
      }

      compileOptions {
        // Flag to enable support for the new language APIs
        coreLibraryDesugaringEnabled true
        // Sets Java compatibility to Java 8
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
    }

    dependencies {
      coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
    }
    

Beri tahu kami jika Anda mengalami masalah atau jika Anda menginginkan dukungan untuk API lain dengan melaporkan bug pada pelacak bug kami.

Dukungan untuk file skrip Kotlin DSL

Plugin Android Gradle kini mendukung file skrip build Kotlin DSL (*.kts). Saat digunakan dengan Android Studio, fitur IDE tertentu, seperti dialog Project Structure dan perbaikan cepat skrip build, kini juga mendukung proses membaca dan menulis ke file skrip build Kotlin.

Fitur editor cerdas untuk aturan ProGuard

Android Studio kini menyediakan fitur editor cerdas saat Anda membuka file aturan ProGuard, seperti penyorotan sintaksis, penyelesaian kode, dan pemeriksaan error. Editor juga terintegrasi dengan project Android Studio Anda untuk memberikan penyelesaian simbol penuh untuk semua class, metode, dan kolom, serta menyertakan navigasi cepat dan pemfaktoran ulang.

Fitur editor cerdas saat mengedit file aturan ProGuard

Motion Editor Baru

Android Studio kini menyertakan editor desain visual untuk jenis tata letak MotionLayout, sehingga membuat dan melihat pratinjau animasi menjadi lebih mudah.

Motion Editor menyediakan antarmuka sederhana untuk memanipulasi elemen dari library MotionLayout yang berfungsi sebagai dasar untuk animasi di aplikasi Android. Pada rilis sebelumnya, membuat dan mengubah elemen-elemen ini memerlukan pengeditan batasan secara manual dalam file resource XML. Kini, Motion Editor dapat membuat XML ini untuk Anda, dengan dukungan untuk status awal dan akhir, bingkai utama, transisi, dan linimasa.

Untuk memulai Motion Editor:

  1. Buat ConstraintLayout.
  2. Klik kanan pada pratinjau di Layout Editor.
  3. Klik Convert to MotionLayout, seperti yang ditampilkan di bawah ini.

Setelah Android Studio mengonversi ConstraintLayout ke MotionLayout, file Scene Motion juga akan ditambahkan ke direktori yang berisi XML Anda.

MotionLayout kemudian menjadi tata letak root Anda, dan muncul di UI Motion Editor. Tata letak sudah mencakup ConstraintSet awal, ConstraintSet akhir, dan transisi dari awal hingga akhir.

Anda dapat menggunakan grafik ringkasan untuk memilih ConstraintSet atau Transition dan untuk memilih komponen pada panel pemilihan.

Kemudian Anda dapat mengedit batasan dan atribut dari ConstraintSet awal atau akhir dengan cara yang sama seperti mengedit ConstraintLayout.

Jika ingin mem-build lebih banyak elemen pada grafik, Anda dapat menggunakan ikon pembuatan untuk menambahkan gestur ConstraintSet, Transition, atau OnClick/OnSwipe dengan cepat.

Untuk menambahkan bingkai utama, klik panah Transition:

Kemudian, di panel linimasa Transition, klik pojok kanan atas dan pilih KeyPosition:

Tindakan ini membuka dialog tempat Anda dapat menetapkan atribut untuk bingkai utama.

Anda juga dapat menambahkan pengendali OnClick dan OnSwipe ke Transition pada panel atribut.

Tindakan ini akan membuka dialog tempat Anda dapat menetapkan atribut klik seperti komponen target dan arah tarik.

Motion Editor mendukung pratinjau animasi di permukaan desain. Setelah animasi dipilih, klik Play di atas linimasa untuk melihat pratinjau animasi.

Baru di plugin Android Gradle 4.0.0

Bagian ini menjelaskan fitur baru dan perubahan perilaku yang tercakup dalam plugin Android Gradle 4.0.0.

Opsi baru untuk mengaktifkan atau menonaktifkan fitur build

Plugin Android Gradle 4.0.0-alpha05 memperkenalkan cara baru untuk mengontrol fitur build mana yang ingin Anda aktifkan dan nonaktifkan, seperti View Binding, Data Binding, dan Jetpack Compose. Jika fitur baru ditambahkan, fitur tersebut akan dinonaktifkan secara default. Nantinya Anda dapat menggunakan blok buildFeatures untuk mengaktifkan fitur yang diinginkan saja, dan ini membantu Anda mengoptimalkan performa build untuk project Anda. Anda dapat menetapkan opsi untuk setiap modul dalam file build.gradle level modul, seperti berikut:

    android {
        // The default value for each feature is shown below. You can change the value to
        // override the default behavior.
        buildFeatures {
            // Determines whether to generate a BuildConfig class.
            buildConfig = true
            // Determines whether to support View Binding.
            // Note that the viewBinding.enabled property is now deprecated.
            viewBinding = false
            // Determines whether to support Data Binding.
            // Note that the dataBinding.enabled property is now deprecated.
            dataBinding = false
            // Determines whether to generate binder classes for your AIDL files.
            aidl = true
            // Determines whether to support RenderScript.
            renderScript = true
            // Determines whether to support injecting custom variables into the module's R class.
            resValues = true
            // Determines whether to support shader AOT compilation.
            shaders = true
        }
    }
    

Anda juga dapat menentukan setelan default untuk fitur ini di seluruh modul dalam sebuah project dengan menyertakan satu atau beberapa dari yang berikut di file gradle.properties project, seperti yang ditampilkan di bawah ini. Perlu diingat bahwa Anda masih dapat menggunakan blok buildFeatures di file build.gradle level modul untuk mengganti setelan default tingkat project ini.

android.defaults.buildfeatures.buildconfig=true
    android.defaults.buildfeatures.aidl=true
    android.defaults.buildfeatures.renderscript=true
    android.defaults.buildfeatures.resvalues=true
    android.defaults.buildfeatures.shaders=true
    

Dependensi fitur pada fitur

Pada versi plugin Android Gradle sebelumnya, semua modul Fitur Dinamis hanya dapat bergantung pada modul dasar aplikasi. Jika menggunakan plugin Android Gradle 4.0.0, kini Anda dapat menyertakan modul fitur yang bergantung pada modul fitur lainnya. Yaitu, fitur :video dapat bergantung pada fitur :camera, yang bergantung pada modul dasar, seperti yang ditunjukkan pada gambar di bawah.

Dependensi fitur pada fitur

:video fitur dinamis bergantung pada fitur :camera, yang bergantung pada modul :app dasar.

Artinya, saat aplikasi Anda meminta untuk mendownload modul fitur dinamis, aplikasi juga mendownload modul fitur lain yang menjadi tempatnya bergantung. Setelah membuat modul fitur dinamis untuk aplikasi, Anda dapat mendeklarasikan dependensi fitur pada fitur dalam file build.gradle modul. Misalnya, modul :video mendeklarasikan dependensi pada :camera seperti berikut:

// In the build.gradle file of the ':video' module.
    dependencies {
        // All dynamic feature modules must declare a dependency
        // on the base module.
        implementation project(':app')
        // Declares that this module also depends on the 'camera'
        // dynamic feature module.
        implementation project(':camera')
        ...
    }
    

Selain itu, Anda harus mengaktifkan fitur dependensi fitur pada fitur di Android Studio (untuk mendukung fitur saat mengedit konfigurasi Run, misalnya) dengan mengklik Help > Edit Custom VM Options dari panel menu dan menyertakan yang berikut:

-Drundebug.feature.on.feature=true
    

Plugin 'feature' dan 'instantapp' Android Gradle dihapus

Plugin Android Gradle 3.6.0 tidak menggunakan lagi plugin Feature (com.android.feature) serta plugin Instant App (com.android.instantapp) dan menggantinya dengan plugin Dynamic Feature (com.android.dynamic-feature) untuk mem-build dan mengemas aplikasi instan Anda menggunakan Android App Bundle.

Di plugin Android Gradle 4.0.0-alpha01 dan yang lebih tinggi, plugin yang sudah tidak lagi digunakan ini sepenuhnya dihapus. Jadi, untuk menggunakan plugin Android Gradle terbaru, Anda harus memigrasikan aplikasi instan untuk mendukung Android App Bundle. Dengan memigrasikan aplikasi instan, Anda dapat memanfaatkan manfaat app bundle dan menyederhanakan desain modular aplikasi Anda.

Metadata dependensi

Saat mem-build aplikasi menggunakan plugin Android Gradle 4.0.0-beta02 dan yang lebih tinggi, plugin akan menyertakan metadata yang menjelaskan dependensi yang dikompilasi ke dalam aplikasi Anda. Saat mengupload aplikasi, Konsol Play akan memeriksa metadata ini untuk memberikan manfaat berikut kepada Anda:

  • Mendapatkan pemberitahuan untuk masalah umum terkait SDK dan dependensi yang digunakan aplikasi Anda
  • Menerima masukan yang dapat ditindaklanjuti untuk menyelesaikan masalah tersebut

Data dikompresi, dienkripsi oleh kunci penandatanganan Google Play, dan disimpan di blok penandatanganan aplikasi rilis Anda. Namun, Anda sendiri dapat memeriksa metadata dalam file build perantara lokal di direktori berikut: <project>/<module>/build/outputs/sdk-dependencies/release/sdkDependency.txt.

Jika tidak ingin membagikan informasi ini, Anda dapat memilih tidak ikut dengan menyertakan yang berikut ini dalam file build.gradle modul Anda:

android {
        dependenciesInfo {
            // Disables dependency metadata when building APKs.
            includeInApk = false
            // Disables dependency metadata when building Android App Bundles.
            includeInBundle = false
        }
    }
    

Template langsung Kotlin Android

Android Studio kini menyertakan template langsung Android untuk class Kotlin Anda. Misalnya, Anda kini dapat mengetik toast dan menekan tombol Tab untuk memasukkan Toast dengan cepat. Untuk daftar lengkap template langsung yang tersedia, klik File > Setting dari panel menu (atau Android Studio > Preferences di macOS) dan buka Editor > Live Templates.

Wizard Fragment dan template fragmen baru

Wizard New Android Fragment dan template fragmen baru kini tersedia saat Anda membuka File > New > Fragment > Gallery atau mengklik Create new destination di editor Navigation.

Wizard galeri Fragment.

Wizard galeri Fragment.

Mengimpor library native dari dependensi AAR

Mulai Plugin Android Gradle 4.0 Canary 9, Anda dapat mengimpor library C/C++ dari dependensi AAR aplikasi Anda. Setelah Anda mengikuti langkah-langkah konfigurasi yang dijelaskan di bawah, Gradle otomatis membuat library native ini tersedia untuk digunakan dengan sistem build native eksternal Anda, seperti CMake. Ingat bahwa Gradle hanya membuat library ini tersedia untuk build Anda; Anda tetap harus mengonfigurasi skrip build untuk menggunakannya.

Library diekspor menggunakan format paket Prefab.

Setiap dependensi dapat menampilkan maksimal satu paket Prefab, yang terdiri dari satu atau beberapa modul. Modul Prefab adalah library tunggal, yang dapat berupa library bersama, statis, atau hanya header.

Biasanya, nama paket cocok dengan nama artefak Maven dan nama modul cocok dengan nama library, tetapi ini tidak selalu benar. Karena Anda perlu mengetahui nama paket dan modul library, Anda mungkin perlu membaca dokumentasi dependensi untuk menentukan nama-nama tersebut.

Mengonfigurasi sistem build native eksternal

Untuk mengetahui langkah-langkah yang harus Anda ikuti, klik sistem build native eksternal yang akan digunakan.

Dependensi native yang disertakan dalam AAR ditampilkan ke project CMake Anda melalui CMAKE_FIND_ROOT_PATH. Nilai ini akan disetel otomatis oleh Gradle saat CMake dipanggil, jadi jika build Anda memodifikasi variabel ini, pastikan untuk menambahkan, bukan menetapkannya.

Setiap dependensi menampilkan paket file konfigurasi ke build CMake, yang Anda impor dengan perintah find_package. Perintah ini menelusuri beberapa paket file konfigurasi yang cocok dengan nama paket dan versi tertentu serta menampilkan target yang ditetapkannya untuk digunakan dalam build Anda. Misalnya, jika aplikasi Anda menentukan libapp.so dan menggunakan curl, Anda harus menyertakan yang berikut ini dalam file CMakeLists.txt:

add_library(app SHARED app.cpp)

    # Add these two lines.
    find_package(curl REQUIRED CONFIG)
    target_link_libraries(app curl::curl)
    

Anda kini dapat menentukan #include "curl/curl.h" di app.cpp. Setelah Anda mem-build project, sistem build native eksternal akan otomatis menautkan libapp.so ke libcurl.so dan memaketkan libcurl.so di APK atau app bundle.

Masalah Umum untuk Pratinjau 4.0

Bagian ini menjelaskan masalah umum saat ini pada Pratinjau Android Studio 4.0.

Build Analyzer Dinonaktifkan di Beta 4

Build Analyzer dinonaktifkan di Android Studio 4.0 Beta 4. Build Analyzer akan diaktifkan kembali di Beta 5.

Error Waktu Tunggu di CPU Profiler

Anda mungkin menemukan error "Perekaman gagal berhenti" di CPU Profiler Android Studio saat memilih konfigurasi Sample Java Methods atau Trace Java Methods. Yang terjadi biasanya error waktu tunggu, terutama jika Anda melihat pesan error berikut di file idea.log:

Wait for ART trace file timed out

Error waktu tunggu cenderung memengaruhi metode yang dilacak daripada metode sampel, serta rekaman yang lebih panjang daripada rekaman yang lebih pendek. Sebagai solusi sementara, Anda dapat mencoba rekaman yang lebih pendek untuk melihat apakah error tersebut hilang.

Jika Anda mengalami masalah waktu tunggu pada Profiler, harap melaporkan bug yang menyertakan produsen/model perangkat Anda serta entri yang relevan dari idea.log dan logcat.

Patch tidak berfungsi pada versi 4.0 Beta 2

Saat ini patch untuk Android Studio 4.0 Beta 2 tidak berfungsi. Untuk mengupdate ke versi terbaru Android Studio 4.0, nonaktifkan Android Studio, lalu download dan instal paket terbaru.

Masalah ini telah diperbaiki di Android Studio 4.0 Beta 3.

Error kontrol versi Git di IDE

Operasi yang memerlukan autentikasi pada kontrol versi Git tidak berfungsi di IDE untuk Android Studio 4.0 Beta 1.

Untuk memperbaiki masalah ini, upgrade ke Android Studio 4.0 Beta 2 atau yang lebih tinggi.

Tombol toolbar Run, Debug, dan Profile tidak ada

Jika Anda menyesuaikan grup Run/Debug tombol tindakan—misalnya, dengan mengubah opsi pada Appearance & Behavior > Menus and Toolbars di jendela Settings atau Preferences—tombol tindakan itu mungkin akan hilang dari toolbar setelah Anda memulai ulang IDE. Ini adalah masalah yang umum terjadi pada versi IntelliJ tempat Android Studio 4.0 di-build (lihat masalah IDEA-228450).

Untuk mengatasi masalah ini, sesuaikan kembali tombol setelan awal seperti berikut:

  1. Pilih File > Settings (atau Android Studio > Preferences di macOS).
  2. Di sebelah kiri jendela, buka Appearance & Behavior > Menus and Toolbars.
  3. Di sebelah kanan jendela, buka Main Toolbar > Toolbar Run Actions dan pilih Run/Debug.
  4. Di dekat bagian atas jendela, klik Revert. lalu pilih Restore Run/Debug.
  5. Klik OK. Sekarang Anda akan melihat tombol yang hilang di toolbar.

Patch Tidak Tersedia untuk Canary 5

Tidak ada patch untuk Android Studio 4.0 Canary 5 yang tersedia untuk versi Android Studio 4.0 Canary yang dirilis sebelumnya. Untuk menginstal Android Studio 4.0 Canary 5, download dari halaman download Android Studio.

Profiler dan Live Layout Inspector di Canary 5

Dimulai dari Android Studio 4.0 Canary 5, Live Layout Inspector dan Profiler tidak berfungsi dengan benar pada Windows. Ini menyebabkan pesan error berikut:

    transfer error: couldn't create file: Read-only file system.
    

Untuk memperbaiki masalah ini, upgrade ke Android Studio 4.0 Canary 7 atau yang lebih tinggi.

Repositori Maven Kotlin tidak ada

Jika Anda menggunakan Android Studio 4.0 Canary 4 atau yang lebih rendah, Anda mungkin melihat pesan error berikut:

Application build has failed with an error (Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25)
    

Untuk mengatasi masalah ini, update ke Android Studio 4.0 Canary 5 atau yang lebih tinggi.

IllegalStateException saat men-deploy aplikasi dengan dependensi native

Jika aplikasi Anda menyertakan dependensi native dan memiliki androidParallelJsonGen=true (default), Anda akan mendapati pengecualian IllegalStateException saat men-deploy aplikasi dari Android Studio. Untuk mengatasi masalah ini, tetapkan android.enableParallelJsonGen=false dalam file gradle.properties project Anda. Lihat Masalah 149575364 untuk detail selengkapnya.

Masalah yang mencakup dependensi native

Plugin Android Gradle saat ini ditetapkan secara default ke Prefab versi lama dengan beberapa masalah umum:

  • Jalur ke library tidak diarahkan dengan benar di Windows.
  • Plugin CMake mengekspor library statis secara tidak benar.
  • Kombinasi STL yang valid mungkin ditolak secara tidak benar.

Prefab versi terbaru memiliki perbaikan untuk berbagai masalah ini. Untuk menggunakan Prefab versi terbaru, tetapkan android.prefabVersion ke 1.0.0-alpha6 atau yang lebih tinggi dalam file gradle.properties project Anda.