[go: up one dir, main page]

[AD BLOG] Masa depan Android Kotlin Extensions

Masa depan Android Kotlin Extensions

Plugin Gradle Android Kotlin Extensions (jangan disamakan dengan Android KTX) dirilis pada tahun 2017 dan menghadirkan dua kemudahan baru untuk pengembangan Android di Kotlin:

  • Synthetic memungkinkan Anda mengganti panggilan ke findViewById dengan binding android.synthetic.
  • Parcelize memungkinkan Anda menghapus boilerplate dan dengan mudah membuat Parcelables melalui anotasi @Parcelize.

Sejak saat itu, kami telah merilis View Binding for Android, library dengan dukungan resmi yang memiliki integrasi mendalam dengan toolchain build Android dan menyediakan fungsi yang serupa dengan synthetic Kotlin. Meskipun kami terus merekomendasikan Parcelize, sejumlah kelemahan muncul saat menggunakan synthetic Kotlin:

  • Mereka mencemari namespace global
  • Mereka tidak mengekspos informasi nullability
  • Mereka hanya bekerja dalam kode Kotlin

JetBrains awalnya mengembangkan plugin Android Kotlin Extensions, dan kami semua telah membahas kelebihan dan kekurangan dari terus mempertahankan synthetic: kami berusaha keras untuk menjamin dukungan jangka panjang untuk API, tetapi kami juga ingin membimbing developer menuju praktik terbaik yang membuat basis kode yang baik, pada akhirnya, pengguna yang senang.

Tahun depan, tim kami akan bersama-sama menghentikan penggunaan synthetic untuk terus mendukung opsi yang kami rekomendasikan, View Binding. Inilah artinya:

  • Jika Anda menggunakan Parcelize, Anda bisa terus menggunakan anotasi dan API yang sama. Namun, paket anotasi akan berubah menjadi parcelize, dan dalam file Gradle tingkat modul, Anda harus mulai menggunakan plugin kotlin-parcelize mandiri, bukan android-kotlin-extensions. Anda dapat menemukan dokumentasi Parcelize di situs dokumentasi developer Android.
  • Anda harus bermigrasi ke View Binding jika menggunakan synthetic Android Kotlin. Lihat panduan migrasi kami untuk lebih jelasnya.

Periode penghentian dimulai dengan Kotlin 1.4.20, yang dirilis hari ini. android-kotlin-extensions akan terus ada setidaknya selama satu tahun, tetapi akan dihapus pada rilis Kotlin mendatang selama atau setelah September 2021. Untuk jangka panjang, kami akan terus mempertahankan plugin kotlin-parcelize, dan Anda bisa terus melaporkan masalah Parcelize di issue tracker Android Studio.

Sejak mengumumkan dukungan Kotlin pada tahun 2017, kami mendapatkan banyak pertanyaan tentang Kotlin di Android: Anda ingin tahu apakah sudah waktunya mempelajari Kotlin, menghadirkannya ke aplikasi Anda, kursus atau tutorial apa yang terbaik untuk mempelajarinya, apakah Google secara internal menggunakan Kotlin dan rencana kami untuk bahasa pemrograman Java. Dalam postingan kali ini, saya akan menjawab beberapa pertanyaan berikut.

Pertanyaan: Haruskah saya mempelajari Kotlin untuk Android?

Pertanyaan serupa yang paling sering kami terima adalah:

  • “Apa yang harus saya pelajari untuk pemula, Kotlin atau bahasa pemrograman Java?”
  • ​”Saya telah menyelesaikan dasar-dasar bahasa pemrograman Java, apakah sekarang waktu yang tepat bagi saya beralih ke Kotlin untuk pengembangan Android?”
  • “Untuk developer Java lama yang ingin mempelajari pengembangan Android, apakah Anda merekomendasikan untuk langsung mempelajari Kotlin atau mempelajari Java terlebih dahulu?”

Jawaban singkat:

Ya! Mulailah pelajari dan gunakan Kotlin!

Jawaban panjang:

Kotlin & Android

Pada tahun 2017, kami mengumumkan dukungan Kotlin di Google I/O. Saat itulah kami mulai membuat langkah pertama untuk memastikan bahwa API, dokumen, dan contoh kami ramah-Kotlin. Pada tahun 2019, Android mulai mengutamakan Kotlin, jadi kami lebih mengandalkan fitur Kotlin. Sebagai contoh, Coroutine menjadi solusi yang kami rekomendasikan untuk menjalankan pekerjaan asinkron. Inilah hal lain yang telah kami lakukan:

Library yang mengutamakan Kotlin

Kami mulai dengan menambahkan dukungan kelas satu untuk Coroutine Kotlin ke beberapa Android Jetpack API kami, seperti Room, LiveData, ViewModel, dan WorkManager, hal ini mengubah cara kami melakukan operasi asinkron di Android. Firebase Android SDK dan banyak library Jetpack memiliki library ekstensi Kotlin (KTX) agar penggunaannya lebih lancar dengan Kotlin.

Sekarang, banyak library kami yang mengutamakan Kotlin, seperti Paging 3.0 dan DataStore. Jetpack Compose, toolkit UI deklaratif terpisah kami yang baru, ditulis dari awal dengan Kotlin.

Peralatan

Produktivitas pengembangan berawal dari peralatan yang tepat. Karena itu, kami telah melakukan banyak peningkatan untuk Kotlin pada toolchain kompilasi, termasuk penyempurnaan compiler JVM Kotlin, pengoptimalan R8 khusus Kotlin, bahkan mengembangkan alat baru seperti Kotlin Symbol Processing. Kami telah menambahkan template Android Kotlin Live bawaan, sehingga Anda bisa menggunakan cara pintas untuk menambahkan konstruksi Android umum ke aplikasi Kotlin. Pada saat yang sama, pemeriksaan Lint khusus Kotlin membantu Anda membuat kode Kotlin lebih idiomatis. Ini sangat berguna saat Anda beralih dari bahasa pemrograman Java ke Kotlin.

Pertanyaan: Apakah secara internal Google menggunakan Kotlin?

Kami juga melipatgandakan Kotlin di Google. Lebih dari 60 aplikasi kami (seperti Google Home, Drive, Maps, dan lainnya) telah menambahkan Kotlin ke codebase aplikasi. Codebase internal besar kami menghitung lebih dari dua juta baris kode Kotlin.

Pertanyaan: Haruskah saya melakukan migrasi aplikasi ke Kotlin?

Kami sering mendapatkan pertanyaan ini, tetapi jawabannya tergantung Anda. Jika Anda sudah senang dengan codebase dan tech stack saat ini, pintar mencari solusi untuk mengelola tugas asinkron, dan memiliki cara yang efisien untuk menangkap kesalahan, migrasi mungkin bukan solusi untuk Anda

Jika Anda menyukai apa yang telah Anda lihat dengan Kotlin baik dengan mencobanya maupun mempelajari bahasanya melalui beberapa kursus yang disebutkan di bawah, dan Anda juga ingin memanfaatkan Jetpack API terbaru, maka Anda harus mempertimbangkan untuk menambahkan Kotlin ke aplikasi. Salah satu keuntungan Kotlin adalah interop yang sangat bagus dengan bahasa pemrograman Java. Anda bisa mengambil langkah kecil secara bertahap dalam mengadopsinya — mungkin terlebih dahulu mencobanya di pengujian, lalu mencoba beberapa fitur baru, kemudian Anda dapat mencoba konversi beberapa kode lama saat menyentuhnya.

Untuk membuat langkah pertama Anda dalam migrasi ke Kotlin idiomatis, lihat Mengonversi ke codelab Kotlin.

Pertanyaan: Bagaimana dengan bahasa pemrograman Java di Android?

Kami menambahkan dukungan Kotlin selain Java karena keduanya dikompilasi ke bytecode yang sama dan bisa berdampingan satu sama lain. Kami menyukai Kotlin karena ekspresif dan lebih aman saat menulis kode. Kami juga terus mempertahankan dan mengembangkan dukungan Java. Misalnya, di Android 11, kami menambahkan dukungan untuk sejumlah API dari rilis OpenJDK terbaru hingga versi 13 dan Android Studio bahkan mengizinkan Anda menggunakan beberapa API ini di semua perangkat Android, apa pun versi OS-nya. Baca selengkapnya tentang dukungan untuk API bahasa terbaru di sini.

Pertanyaan: Apa cara terbaik untuk mempelajari Kotlin?

Mengadopsi bahasa baru bukanlah tugas yang mudah, tetapi kami berusaha membuatnya semudah mungkin:

  • Mulailah dengan kursus pelatihan — kursus ini mewadahi developer dari semua tingkatan, dari pemula hingga profesional, yang akan membantu Anda meningkatkan keterampilan Kotlin di Android, dari Dasar-dasar Android di Kotlin, kursus online baru untuk orang-orang yang tidak memiliki pengalaman pemrograman, hingga tutorial lanjutan yang mengajarkan Anda cara menggunakan Coroutine.
  • Semua halaman dokumentasi kami berisi cuplikan kode Kotlin, sehingga Anda bisa dengan mudah membandingkan cara kerja API dalam kedua bahasa tersebut, dan semua contoh memiliki versi Kotlin.
  • Lihat artikel dan video kami yang mengajarkan Anda tentang berbagai topik Kotlin.
  • Baca panduan untuk developer dan tim yang ingin beralih ke Kotlin di halaman developers.android.com/kotlin kami.

Sejak secara resmi menambahkan dukungan untuk Kotlin 3 tahun lalu, kami semakin meningkatkan dukungan untuk bahasa dan ekosistem yang luar biasa ini. Bersama JetBrains, kami telah membangun fondasi bagi Kotlin untuk memastikan bahasanya berkembang dengan baik, misalnya melalui proses yang cermat untuk memeriksa perubahan yang dapat menyebabkan gangguan. Kontribusi kami lebih dari itu: Google memiliki tim engineer yang berkontribusi untuk compiler Kotlin sebagai pekerjaan tetap mereka, Jetpack API yang kami bangun tidak hanya mendukung Kotlin tetapi juga mengutamakan Kotlin, dan kami berkomitmen untuk memberikan pengalaman Kotlin yang mulus di Android.

Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.



Now in Android #29

Ilustrasi oleh Virginia Poltrack

App Bundle, rilis stabil AndroidX, artikel serta video Kotlin, dan episode podcast ADB terbaru

Selamat datang di Now in Android, panduan berkelanjutan Anda tentang apa yang baru dan penting dalam dunia development Android.

MAD Skills: App Bundle

Seri MAD Skills terus berlanjut, dengan konten teknis tentang development Android modern. Wojtek KaliciƄski dan Ben Weiss telah memposting beberapa episode pada seri kedua di App Bundle. Sejauh ini, kami telah melihat konten Play App Signing, Building your First App Bundle, dan Play Feature Delivery. Lihat video dan artikel di bawah ini untuk mengetahui selengkapnya.

Episode 1: Semua yang perlu diketahui tentang Play App Signing

Dalam seri tentang Android App Bundle, kita sering membicarakan tentang penandatanganan aplikasi, karena Play menghasilkan APK untuk didownload ke perangkat pengguna, dan APK tersebut harus ditandatangani agar bisa diinstal. Video ini akan memperlihatkan kepada Anda cara mengaktifkan penandatanganan aplikasi di Konsol Play, termasuk opsi untuk meminta Google membuat kunci atau meng-upload kunci Anda sendiri.

Pastikan membaca artikel terkait dari Wojtek mengenai pertanyaan umum tentang Play App Signing:

Jawaban atas pertanyaan umum tentang App Signing dari Google Play

Episode 2: Membangun bundel aplikasi pertama Anda

Video dari Ben akan membimbing Anda melalui langkah-langkah pembuatan App Bundle, Anda bisa melakukannya di Android Studio atau baris perintah, dilanjutkan dengan meng-upload-nya ke Konsol Play. Ia juga menunjukkan cara menggunakan alat di Konsol Play untuk menggali informasi tentang paket yang di-upload.

Episode 3: Mengonfigurasi Aplikasi Anda untuk Play Feature Delivery

Episode ini menunjukkan kepada Anda cara menggunakan Android Studio untuk memodularisasi aplikasi, dan cara memilih modul yang akan didownload pada waktu penginstalan (dengan kondisi opsional yang menentukan apakah akan diinstal atau tidak) atau sesuai permintaan. Ben juga menjelaskan secara detail cara menggunakan API untuk meminta penginstalan modul sesuai permintaan.

Atau dalam bentuk artikel:

Mengonfigurasi aplikasi Anda untuk Play Feature Delivery

Episode 4: Pengujian dengan bundletool dan Play Console

Dalam episode terakhir ini, Wojtek menjelaskan cara menggunakan alat yang tersedia untuk menguji bundel Anda dan APK yang dihasilkan, termasuk bundletool untuk pengujian lokal serta Konsol Play untuk menguji upload.

Ada beberapa artikel dan dokumen yang ditautkan dari deskripsi video, pastikan memeriksanya untuk mendapatkan informasi lebih lanjut tentang topik tersebut.

Nantikan konten App Bundle final minggu depan, kami akan mengadakan sesi Tanya Jawab langsung Kamis mendatang (link YouTube live akan muncul di playlist saat sesi dimulai, dan kami akan mengirimkan pesan sebelum acara berlangsung bila Anda punya pertanyaan).

Untuk konten yang berlangsung, pastikan memeriksa playlist MAD Skills di YouTube, artikel di Medium, atau halaman pendahuluan praktis ini yang akan menunjukkan semuanya. Seri berikutnya akan dimulai minggu depan: nantikan informasi selanjutnyanya!

AndroidX

Di tengah banyaknya rilis alfa, beta, dan RC inkremental dari library AndroidX, ada beberapa versi stabil penting yang baru saja diluncurkan dan harus Anda perhatikan.

  • ConstraintLayout 2.0.4: Perubahan terpenting di sini sebenarnya adalah versi 2.0.2 (sekaligus terbaru), yang memiliki optimalisasi kinerja penting. Namun pilihlah versi terbaru untuk mendapatkan perbaikan bug lainnya.
    Peningkatan kinerja berasal dari ConstraintLayout yang jauh lebih pintar dalam menentukan kapan ia bisa menjalankan solver serta menghindari banyak pengukuran dan solver passes. Hal ini memberikan peningkatan kinerja yang signifikan dalam banyak situasi umum. Misalnya, hierarki dengan banyak tampilan GONE dan tampilan yang menggunakan match constraint (layout_[height|width]=”0dp”) bisa menjadi jauh lebih cepat dilayout.
  • Startup 1.0.0: Library startup aplikasi semula dikembangkan untuk memudahkan aplikasi menginisialisasi komponen saat startup secara lebih optimal dibandingkan bila tidak menggunakannya. Ternyata menginisialisasi satu ContentProvider membutuhkan banyak waktu, dan banyak aplikasi menginisialisasi lebih dari satu — bahkan sering kali lebih banyak dari itu. Startup memungkinkan aplikasi Anda menginisialisasi komponen tanpa membuat beberapa ContentProvider (spoiler: library membuat dan menggunakan satu cara kerja ContentProvider untuk semua permintaan), yang memungkinkan aplikasi Anda melewati sebagian besar overhead itu.
  • Tracing 1.0.0: Library ini menulis event pelacakan ke buffer pelacakan sistem. Memberi instruksi pada aplikasi Anda dengan event pelacakan bisa digunakan untuk memberikan lebih banyak informasi tentang kinerja yang nanti dapat Anda lihat dengan menggunakan alat Perfetto (atau Systrace pada perangkat lama). Lihat panduan tentang pelacakan sistem untuk detail selengkapnya tentang cara melakukannya.
    Library “baru” ini tidak menyediakan fungsi baru, tetapi menyediakan fungsionalitas dari class TraceCompat yang sudah ada dengan cara yang sangat tertarget sehingga Anda tidak perlu menarik semua androidx.core untuk fungsionalitas terbatas ini. Ada juga fungsi ekstensi KTX yang mempermudah penambahan pelacakan di sekeliling blok kode tertentu.

Artikel & Video: Kotlin, Kotlin, Kotlin, dan Kotlin

Kita tidak selalu membicarakan Kotlin, tetapi ketika kita melakukannya, kita akan banyak membicarakannya. Ada beberapa artikel dan video yang diposting tentang Kotlin baru-baru ini:

Data Berkelas

Florina Muntenescu menambahkan episode lain dalam seri Kotlin Vocabulary yang sedang berjalan, kali ini tentang class data Kotlin. Class data memungkinkan Anda membuat struktur dengan mudah untuk menyimpan data dengan kode boilerplate lebih sedikit, dan mengandalkan Kotlin untuk secara otomatis menghasilkan fungsi equals() dan hashCode() yang sesuai. Anda juga langsung mendapatkan destrukturisasi untuk properti class, bersama dengan copy(). Seperti biasa untuk episode Kotlin Vocabulary, Florina mendalami bytecode yang telah didekompilasi untuk class data guna menjelaskan cara kerjanya.

Atau dalam bentuk artikel:

Class data — cara berkelas untuk menyimpan data

Delegate Bawaan

Berbicara tentang Kotlin Vocabulary, Murat Yener memposting lanjutan dari artikel sebelumnya tentang fitur delegate Kotlin. Kali ini, ia akan membahas tentang delegate yang disediakan oleh Kotlin Standard Library: lazy, observable, vetoable, dan notNull.

Delegate Bawaan

Haruskah Saya Mempelajari Kotlin untuk Android? (dan Tanya Jawab Lainnya)

Jawaban singkatnya adalah… Ya!

Namun untuk penjelasan lebih panjang, Florina memposting artikel ini untuk menjawab beberapa pertanyaan yang sering diajukan developer tentang berinvestasi dalam pendidikan dan development Kotlin, serta link ke sumber daya pembelajaran penting.

Haruskah saya mempelajari Kotlin untuk Android dan Tanya Jawab lainnya

Error Berkurang dan Stabilitas Bertambah dengan Kotlin

Dalam artikel ini, Florina membahas beberapa alasan yang membuat aplikasi Kotlin tidak rentan error dibandingkan aplikasi yang tidak ditulis dengan Kotlin. Ia menunjukkan beberapa aplikasi dan kasus penggunaan tertentu yang mendukung pernyataan ini, tetapi juga membahas beberapa alasan mengapa bahasa ini memungkinkan kode menjadi lebih kuat, termasuk nullability, hashCode() != equals(), dan lainnya. Baca postingannya untuk mengetahui semua detailnya.

Error berkurang dan stabilitas bertambah dengan Kotlin

Episode Podcast

Ada episode lain dari Android Developers Backstage yang diposting sejak Now in Android terakhir. Lihatlah pada link di bawah ini, atau di klien podcast favorit Anda:

ADB 152: Pemuatan Gambar dengan Coil

Romain Guy, Tor Norbye, dan saya berbicara dengan Colin White dari Instacart tentang library pemuatan gambar sumber terbuka, Coil. Kami mengobrol tentang pemuatan gambar, kinerja, sumber terbuka, dan penggunaan Kotlin serta coroutine untuk membuat library yang mengutamakan Kotlin ini.

Episode 151: Pemuatan Gambar dengan Coil

Nah sekarang…

Cukup sampai di sini. Jadi, silakan pelajari App Bundle! Download rilis AndroidX terbaru! Baca artikel terbaru tentang Kotlin! Dengarkan episode podcast ADB terbaru! Dan segera kembali ke sini untuk mendapatkan update berikutnya dari dunia developer Android.



Tips dan panduan developer: Pelanggaran kebijakan umum dan cara menghindarinya

Oleh Andrew Ahn, Product Manager, Google Play App Safety

Di Google Play, kami ingin mengembangkan ekosistem aplikasi yang aman, menarik, berguna, dan menghibur yang digunakan dan disukai oleh miliaran pengguna Android di seluruh dunia. Itulah sebabnya kami secara rutin mengupdate dan merevisi Kebijakan Developer dan Perjanjian Distribusi Developer Google Play, memerinci batasan konten dan fungsi aplikasi yang diizinkan pada platform, serta memberikan panduan terbaru tentang cara developer mempromosikan dan memonetisasi aplikasi.

Pada upaya terbaru dalam menganalisis aplikasi mengenai kepatuhan kebijakan di Google Play, kami mengidentifikasi beberapa kesalahan dan pelanggaran yang sering dilakukan developer, dan kami membagikannya dengan komunitas developer dengan tips dan panduan tentang cara menghindarinya, mengurangi risiko aplikasi dan akun developer ditangguhkan karena melanggar kebijakan kami.

Link yang membawa pengguna ke aplikasi lain di Play Store

Salah satu kesalahan yang paling sering kami lihat adalah aplikasi yang memiliki tombol dan menu yang terhubung ke Play Store -- baik ke aplikasi oleh developer yang sama, atau aplikasi lain yang mungkin berafiliasi dengan developer tersebut, tetapi tidak jelas apakah ini iklan atau link promosi. Tanpa kejelasan ini, aplikasi mungkin akan dipaksa memiliki iklan yang memperdaya / mengecoh. Salah satu cara menghindari kesalahan ini adalah dengan secara eksplisit memanggilnya dengan memberi label pada tombol dan link dengan ‘Aplikasi Lainnya’, ‘Game Lainnya’, ‘Jelajahi’, ‘Lihat aplikasi kami yang lainnya’, dll.

Contoh konten aplikasi yang terhubung ke cantuman aplikasi di Play

Contoh konten aplikasi yang terhubung ke cantuman aplikasi di Play

Deskripsi aplikasi spam

Kesalahan lain yang sering kami temui adalah developer yang ‘memasukkan’ kata kunci dalam keterangan aplikasi dengan harapan menghasilkan visibilitas dan peringkat yang lebih baik terhadap kata kunci dan frasa tertentu. Blok atau daftar teks yang berisi kata kunci atau referensi berulang atau tidak terkait melanggar kebijakan Cantuman Play Store dan Promosi kami. Menulis keterangan aplikasi dengan jelas yang ditujukan dan dioptimalkan agar mudah dibaca dan dipahami pengguna adalah salah satu cara terbaik untuk menghindari pelanggaran ini.

Tonton video ini untuk mempelajari cara menghindari cantuman toko berisi spam dan upaya meningkatkan visibilitas aplikasi secara artifisial.

Aplikasi yang terbengkalai dan rusak

Ada aplikasi yang sudah lama dipublikasikan oleh developer, tetapi tidak lagi dikelola. Aplikasi yang terbengkalai dan tidak dikelola sering kali menimbulkan masalah pengalaman pengguna -- misalnya, fungsi aplikasi rusak. Aplikasi semacam itu tidak hanya berisiko mendapatkan rating bintang rendah dan ulasan negatif dari pengguna, tetapi juga akan ditandai karena melanggar kebijakan fungsi minimum. Untuk mengurangi dampak negatif terhadap reputasi developer dan pemaksaan aplikasi, sebaiknya batalkan publikasi aplikasi tersebut dari Play Store. Perhatikan bahwa tindakan pembatalan publikasi yang diupdate tidak akan memengaruhi pengguna lama yang telah menginstal aplikasi, dan developer selalu bisa memilih untuk memublikasikannya kembali setelah memperbaiki pengalaman yang rusak.

Contoh aplikasi terbengkalai yang memberikan pengalaman aplikasi rusak

Contoh aplikasi terbengkalai yang memberikan pengalaman aplikasi rusak

Ikon Play dengan topi kelulusan

Ikuti kursus ‘Minimum and Broken Functionality Spam’ di Akademi Play



Aplikasi vs. Webview

Terakhir, kami memperhatikan banyak sekali pengajuan aplikasi yang hanya merupakan webview dari situs yang ada. Sebagian besar aplikasi ini dikirimkan dengan tujuan utama untuk mengarahkan traffic, bukan memberikan pengalaman aplikasi yang menarik kepada pengguna Android. Aplikasi semacam ini dianggap sebagai spam webview, dan dihapus dari Play. Sebagai gantinya, pikirkan apa yang bisa dilakukan pengguna atau yang bisa dilakukannya lebih baik dengan menggunakan aplikasi daripada di web dan terapkan fitur serta fungsi relevan yang memperkaya pengalaman pengguna.

Contoh webview tanpa fungsi aplikasi

Contoh webview tanpa fungsi aplikasi

Ikon Play dengan topi kelulusan

Ikuti kursus ‘Webview Spam’ di Akademi Play



Meskipun hal di atas adalah salah satu kesalahan yang paling sering terjadi, pastikan selalu mengikuti kebijakan terbaru dengan mengunjungi Pusat Kebijakan Developer Play. Lihat pelatihan Kebijakan Akademi Google Play, termasuk kursus Spam baru kami, dan tonton video Play PolicyBytes kami untuk mempelajari lebih lanjut tentang update kebijakan terbaru.



Android Studio 4.1

Diposting oleh Scott Swarthout, Product Manager

Logo Android Studio

Hari ini, kami gembira bisa merilis versi stabil Android Studio 4.1, dengan rangkaian fitur yang ditujukan untuk menangani kasus penggunaan pengeditan, proses debug, dan pengoptimalan. Tema utama rilis ini adalah menjadikan Anda lebih produktif saat menggunakan library Android Jetpack, suite library Android untuk membantu developer mengikuti praktik terbaik dan menulis kode dengan lebih cepat. Berdasarkan masukan Anda, kami membuat sejumlah peningkatan pada cara pengeditan kode dengan integrasi IDE untuk library Android populer.

Beberapa sorotan Android Studio 4.1 termasuk Database Inspector baru untuk membuat kueri database aplikasi Anda, dukungan perencanaan project yang menggunakan Dagger atau Hilt untuk memasukkan dependensi, dan dukungan yang lebih baik untuk machine learning di perangkat dengan dukungan bagi model TensorFlow Lite di project Android. Kami juga telah memperbarui Apply Changes untuk mempercepat penerapan. Berdasarkan masukan Anda, kami telah melakukan beberapa perubahan untuk membantu developer game dengan alat pemrofilan mandiri dan profiler memori native yang baru.

Kualitas produk terus menjadi fokus utama tim, dan kami terus bekerja keras untuk melacak bug dan masalah performa. Kami mendengar dari banyak developer bahwa mereka menyukai fokus pada performa dan keandalan yang lebih baik, jadi dengan gembira kami laporkan bahwa selama siklus rilis ini kami telah memperbaiki 2.370 bug dan menutup 275 masalah publik. Kami tetap commit untuk menjaga kualitas tinggi karena kami tahu bahwa ini adalah kunci produktivitas developer.

Terima kasih kepada Anda semua yang telah memberikan masukan awal dalam rilis pratinjau. Masukan Anda membantu kami melakukan iterasi dan meningkatkan fitur di Android Studio 4.1. Jika Anda siap untuk rilis stabil berikutnya, dan ingin menggunakan rangkaian fitur produktivitas baru, Android Studio 4.1 siap didownload untuk Anda memulai.

Berikut adalah daftar lengkap fitur baru di Android Studio 4.1, yang disusun menurut alur developer kunci.

Design

Update Komponen Desain Material

Template Android Studio dalam dialog create New Project sekarang menggunakan Komponen Desain Material (MDC) dan secara default menyesuaikan dengan panduan terbaru tema dan gaya. Perubahan ini akan mempermudah penggunaan pola gaya material yang direkomendasikan dan mendukung fitur UI modern seperti tema gelap.

Update Komponen Desain Material

Update Komponen Desain Material di Template Project

Update meliputi:

  • MDC: Project mengandalkan com.google.android.material:material di build.gradle. Tema aplikasi dasar menggunakan induk Theme.MaterialComponents.* dan mengganti warna MDC yang diupdate serta atribut “on”.
  • Resource warna: Resource warna dalam colors.xml menggunakan nama literal (misalnya, purple_500 sebagai ganti colorPrimary).
  • Resource tema: Resource tema ada di themes.xml (sebagai ganti styles.xml) dan menggunakan nama Theme.<ApplicationName>.
  • Tema gelap: Tema aplikasi dasar menggunakan induk DayNight dan dipisahkan antara res/values dan res/values-night.
  • Atribut tema: Resource warna dirujuk sebagai atribut tema (misalnya, ?attr/colorPrimary) dalam tata letak dan gaya untuk menghindari warna hard code.

Develop

Database Inspector

Kami ingin memudahkan pemeriksaan, kueri, dan modifikasi database aplikasi Anda menggunakan Database Inspector yang baru. Untuk memulai, terapkan aplikasi Anda ke perangkat yang menjalankan API level 26 atau yang lebih tinggi dan pilih View > Tool Windows > Database Inspector dari panel menu. Walaupun aplikasi Anda menggunakan library Jetpack Room atau versi platform Android SQLite secara langsung, Anda sekarang bisa dengan mudah memeriksa database dan tabel di aplikasi yang sedang berjalan atau menjalankan kueri khusus.

Karena Android Studio mempertahankan koneksi langsung saat Anda memeriksa aplikasi, Anda juga bisa mengubah nilai menggunakan Database Inspector dan melihat perubahan tersebut di aplikasi yang sedang berjalan. Jika Anda menggunakan library persisten Room, Android Studio juga menempatkan tombol run di samping setiap kueri dalam editor kode untuk membantu menjalankan kueri yang Anda tetapkan dalam anotasi @Query dengan cepat. Pelajari lebih lanjut

Database inspector

Periksa, kueri, dan modifikasi database aplikasi Anda dengan Database Inspector

Jalankan Android Emulator secara langsung di Android Studio

Sekarang Anda bisa menjalankan Android Emulator secara langsung di Android Studio. Gunakan fitur ini untuk menghemat ruang layar, beralih antara emulator dan jendela editor dengan cepat menggunakan tombol pintas, dan mengatur alur kerja IDE dan emulator Anda dalam satu jendela aplikasi. Anda bisa mengelola snapshot dan tindakan emulator umum seperti memutar dan mengambil screenshot dari dalam Studio, tetapi akses ke rangkaian opsi lengkap tetap membutuhkan emulator stabil. Anda bisa memilih untuk menggunakan fitur ini dengan membuka File → SettingsToolsEmulator Launch in Tool Window.

Android Emulator di Android Studio

Jalankan Android Emulator di dalam Android Studio

Dukungan Navigasi Dagger

Dagger adalah library populer untuk memasukkan dependensi di Android. Android Studio memudahkan navigasi di antara kode yang terkait Dagger dengan menyediakan gutter tindakan baru dan memperluas dukungan di jendela Find Usages. Sebagai contoh, mengklik gutter tindakan go to producer gutter action di samping metode yang menggunakan tipe tertentu akan mengarahkan Anda ke penyedia tipe tersebut. Sebaliknya, mengklik gutter tindakan go to consumer gutter action akan mengarahkan Anda ke tempat yang menggunakan tipe tersebut sebagai dependensi. Android Studio juga mendukung tindakan navigasi untuk dependensi yang ditetapkan dengan library Hilt Jetpack. Pelajari lebih lanjut.

Navigasi tindakan gutter di Android Studio

Buka kode terkait Dagger dengan tindakan gutter

Gunakan model TensorFlow Lite

Developer Android menggunakan machine learning untuk menciptakan pengalaman yang inovatif dan bermanfaat. TensorFlow Lite adalah library populer untuk menulis model machine learning seluler, dan kami ingin memudahkan impor model ini ke dalam aplikasi Android. Serupa dengan binding tampilan, Android Studio menghasilkan kelas yang mudah digunakan sehingga Anda bisa menjalankan model dengan kode yang lebih sedikit dan keamanan tipe yang lebih baik. Penerapan ML Model Binding saat ini mendukung klasifikasi gambar dan model transfer gaya, asalkan mereka dilengkapi metadata.

Untuk melihat detail model yang diimpor dan mendapatkan petunjuk tentang cara menggunakannya di aplikasi, klik dua kali file model .tflite di project Anda untuk membuka halaman model viewer. Pelajari lebih lanjut.

TensorFlow Lite di Android Studio 4.1

Lihat metadata model TensorFlow Lite di Android Studio 4.1

Build & Test

Android Emulator - Dukungan Engsel Perangkat Foldable

Android Studio

Selain baru-baru ini menambahkan dukungan pengujian seluler 5G, kami telah menambahkan dukungan untuk perangkat foldable di Android emulator. Dengan Android emulator 30.0.26 ke atas, Anda bisa mengonfigurasi perangkat foldable dengan berbagai desain dan konfigurasi lipatan. Bila perangkat foldable telah dikonfigurasi, emulator akan memublikasikan update sensor sudut engsel dan perubahan postur, sehingga Anda bisa menguji cara aplikasi merespons faktor bentuk ini. Lihat entri blog Develop untuk Android 11 dengan Android Emulator untuk membaca informasi selengkapnya.

Kontrol yang diperluas, pose perangkat

Update Apply Changes

Build yang lebih cepat membantu developer membuat perubahan pada aplikasi mereka dengan lebih mudah dan cepat. Agar Anda semakin produktif saat melakukan iterasi pada aplikasi, kami telah melakukan beberapa penyempurnaan pada Apply Changes untuk perangkat yang menjalankan Android 11 atau yang lebih tinggi.

Kami telah berinvestasi besar-besaran dalam mengoptimalkan kecepatan iterasi Anda dengan mengembangkan metode untuk menerapkan dan mempertahankan perubahan pada perangkat tanpa menginstal aplikasi. Setelah penerapan awal, penerapan berikutnya ke perangkat Android 11 yang menggunakan Apply Code Changes atau Apply Changes and Restart Activity sekarang jauh lebih cepat. Kami juga menambahkan dukungan untuk perubahan kode tambahan di Apply Changes. Sekarang jika menambahkan metode, Anda bisa menerapkan perubahan tersebut ke aplikasi yang sedang berjalan dengan mengklik Apply Code Changes atau Apply Changes and Restart Activity.

Ekspor dependensi C/C++ dari AAR

Plugin Android Gradle 4.0 menambahkan kemampuan untuk mengimpor paket Prefab dalam dependensi AAR. Kami juga ingin memperluas kemampuan fitur ini untuk mendukung berbagi library native. AGP versi 4.1 memungkinkan ekspor library dari build native eksternal Anda dalam AAR untuk project Android Library. Untuk mengekspor library native Anda, tambahkan kode berikut ke blok android dari file build.gradle project library:

buildFeatures {
    prefabPublishing true
}

prefab {
    mylibrary {
      headers "src/main/cpp/mylibrary/include"
    }

    myotherlibrary {
        headers "src/main/cpp/myotherlibrary/include"
    }
}

Simbolisasi untuk laporan kerusakan pada kode native

Saat error atau ANR terjadi pada kode native, sistem menghasilkan pelacakan tumpukan, yang merupakan snapshot urutan fungsi yang dipanggil dalam program Anda hingga saat program tersebut error. Snapshot ini bisa membantu Anda mengidentifikasi dan memperbaiki masalah apa pun di sumbernya, tetapi mereka harus terlebih dahulu disimbolkan untuk menerjemahkan alamat mesin ke nama fungsi yang dapat dibaca manusia.

Jika aplikasi atau game Anda dikembangkan menggunakan kode native, seperti C++, Anda sekarang bisa mengupload file simbol debug ke Konsol Play untuk setiap versi aplikasi Anda. Konsol Play menggunakan file simbol debug ini untuk menyimbolkan pelacakan tumpukan aplikasi Anda, sehingga mempermudah analisis error dan ANR. Untuk menyertakan simbol debug dalam paket aplikasi, tambahkan baris berikut ke file build.gradle project Anda:

android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE'

Optimize

Penyempurnaan System Trace UI

Di Android Studio 4.1 kami telah merombak System Trace, alat pengoptimalan yang memberi Anda gambaran real-time tentang cara aplikasi menggunakan resource sistem. Kami mempermudah pemilihan trace dengan mode box selection, menambahkan tab analisis baru, dan menambahkan lebih banyak data rendering bingkai untuk membantu Anda menyelidiki masalah rendering di UI aplikasi. Pelajari lebih lanjut.

Pemilihan berbentuk kotak: Di bagian Threads, Anda sekarang bisa menarik mouse untuk melakukan pemilihan berbentuk kotak area persegi panjang, yang dapat Anda perbesar dengan mengklik tombol Zoom to Selection di kanan atas (atau menggunakan pintasan keyboard M). Saat Anda menarik lalu melepaskan thread serupa di samping thread lainnya, Anda bisa memilih beberapa thread untuk memeriksa semuanya sekaligus.

Gunakan pemilihan kotak agar lebih mudah memilih trace.

Pemilihan trace

Tab Summary: Tab Summary baru di tampilan panel Analysis:

  • Statistik gabungan untuk semua kemunculan peristiwa tertentu, seperti hitungan kemunculan dan durasi min/maks.
  • Statistik peristiwa trace untuk kemunculan yang dipilih.
  • Data tentang distribusi status thread.
  • Kemunculan yang paling lama berjalan dari peristiwa trace yang dipilih.
Lihat statistik gabungan di tab Summary Android Studio 4.1

Lihat statistik gabungan di tab Summary

Data tampilan: Di bagian Display, timeline baru untuk SurfaceFlinger dan VSYNC membantu Anda menyelidiki masalah rendering di UI aplikasi.

Profiler mandiri

Sekarang Anda bisa mengakses Android Studio Profiler di jendela terpisah dari jendela utama Android Studio. Ini berguna saat mengoptimalkan game Android yang dibuat dengan alat lain seperti Unity atau Visual Studio.

Untuk menjalankan profiler mandiri, lakukan langkah berikut:

  1. Pastikan profiler di Android Studio belum berjalan di sistem Anda.
  2. Masuklah ke direktori penginstalan dan buka direktori bin:

Windows/Linux: <studio-installation-folder>\bin

macOS: <studio-installation-folder>/Contents/bin

  1. Bergantung pada OS Anda, jalankan profiler.exe atau profiler.sh

Profiler mandiri memungkinkan Anda menghubungkan ke Android emulator atau perangkat apa pun yang terhubung.

Profiler mandiri Android Studio

Optimalkan aplikasi Anda dengan Profiler Mandiri Android Studio

Native Memory Profiler

Melacak penggunaan memori native sangatlah penting bagi developer game dan developer lain yang menggunakan C++ untuk memahami cara mengoptimalkan konsumsi memori aplikasi mereka. Android Studio Memory Profiler sekarang menyertakan Native Memory Profiler untuk aplikasi yang diterapkan ke perangkat fisik yang menjalankan Android 10 atau lebih baru. Native Memory Profiler melacak alokasi/dealokasi objek dalam kode native untuk jangka waktu tertentu dan memberikan informasi tentang alokasi total dan ukuran heap sistem yang tersisa.

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

Jendela Native Memory Profiler di Android Studio 4.1

Lihat alokasi memori native dengan Native Memory Profiler

Untuk rekap, Android Studio 4.1 menyertakan penyempurnaan & fitur baru ini:

Design

  • Update Komponen Desain Material

Develop

  • Database Inspector
  • Jalankan Android Emulator secara langsung di Android Studio
  • Dukungan navigasi Dagger
  • Gunakan model TensorFlow Lite

Build & Test

  • Android Emulator - Dukungan Engsel Perangkat Foldable
  • Update Apply Changes
  • Ekspor dependensi C/C++ dari AAR
  • Simbolisasi untuk laporan kerusakan kode native

Optimize

  • Penyempurnaan System Trace UI
  • Profiler mandiri
  • Native Memory Profiler

Materi ini tidak disponsori atau berafiliasi dengan Unity Technologies atau afiliasinya. “Unity” adalah merek dagang atau merek dagang terdaftar dari Unity Technologies atau afiliasinya di A.S. dan negara lainnya.