Ringkasan Fitur dan API

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

Untuk melihat daftar mendetail tentang API yang ditambahkan, diubah, dan dihapus, baca laporan perbedaan API. Untuk mengetahui detail tentang API yang ditambahkan, lihat referensi Android API — untuk Android 14, cari API yang ditambahkan di level API 34. Untuk mempelajari area mana saja dalam aplikasi Anda yang dapat terpengaruh oleh perubahan platform, baca tentang 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.

为帮助您针对区分性别的语言构建以用户为中心的界面,Android 14 引入了 Grammatical Inflection API,让您无需重构应用便能添加对语法性别的支持。

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%

从 Android 14 开始,系统支持字体放大高达 200%,为用户提供了其他无障碍功能选项。

为防止屏幕上的大文本元素过于放大,系统会采用非线性放大曲线。这种放大策略意味着大号文本的放大比例不会与较小的文本相同。非线性字体放大有助于保持不同大小元素之间的比例层次结构,同时缓解高级别线性文本放大存在的问题(例如文本被截断或文本因非常大的显示大小而难以阅读)。

使用非线性字体放大测试应用

在设备的无障碍设置中启用最大字号,以测试应用。

如果您已使用可缩放像素 (sp) 单位来定义文本大小,那么这些额外的选项和缩放改进会自动应用于应用中的文本。不过,您仍应在启用最大字体大小 (200%) 的情况下执行界面测试,以确保应用正确应用字体大小,并且可以容纳更大的字体大小,而不会影响易用性。

要启用 200% 字号,请按以下步骤操作:

  1. 打开“设置”应用,然后依次前往无障碍 > 显示大小和文字
  2. 字号选项中,点按加号 (+) 图标,直到启用最大字号设置,如本部分随附的图片所示。

针对文本大小使用放大像素 (sp) 单位

请务必始终以 sp 为单位指定文本大小。当应用使用 sp 单位时,Android 可以应用用户的首选文本大小,并相应地进行缩放。

不要为内边距使用 sp 单位,也不要定义假设存在隐式内边距的视图高度:使用非线性字体放大 sp 尺寸可能并不成比例,因此 4sp + 20sp 可能并不等于 24sp。

转换放大像素 (sp) 单位

使用 TypedValue.applyDimension() 从 sp 单位转换为像素,并使用 TypedValue.deriveDimension() 将像素转换为 sp。这些方法会自动应用适当的非线性放大曲线。

避免使用 Configuration.fontScaleDisplayMetrics.scaledDensity 对等式进行硬编码。由于字体放大是非线性的,因此 scaledDensity 字段不再准确。fontScale 字段应仅用于提供信息,因为字体不再使用单个标量值进行缩放。

针对 lineHeight 使用 sp 单位

请始终使用 sp 单位(而非 dp)定义 android:lineHeight,以便行高随文本一起缩放。否则,如果您的文字是 sp,但 lineHeight 是 dp 或像素,则文字不会缩放,看起来会很拥挤。 TextView 会自动更正 lineHeight,以便保留您预期的比例,但前提是 textSizelineHeight 均以 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 yang cerah dan kontras yang lebih besar. Android menggunakan format Ultra HDR, yang sepenuhnya kompatibel dengan gambar JPEG, sehingga aplikasi dapat berinteraksi dengan lancar dengan gambar HDR, menampilkannya dalam Rentang Dinamis Standar (SDR) sesuai kebutuhan.

Merender gambar ini di UI dalam HDR dilakukan secara otomatis oleh framework saat aplikasi Anda memilih untuk menggunakan UI HDR untuk Jendela Aktivitasnya, baik melalui entri manifes atau 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 pasca-produksi dapat 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 yang intensif komputasi seperti fotografi cahaya rendah di perangkat yang didukung. Fitur ini memberi pengguna pengalaman yang lebih andal saat menggunakan kemampuan ekstensi kamera. Contoh peningkatan ini mencakup:

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 streaming RAW yang dipangkas dengan piksel yang sama dengan bidang pandang penuh menggunakan CaptureRequest dengan target RAW yang memiliki kasus penggunaan streaming yang disetel 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 lainnya siap.

Audio USB lossless

Android 14 mendapatkan dukungan untuk format audio lossless untuk pengalaman level audiophile melalui headset berkabel USB. Anda dapat membuat kueri perangkat USB untuk atribut mixer pilihannya, mendaftarkan pemroses untuk perubahan pada atribut mixer pilihan, 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 langsung, tanpa pencampuran, penyesuaian volume, atau efek pemrosesan.

Alat dan produktivitas developer

Credential Manager

Android 14 menambahkan Credential Manager sebagai API platform, dengan dukungan tambahan kembali ke perangkat Android 4.4 (level API 19) melalui Jetpack Library menggunakan layanan Google Play. Credential Manager bertujuan mempermudah login bagi pengguna dengan API yang mengambil dan menyimpan kredensial dengan penyedia kredensial yang dikonfigurasi pengguna. Credential Manager 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 keuntungan. 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 Credential Manager dan kunci sandi serta postingan blog tentang Credential Manager dan kunci sandi.

Health Connect

Health Connect adalah repositori di perangkat untuk data kesehatan dan kebugaran pengguna. Fitur ini memungkinkan pengguna berbagi data antar-aplikasi favorit mereka, dengan satu tempat untuk mengontrol data yang ingin dibagikan kepada aplikasi ini.

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 demikian, Health Connect dapat sering diperbarui, dan aplikasi Anda dapat mengandalkan Health Connect yang tersedia di perangkat yang menjalankan Android 14 atau yang lebih tinggi. 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 baru.
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 di peta. Rute ditentukan sebagai daftar lokasi yang disimpan dalam periode waktu, dan aplikasi Anda dapat menyisipkan rute ke dalam sesi olahraga, yang menggabungkannya bersama-sama. Untuk memastikan pengguna memiliki kontrol penuh atas data sensitif ini, pengguna harus mengizinkan berbagi setiap rute dengan aplikasi lain.

Untuk informasi selengkapnya, lihat dokumentasi Health Connect 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() 方法,安装程序可以向系统表明它打算负责将被安装的应用未来的更新。此 capability 可实现更新所有权强制执行,即仅允许更新所有者为应用安装自动更新。更新所有权强制执行有助于确保用户仅收到来自预期应用商店的更新。

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

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

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

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

无缝安装可选拆分

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

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

Paket metadata aplikasi

从 Android 14 开始,Android 软件包安装程序可让您指定应用元数据(例如数据安全做法),以在 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 panel berbagi.

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. Untuk 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 Berbagi Langsung 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 oleh 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.

Ganti dimaksudkan untuk meningkatkan pengalaman pengguna di perangkat layar besar.

Properti manifes baru memungkinkan Anda menonaktifkan beberapa penggantian produsen perangkat untuk aplikasi Anda.

Penggantian per aplikasi oleh pengguna perangkat layar besar

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

借助 Android 14 QPR1,用户可以在大屏设备上通过新的设置菜单应用按应用替换项。

Berbagi layar aplikasi

Berbagi layar aplikasi memungkinkan pengguna berbagi jendela aplikasi, bukan seluruh layar perangkat selama perekaman konten layar.

Dengan berbagi layar aplikasi, status bar, menu 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 ke satu aplikasi.

Smart Reply yang didukung LLM di Gboard di Pixel 8 Pro

Di perangkat Pixel 8 Pro dengan Feature Drop Desember, developer dapat mencoba smart reply berkualitas lebih 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 Amerika Serikat di WhatsApp, Line, dan KakaoTalk. Fitur ini memerlukan penggunaan perangkat Pixel 8 Pro dengan Gboard sebagai keyboard Anda.

Untuk mencobanya, aktifkan fitur ini terlebih dahulu di Setelan > Opsi Developer > Setelan AICore > Aktifkan AIcore Persistent.

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

Gboard menggunakan LLM di perangkat untuk memberikan balasan pintar berkualitas lebih tinggi.

Grafik

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 membuat goresan atau mengisi jalur, membuat jalur dari segmen garis atau kurva kuadrat atau kubik, melakukan operasi boolean untuk mendapatkan bentuk yang lebih kompleks, atau semuanya secara bersamaan. Salah satu keterbatasannya adalah kemampuan untuk mengetahui apa yang sebenarnya ada di objek Path; bagian dalam objek bersifat buram bagi pemanggil setelah dibuat.

Untuk membuat Path, panggil metode seperti moveTo(), lineTo(), dan cubicTo() untuk menambahkan segmen jalur. Namun, belum ada cara untuk menanyakan kepada jalur tersebut tentang segmennya, jadi Anda harus menyimpan informasi tersebut pada waktu pembuatan.

Mulai Android 14, Anda dapat mengkueri jalur untuk mencari tahu apa yang ada di dalamnya. Pertama, Anda perlu mendapatkan objek PathIterator menggunakan Path.getPathIterator API:

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 mengalokasikan, tempat Anda dapat meneruskan buffer untuk menyimpan data titik.

Salah satu kasus penggunaan yang penting untuk mengkueri data Path adalah interpolasi. Misalnya, Anda mungkin ingin menganimasikan (atau mengubah) antara dua jalur berbeda. Untuk lebih menyederhanakan kasus penggunaan tersebut, Android 14 juga menyertakan metode interpolate() di Path. Dengan asumsi bahwa 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 juga memungkinkan API serupa untuk versi Android yang lebih lama.

Mesh kustom dengan shader vertex dan fragment

Android 长期以来一直支持使用自定义着色绘制三角网格,但输入网格格式仅限于一些预定义的属性组合。Android 14 增加了对自定义网格的支持,可将其定义为三角形三角形条,并且可以选择是否编入索引。这些网格是使用自定义属性、顶点步长、可变以及使用 AGSL 编写的顶点着色器和片段着色器指定的。

顶点着色器定义了位置和颜色等变量,而片段着色器可以选择为像素定义颜色,通常是使用顶点着色器创建的变量。如果片段着色器提供颜色,则系统会使用绘制网格时选择的混合模式将其与当前 Paint 颜色混合。Uniform 可以传递到片段着色器和顶点着色器,以提高灵活性。

Renderer buffer hardware untuk Canvas

协助使用 Android 的 Canvas API 通过 硬件加速至 HardwareBuffer、Android 14 引入了 HardwareBufferRenderer。如果您的用例涉及通过 SurfaceControl 与系统合成器通信以实现低延迟绘制,此 API 特别有用。