Android 16 memperkenalkan fitur dan API baru yang hebat untuk para developer. Bagian berikut merangkum fitur ini untuk membantu Anda mulai menggunakan API terkait.
Untuk melihat daftar mendetail tentang API yang baru, diubah, dan dihapus, baca laporan perbedaan API. Untuk mengetahui detail tentang API baru, buka referensi API Android — API baru ditandai agar lebih mudah dilihat.Anda juga harus meninjau area tempat perubahan platform dapat memengaruhi aplikasi Anda. Untuk informasi selengkapnya, lihat halaman berikut:
- Perubahan perilaku yang memengaruhi aplikasi saat menargetkan Android 16
- Perubahan perilaku yang memengaruhi semua aplikasi terlepas dari
targetSdkVersion.
Fungsi inti
Android menyertakan API baru yang memperluas kemampuan inti sistem Android.
Dua rilis Android API pada tahun 2025
- Pratinjau ini ditujukan untuk rilis utama Android berikutnya dengan peluncuran yang direncanakan pada Kuartal 2 2025. Rilis ini mirip dengan semua rilis API kami sebelumnya, yang memungkinkan kita memiliki perubahan perilaku terencana yang sering kali terkait dengan targetSdkVersion.
- Kami merencanakan rilis utama satu kuartal lebih awal (K2, bukan K3 pada tahun sebelumnya) agar lebih selaras dengan jadwal peluncuran perangkat di seluruh ekosistem kami, sehingga lebih banyak perangkat dapat mendapatkan rilis utama Android lebih cepat. Dengan rilis utama yang akan datang pada Kuartal 2, Anda harus melakukan pengujian kompatibilitas tahunan beberapa bulan lebih awal dari tahun-tahun sebelumnya untuk memastikan aplikasi Anda siap.
- Kami berencana untuk merilis versi lain pada Kuartal 4 tahun 2025 yang juga akan menyertakan API developer baru. Rilis utama K2 akan menjadi satu-satunya rilis pada tahun 2025 yang menyertakan perubahan perilaku terencana yang dapat memengaruhi aplikasi.
Selain API developer baru, rilis minor K4 akan mengambil update fitur, pengoptimalan, dan perbaikan bug; rilis ini tidak akan menyertakan perubahan perilaku yang memengaruhi aplikasi.
Kami akan terus merilis Android setiap tiga bulan sekali. Update Kuartal 1 dan Kuartal 3 di antara rilis API akan memberikan update inkremental untuk membantu memastikan kualitas yang berkelanjutan. Kami secara aktif bekerja sama dengan partner perangkat untuk menghadirkan rilis Q2 ke sebanyak mungkin perangkat.
Menggunakan API baru dengan rilis utama dan minor
Melindungi blok kode dengan pemeriksaan API level dilakukan saat ini menggunakan
konstanta SDK_INT dengan
VERSION_CODES. Fitur ini akan terus
didukung untuk rilis Android utama.
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
Konstanta SDK_INT_FULL
baru dapat digunakan untuk pemeriksaan API terhadap versi utama dan minor dengan
enumerasi VERSION_CODES_FULL
baru.
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
Anda juga dapat menggunakan metode
Build.getMinorSdkVersion()
untuk mendapatkan versi SDK minor saja.
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
API ini belum selesai dan dapat berubah sewaktu-waktu. Jadi, kirimkan masukan kepada kami jika Anda memiliki masalah.
Pengalaman pengguna dan UI sistem
Android 16 memberi developer dan pengguna aplikasi kontrol dan fleksibilitas yang lebih besar untuk mengonfigurasi perangkat agar sesuai dengan kebutuhan mereka.
Notifikasi yang berfokus pada progres
Android 16 memperkenalkan notifikasi yang berfokus pada progres untuk membantu pengguna melacak perjalanan awal hingga akhir yang dimulai pengguna dengan lancar.
Notification.ProgressStyle adalah gaya notifikasi
baru yang memungkinkan Anda membuat notifikasi yang berfokus pada progres. Kasus penggunaan utama mencakup
transportasi online, pengiriman, dan navigasi. Dalam class Notification.ProgressStyle, Anda dapat menunjukkan status dan tonggak pencapaian dalam perjalanan pengguna menggunakan
titik dan segmen.
Untuk mempelajari lebih lanjut, lihat halaman dokumentasi Notifikasi yang berfokus pada progres.
Pembaruan kembali prediktif
Android 16 menambahkan API baru untuk membantu Anda mengaktifkan animasi sistem kembali prediktif dalam
navigasi gestur seperti animasi kembali ke layar utama. Dengan mendaftarkan
onBackInvokedCallback ke
PRIORITY_SYSTEM_NAVIGATION_OBSERVER baru, aplikasi Anda dapat
menerima panggilan onBackInvoked reguler setiap kali
sistem menangani navigasi kembali tanpa memengaruhi alur
navigasi kembali normal.
Android 16 juga menambahkan
finishAndRemoveTaskCallback() dan
moveTaskToBackCallback. Dengan mendaftarkan callback ini
dengan OnBackInvokedDispatcher, sistem dapat memicu
perilaku tertentu dan memutar animasi yang sesuai sebelumnya saat gestur
kembali dipanggil.
Haptik yang lebih kaya
Android telah mengekspos kontrol atas aktuator haptic sejak awal.
Android 11 menambahkan dukungan untuk efek haptik yang lebih kompleks yang dapat didukung oleh aktuator
yang lebih canggih melalui
VibrationEffect.Compositions dari primitif
semantik yang ditentukan perangkat.
Android 16 menambahkan API haptik yang memungkinkan aplikasi menentukan kurva amplitudo dan frekuensi efek haptik sekaligus memisahkan perbedaan antara kemampuan perangkat.
Alat dan produktivitas developer
Meskipun sebagian besar upaya kami untuk meningkatkan produktivitas Anda berpusat pada alat seperti Android Studio, Jetpack Compose, dan library Android Jetpack, kami selalu mencari cara di platform untuk membantu Anda mewujudkan visi Anda.
Penanganan konten untuk wallpaper animasi
在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescription 和 WallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。
Performa dan baterai
Android 16 memperkenalkan API yang membantu mengumpulkan insight tentang aplikasi Anda.
Pembuatan profil yang dipicu sistem
ProfilingManager
ditambahkan di Android 15, yang memberi aplikasi kemampuan untuk
meminta pengumpulan data pembuatan profil menggunakan Perfetto di perangkat publik di lapangan.
Namun, karena pembuatan profil ini harus dimulai dari aplikasi, alur penting seperti
startup atau ANR akan sulit atau tidak dapat direkam oleh aplikasi.
Untuk membantu hal ini, Android 16 memperkenalkan pembuatan profil yang dipicu sistem ke
ProfilingManager. Aplikasi dapat mendaftarkan minat untuk menerima rekaman aktivitas untuk pemicu
tertentu seperti cold start reportFullyDrawn
atau ANR, lalu sistem akan memulai dan menghentikan rekaman aktivitas atas nama aplikasi. Setelah
pelacakan selesai, hasilnya akan dikirim ke direktori data aplikasi.
Komponen awal di ApplicationStartInfo
ApplicationStartInfo 在 Android 15 中添加,可让应用查看进程启动原因、启动类型、启动时间、节流和其他实用诊断数据。Android 16 添加了 getStartComponent(),用于区分触发启动的组件类型,这有助于优化应用的启动流程。
Introspeksi tugas yang lebih baik
JobScheduler#getPendingJobReason() API menampilkan alasan mengapa tugas
mungkin tertunda. Namun, tugas mungkin tertunda karena beberapa alasan.
Di Android 16, kami memperkenalkan API
JobScheduler#getPendingJobReasons(int jobId) baru, yang menampilkan beberapa
alasan mengapa tugas tertunda, karena batasan eksplisit yang ditetapkan oleh
developer dan batasan implisit yang ditetapkan oleh sistem.
Kami juga memperkenalkan
JobScheduler#getPendingJobReasonsHistory(int jobId), yang menampilkan daftar
perubahan batasan terbaru.
Sebaiknya gunakan API untuk membantu Anda men-debug alasan tugas Anda mungkin tidak dieksekusi, terutama jika Anda melihat penurunan rasio keberhasilan tugas tertentu atau memiliki bug di sekitar latensi penyelesaian tugas tertentu. Misalnya, pembaruan widget di latar belakang gagal terjadi atau tugas pengambilan data gagal dipanggil sebelum aplikasi dimulai.
Hal ini juga dapat membantu Anda lebih memahami apakah tugas tertentu tidak selesai karena batasan yang ditentukan sistem dibandingkan batasan yang ditetapkan secara eksplisit.
Kecepatan refresh adaptif
Kecepatan refresh adaptif (ARR), yang diperkenalkan di Android 15, memungkinkan kecepatan refresh layar pada hardware yang didukung untuk beradaptasi dengan kecepatan frame konten menggunakan langkah VSync terpisah. Hal ini mengurangi konsumsi daya sekaligus menghilangkan kebutuhan untuk beralih mode yang berpotensi menyebabkan jank.
Android 16 memperkenalkan hasArrSupport() dan
getSuggestedFrameRate(int) saat memulihkan
getSupportedRefreshRates() untuk memudahkan aplikasi Anda memanfaatkan
ARR. RecyclerView
1.4 secara internal mendukung ARR saat berhenti dari ayun atau
scroll halus, dan kami melanjutkan upaya untuk menambahkan dukungan
ARR ke lebih banyak library Jetpack. Artikel kecepatan frame ini membahas
banyak API yang dapat Anda gunakan untuk menetapkan kecepatan frame sehingga aplikasi Anda dapat langsung
menggunakan ARR.
API ruang kosong di ADPF
SystemHealthManager memperkenalkan
getCpuHeadroom dan
getGpuHeadroom API, yang dirancang untuk menyediakan game dan
aplikasi yang intensif resource dengan estimasi resource CPU dan GPU yang tersedia. Metode
ini menawarkan cara bagi Anda untuk mengukur cara terbaik aplikasi atau game Anda meningkatkan
kesehatan sistem, terutama jika digunakan bersama dengan Android Dynamic
Performance Framework (ADPF) API lainnya yang mendeteksi throttling
termal.
Dengan menggunakan CpuHeadroomParams dan
GpuHeadroomParams di perangkat yang didukung, Anda dapat
menyesuaikan periode waktu yang digunakan untuk menghitung headroom dan memilih antara
ketersediaan resource rata-rata atau minimum. Hal ini dapat membantu Anda mengurangi penggunaan resource CPU atau
GPU dengan semestinya, sehingga menghasilkan pengalaman pengguna yang lebih baik dan meningkatkan
masa pakai baterai.
Aksesibilitas
Android 16 menambahkan API dan fitur aksesibilitas baru yang dapat membantu Anda menghadirkan aplikasi kepada setiap pengguna.
API aksesibilitas yang ditingkatkan
Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。
为文字添加轮廓,以最大限度地提高文字对比度
视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。
Android 16 包含新的 AccessibilityManager API,可让您的应用检查或注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。
向 TtsSpan 添加了时长
Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURS、ARG_MINUTES 和 ARG_SECONDS。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。
支持具有多个标签的元素
Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo 中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy 和 #getLabeledBy,改用 #addLabeledBy、#removeLabeledBy 和 #getLabeledByList。
改进了对可展开元素的支持
Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState 设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED 内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。
不确定进度条
Android 16 添加了 RANGE_TYPE_INDETERMINATE,让您可以为确定性和不确定性 ProgressBar 微件公开 RangeInfo,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。
三态复选框
Android 16 中的新 AccessibilityNodeInfo
getChecked 和 setChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isChecked 和 setChecked(boolean)。
补充说明
如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。
必填表单字段
Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户而言,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。
Ponsel sebagai input mikrofon untuk panggilan suara dengan alat bantu dengar LEA
Android 16 menambahkan kemampuan bagi pengguna alat bantu dengar LE Audio untuk beralih antara mikrofon bawaan di alat bantu dengar dan mikrofon di ponsel mereka untuk panggilan suara. Hal ini dapat membantu di lingkungan yang bising atau situasi lain saat mikrofon alat bantu dengar mungkin tidak berperforma baik.
Kontrol volume sekitar untuk alat bantu dengar LEA
Android 16 menambahkan kemampuan bagi pengguna alat bantu dengar LE Audio untuk menyesuaikan volume suara sekitar yang ditangkap oleh mikrofon alat bantu dengar. Hal ini dapat membantu dalam situasi saat suara bising di latar belakang terlalu keras atau terlalu pelan.
Kamera
Android 16 meningkatkan dukungan untuk pengguna kamera profesional, sehingga memungkinkan eksposur otomatis hybrid bersama dengan penyesuaian suhu warna dan tint yang akurat. Indikator mode malam baru membantu aplikasi Anda mengetahui kapan harus beralih ke dan dari sesi kamera mode malam. Tindakan Intent baru mempermudah pengambilan foto bergerak, dan kami terus meningkatkan kualitas gambar UltraHDR dengan dukungan untuk encoding HEIC dan parameter baru dari draf standar ISO 21496-1.
Eksposur otomatis hybrid
Android 16 menambahkan mode eksposur otomatis hibrida baru ke Camera2, yang memungkinkan Anda mengontrol aspek eksposur tertentu secara manual sekaligus membiarkan algoritma eksposur otomatis (AE) menangani sisanya. Anda dapat mengontrol ISO + AE, dan exposure time + AE, yang memberikan fleksibilitas yang lebih besar dibandingkan dengan pendekatan saat ini, yaitu Anda memiliki kontrol manual penuh atau sepenuhnya mengandalkan eksposur otomatis.
fun setISOPriority() {
// ... (Your existing code before the snippet) ...
val availablePriorityModes = mStaticInfo.characteristics.get(
CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
)
// ... (Your existing code between the snippets) ...
// Turn on AE mode to set priority mode
reqBuilder.set(
CaptureRequest.CONTROL_AE_MODE,
CameraMetadata.CONTROL_AE_MODE_ON
)
reqBuilder.set(
CaptureRequest.CONTROL_AE_PRIORITY_MODE,
CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
)
reqBuilder.set(
CaptureRequest.SENSOR_SENSITIVITY,
TEST_SENSITIVITY_VALUE
)
val request: CaptureRequest = reqBuilder.build()
// ... (Your existing code after the snippet) ...
}
Penyesuaian tint dan color temperature yang presisi
Android 16 menambahkan dukungan kamera untuk penyesuaian tint dan suhu warna yang halus
untuk mendukung aplikasi perekaman video profesional dengan lebih baik. Di versi Android
sebelumnya, Anda dapat mengontrol setelan white balance melalui
CONTROL_AWB_MODE, yang berisi opsi yang terbatas pada
daftar preset, seperti Incandescent,
Cloudy, dan Twilight. COLOR_CORRECTION_MODE_CCT memungkinkan penggunaan
COLOR_CORRECTION_COLOR_TEMPERATURE dan
COLOR_CORRECTION_COLOR_TINT untuk penyesuaian
white balance yang akurat berdasarkan color temperature yang berkorelasi.
fun setCCT() {
// ... (Your existing code before this point) ...
val colorTemperatureRange: Range<Int> =
mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]
// Set to manual mode to enable CCT mode
reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30
val request: CaptureRequest = reqBuilder.build()
// ... (Your existing code after this point) ...
}
Contoh berikut menunjukkan tampilan foto setelah menerapkan penyesuaian suhu warna dan tint yang berbeda:
Deteksi adegan mode malam kamera
为了帮助应用了解何时切换到夜间模式相机会话以及何时从夜间模式相机会话切换出,Android 16 添加了 EXTENSION_NIGHT_MODE_INDICATOR。如果受支持,则可在 Camera2 内的 CaptureResult 中使用。
这是我们在Instagram 如何让用户拍出令人惊艳的低光照片博文中提到的即将推出的 API。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。
Tindakan intent pengambilan foto motion
Android 16 menambahkan tindakan Intent standar —
ACTION_MOTION_PHOTO_CAPTURE, dan
ACTION_MOTION_PHOTO_CAPTURE_SECURE — yang meminta
aplikasi kamera mengambil foto gerakan dan menampilkannya.
Anda harus meneruskan EXTRA_OUTPUT tambahan untuk mengontrol
tempat gambar akan ditulis, atau Uri melalui
Intent.setClipData(ClipData). Jika Anda tidak menetapkan
ClipData, nilai tersebut akan disalin ke sana untuk Anda saat memanggil
Context.startActivity(Intent).
Peningkatan gambar UltraHDR
Android 16 merupakan lanjutan upaya kami untuk menghadirkan kualitas gambar yang memukau dengan gambar
UltraHDR. Versi ini menambahkan dukungan untuk gambar UltraHDR dalam format file
HEIC. Gambar ini akan mendapatkan jenis ImageFormat
HEIC_ULTRAHDR dan akan berisi peta gain tersemat yang mirip
dengan format JPEG UltraHDR yang ada. Kami juga sedang mengerjakan dukungan AVIF untuk UltraHDR, jadi nantikan kabar terbarunya.
Selain itu, Android 16 menerapkan parameter tambahan di UltraHDR dari standar draf ISO 21496-1, termasuk kemampuan untuk mendapatkan dan menetapkan ruang warna tempat matematika gainmap harus diterapkan, serta dukungan untuk gambar dasar yang dienkode HDR dengan gainmap SDR.
Grafik
Android 16 menyertakan peningkatan grafis terbaru, seperti efek grafis kustom dengan AGSL.
Efek grafis kustom dengan AGSL
Android 16 menambahkan RuntimeColorFilter dan
RuntimeXfermode, yang memungkinkan Anda menulis efek kompleks seperti
Threshold, Sepia, dan Hue Saturation, serta menerapkannya untuk menggambar panggilan. Sejak Android
13, Anda dapat menggunakan AGSL untuk membuat
RuntimeShaders kustom yang memperluas Shader. API baru
mencerminkan hal ini, dengan menambahkan RuntimeColorFilter yang didukung AGSL yang
memperluas ColorFilter, dan efek Xfermode yang
memungkinkan Anda menerapkan komposisi dan penggabungan kustom berbasis AGSL antara piksel sumber dan
tujuan.
private val thresholdEffectString = """
uniform half threshold;
half4 main(half4 c) {
half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
half bw = step(threshold, luminosity);
return bw.xxx1 * c.a;
}"""
fun setCustomColorFilter(paint: Paint) {
val filter = RuntimeColorFilter(thresholdEffectString)
filter.setFloatUniform(0.5);
paint.colorFilter = filter
}
Konektivitas
Android 16 mengupdate platform untuk memberi aplikasi Anda akses ke kemajuan terbaru dalam teknologi nirkabel dan komunikasi.
Pengukuran jarak dengan keamanan yang ditingkatkan
Android 16 menambahkan dukungan untuk fitur keamanan yang andal di lokasi Wi-Fi pada perangkat yang didukung dengan 802.11az Wi-Fi 6, yang memungkinkan aplikasi menggabungkan akurasi yang lebih tinggi, skalabilitas yang lebih besar, dan penjadwalan dinamis protokol dengan peningkatan keamanan termasuk enkripsi berbasis AES-256 dan perlindungan terhadap serangan MITM. Hal ini memungkinkannya digunakan dengan lebih aman dalam kasus penggunaan kedekatan, seperti membuka kunci laptop atau pintu kendaraan. 802.11az terintegrasi dengan standar Wi-Fi 6, yang memanfaatkan infrastruktur dan kemampuannya untuk adopsi yang lebih luas dan deployment yang lebih mudah.
API pengukuran jarak generik
Android 16 menyertakan RangingManager baru, yang menyediakan
cara untuk menentukan jarak dan sudut pada hardware yang didukung antara perangkat
lokal dan perangkat jarak jauh. RangingManager mendukung penggunaan berbagai
teknologi pengukuran jarak seperti sounding saluran BLE, pengukuran jarak berbasis RSSI BLE, Ultra
Wideband, dan waktu perjalanan bolak-balik Wi-Fi.
Kehadiran perangkat pengelola perangkat pendamping
Di Android 16, API baru diperkenalkan untuk mengikat layanan aplikasi
pendamping Anda. Layanan akan terikat saat BLE berada dalam jangkauan dan Bluetooth terhubung
dan layanan akan dibatalkan ikatannya saat BLE berada di luar jangkauan atau Bluetooth
terputus. Aplikasi akan menerima callback
'onDevicePresenceEvent()' baru berdasarkan berbagai
DevicePresenceEvent.
Detail selengkapnya dapat ditemukan di
'startObservingDevicePresence(ObservingDevicePresenceRequest)'.
Media
Android 16 menyertakan berbagai fitur yang meningkatkan pengalaman media.
Peningkatan pemilih foto
Pemilih foto menyediakan cara bawaan yang aman bagi pengguna untuk memberikan akses aplikasi Anda ke gambar dan video yang dipilih dari penyimpanan lokal dan cloud, bukan seluruh koleksi media mereka. Dengan menggunakan kombinasi Komponen Sistem Modular melalui Update Sistem Google dan layanan Google Play, fitur ini didukung kembali ke Android 4.4 (API level 19). Integrasi hanya memerlukan beberapa baris kode dengan library Android Jetpack terkait.
Android 16 menyertakan peningkatan berikut pada pemilih foto:
- Alat pilih foto tersemat: API baru yang memungkinkan aplikasi menyertakan alat pilih foto ke dalam hierarki tampilannya. Hal ini memungkinkannya merasa seperti bagian aplikasi yang lebih terintegrasi sekaligus masih memanfaatkan isolasi proses yang memungkinkan pengguna memilih media tanpa memerlukan izin yang terlalu luas. Untuk memaksimalkan kompatibilitas di seluruh versi platform dan menyederhanakan integrasi, sebaiknya gunakan library Android Jetpack mendatang jika Anda ingin mengintegrasikan alat pilih foto tersemat.
- Cloud Search di pemilih foto: API baru yang memungkinkan penelusuran dari penyedia media cloud untuk pemilih foto Android. Fungsi penelusuran di pemilih foto akan segera hadir.
Video Profesional Lanjutan
Android 16 引入了对高级专业视频 (APV) 编解码器的支持,该编解码器专为专业级高品质视频录制和后期制作而设计。
APV 编解码器标准具有以下特点:
- 感知上无损的视频画质(接近原始视频画质)
- 复杂度低且吞吐量高的仅帧内编码(无像素域预测),以更好地支持编辑工作流
- 支持高比特率范围(最高几十 Gbps),适用于 2K、4K 和 8K 分辨率内容,由轻量级熵编码方案实现
- 帧平铺,用于沉浸式内容和启用并行编码和解码
- 支持各种色度采样格式和位深
- 支持多次解码和重新编码,且不会严重降低视觉质量
- 支持多视图视频和辅助视频,例如深度、Alpha 和预览
- 支持 HDR10/10+ 和用户定义的元数据
OpenAPV 项目提供了 APV 的参考实现。Android 16 将实现对 APV 422-10 配置文件的支持,该配置文件提供 YUV 422 色彩采样以及 10 位编码,并且目标比特率最高可达 2 Gbps。
Privasi
Android 16 menyertakan berbagai fitur yang membantu developer aplikasi melindungi privasi pengguna.
Update Health Connect
Health Connect 添加了 ACTIVITY_INTENSITY,这是一种根据世界卫生组织关于中等强度和剧烈强度活动的指南定义的数据类型。每个记录都需要提供开始时间、结束时间以及活动强度(中等或剧烈)。
Health Connect 还包含支持医疗记录的更新版 API。这样一来,应用便可在征得用户明确同意的情况下,读取和写入 FHIR 格式的医疗记录。
Privacy Sandbox di Android
Android 16 menggabungkan versi terbaru Privacy Sandbox di Android, yang merupakan bagian dari upaya berkelanjutan kami untuk mengembangkan teknologi yang memungkinkan pengguna mengetahui bahwa privasi mereka dilindungi. Situs kami memiliki informasi selengkapnya tentang program beta developer Privacy Sandbox di Android untuk membantu Anda memulai. Lihat Runtime SDK yang memungkinkan SDK berjalan di lingkungan runtime khusus yang terpisah dari aplikasi yang ditayangkan, sehingga memberikan pengamanan yang lebih kuat seputar pengumpulan dan pembagian data pengguna.
Keamanan
Android 16 menyertakan fitur yang membantu Anda meningkatkan keamanan aplikasi dan melindungi data aplikasi Anda.
API berbagi kunci
Android 16 menambahkan API yang mendukung berbagi akses ke
kunci Android Keystore dengan aplikasi lain. Class
KeyStoreManager baru mendukung
pemberian dan pencabutan akses ke kunci
oleh uid aplikasi, dan menyertakan API untuk aplikasi agar dapat mengakses kunci
yang dibagikan.
Faktor bentuk perangkat
Android 16 memberikan dukungan bagi aplikasi Anda untuk mendapatkan manfaat maksimal dari faktor bentuk Android.
Framework kualitas gambar dan audio standar untuk TV
Paket
MediaQuality baru di Android 16 mengekspos
serangkaian API standar untuk akses ke profil audio dan gambar serta
setelan terkait hardware. Hal ini memungkinkan aplikasi streaming membuat kueri profil dan
menerapkan profil tersebut ke media secara dinamis:
- Film yang dimaster dengan rentang dinamis yang lebih luas memerlukan akurasi warna yang lebih tinggi untuk melihat detail halus dalam bayangan dan menyesuaikan dengan cahaya sekitar, sehingga profil yang memilih akurasi warna daripada kecerahan mungkin sesuai.
- Acara olahraga live sering kali dimaster dengan rentang dinamis yang sempit, tetapi sering ditonton di siang hari, sehingga profil yang lebih mengutamakan kecerahan daripada akurasi warna dapat memberikan hasil yang lebih baik.
- Konten yang sepenuhnya interaktif menginginkan pemrosesan minimal untuk mengurangi latensi, dan menginginkan kecepatan frame yang lebih tinggi, itulah sebabnya banyak TV dilengkapi dengan profil game.
API ini memungkinkan aplikasi beralih antar-profil dan pengguna untuk menikmati penyesuaian TV yang didukung agar sesuai dengan konten mereka.
Internasionalisasi
Android 16 menambahkan fitur dan kemampuan yang melengkapi pengalaman pengguna saat perangkat digunakan dalam bahasa yang berbeda.
Teks vertikal
Android 16 添加了对垂直渲染和测量文本的低级支持,以便为库开发者提供基本的垂直书写支持。这对于日语等通常使用竖向书写系统的语言特别有用。Paint 类中添加了一个新标志 VERTICAL_TEXT_FLAG。使用 Paint.setFlags 设置此标志后,Paint 的文本测量 API 将报告垂直进度,而不是水平进度,并且 Canvas 将垂直绘制文本。
val text = "「春は、曙。」"
Box(
Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
drawIntoCanvas { canvas ->
val paint = Paint().apply { textSize = 64.sp.toPx() }
// Draw text vertically
paint.flags = paint.flags or VERTICAL_TEXT_FLAG
val height = paint.measureText(text)
canvas.nativeCanvas.drawText(
text,
0,
text.length,
size.width / 2,
(size.height - height) / 2,
paint
)
}
}
) {}
Penyesuaian sistem pengukuran
用户现在可以在“设置”中的地区偏好设置中自定义测量系统。用户偏好设置包含在语言区域代码中,因此您可以在 ACTION_LOCALE_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。
使用格式设置程序有助于提供符合当地体验的服务。例如,对于将手机设置为英语(丹麦)或将手机设置为英语(美国)并将公制作为首选测量系统的用户,“0.5 in”的英语(美国)对应于“12,7 mm”。
如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和地区。