Ringkasan Fitur dan API

Android 14 memperkenalkan fitur dan API hebat untuk para developer. Berikut ini membantu Anda mempelajari fitur-fitur yang tersedia untuk aplikasi Anda, serta mulai menggunakan API terkait.

Untuk melihat 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 di level API 34. Untuk mempelajari area dengan perubahan platform yang 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 file LocaleConfig 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 folder res modul aplikasi Anda dan dependensi modul library apa pun untuk menentukan lokalitas yang akan disertakan dalam file LocaleConfig.

  • Update dinamis untuk localeConfig aplikasi: Gunakan metode setOverrideLocaleConfig() dan getOverrideLocaleConfig() di LocaleManager 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.

Layar Preferensi regional di setelan sistem Android.
Opsi suhu untuk preferensi regional di setelan sistem Android.

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

Aktifkan ukuran font maksimum di setelan aksesibilitas perangkat untuk menguji aplikasi Anda.

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:

  1. Buka aplikasi Settings dan buka Accessibility > Display size and text.
  2. 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

Ilustrasi kualitas gambar Standard Dynamic Range (SDR) versus High Dynamic Range (HDR).

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.

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 gambar yang lebih baik menggunakan algoritma komputasi yang intensif seperti fotografi cahaya redup pada perangkat yang didukung. Fitur-fitur ini memberi pengguna pengalaman yang lebih andal saat menggunakan kemampuan ekstensi kamera. Contoh peningkatan ini mencakup:

Zoom dalam sensor

CameraCharacteristics 中的 REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE 包含 SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 时,您的应用可以使用高级传感器功能为剪裁的 RAW 数据流提供与完整视野相同的像素,方法是使用 CaptureRequest,并将 RAW 目标设置为 CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW。通过实现请求替换控件,更新后的相机可让用户控制缩放,而无需在其他相机控件准备就绪之前进行控制。

Audio USB lossless

Android 14 开始支持无损音频格式,通过 USB 有线耳机提供发烧级体验。您可以查询 USB 设备的首选混音器属性,注册监听器以监听首选混音器属性的变化,并使用 AudioMixerAttributes 类配置混音器属性。此类表示格式,例如声道掩码、采样率和混音器行为。该类允许直接发送音频,而不进行混音、音量调整或处理效果。

Alat dan produktivitas developer

Pengelola Kredensial

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. Dengan begitu, pengguna dapat berbagi data antar-aplikasi favorit mereka, dengan satu tempat untuk mengontrol data yang ingin dibagikan ke aplikasi tersebut.

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

Pengguna dapat mulai menggunakan Health Connect tanpa download aplikasi terpisah di perangkat yang menjalankan Android 14 atau yang lebih tinggi.
Pengguna dapat mengontrol aplikasi mana yang memiliki akses ke data kesehatan dan kebugaran mereka melalui setelan sistem.

Health Connect menyertakan beberapa fitur baru di Android 14, seperti rute olahraga, yang memungkinkan pengguna membagikan rute olahraga mereka yang dapat divisualisasikan pada peta. Rute didefinisikan sebagai daftar lokasi yang disimpan dalam jangka waktu, dan aplikasi Anda dapat menyisipkan rute ke dalam sesi olahraga, yang mengikatnya bersama-sama. Untuk memastikan bahwa pengguna memiliki kontrol penuh atas data sensitif ini, pengguna harus mengizinkan berbagi rute individual ke aplikasi lain.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi Health Connection 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 引入了多个 PackageInstaller API,可帮助应用商店改善其用户体验。

下载之前请求批准安装

安装或更新应用可能需要用户批准。 例如,当使用 REQUEST_INSTALL_PACKAGES 权限的安装程序尝试安装新应用时。在之前的 Android 版本中,应用商店只有在 APK 写入安装会话且该会话已提交之后才能请求用户批准。

从 Android 14 开始,requestUserPreapproval() 方法可让安装程序在提交安装会话之前请求用户批准。此项改进可让应用商店将任何 APK 的下载操作推迟到用户批准安装之后。此外,用户批准安装后,应用商店可以在后台下载并安装应用,而不会干扰用户。

承担未来更新的责任

通过 setRequestUpdateOwnership() 方法,安装程序可以告知系统它打算负责未来安装的应用更新。此功能可实现更新所有权强制执行,即只有更新所有者才能为应用安装自动更新。更新所有权强制执行有助于确保用户仅从预期的应用商店接收更新。

任何其他安装程序(包括使用 INSTALL_PACKAGES 权限的安装程序)都必须获得用户的明确批准,才能安装更新。如果用户决定继续从其他来源进行更新,更新所有权将会丢失。

在干扰较少的时段更新应用

应用商店通常希望避免更新正在使用的应用,因为这会导致应用正在运行的进程被终止,而这可能会中断用户正在执行的操作。

从 Android 14 开始,InstallConstraints API 让安装程序可以确保其应用更新在适当的时机进行。例如,应用商店可以调用 commitSessionAfterInstallConstraintsAreMet() 方法来确保仅在用户不再与相关应用互动时进行更新。

无缝安装可选拆分

借助拆分 APK,应用的功能可以通过单独的 APK 文件提供,而不是以单体式 APK 的形式提供。借助拆分 APK,应用商店可以优化不同应用组件的提供。例如,应用商店可能会根据目标设备的属性进行优化。自从在 API 级别 22 中引入以来,PackageInstaller API 一直支持拆分。

在 Android 14 中,setDontKillApp() 方法可让安装程序指明在安装新的分块时不应终止应用正在运行的进程。应用商店可以使用此功能,在用户使用应用时无缝安装应用的新功能。

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

为了打造更加标准化的屏幕截图检测体验,Android 14 引入了可保护隐私的屏幕截图检测 API。借助此 API,应用可以按 activity 注册回调。如果用户在该 activity 可见时截取屏幕截图,系统会调用这些回调并通知用户。

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.

Screenshot tindakan kustom di sharesheet.

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.

Baris Direct Share di sharesheet, seperti yang ditunjukkan oleh 1

Dukungan untuk animasi bawaan dan kustom untuk Kembali Prediktif

视频:预测性返回动画

Android 13 在开发者选项背后引入了预测性“返回主屏幕”动画。在已启用开发者选项的受支持应用中使用时,滑回手势会显示动画,表明返回手势会使应用退回到主屏幕。

Android 14 包含针对“预测性返回”的多项改进和新指南:

在此 Android 14 预览版中,所有预测性返回功能都是位于开发者选项背后。请参阅与将您的应用迁移到预测性返回有关的开发者指南,以及与创建自定义应用内转换有关的开发者指南

Penggantian per aplikasi produsen perangkat layar besar

借助按应用替换项,设备制造商可以更改应用在大屏设备上的行为。例如,FORCE_RESIZE_APP 替换项指示系统调整应用大小以适应显示屏尺寸(避免尺寸兼容模式),即使在应用清单中设置了 resizeableActivity="false" 也是如此。

替换项旨在改善大屏设备上的用户体验。

新的清单属性可让您为应用停用某些设备制造商替换项。

Penggantian per aplikasi pengguna perangkat layar besar

按应用替换会更改应用在大屏设备上的行为。例如,无论应用的配置如何,OVERRIDE_MIN_ASPECT_RATIO_LARGE 设备制造商替换项都会将应用宽高比设置为 16:9。

Android 14 QPR1 允许用户在大屏设备上通过新的设置菜单应用按应用替换项。

Berbagi layar sebagian

部分屏幕共享功能可让用户在屏幕内容录制期间共享应用窗口,而非整个设备屏幕。

使用局部屏幕共享时,状态栏、导航栏、通知和其他系统界面元素将从共享显示中排除。系统只会分享所选应用的内容。

局部屏幕共享可让用户运行多个应用,但仅限单个应用共享内容,从而提高工作效率和隐私性。

Smart Reply dengan teknologi 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. Diperlukan perangkat Pixel 8 Pro dengan Gboard sebagai keyboard Anda.

Untuk mencobanya, aktifkan fitur ini terlebih dahulu di Settings > Developer Options > AiCore Settings > Enable Aicore Persistent.

Selanjutnya, buka percakapan di aplikasi yang didukung untuk melihat Smart Reply yang didukung LLM di strip saran Gboard sebagai respons terhadap pesan masuk.

Gboard menggunakan LLM di perangkat untuk memberikan smart reply yang berkualitas lebih tinggi.

Grafis

Jalur dapat dikueri dan dapat di-interpola

Android 的 Path API 是一种强大且灵活的机制,可用于创建和渲染矢量图形,能够描边或填充路径,根据线段、二次曲线或立方曲线构建路径,执行布尔运算以获取更复杂的形状,或同时执行所有这些操作。不过,您无法找出 Path 对象中实际包含的内容;该对象的内部信息在创建后对于调用方是不透明的。

如需创建 Path,您可以调用 moveTo()lineTo()cubicTo() 等方法来添加路径片段。但是,无法询问该路径有哪些段,因此您必须在创建时保留该信息。

从 Android 14 开始,您可以查询路径以了解其内部内容。首先,您需要使用 Path.getPathIterator API 获取 PathIterator 对象:

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();

接下来,您可以调用 PathIterator 逐个遍历片段,并检索每个片段的所有必要数据。以下示例使用了 PathIterator.Segment 对象,它会为您打包数据:

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 还有一个非分配版 next(),您可以在其中传入缓冲区来保存点数据。

查询 Path 数据的一个重要用例是插值。例如,您可能想在两个不同的路径之间添加动画(或变形)。为了进一步简化该用例,Android 14 还在 Path 中添加了 interpolate() 方法。假设两个路径具有相同的内部结构,interpolate() 方法会使用该插值结果创建一个新的 Path。以下示例返回了形状介于 pathotherPath 之间的一半(线性插值为 0 .5)的路径:

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);
}

Jetpack graphics-path 库也为早期版本的 Android 启用了类似的 API。

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

为了帮助使用 Android 的 Canvas API 通过硬件加速绘制 HardwareBuffer,Android 14 引入了 HardwareBufferRenderer。当您的用例需要通过 SurfaceControl 与系统合成器进行通信以实现低延迟绘制时,此 API 特别有用。