Android 14 memperkenalkan fitur dan API hebat untuk para developer. Artikel berikut membantu Anda mempelajari fitur-fitur yang tersedia untuk aplikasi Anda, serta mulai menggunakan API terkait.
Untuk mengetahui daftar mendetail tentang API yang ditambahkan, diubah, dan dihapus, baca laporan perbedaan API. Untuk mengetahui detail tentang API yang ditambahkan, buka referensi API Android — untuk Android 14, cari API yang ditambahkan dalam level API 34. Untuk mempelajari area di mana perubahan platform mungkin memengaruhi aplikasi Anda, pastikan untuk memeriksa perubahan perilaku Android 14 untuk aplikasi yang menargetkan Android 14 dan untuk semua aplikasi.
Internasionalisasi
Preferensi bahasa per aplikasi
Android 14 memperluas fitur bahasa per aplikasi yang diperkenalkan di Android 13 (API level 33) dengan kemampuan tambahan berikut:
Otomatis membuat
localeConfig
aplikasi: Mulai dari Android Studio Giraffe Canary 7 dan AGP 8.1.0-alpha07, Anda dapat mengonfigurasi aplikasi untuk mendukung preferensi bahasa per aplikasi secara otomatis. Berdasarkan resource project, plugin Android Gradle menghasilkan fileLocaleConfig
dan menambahkan referensi ke file tersebut dalam file manifes akhir, sehingga Anda tidak perlu lagi membuat atau memperbarui file secara manual. AGP menggunakan resource dalam folderres
modul aplikasi Anda dan dependensi modul library apa pun untuk menentukan lokalitas yang akan disertakan dalam fileLocaleConfig
.Update dinamis untuk
localeConfig
aplikasi: Gunakan metodesetOverrideLocaleConfig()
dangetOverrideLocaleConfig()
diLocaleManager
untuk memperbarui secara dinamis daftar bahasa yang didukung aplikasi Anda di setelan sistem perangkat. Gunakan fleksibilitas ini untuk menyesuaikan daftar bahasa yang didukung per region, menjalankan eksperimen A/B, atau memberikan daftar lokalitas yang diupdate jika aplikasi Anda menggunakan push sisi server untuk pelokalan.Visibilitas bahasa aplikasi untuk editor metode input (IME): IME dapat menggunakan metode
getApplicationLocales()
untuk memeriksa bahasa aplikasi saat ini dan mencocokkan bahasa IME dengan bahasa tersebut.
Grammatical Inflection API
Tiga miliar orang menggunakan bahasa bergender: bahasa yang kategori gramatikalnya—seperti kata benda, kata kerja, kata sifat, dan preposisi—diterapkan dengan gender orang dan objek yang Anda ajak bicara atau Anda bicarakan. Secara tradisional, banyak bahasa bergender menggunakan gender gramatikal maskulin sebagai gender default atau generik.
Menjangkau pengguna dalam gender gramatikal yang salah, seperti menyapa perempuan dengan gender gramatikal yang maskulin, dapat memberi dampak negatif pada performa dan sikap mereka. Sebaliknya, UI dengan bahasa yang mencerminkan gender gramatikal pengguna dengan benar dapat meningkatkan interaksi pengguna dan memberikan pengalaman pengguna yang lebih personal dan terdengar alami.
Guna membantu Anda mem-build UI yang berorientasi pengguna untuk bahasa-bahasa bergender, Android 14 memperkenalkan Grammatical Inflection API, yang memungkinkan Anda menambahkan dukungan untuk gender gramatikal tanpa perlu memfaktorkan ulang aplikasi.
Preferensi regional
Preferensi regional memungkinkan pengguna mempersonalisasi satuan suhu, hari pertama dalam seminggu, dan sistem penomoran. Orang Eropa yang tinggal di Amerika Serikat mungkin lebih memilih satuan suhu dalam Celsius, bukan Fahrenheit, dan menginginkan aplikasi memperlakukan Senin sebagai awal minggu, bukan default Minggu seperti di Amerika.
Menu Setelan Android yang baru untuk preferensi ini memberi pengguna
lokasi yang dapat ditemukan dan terpusat untuk mengubah preferensi aplikasi. Preferensi
ini juga tetap ada melalui pencadangan dan pemulihan. Beberapa API dan
intent—seperti
getTemperatureUnit
dan
getFirstDayOfWeek
—
memberikan pembacaan aplikasi Anda akses ke preferensi pengguna, sehingga aplikasi dapat menyesuaikan cara
menampilkan informasi. Anda juga dapat mendaftarkan
BroadcastReceiver
di
ACTION_LOCALE_CHANGED
untuk menangani perubahan konfigurasi lokalitas saat preferensi regional berubah.
Untuk menemukan setelan ini, buka aplikasi Settings, lalu buka System > Languages & input > Regional preferences.
![](https://developer.android.com/static/about/versions/14/images/regional-preferences.png?authuser=9&hl=id)
![](https://developer.android.com/static/about/versions/14/images/regional-preferences-temperature.png?authuser=9&hl=id)
Aksesibilitas
Penskalaan font non-linear ke 200%
Mulai Android 14, sistem mendukung penskalaan font hingga 200%, yang memberikan opsi aksesibilitas tambahan kepada pengguna yang mengalami gangguan penglihatan, sesuai dengan Panduan Aksesibilitas Konten Web (WCAG).
Agar elemen teks besar di layar tidak diskalakan terlalu besar, sistem akan menerapkan kurva penskalaan nonlinear. Strategi penskalaan ini berarti teks besar tidak diskalakan pada kecepatan yang sama dengan teks yang lebih kecil. Penskalaan font nonlinear membantu mempertahankan hierarki proporsional antara elemen dengan ukuran yang berbeda sekaligus memitigasi masalah dengan penskalaan teks linear pada derajat yang tinggi (seperti teks terpotong atau teks yang menjadi lebih sulit dibaca karena ukuran layar yang sangat besar).
Menguji aplikasi dengan penskalaan font nonlinear
![](https://developer.android.com/static/images/about/versions/14/accessibility-font-options.png?authuser=9&hl=id)
Jika Anda sudah menggunakan unit piksel yang diskalakan (sp) untuk menentukan ukuran teks, opsi tambahan dan peningkatan penskalaan ini akan otomatis diterapkan pada teks di aplikasi Anda. Namun, Anda tetap harus melakukan pengujian UI dengan ukuran font maksimum yang diaktifkan (200%) untuk memastikan aplikasi Anda menerapkan ukuran font dengan benar dan dapat mengakomodasi ukuran font yang lebih besar tanpa memengaruhi kegunaan.
Untuk mengaktifkan ukuran font 200%, ikuti langkah-langkah berikut:
- Buka aplikasi Settings dan buka Accessibility > Display size and text.
- Untuk opsi Font size, ketuk ikon plus (+) hingga setelan ukuran font maksimum diaktifkan, seperti yang ditunjukkan dalam gambar yang menyertai bagian ini.
Menggunakan satuan piksel yang diskalakan (sp) untuk ukuran teks
Ingatlah untuk selalu menentukan ukuran teks dalam unit sp. Saat aplikasi Anda menggunakan unit sp, Android dapat menerapkan ukuran teks pilihan pengguna dan menskalakannya dengan tepat.
Jangan menggunakan unit sp untuk padding atau menentukan tinggi tampilan dengan asumsi padding implisit: dengan penskalaan font nonlinear, dimensi sp mungkin tidak proporsional, sehingga 4sp + 20sp mungkin tidak sama dengan 24sp.
Mengonversi satuan piksel yang diskalakan (sp)
Gunakan TypedValue.applyDimension()
untuk mengonversi dari unit sp
ke piksel, dan gunakan TypedValue.deriveDimension()
untuk
mengonversi piksel ke sp. Metode ini menerapkan kurva penskalaan
nonlinear yang sesuai secara otomatis.
Hindari persamaan hardcode menggunakan
Configuration.fontScale
atau
DisplayMetrics.scaledDensity
. Karena penskalaan font bersifat
nonlinear, kolom scaledDensity
tidak lagi akurat. Kolom fontScale
harus digunakan untuk tujuan informasi hanya karena font tidak lagi
diskalakan dengan nilai skalar tunggal.
Menggunakan satuan sp untuk lineHeight
Selalu tentukan android:lineHeight
menggunakan satuan sp, bukan
dp, sehingga tinggi baris diskalakan bersama dengan teks Anda. Atau, jika teks Anda
adalah sp, tetapi lineHeight
dalam dp atau px, teks tidak akan diskalakan dan tampak sempit.
TextView otomatis mengoreksi lineHeight
sehingga proporsi
yang Anda inginkan dipertahankan, tetapi hanya jika textSize
dan lineHeight
ditentukan dalam unit sp.
Kamera dan media
Ultra HDR untuk gambar
![](https://developer.android.com/static/images/about/versions/14/SDR-HDR-compare.png?authuser=9&hl=id)
Android 14 menambahkan dukungan untuk gambar Rentang Dinamis Tinggi (HDR) yang mempertahankan lebih banyak informasi dari sensor saat mengambil foto, yang memungkinkan warna cerah dan kontras yang lebih besar. Android menggunakan format Ultra HDR, yang sepenuhnya kompatibel dengan gambar JPEG, sehingga aplikasi dapat beroperasi dengan gambar HDR secara lancar, yang menampilkannya dalam Standard Dynamic Range (SDR) sesuai kebutuhan.
Rendering gambar ini di UI dalam HDR dilakukan secara otomatis oleh framework
saat aplikasi memilih menggunakan UI HDR untuk Jendela Aktivitasnya, baik melalui entri manifes maupun saat runtime dengan memanggil
Window.setColorMode()
. Anda juga dapat mengambil gambar diam Ultra
HDR yang dikompresi di perangkat yang didukung. Dengan lebih banyak warna yang dipulihkan
dari sensor, pengeditan di postingan dapat menjadi lebih fleksibel. Gainmap
yang terkait dengan gambar Ultra HDR dapat digunakan untuk merendernya
menggunakan OpenGL atau Vulkan.
Ekstensi Zoom, Fokus, Postview, dan lainnya di ekstensi kamera
Android 14 mengupgrade dan meningkatkan ekstensi kamera, sehingga aplikasi dapat menangani waktu pemrosesan yang lebih lama, yang memungkinkan peningkatan kualitas gambar menggunakan algoritma komputasi yang intensif seperti fotografi dalam kondisi cahaya redup pada perangkat yang didukung. Fitur-fitur ini memberikan pengalaman yang lebih andal kepada pengguna saat menggunakan kemampuan ekstensi kamera. Contoh peningkatan ini mencakup:
- Estimasi latensi pemrosesan yang masih dinamis memberikan estimasi latensi perekaman yang jauh lebih akurat berdasarkan kondisi lingkungan dan scene saat ini. Panggil
CameraExtensionSession.getRealtimeStillCaptureLatency()
untuk mendapatkan objekStillCaptureLatency
yang memiliki dua metode estimasi latensi. MetodegetCaptureLatency()
menampilkan perkiraan latensi antaraonCaptureStarted
danonCaptureProcessStarted()
, sedangkan metodegetProcessingLatency()
menampilkan perkiraan latensi antaraonCaptureProcessStarted()
dan frame yang diproses akhir yang tersedia. - Dukungan untuk callback progres perekaman sehingga aplikasi dapat menampilkan progres
saat ini dari operasi pemrosesan perekaman yang berjalan lama dan masih berlangsung. Anda dapat memeriksa
apakah fitur ini tersedia dengan
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
, dan jika tersedia, Anda akan menerapkan callbackonCaptureProcessProgressed()
, yang memiliki progres (dari 0 hingga 100) yang diteruskan sebagai parameter. Metadata khusus ekstensi, seperti
CaptureRequest.EXTENSION_STRENGTH
untuk memanggil jumlah efek ekstensi, seperti jumlah blur latar belakang denganEXTENSION_BOKEH
.Fitur Pasca-tampilan untuk gambar diam di ekstensi kamera, yang memberikan gambar yang tidak diproses lebih cepat daripada gambar akhir. Jika ekstensi meningkatkan latensi pemrosesan, gambar pasca-tampilan dapat diberikan sebagai placeholder untuk meningkatkan UX, dan nanti diganti untuk gambar akhir. Anda dapat memeriksa apakah fitur ini tersedia dengan
CameraExtensionCharacteristics.isPostviewAvailable
. Selanjutnya, Anda dapat meneruskanOutputConfiguration
keExtensionSessionConfiguration.setPostviewOutputConfiguration
.Dukungan untuk
SurfaceView
yang memungkinkan jalur render pratinjau yang lebih dioptimalkan dan hemat daya.Dukungan untuk ketukan untuk memfokuskan dan melakukan zoom selama penggunaan ekstensi.
Zoom dalam sensor
Jika REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
di
CameraCharacteristics
berisi
SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
, aplikasi Anda
dapat menggunakan kemampuan sensor lanjutan untuk memberikan piksel yang sama
dengan ruang pandang penuh pada streaming RAW yang di-crop menggunakan CaptureRequest
dengan target RAW yang kasus penggunaan streaming-nya ditetapkan ke
CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
.
Dengan menerapkan kontrol penggantian permintaan, kamera yang diperbarui memberi pengguna
kontrol zoom bahkan sebelum kontrol kamera lain siap.
Audio USB lossless
Android 14 mendapatkan dukungan untuk format audio lossless untuk pengalaman tingkat audiophile
dibandingkan headset berkabel USB. Anda dapat mengkueri perangkat USB untuk
atribut mixer pilihannya, mendaftarkan pemroses untuk perubahan atribut mixer
yang diinginkan, dan mengonfigurasi atribut mixer menggunakan
class AudioMixerAttributes
. Class ini mewakili
format, seperti mask saluran, frekuensi sampel, dan perilaku mixer audio. Class ini
memungkinkan audio dikirim secara langsung, tanpa pencampuran,
penyesuaian volume, atau efek pemrosesan.
Alat dan produktivitas developer
Credential Manager
Android 14 menambahkan Pengelola Kredensial sebagai API platform, dengan dukungan tambahan untuk perangkat Android 4.4 (API level 19) melalui Library Jetpack menggunakan layanan Google Play. Pengelola Kredensial bertujuan untuk mempermudah login bagi pengguna dengan API yang mengambil dan menyimpan kredensial dengan penyedia kredensial yang dikonfigurasi pengguna. Pengelola Kredensial mendukung beberapa metode login, termasuk nama pengguna dan sandi, kunci sandi, serta solusi login gabungan (seperti Login dengan Google) dalam satu API.
Kunci sandi memberikan banyak manfaat. Misalnya, kunci sandi dibuat berdasarkan standar industri, dapat berfungsi di berbagai sistem operasi dan ekosistem browser, serta dapat digunakan dengan situs dan aplikasi.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Pengelola Kredensial dan kunci sandi serta postingan blog tentang Pengelola Kredensial dan kunci sandi.
Health Connect
Health Connect adalah repositori di perangkat untuk data kesehatan dan kebugaran pengguna. Hal ini memungkinkan pengguna berbagi data antar-aplikasi favorit mereka, dengan satu tempat untuk mengontrol data yang ingin dibagikan ke aplikasi tersebut.
Pada perangkat yang menjalankan versi Android sebelum Android 14, Health Connect tersedia untuk didownload sebagai aplikasi di Google Play Store. Mulai Android 14, Health Connect adalah bagian dari platform dan menerima update melalui update sistem Google Play tanpa memerlukan download terpisah. Dengan cara ini, Health Connect dapat sering diupdate, dan aplikasi Anda dapat mengandalkan Health Connect yang tersedia di perangkat yang menjalankan Android 14 atau yang lebih baru. Pengguna dapat mengakses Health Connect dari Setelan di perangkat mereka, dengan kontrol privasi yang terintegrasi ke dalam setelan sistem.
![](https://developer.android.com/static/images/about/versions/14/health-connect-screen.png?authuser=9&hl=id)
![](https://developer.android.com/static/images/about/versions/14/health-connect-permissions.png?authuser=9&hl=id)
Health Connect menyertakan beberapa fitur baru di Android 14, seperti rute olahraga, yang memungkinkan pengguna membagikan rute olahraga yang dapat divisualisasikan di peta. Rute didefinisikan sebagai daftar lokasi yang disimpan dalam periode waktu, dan aplikasi Anda dapat menyisipkan rute ke dalam sesi olahraga, yang menyatukannya bersama-sama. Untuk memastikan pengguna memiliki kontrol penuh atas data sensitif ini, pengguna harus mengizinkan berbagi setiap rute ke aplikasi lain.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Koneksi Kesehatan dan postingan blog tentang Yang baru di Android Health.
Update OpenJDK 17
Android 14 melanjutkan pekerjaan memuat ulang library inti Android agar selaras dengan fitur dalam rilis OpenJDK LTS terbaru, termasuk update library dan dukungan bahasa Java 17 untuk developer aplikasi dan platform.
Fitur dan peningkatan berikut disertakan:
- Mengupdate sekitar 300 class
java.base
ke dukungan Java 17. - Pemblokiran Teks, yang memperkenalkan literal string multibaris ke bahasa pemrograman Java.
- Pencocokan Pola untuk instance, yang memungkinkan objek
diperlakukan sebagai memiliki jenis tertentu dalam
instanceof
tanpa variabel tambahan. - Class tertutup, yang memungkinkan Anda membatasi class dan antarmuka yang dapat memperluas atau menerapkannya.
Berkat update sistem Google Play (Project Mainline), lebih dari 600 juta perangkat diaktifkan untuk menerima update Android Runtime (ART) terbaru yang menyertakan perubahan ini. Ini adalah bagian dari komitmen kami untuk memberi aplikasi lingkungan yang lebih konsisten dan aman di seluruh perangkat, serta memberikan fitur dan kemampuan baru kepada pengguna, terlepas dari rilis platform.
Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Peningkatan untuk app store
Android 14 memperkenalkan beberapa PackageInstaller
API yang
memungkinkan app store meningkatkan pengalaman pengguna mereka.
Meminta persetujuan penginstalan sebelum mendownload
Menginstal atau mengupdate aplikasi mungkin memerlukan persetujuan pengguna.
Misalnya, saat penginstal menggunakan izin
REQUEST_INSTALL_PACKAGES
mencoba menginstal
aplikasi baru. Pada versi Android sebelumnya, app store hanya dapat meminta persetujuan pengguna
setelah APK ditulis ke sesi penginstalan dan
sesi tersebut di-commit.
Mulai Android 14, metode requestUserPreapproval()
memungkinkan penginstal meminta persetujuan pengguna sebelum melakukan sesi
penginstalan. Peningkatan ini memungkinkan app store menunda download APK apa pun hingga
setelah penginstalan disetujui oleh pengguna. Selain itu, setelah pengguna
menyetujui penginstalan, app store dapat mendownload dan menginstal aplikasi di
latar belakang tanpa mengganggu pengguna.
Mengklaim tanggung jawab untuk update mendatang
Metode setRequestUpdateOwnership()
memungkinkan penginstal
menunjukkan kepada sistem bahwa penginstal bermaksud bertanggung jawab atas update mendatang
untuk aplikasi yang diinstalnya. Kemampuan ini memungkinkan penerapan kepemilikan
update, yang berarti bahwa hanya pemilik update yang diizinkan
untuk menginstal update otomatis ke aplikasi. Penerapan kepemilikan update membantu
memastikan bahwa pengguna hanya menerima update dari app store yang diharapkan.
Penginstal lainnya, termasuk yang menggunakan
izin INSTALL_PACKAGES
, harus menerima persetujuan eksplisit
dari pengguna untuk menginstal update. Jika pengguna memutuskan untuk melanjutkan
update dari sumber lain, kepemilikan update akan hilang.
Mengupdate aplikasi pada waktu yang tidak terlalu mengganggu
App store biasanya ingin menghindari update aplikasi yang aktif digunakan karena hal ini menyebabkan proses aplikasi yang sedang berjalan dihentikan, yang berpotensi mengganggu aktivitas pengguna.
Mulai Android 14, InstallConstraints
API
memberi penginstal cara untuk memastikan update aplikasi mereka terjadi pada momen
yang tepat. Misalnya, app store dapat memanggil
metode commitSessionAfterInstallConstraintsAreMet()
untuk
memastikan update hanya dilakukan saat pengguna tidak lagi
berinteraksi dengan aplikasi yang dimaksud.
Menginstal pemisahan opsional dengan lancar
Dengan APK terpisah, fitur aplikasi dapat dikirimkan dalam file APK terpisah,
bukan sebagai APK monolitik. APK terpisah memungkinkan app store mengoptimalkan
pengiriman berbagai komponen aplikasi. Misalnya, app store dapat mengoptimalkan
berdasarkan properti perangkat target. PackageInstaller
API telah mendukung pemisahan sejak
diperkenalkan di API level 22.
Di Android 14, metode setDontKillApp()
memungkinkan
penginstal menunjukkan bahwa proses aplikasi yang sedang berjalan tidak boleh dihentikan saat
pemisahan baru diinstal. App store dapat menggunakan fitur ini untuk menginstal
fitur baru aplikasi dengan lancar saat pengguna sedang menggunakan aplikasi.
Paket metadata aplikasi
Mulai Android 14, penginstal paket Android memungkinkan Anda menentukan metadata aplikasi, seperti praktik keamanan data, yang akan disertakan di halaman app store seperti Google Play.
Mendeteksi kapan pengguna mengambil screenshot perangkat
Untuk menciptakan pengalaman yang lebih standar dalam mendeteksi screenshot, Android 14 memperkenalkan API deteksi screenshot yang menjaga privasi. API ini memungkinkan aplikasi mendaftarkan callback per aktivitas. Callback ini dipanggil, dan pengguna akan diberi tahu saat pengguna mengambil screenshot ketika aktivitas itu terlihat.
Pengalaman pengguna
Tindakan kustom Sharesheet dan peringkat yang ditingkatkan
Android 14 mengupdate sharesheet sistem untuk mendukung tindakan aplikasi kustom dan hasil pratinjau yang lebih informatif bagi pengguna.
Menambahkan tindakan kustom
Dengan Android 14, aplikasi Anda dapat menambahkan tindakan kustom ke sharesheet sistem yang dipanggilnya.
![](https://developer.android.com/static/images/training/sharing/sharesheet_custom_actions.png?authuser=9&hl=id)
Meningkatkan peringkat target Berbagi Langsung
Android 14 menggunakan lebih banyak sinyal dari aplikasi untuk menentukan peringkat target langsung berbagi agar memberikan hasil yang lebih bermanfaat bagi pengguna. Agar dapat memberikan sinyal yang paling berguna untuk peringkat, ikuti panduan untuk meningkatkan peringkat target Berbagi Langsung. Aplikasi komunikasi juga dapat melaporkan penggunaan pintasan untuk pesan keluar dan masuk.
![](https://developer.android.com/static/training/sharing/direct-share-targets.png?authuser=9&hl=id)
Dukungan untuk animasi bawaan dan kustom untuk Kembali Prediktif
Android 13 memperkenalkan animasi "kembali ke layar utama" prediktif di balik opsi developer. Saat digunakan pada aplikasi yang didukung dengan opsi developer yang diaktifkan, menggeser kembali akan menampilkan animasi yang menunjukkan bahwa gestur kembali akan menutup aplikasi untuk kembali ke layar utama.
Android 14 menyertakan beberapa peningkatan dan panduan baru untuk Kembali Prediktif:
- Anda dapat menetapkan
android:enableOnBackInvokedCallback=true
untuk mengaktifkan animasi sistem kembali prediktif per Aktivitas, bukan untuk seluruh aplikasi. - Kami telah menambahkan animasi sistem baru untuk menyertai animasi "kembali ke layar utama" dari Android 13. Animasi sistem yang baru terdiri dari lintas aktivitas dan lintas tugas, yang Anda dapatkan secara otomatis setelah bermigrasi ke Kembali Prediktif.
- Kami telah menambahkan animasi Komponen Material baru untuk Sheet bawah, Sheet samping, dan Penelusuran.
- Kami telah membuat panduan desain untuk membuat animasi dan transisi kustom dalam aplikasi.
- Kami telah menambahkan API baru untuk mendukung animasi transisi kustom dalam aplikasi:
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- Gunakan
overrideActivityTransition
, bukanoverridePendingTransition
, untuk transisi yang merespons saat pengguna menggeser kembali.
Dengan rilis pratinjau Android 14 ini, semua fitur Kembali Prediktif tetap berada di balik opsi developer. Lihat panduan developer untuk memigrasikan aplikasi ke kembali prediktif, serta panduan developer untuk membuat transisi kustom dalam aplikasi.
Penggantian per aplikasi produsen perangkat layar besar
Penggantian per aplikasi memungkinkan produsen perangkat mengubah perilaku aplikasi di perangkat layar besar. Misalnya, penggantian FORCE_RESIZE_APP
menginstruksikan sistem untuk mengubah ukuran aplikasi agar sesuai dengan dimensi tampilan (menghindari mode kompatibilitas ukuran) meskipun resizeableActivity="false"
disetel dalam manifes aplikasi.
Penggantian dimaksudkan untuk meningkatkan pengalaman pengguna di perangkat layar besar.
Properti manifes baru memungkinkan Anda menonaktifkan beberapa penggantian produsen perangkat untuk aplikasi Anda.
Penggantian pengguna perangkat layar besar per aplikasi
Penggantian per aplikasi mengubah perilaku aplikasi di perangkat layar besar. Misalnya, penggantian produsen perangkat OVERRIDE_MIN_ASPECT_RATIO_LARGE
menetapkan rasio aspek aplikasi ke 16:9, terlepas dari konfigurasi aplikasi.
Android 14 QPR1 memungkinkan pengguna menerapkan penggantian per aplikasi dengan menggunakan menu setelan baru di perangkat layar besar.
Berbagi layar aplikasi
Berbagi layar aplikasi memungkinkan pengguna membagikan jendela aplikasi, bukan seluruh layar perangkat selama perekaman konten layar.
Dengan berbagi layar aplikasi, bilah status, bilah navigasi, notifikasi, dan elemen UI sistem lainnya dikecualikan dari tampilan bersama. Hanya konten aplikasi yang dipilih yang dibagikan.
Berbagi layar aplikasi meningkatkan produktivitas dan privasi dengan memungkinkan pengguna menjalankan beberapa aplikasi, tetapi membatasi berbagi konten hanya untuk satu aplikasi.
Smart Reply yang didukung LLM di Gboard pada Pixel 8 Pro
Di perangkat Pixel 8 Pro dengan Update Fitur Baru bulan Desember, developer dapat mencoba smart reply berkualitas tinggi di Gboard yang didukung oleh Model Bahasa Besar (LLM) di perangkat yang berjalan di Google Tensor.
Fitur ini tersedia sebagai pratinjau terbatas untuk bahasa Inggris AS di WhatsApp, Line, dan KakaoTalk. Perlu penggunaan perangkat Pixel 8 Pro dengan Gboard sebagai keyboard.
Untuk mencobanya, pertama-tama aktifkan fitur ini di Settings > Developer Options > AiCore Settings > Enable Aicore Persistent.
Berikutnya, buka percakapan di aplikasi yang didukung untuk melihat Smart Reply yang didukung LLM di strip saran Gboard sebagai respons terhadap pesan masuk.
Grafis
Jalur dapat dikueri dan dapat di-interpola
Path
API Android adalah mekanisme yang andal dan fleksibel untuk
membuat dan merender grafik vektor, dengan kemampuan untuk mengusap atau mengisi
jalur, membuat jalur dari segmen garis atau kurva kuadrat atau kubik, melakukan
operasi boolean untuk mendapatkan bentuk yang
lebih kompleks, atau semua ini
secara bersamaan. Salah satu keterbatasannya adalah kemampuan
untuk mengetahui apa yang sebenarnya ada dalam
Objek Path; bagian dalam objek buram bagi pemanggil setelah dibuat.
Untuk membuat Path
, panggil metode seperti
moveTo()
, lineTo()
, dan
cubicTo()
untuk menambahkan segmen jalur. Tapi belum ada cara untuk
menanyakan kepada jalur tersebut apa segmennya, jadi Anda harus menyimpan informasi itu
waktu pembuatan.
Mulai Android 14, Anda dapat mengkueri jalur untuk mencari tahu apa yang ada di dalamnya.
Pertama, Anda perlu mendapatkan objek PathIterator
menggunakan
API Path.getPathIterator
:
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
Java
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
Selanjutnya, Anda dapat memanggil PathIterator
untuk melakukan iterasi melalui segmen
satu per satu, mengambil semua
data yang diperlukan untuk setiap segmen. Contoh ini
menggunakan objek PathIterator.Segment
, yang mengemas data
untuk Anda:
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
Java
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
PathIterator
juga memiliki versi next()
yang tidak dialokasikan tempat Anda dapat meneruskan
dalam {i>buffer<i} untuk
menyimpan data titik.
Salah satu kasus penggunaan yang penting untuk mengkueri data Path
adalah interpolasi. Sebagai
misalnya, Anda mungkin ingin menganimasikan (atau mengubah) antara dua jalur berbeda. Kepada
menyederhanakan kasus penggunaan tersebut, Android 14 juga menyertakan
Metode interpolate()
di Path
. Dengan asumsi kedua jalur memiliki
struktur internal yang sama, metode interpolate()
akan membuat Path
baru
dengan hasil interpolasi tersebut. Contoh ini menampilkan jalur yang bentuknya
setengah (interpolasi linier 0,5) antara path
dan otherPath
:
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
Java
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
Library graphics-path Jetpack memungkinkan API serupa untuk Android versi sebelumnya.
Mesh kustom dengan shader verteks dan fragmen
Android telah lama mendukung penggambaran mesh segitiga dengan bayangan kustom, tetapi format mesh input terbatas pada beberapa kombinasi atribut yang telah ditentukan. Android 14 menambahkan dukungan untuk mesh kustom, yang dapat ditentukan sebagai segitiga atau strip segitiga, dan dapat, secara opsional, diindeks. Mesh ini ditentukan dengan atribut khusus, langkah verteks, varying, serta shader verteks dan fragmen yang ditulis dalam AGSL.
Shader verteks menentukan berbagai hal, seperti posisi dan warna, sedangkan
shader fragmen dapat secara opsional menentukan warna piksel, biasanya dengan
menggunakan variasi yang dibuat oleh shader verteks. Jika warna disediakan oleh
shader fragmen, warna tersebut akan digabungkan dengan warna Paint
saat ini menggunakan mode campuran yang dipilih saat
menggambar mesh. Uniforms dapat diteruskan
ke fragmen dan shader verteks untuk fleksibilitas tambahan.
Perender buffer hardware untuk Canvas
Untuk membantu penggunaan Canvas
API Android untuk menggambar dengan
akselerasi hardware ke HardwareBuffer
, Android 14
memperkenalkan HardwareBufferRenderer
. API ini
sangat berguna saat kasus penggunaan Anda melibatkan komunikasi dengan compositor
sistem melalui SurfaceControl
untuk penggambaran
latensi rendah.