Komunitas

Now in Android #121

Waktu baca: 9 menit
Lihat profil Daniel Galpin
Daniel Galpin Developer Advocate

Selamat datang di Now in Android, panduan berkelanjutan Anda tentang hal-hal baru dan penting di dunia pengembangan Android.

Baca terus untuk mengetahui liputan tentang Android 16 QPR2 beta 1, rilis fitur Android Studio Narwhal, Jetpack Compose 1.9, Media 3 1.8, Perubahan Bentuk dan Isi Otomatis di Compose, dan banyak lagi.

Anda dapat menonton ringkasan video:

 

 

Kami juga memiliki podcast.

Namun, postingan ini memiliki informasi paling mendalam, jadi teruslah membaca.

Android 16 QPR2 Beta 1 telah hadir ✨

Versi beta pertama Android 16 QPR2 kini tersedia, rilis Android perdana dengan versi SDK minor Android. Versi SDK minor dapat menyertakan API baru yang memperluas fitur platform, tetapi tidak dapat memperkenalkan perubahan perilaku yang dibatasi targetSdkVersion, sehingga meminimalkan jumlah pengujian yang perlu Anda lakukan terhadap aplikasi.

sdk-release-graph.webp

Anda dapat memanggil API baru dengan memeriksa SDK_INT_FULL terhadap enumerasi VERSION_CODES_FULL:

if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) {
  // Call new APIs from the Android 16 QPR2 release
}

VERSION_CODES_FULL tidak dapat digunakan dalam atribut manifes uses-sdk.

Berikut beberapa update penting dari QPR2 Beta 1.

UI, Pengalaman Sistem, dan Aksesibilitas:

  • Opsi tema gelap yang diperluas secara cerdas membalikkan aplikasi terang untuk pengguna yang lebih menyukai tampilan gelap.
  • Ikon aplikasi bertema otomatis dapat dibuat oleh sistem jika aplikasi Anda tidak menyediakan lapisan monokrom.
  • Sesi pemilih interaktif membuat UI aplikasi Anda tetap aktif saat sharesheet terbuka, menggunakan ChooserManager dan ChooserSession.
  • Data Transfer API baru memungkinkan migrasi data yang lebih andal dan aman antara Android dan iOS, sehingga memerlukan update pada XML aturan ekstraksi data aplikasi Anda dan implementasi BackupAgent.
  • Paket android.graphics.pdf telah diperluas untuk mendukung anotasi dan pengeditan dokumen PDF melalui PdfRenderer.Page.
  • Nilai ViewConfiguration kini disesuaikan dengan masing-masing perangkat virtual; migrasikan ke ViewConfiguration.get(context) untuk skenario multi-tampilan.
  • Anda mendapatkan kontrol respons haptik yang lebih terperinci dengan menentukan VibrationAttributes dengan View.performHapticFeedback(HapticFeedbackRequest)
  • Kartu Setelan Cepat kini dapat ditetapkan ke kategori yang telah ditentukan dalam file AndroidManifest.xml.

Media dan Audio:

  • Dekode software untuk Immersive Audio Model and Formats (IAMF), format audio spasial terbuka.
  • Berbagi Audio Pribadi untuk perangkat Bluetooth LE Audio terintegrasi langsung ke Pengalih Output sistem.
  • Pengguna dapat mengontrol kecerahan HDR menggunakan penggeser kecerahan HDR/SDR
  • Tambahan Pemilih Foto dapat menandai album atau kueri penelusuran tertentu.

Konektivitas:

Privasi dan Keamanan:

  • Status keamanan tingkat sistem baru, Perangkat Kunci Aman, mengunci perangkat dan memerlukan autentikasi utama untuk membuka kunci.
  • Tombol yang ditampilkan kepada pengguna ditambahkan untuk Perlindungan dari Pencurian Ponsel guna mengaktifkan/menonaktifkan “Kunci Autentikasi Gagal”.

Produktivitas Developer:

  • AppWidgetManager API baru memungkinkan Anda membuat kueri untuk metrik engagement widget.
  • Aplikasi yang dapat di-debug yang diinstal melalui ADB kini akan menerima peringatan awal untuk kompatibilitas ukuran halaman 16 KB.
  • ProfilingManager menambahkan dukungan untuk pemicu pembuatan profil baru yang dimulai oleh sistem dan requestRunningSystemTrace untuk merekam rekaman aktivitas latar belakang.
  • Tombol “Logging cetak panjang” di Opsi developer memberikan informasi proses debug tambahan untuk Framework Cetak Android.
  • Pengujian yang lebih andal untuk pengalaman desktop dan multi-layar diaktifkan dengan API UiAutomation baru untuk screenshot di layar non-default dan AccessibilityWindowInfo.refresh publik.
  • Dukungan API ditambahkan untuk library androidx.core:core-backported-fixes baru.
  • Aplikasi GUI kini didukung di Terminal Linux
  • WindowInspector.addGlobalWindowViewsListener mendukung notifikasi perubahan tampilan root real-time.

Anda dapat mendaftarkan perangkat Pixel yang didukung untuk menerima update Beta over the air atau menggunakan image sistem 64-bit dengan Android Emulator di Android Studio. Stabilitas Platform ditargetkan untuk Oktober 2025.

Update Fitur Baru Android Studio Narwhal sudah stabil — mulai gunakan Mode Agen 🐳

narwhal.webp

Update Fitur Baru Narwhal Android Studio kini stabil, fitur dan peningkatan baru mencakup:

  • Gemini di Android Studio: Agent Mode tersedia untuk tugas coding multi-tahap
  • Aturan Pustaka Perintah menyesuaikan output AI Gemini untuk kebutuhan project Anda.
  • Transform UI with Gemini menggunakan UI bahasa alami untuk melakukan iterasi pada Compose UI.
  • Dukungan pengembangan imersif dengan Android Emulator XR tersemat, template XR baru, dan Layout Inspector tersemat untuk XR
  • Akses perangkat yang diperluas melalui Lab Perangkat Partner Android di Streaming Perangkat Android.
  • Pratinjau Compose yang lebih baik dengan Navigasi kode yang ditingkatkan dan Pemilih pratinjau Compose baru
  • Compiler Kotlin K2 diaktifkan secara default untuk performa build yang lebih cepat
  • Alat ukuran halaman 16 KB dengan peringatan lint, analisis, dan emulator untuk membantu Anda mempersiapkan perangkat ukuran halaman 16 KB mendatang.

Streaming Perangkat Android, yang didukung oleh Firebase

device-streaming.webp

Android Device Streaming, yang didukung oleh Firebase, telah memperkenalkan dukungan stabil untuk Lab Perangkat Partner Android, sehingga Anda dapat terhubung dari jarak jauh ke perangkat Android fisik yang dihosting oleh partner OEM, termasuk Samsung, Xiaomi, OPPO, OnePlus, dan vivo.

Mempercepat pengembangan dengan rilis bulanan untuk Android Studio — merilis 2X lebih sering daripada sebelumnya

accelarating-releases.webp

Android Studio beralih ke ritme rilis stabil bulanan untuk mempercepat penyediaan fitur baru dan perbaikan bug penting bagi Anda. Meskipun Android Studio IDE akan diupdate setiap bulan, versi platform IntelliJ baru akan diperkenalkan setiap beberapa bulan, dengan Update Fitur yang mengisi rilis stabil sementara. Android Emulator dan Plugin Android Gradle akan terus diupdate secara terpisah setiap dua bulan. Jadwal rilis yang dipercepat ini didukung oleh investasi jangka panjang dalam infrastruktur pengujian.

Yang baru dalam rilis Jetpack Compose Agustus ’25 🚀

jetpack-compose.webp

Rilis Jetpack Compose Agustus ’25 (versi 1.9) kini sudah stabil. Rilis ini memperkenalkan Modifier.dropShadow dan Modifier.innerShadow untuk merender efek box-shadow. Pengubah onVisibilityChanged dan onFirstVisible baru memungkinkan Anda melacak visibilitas elemen untuk update UI atau logging tayangan. Anda dapat menerapkan gaya yang beragam dalam OutputTransformation menggunakan TextFieldBuffer.addStyle untuk transformasi teks.

Elemen penyusun LazyLayout kini stabil, dan Anda dapat menentukan LazyLayoutCacheWindow untuk meningkatkan performa Lazy List dan Grid dengan pengambilan data yang ditingkatkan. Scrollable2D memungkinkan scroll dua dimensi, termasuk scroll cepat dan scroll bertingkat, dengan berbagai peningkatan untuk interop scroll dan scroll bertingkat dengan View. API keikutsertaan (Composer.setDiagnosticStackTraceEnabled) memberikan detail lokasi error yang lebih lengkap dalam stack trace, yang direkomendasikan hanya untuk build debug. Anotasi @RememberInComposition dan @FrequentlyChangingValue baru, beserta pemeriksaan Lint terkait, tersedia di library anotasi runtime baru. Menu konteks dapat disesuaikan menggunakan Modifier.appendTextContextMenuComponents dan Modifier.filterTextContextMenuComponents. Plugin Android Gradle (AGP) / Lint versi 8.8.2 atau yang lebih tinggi kini diperlukan.

Media3 1.8.0 — Apa yang baru? 🚀

media3.webp

Media3 1.8.0 kini tersedia, memperkenalkan beberapa fitur dan peningkatan baru. ExoPlayer mendapatkan mode scrubbing untuk pencarian yang sering dilakukan dan didorong oleh pengguna, yang dapat Anda aktifkan melalui ExoPlayer.setScrubbingModeEnabled. HlsInterstitialsAdsLoader kini mendukung live stream untuk penyisipan iklan yang dipandu server.

MetadataRetriever telah diperbarui agar Anda dapat mengambil durasi item media tanpa pemutaran. Untuk Transformer, rilis ini memperkenalkan operasi pemangkasan yang lebih cepat menggunakan daftar edit MP4 dengan experimentalSetMp4EditListTrimEnabled dan pengoptimalan encoder khusus chipset melalui CodecDbLite, yang diaktifkan dengan memanggil setEnableCodecDbLite di DefaultEncoderFactory.Builder.

Update tambahan mencakup dukungan download parsial di Downloader dengan PreCacheHelper, pemilihan rute audio XR otomatis di ExoPlayer, dan interaksi MediaCodec yang lebih efisien. Modul MediaSession kini membuat notifikasi tetap terlihat lebih lama secara default, dan aplikasi demo sesi media menampilkan fungsi pelanjutan pemutaran. Aplikasi demo Composition baru, yang dibuat dengan Kotlin dan Compose, menunjukkan pengeditan video multi-aset tingkat lanjut.

Artikel 📚

#WeArePlay: Temui orang-orang yang membuat kode untuk dunia yang lebih berkelanjutan

weareplay.webp

Inisiatif #WeArePlay menyoroti aplikasi dan game Android yang mengatasi tantangan lingkungan. Game BoRa — Iguaçu National Park, yang dikembangkan oleh Mayla, Flávia, Andréia, dan Ariane, memberikan pengalaman interaktif yang di-gamifikasi dan mudah diakses untuk pendidikan alam selama kunjungan ke taman. Aplikasi Louis dan Justin, CyberTracker, memungkinkan pelacak adat yang buta huruf untuk mencatat data keanekaragaman hayati melalui antarmuka berbasis ikon, sehingga mendukung upaya konservasi. Terakhir, Earth5R, yang didirikan bersama oleh Bharati dan Saurabh, menawarkan pendidikan lingkungan dan menghubungkan pengguna dengan program magang dan project untuk mengembangkan keterampilan ekonomi hijau.

Apa yang dimaksud dengan HDR? 🌟

hdr.webp

Rentang Dinamis Tinggi (HDR) memungkinkan peningkatan kecerahan maksimum di luar Rentang Dinamis Standar (SDR) bagi developer Android, sehingga menawarkan fidelitas visual yang lebih baik. Android mendukung HDR untuk video dan gambar, termasuk teknologi seperti UltraHDR untuk kompatibilitas mundur.

Memahami warna melibatkan tiga komponen:

  • Kedalaman bit: Menentukan presisi representasi warna, dengan kedalaman yang lebih tinggi menawarkan transisi yang lebih halus.
  • Fungsi transfer: Memetakan nilai piksel numerik ke luminans atau warna yang ditampilkan, menyesuaikan respons visual manusia non-linear. Contohnya mencakup sRGB, HLG, dan PQ.
  • Gamut warna: Mewakili rentang warna yang dapat direproduksi oleh perangkat.

Kesalahpahaman umum tentang HDR:

  • Warna yang cerah: Gamut warna yang lebih luas seperti Display P3 dan Adobe RGB tersedia sebelum HDR, dan sebagian besar layar masih memotong ke P3, bahkan dengan konten BT.2020.
  • Kontras lebih tinggi/detail hitam lebih baik: HDR tidak secara inheren menawarkan warna hitam yang lebih gelap daripada SDR pada layar yang sama. Layar OLED memberikan kontras tanpa batas untuk keduanya. Meskipun PQ mengalokasikan lebih banyak bit ke area gelap, PQ bukanlah fitur HDR universal.
  • Kedalaman bit yang lebih tinggi: Meskipun beberapa profil video HDR (misalnya, HDR10) menggunakan streaming 10 atau 12 bit, hal ini khusus untuk profil tersebut dan tidak melekat pada HDR itu sendiri; kedalaman bit yang lebih tinggi juga umum dalam format gambar lainnya.

HDR terutama menandakan kecerahan puncak yang lebih tinggi. “Headroom HDR” ini didefinisikan sebagai region mengambang yang relatif terhadap SDR. Meskipun video HDR tradisional sering mengenkode headroom tetap, layar modern menggunakan headroom dinamis, yang dapat menyebabkan perbedaan kualitas. Teknologi seperti Ultra HDR dan peta penguatan menawarkan alternatif dengan penggunaan bit yang efisien. Toolkit UI Android menggunakan API extendedRangeBrightness untuk memberikan pengalaman HDR, bahkan dengan RGBA_8888.

Video 📹

Elemen bersama lanjutan dengan perubahan bentuk | Tips Jetpack Compose

Jetpack Compose kini memungkinkan transisi elemen bersama lanjutan, perubahan bentuk yang canggih, dan animasi pengungkapan. Developer dapat mengonfigurasi SharedTransitionLayout di tingkat teratas aplikasi dan menggunakan Modifier.sharedBounds untuk menautkan elemen.

Perubahan bentuk adalah fitur baru yang penting, yang dicapai dengan memanfaatkan library bentuk grafis AndroidX Material 3. Hal ini melibatkan pembuatan objek Morph dengan bentuk awal/akhir yang ditentukan, mendorong progresnya dengan animateFloat (dari AnimatedVisibilityScope), dan menerapkannya sebagai klip melalui OverlayClip kustom. Efek pengungkapan menggunakan skipToLookaheadSize dan skipToLookaheadPosition. Semua animasi lanjutan ini juga kompatibel dengan gestur kembali prediktif.

Gemini Multimodal di Android Studio: Pengembangan UI yang didukung AI

AI Gemini di Android Studio membantu pengembangan UI dengan membuat kode dari desain (termasuk gambar ke kode), membuat Pratinjau Compose dengan data sintetis, dan menyempurnakan UI yang ada melalui perintah langsung.

Menggunakan SDK yang Mendukung Runtime

Android 14 memperkenalkan Runtime SDK, teknologi baru yang mengisolasi SDK pihak ketiga dalam sandbox proses yang aman dan terpisah untuk meningkatkan privasi dan keamanan.

Untuk developer:

  • SDK runtime aktif (RE) dieksekusi dalam proses terpisah ini.
  • SDK berbasis runtime (RA) berfungsi sebagai perantara dalam aplikasi Anda.
  • Muat SDK RE menggunakan SdkSandboxManagerCompat, dengan mengamati batasan (misalnya, latar depan, pemuatan tunggal).
  • Alat shim menyederhanakan komunikasi antarproses tingkat rendah.
  • Merender UI dari RE SDK menggunakan SandboxedSdkView dan SandboxedUiAdapter.
  • Luncurkan aktivitas dari Runtime SDK menggunakan SdkActivityLauncher.

Perubahan bentuk Material 3 WearOS | Tips Jetpack Compose

Wear OS Material 3 untuk Compose kini menyederhanakan perubahan bentuk. Developer dapat dengan mudah menambahkan perubahan bentuk animasi ke tombol bulat dengan IconButtonDefaults.animatedShapes, membuat grup tombol yang menganimasikan perubahan lebar menggunakan komponen ButtonGroup dan Modifier.animateWidth(), serta membuat daftar scroll vertikal (TransformingLazyColumn) tempat item diskalakan dan diubah menggunakan TransformationSpec saat mendekati tepi layar.

Rilis AndroidX 🚀

Berikut ringkasan perubahan AndroidX, yang memprioritaskan perubahan yang paling relevan bagi developer aplikasi Android:

Perubahan yang Berdampak Secara Keseluruhan untuk Library Compose:

  • minSdk Default Ditingkatkan ke API 23: Untuk androidx.compose animation, foundation, material, runtime, dan ui, versi SDK minimum default telah dipindahkan dari API 21 ke API 23. Artinya, jika Anda menggunakan versi alfa terbaru dari library Compose ini, aplikasi Anda akan secara implisit memerlukan Android 6.0 (Marshmallow) atau yang lebih tinggi.

Perubahan Penting untuk Developer Compose:

  • API retain baru (Compose Runtime): Memperkenalkan API retain yang mirip dengan rememberSaveable, tetapi untuk nilai yang keluar dari hierarki komposisi tanpa diserialisasi. Fungsi ini memiliki masa aktif yang lebih singkat daripada nilai yang disimpan dan berperilaku mirip dengan ViewModel, sehingga memberikan cara baru untuk mengelola status composable yang mungkin masuk dan keluar dari komposisi.
  • Transisi Elemen Bersama yang Ditingkatkan (Animasi & UI Compose): API baru untuk mengaktifkan/menonaktifkan elemen bersama secara dinamis, memperhitungkan transisi yang sedang berlangsung, dan menetapkan batas target alternatif saat elemen bersama dihapus. Modifier.skipToLookaheadPosition baru juga tersedia untuk tata letak penautan.
  • Pengambilan data Pager yang Ditingkatkan (Compose Foundation): Strategi pengambilan data Pager kini menggunakan “Jendela Cache” (1 ukuran area tampilan), bukan satu item, dan pengambilan data di awal diaktifkan secara default. Item juga disimpan lebih lama untuk scroll yang lebih lancar.
  • Penanganan Fokus yang Disempurnakan untuk Mouse/Touchpad (Compose Foundation & UI): ComposeViews kini akan otomatis menghapus fokus saat peristiwa pointer down (dari mouse atau touchpad) terjadi di luar node yang difokuskan. Anda dapat memilih untuk tidak menggunakannya.
  • Persegi Panjang Fokus yang Dapat Disesuaikan (Compose Foundation): FocusProperties kini memungkinkan Anda menentukan area fokus kustom, bukan menggunakan kotak pembatas default, sehingga meningkatkan traversal fokus dan logika “tetap terlihat” dalam penampung yang dapat di-scroll.
  • Composable LifecycleOwner (Lifecycle): Composable baru memungkinkan pembuatan instance LifecycleOwner tercakup langsung dalam hierarki UI. Hal ini sangat berguna untuk mengelola siklus proses komponen secara independen, dan untuk library seperti Navigation.
  • Dukungan untuk Jenis Nullable di SavedStateHandle (Lifecycle & SavedState): Menyederhanakan penyimpanan dan pemulihan properti nullable dengan dukungan native di SavedStateHandle dan SavedStateRegistryOwner.
  • Baru LineHeightStyle.Mode.Tight (Compose Foundation & UI): Mode Tight baru membantu menerapkan tinggi baris yang lebih kecil, meskipun berpotensi memotong glyph yang lebih tinggi, sehingga menawarkan kontrol tata letak teks yang lebih presisi.
  • Ketuk Dua Kali untuk Memilih Kata (Compose Foundation): Menambahkan dukungan untuk ketuk dua kali guna memilih kata di SelectionContainer dan BasicTextField.
  • Perubahan Perilaku WindowInsets (Compose UI & Foundation):
    ◦ API WindowInsets.cutoutPath baru untuk mendapatkan jalur potongan layar.
    ◦ Flag isWindowInsetsDefaultPassThroughEnabled telah dihapus, sehingga WindowInsets ditetapkan secara default untuk tidak digunakan secara default, sehingga View turunan dapat menerimanya.
  • AndroidView requestRectangleOnScreen Perbaikan (Compose Foundation): Permintaan yang dibuat oleh AndroidView (misalnya, EditText yang mencoba tetap berada di layar) kini disebarkan dengan benar ke Compose.
  • Peningkatan Scroll Roda Mouse 2D (Compose Foundation & UI): Dukungan yang lebih baik untuk peristiwa scroll roda mouse 2D, dengan API pengujian baru dan flag untuk mengontrol perilaku.

Library & Utilitas Baru:

  • androidx.core:core-backported-fixes (Library Baru): Library baru ini memungkinkan developer memeriksa apakah perbaikan bug penting (misalnya, masalah tingkat platform seperti bug kamera tertentu) telah diterapkan ke perangkat. Hal ini memungkinkan penawaran pengalaman pengguna yang berbeda, bergantung pada apakah bug yang diketahui telah diselesaikan atau belum.

Perubahan Penting Lainnya:

  • Games Activity & Input: Menambahkan dukungan default untuk ukuran halaman 16 KB dan dukungan mouse untuk GameActivity.
  • Penempatan Tooltip Material3: Lebih banyak penyedia posisi untuk tooltip, sehingga memungkinkan penempatan di atas, di bawah, di kiri, atau di kanan anchor.
  • Material3 DatePicker Perbaikan: Memastikan DatePicker mematuhi lokalitasnya sendiri untuk pemformatan angka dan memperbaiki masalah tampilan RTL.
  • Dukungan display_override TWA (Browser): Menambahkan dukungan untuk properti manifes TWA display_override, yang memberikan kontrol lebih besar atas tampilan TWA.
  • Luncurkan URL Awal di Aplikasi Eksternal (Browser): Menambahkan Intent untuk mengizinkan peluncuran URL awal TWA di browser eksternal.

Android Developers Backstage

Android Developers Backstage kembali dengan episode baru.

Isi otomatis di Compose

Jetpack Compose 1.8 memperkenalkan kemampuan Isi Otomatis yang ditingkatkan secara signifikan, dengan memanfaatkan sistem semantik Compose. Developer kini dapat dengan mudah mengintegrasikan Isi Otomatis tingkat sistem hanya dengan memberi tag pada kolom teks dengan semantik jenis konten yang relevan (misalnya, nama pengguna, sandi), sehingga tidak perlu mengelola hierarki Isi Otomatis secara manual dan meningkatkan performa.

 

Sekarang… 👋

Demikian edisi kali ini, dengan cakupan Android 16 QPR2 beta 1, rilis fitur Android Studio Narwhal, Jetpack Compose 1.9, Media 3 1.8, Perubahan Bentuk dan Isi Otomatis di Compose, dan banyak lagi.

Periksa kembali nanti untuk mendapatkan info terbaru dari dunia developer Android.

Ditulis oleh:
Lanjutkan membaca