Android 15 memperkenalkan fitur dan API baru yang hebat untuk para developer. Bagian berikut rangkum fitur tersebut 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 akan ditandai agar lebih mudah dilihat. Selain itu, untuk mempelajari area mana saja dalam aplikasi Anda yang mungkin memengaruhi perubahan platform, pastikan untuk meninjau perubahan perilaku Android 15 yang memengaruhi aplikasi saat menargetkan Android 15 dan perubahan perilaku yang memengaruhi semua aplikasi, terlepas daritargetSdkVersion
.
Kamera dan media
Android 15 menyertakan berbagai fitur yang meningkatkan pengalaman kamera dan media, serta memberi Anda akses ke alat dan hardware untuk mendukung kreator dalam mewujudkan visi mereka di Android.
Peningkatan Cahaya Rendah
Android 15 introduces Low Light Boost, a new auto-exposure mode available to both Camera 2 and the night mode camera extension. Low Light Boost adjusts the exposure of the Preview stream in low-light conditions. This is different from how the night mode camera extension creates still images, because night mode combines a burst of photos to create a single, enhanced image. While night mode works very well for creating a still image, it can't create a continuous stream of frames, but Low Light Boost can. Thus, Low Light Boost enables new camera capabilities, such as:
- Providing an enhanced image preview, so users are better able to frame their low-light pictures
- Scanning QR codes in low light
If you enable Low Light Boost, it automatically turns on when there's a low light level, and turns off when there's more light.
Apps can record off the Preview stream in low-light conditions to save a brightened video.
For more information, see Low Light Boost.
Kontrol kamera dalam aplikasi
Android 15 menambahkan ekstensi baru untuk kontrol yang lebih besar atas hardware kamera dan algoritmanya di perangkat yang didukung:
- Penyesuaian kekuatan flash lanjutan memungkinkan kontrol intensitas
flash yang akurat dalam mode
SINGLE
danTORCH
saat mengambil gambar.
Kontrol headroom HDR
Android 15 memilih headroom HDR yang sesuai untuk kemampuan
perangkat dasar dan kedalaman bit panel. Untuk halaman yang memiliki banyak konten
SDR, seperti aplikasi pesan yang menampilkan satu thumbnail HDR, perilaku
ini dapat berpengaruh buruk pada kecerahan konten SDR
yang dirasakan. Android 15 memungkinkan Anda mengontrol headroom HDR dengan
setDesiredHdrHeadroom
untuk mencapai keseimbangan antara konten SDR
dan HDR.
Kontrol tingkat kebisingan
Android 15 memperkenalkan dukungan untuk standar kenyaringan CTA-2075 untuk membantu Anda menghindari inkonsistensi kenyaringan audio dan memastikan pengguna tidak perlu terus-menerus menyesuaikan volume saat beralih antar-konten. Sistem ini memanfaatkan karakteristik perangkat output yang diketahui (headphone dan speaker) beserta metadata kenyaringan yang tersedia dalam konten audio AAC untuk menyesuaikan kenyaringan audio dan tingkat kompresi rentang dinamis secara cerdas.
Untuk mengaktifkan fitur ini, Anda harus memastikan metadata kenyaringan tersedia di
konten AAC dan mengaktifkan fitur platform di aplikasi Anda. Untuk itu, Anda
membuat instance objek LoudnessCodecController
dengan
memanggil metode factory create-nya dengan ID
sesi audio dari AudioTrack
terkait; tindakan ini
akan otomatis mulai menerapkan update audio. Anda dapat meneruskan
OnLoudnessCodecUpdateListener
untuk mengubah atau memfilter
parameter kebisingan sebelum diterapkan pada
MediaCodec
.
// Media contains metadata of type MPEG_4 OR MPEG_D
val mediaCodec = …
val audioTrack = AudioTrack.Builder()
.setSessionId(sessionId)
.build()
...
// Create new loudness controller that applies the parameters to the MediaCodec
try {
val lcController = LoudnessCodecController.create(mSessionId)
// Starts applying audio updates for each added MediaCodec
AndroidX media3 ExoPlayer akan segera diupdate guna memanfaatkan
API LoudnessCodecController
untuk integrasi aplikasi yang lancar.
Perangkat MIDI 2.0 Virtual
Android 13 menambahkan dukungan untuk menghubungkan ke perangkat MIDI 2.0 menggunakan USB, yang berkomunikasi menggunakan Universal MIDI Packets (UMP). Android 15 memperluas dukungan UMP ke aplikasi MIDI virtual, sehingga aplikasi komposisi dapat mengontrol aplikasi synthesizer sebagai perangkat MIDI 2.0 virtual seperti yang dilakukan dengan perangkat USB MIDI 2.0.
Konektivitas
Android 15 mengupdate platform untuk memberi aplikasi Anda akses ke kemajuan komunikasi terbaru.
Dukungan satelit
Android 15 terus memperluas dukungan platform untuk konektivitas satelit dan menyertakan beberapa elemen UI untuk memastikan pengalaman pengguna yang konsisten di seluruh lanskap konektivitas satelit.
Aplikasi dapat menggunakan ServiceState.isUsingNonTerrestrialNetwork()
untuk
mendeteksi saat perangkat terhubung ke satelit, sehingga memberi aplikasi lebih banyak informasi
mengapa layanan jaringan lengkap mungkin tidak tersedia. Selain itu, Android 15
menyediakan dukungan untuk aplikasi SMS dan MMS serta aplikasi RCS yang dimuat sebelumnya untuk menggunakan
konektivitas satelit untuk mengirim dan menerima pesan.
Pengalaman NFC yang lebih lancar
Android 15 berupaya membuat pengalaman pembayaran nirsentuh lebih lancar dan
andal, sekaligus terus mendukung ekosistem aplikasi NFC Android yang tangguh. Pada
perangkat yang didukung, aplikasi dapat meminta NfcAdapter
untuk masuk
mode mengamati, tempat perangkat memproses tetapi tidak merespons pembaca NFC, sehingga mengirimkan objek PollingFrame
layanan NFC aplikasi untuk diproses. Objek PollingFrame
dapat digunakan untuk melakukan autentikasi
sebelum komunikasi pertama ke pembaca NFC, yang memungkinkan transaksi
sekali ketuk dalam banyak kasus.
Selain itu, aplikasi kini dapat mendaftarkan sidik jari di perangkat yang didukung sehingga dapat diberi tahu tentang aktivitas loop polling, yang memungkinkan operasi yang lancar dengan beberapa aplikasi yang mendukung NFC.
Peran Wallet
Android 15 memperkenalkan peran Wallet baru yang memungkinkan integrasi yang lebih erat dengan aplikasi dompet pilihan pengguna. Peran ini menggantikan setelan pembayaran tanpa kontak fisik default NFC. Pengguna dapat mengelola pemegang peran Wallet dengan membuka Setelan > Aplikasi > Aplikasi Default.
Peran Wallet digunakan saat merutekan ketukan NFC untuk AID yang terdaftar dalam kategori pembayaran. Ketukan selalu membuka pemegang peran Wallet, kecuali jika aplikasi lain yang terdaftar untuk AID yang sama berjalan di latar depan.
Peran ini juga digunakan untuk menentukan tempat kartu QuickAccess Wallet harus berada saat diaktifkan. Jika peran disetel ke "Tidak ada", kartu QuickAccess tidak akan tersedia dan ketukan NFC kategori pembayaran hanya akan dikirim ke aplikasi latar depan.
Alat dan produktivitas developer
Meskipun sebagian besar upaya kami untuk meningkatkan pusat produktivitas Anda seputar alat seperti library Android Studio, Jetpack Compose, dan Android Jetpack, kami selalu mencari cara di platform ini untuk membantu Anda mewujudkan visi dengan lebih mudah.
Penyempurnaan PDF
Android 15 Developer Preview 2 includes an early preview of substantial
improvements to the PdfRenderer
APIs. Apps can incorporate
advanced features such as rendering password-protected files,
annotations, form editing, searching, and
selection with copy. Linearized PDF optimizations are supported to
speed local PDF viewing and reduce resource use.
The PdfRenderer
has been moved to a module that can be updated using Google
Play system updates independent of the platform release, and we're supporting
these changes back to Android 11 (API level 30) by creating a compatible
pre-Android 15 version of the API surface, called
PdfRendererPreV
.
We value your feedback on the enhancements we've made to the PdfRenderer
API
surface, and we plan to make it even easier to incorporate these APIs into your
app with an upcoming Android Jetpack library.
Peningkatan kualitas pengalihan bahasa otomatis
Android 14 menambahkan pengenalan multibahasa di perangkat dengan peralihan otomatis
antar-bahasa, tetapi hal ini dapat menyebabkan kata dihapus,
terutama saat bahasa beralih dengan lebih sedikit jeda di antara kedua
ucapan. Android 15 menambahkan kontrol tambahan untuk membantu aplikasi menyesuaikan peralihan ini
ke kasus penggunaannya.
EXTRA_LANGUAGE_SWITCH_INITIAL_ACTIVE_DURATION_TIME_MILLIS
membatasi pengalihan otomatis ke awal sesi audio, sedangkan
EXTRA_LANGUAGE_SWITCH_MATCH_SWITCHES
menonaktifkan
pengalihan bahasa setelah sejumlah tombol yang ditentukan. Opsi ini
sangat berguna jika Anda mengharapkan bahwa akan ada satu bahasa yang diucapkan
selama sesi yang harus terdeteksi otomatis.
Kontrol jeda baris terperinci
Starting in Android 15, a TextView
and the underlying
line breaker can preserve the given portion of text in the same line to improve
readability. You can take advantage of this line break customization by using
the <nobreak>
tag in string resources or
createNoBreakSpan
. Similarly, you can preserve words from
hyphenation by using the <nohyphen>
tag or
createNoHyphenationSpan
.
For example, the following string resource doesn't include a line break, and renders with the text "Pixel 8 Pro." breaking in an undesirable place:
<resources>
<string name="pixel8pro">The power and brains behind Pixel 8 Pro.</string>
</resources>
In contrast, this string resource includes the <nobreak>
tag, which wraps the
phrase "Pixel 8 Pro." and prevents line breaks:
<resources>
<string name="pixel8pro">The power and brains behind <nobreak>Pixel 8 Pro.</nobreak></string>
</resources>
The difference in how these strings are rendered is shown in the following images:
Update OpenJDK 17
Android 15 melanjutkan pekerjaan memuat ulang library inti Android agar selaras dengan fitur dalam rilis OpenJDK LTS terbaru.
Fitur dan peningkatan utama berikut disertakan:
- Peningkatan kualitas kehidupan terkait buffer NIO
- Forum
- Metode
math
danstrictmath
tambahan - Update paket
util
termasukcollection
,map
, danset
yang diurutkan - Dukungan
ByteBuffer
diDeflater
- Update keamanan seperti
X500PrivateCredential
dan update kunci keamanan
API ini diupdate di lebih dari satu miliar perangkat yang menjalankan Android 12 (API level 31) dan yang lebih baru melalui update Sistem Google Play, sehingga Anda dapat menargetkan fitur pemrograman terbaru.
Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Pengarsipan aplikasi
Android and Google Play announced support for app archiving last year, allowing users to free up space by partially removing infrequently used apps from the device that were published using Android App Bundle on Google Play. Android 15 now includes OS level support for app archiving and unarchiving, making it easier for all app stores to implement it.
Apps with the REQUEST_DELETE_PACKAGES
permission can call the
PackageInstaller
requestArchive
method to request archiving an
installed app package, which removes the APK and any cached files, but persists
user data. Archived apps are returned as displayable apps through the
LauncherApps
APIs; users will see a UI treatment to highlight that those
apps are archived. If a user taps on an archived app, the responsible installer
will get a request to unarchive it, and the restoration process can be
monitored by the ACTION_PACKAGE_ADDED
broadcast.
Aksesibilitas
Android 15 menambahkan fitur yang meningkatkan aksesibilitas bagi pengguna.
Braille yang Lebih Baik
Di Android 15, kami telah memungkinkan TalkBack mendukung layar Braille yang menggunakan standar HID melalui USB dan Bluetooth yang aman.
Standar ini, seperti yang digunakan oleh mouse dan keyboard, akan membantu Android mendukung lebih banyak layar Braille dari waktu ke waktu.
Perangkat layar besar dan faktor bentuk
Android 15 memberi aplikasi Anda dukungan untuk mengoptimalkan faktor bentuk Android, termasuk perangkat layar besar, perangkat foldable, dan perangkat foldable.
Dukungan layar penutup
Aplikasi Anda dapat mendeklarasikan properti yang digunakan Android 15 untuk
memungkinkan Application
atau Activity
ditampilkan di layar penutup
kecil pada perangkat foldable yang didukung. Layar ini terlalu kecil untuk
dianggap sebagai target kompatibel untuk menjalankan aplikasi Android, tetapi aplikasi Anda dapat
memilih untuk mendukungnya, sehingga aplikasi tersedia di lebih banyak tempat.
Performa dan baterai
Android melanjutkan fokusnya untuk membantu meningkatkan performa dan kualitas aplikasi Anda. Android 15 memperkenalkan API baru yang membantu membuat tugas di aplikasi Anda lebih efisien untuk menjalankan, mengoptimalkan performa aplikasi, dan mengumpulkan insight tentang aplikasi Anda.
API ApplicationStartInfo
In previous versions of Android, app startup has been a bit of a mystery. It was
challenging to determine within your app whether it started from a cold, warm,
or hot state. It was also difficult to know how long your app spent during the
various launch phases: forking the process, calling onCreate
, drawing the
first frame, and more. When your Application
class was instantiated, you had no
way of knowing whether the app started from a broadcast, a content provider, a
job, a backup, boot complete, an alarm, or an Activity
.
The ApplicationStartInfo
API on Android 15 provides
all of this and more. You can even choose to add your own timestamps into the
flow to help collect timing data in one place. In addition to collecting
metrics, you can use ApplicationStartInfo
to help directly optimize app
startup; for example, you can eliminate the costly instantiation of UI-related
libraries within your Application
class when your app is starting up due to a
broadcast.
Informasi ukuran aplikasi yang mendetail
Since Android 8.0 (API level 26), Android has included the
StorageStats.getAppBytes
API that summarizes the installed
size of an app as a single number of bytes, which is a sum of the APK size, the
size of files extracted from the APK, and files that were generated on the
device such as ahead-of-time (AOT) compiled code. This number is not very
insightful in terms of how your app is using storage.
Android 15 adds the
StorageStats.getAppBytesByDataType([type])
API, which lets
you get insight into how your app is using up all that space, including APK file
splits, AOT and speedup related code, dex metadata, libraries, and guided
profiles.
Pembuatan profil yang dikelola aplikasi
Android 15 menyertakan class ProfilingManager
yang baru, yang memungkinkan Anda
mengumpulkan informasi pembuatan profil dari dalam aplikasi. Kami berencana menggabungkan ini
dengan Android Jetpack API yang akan menyederhanakan pembuatan permintaan
pembuatan profil, tetapi API inti akan memungkinkan pengumpulan heap dump, profil
heap, pengambilan sampel stack, dan lainnya. Fungsi ini memberikan callback ke aplikasi Anda dengan
tag yang disediakan untuk mengidentifikasi file output, yang dikirim ke direktori file
aplikasi. API melakukan pembatasan kapasitas untuk meminimalkan dampak performa.
Peningkatan database SQLite
Android 15 memperkenalkan SQLite API baru yang mengekspos fitur lanjutan dari mesin SQLite dasar yang menargetkan masalah performa tertentu yang dapat terjadi dalam aplikasi.
Developer harus mempelajari praktik terbaik untuk performa SQLite guna memaksimalkan database SQLite, terutama saat bekerja dengan database besar atau saat menjalankan kueri yang sensitif terhadap latensi.
- Transaksi yang ditangguhkan dalam mode hanya baca: saat mengeluarkan transaksi yang bersifat
hanya baca (jangan sertakan pernyataan tulis), gunakan
beginTransactionReadOnly()
danbeginTransactionWithListenerReadOnly(SQLiteTransactionListener)
untuk menerbitkan transaksiDEFERRED
hanya baca. Transaksi tersebut dapat berjalan bersamaan satu sama lain, dan jika database berada dalam mode WAL, transaksi dapat berjalan bersamaan dengan transaksiIMMEDIATE
atauEXCLUSIVE
. - Jumlah baris dan ID: API baru ditambahkan untuk mengambil jumlah baris yang diubah atau ID baris yang terakhir disisipkan tanpa mengeluarkan kueri tambahan.
getLastChangedRowCount()
menampilkan jumlah baris yang disisipkan, diperbarui, atau dihapus oleh pernyataan SQL terbaru dalam transaksi saat ini, sedangkangetTotalChangedRowCount()
menampilkan jumlah pada koneksi saat ini.getLastInsertRowId()
menampilkanrowid
dari baris terakhir yang akan disisipkan pada koneksi saat ini. - Pernyataan mentah: mengeluarkan pernyataan SQlite mentah, dengan mengabaikan wrapper kemudahan dan overhead pemrosesan tambahan yang mungkin dikenakannya.
Update Android Dynamic Performance Framework
Android 15 continues our investment in the Android Dynamic Performance Framework (ADPF), a set of APIs that allow games and performance intensive apps to interact more directly with power and thermal systems of Android devices. On supported devices, Android 15 will add new ADPF capabilities:
- A power-efficiency mode for hint sessions to indicate that their associated threads should prefer power saving over performance, great for long-running background workloads.
- GPU and CPU work durations can both be reported in hint sessions, allowing the system to adjust CPU and GPU frequencies together to best meet workload demands.
- Thermal headroom thresholds to interpret possible thermal throttling status based on headroom prediction.
To learn more about how to use ADPF in your apps and games, head over to the documentation.
Privasi
Android 15 menyertakan berbagai fitur yang membantu developer aplikasi melindungi privasi pengguna.
Deteksi perekaman layar
Android 15 menambahkan dukungan untuk aplikasi untuk mendeteksi bahwa aplikasi sedang direkam. Callback dipanggil setiap kali aplikasi bertransisi antara terlihat atau tidak terlihat dalam perekaman layar. Aplikasi dianggap terlihat jika aktivitas yang dimiliki oleh UID proses pendaftaran direkam. Dengan demikian, jika aplikasi menjalankan operasi sensitif, Anda dapat memberi tahu pengguna bahwa mereka sedang direkam.
val mCallback = Consumer<Int> { state ->
if (state == SCREEN_RECORDING_STATE_VISIBLE) {
// We're being recorded
} else {
// We're not being recorded
}
}
override fun onStart() {
super.onStart()
val initialState =
windowManager.addScreenRecordingCallback(mainExecutor, mCallback)
mCallback.accept(initialState)
}
override fun onStop() {
super.onStop()
windowManager.removeScreenRecordingCallback(mCallback)
}
Kemampuan IntentFilter yang diperluas
Android 15 dibuat untuk mendukung resolusi Intent
yang lebih tepat melalui
UriRelativeFilterGroup
, yang berisi kumpulan
objek UriRelativeFilter
yang membentuk kumpulan aturan pencocokan Intent
yang masing-masing harus dipenuhi, termasuk parameter kueri URL, fragmen
URL, dan aturan pemblokiran atau pengecualian.
Aturan ini dapat ditentukan dalam file XML AndroidManifest
dengan tag
<uri-relative-filter-group>
baru, yang secara opsional dapat menyertakan tag
android:allow
. Tag ini dapat berisi tag <data>
yang menggunakan atribut tag data
yang ada serta atribut android:query
dan android:fragment
baru.
Berikut adalah contoh sintaksis AndroidManifest
:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:domain="astore.com" />
<uri-relative-filter-group>
<data android:pathPrefix="/auth" />
<data android:query="region=na" />
</uri-relative-filter-group>
<uri-relative-filter-group android:allow="false">
<data android:pathPrefix="/auth" />
<data android:query="mobileoptout=true" />
</uri-relative-filter-group>
<uri-relative-filter-group android:allow="false">
<data android:pathPrefix="/auth" />
<data android:fragmentPrefix="faq" />
</uri-relative-filter-group>
</intent-filter>
Privacy Sandbox di Android
Android 15 menghadirkan Layanan Iklan Android ke level ekstensi 10, dengan menyertakan versi terbaru Privacy Sandbox di Android, bagian dari upaya kami untuk mengembangkan teknologi baru yang meningkatkan privasi pengguna dan memungkinkan pengalaman iklan yang dipersonalisasi yang efektif untuk aplikasi seluler. Halaman sandbox privasi kami memiliki informasi selengkapnya tentang Privacy Sandbox di pratinjau developer Android dan program beta untuk membantu Anda memulai.
Health Connect
Android 15 mengintegrasikan ekstensi Android 14 10 seputar Health Connect dari Android, platform yang aman dan terpusat untuk mengelola serta membagikan data kesehatan dan kebugaran yang dikumpulkan aplikasi. Update ini menambahkan dukungan untuk jenis data baru di seluruh kebugaran, nutrisi, dan lainnya.
Berbagi layar sebagian
Android 15 mendukung berbagi layar sebagian sehingga pengguna dapat membagikan atau merekam hanya
jendela aplikasi, bukan seluruh layar perangkat. Fitur ini, pertama kali diaktifkan di
Android 14 QPR2, mencakup
callback MediaProjection
yang memungkinkan aplikasi Anda
menyesuaikan pengalaman berbagi layar sebagian. Perhatikan bahwa untuk aplikasi yang menargetkan
Android 14 (level API 34) atau yang lebih tinggi,
izin pengguna sekarang diperlukan untuk setiap
sesi pengambilan MediaProjection
.
Keamanan
Android 15 membantu Anda meningkatkan keamanan aplikasi dan melindungi data aplikasi Anda.
Pengelolaan kunci untuk enkripsi end-to-end
Kami memperkenalkan E2eeContactKeysManager
di Android 15, yang
memfasilitasi enkripsi menyeluruh (E2EE) di aplikasi Android Anda dengan menyediakan
API level OS untuk penyimpanan kunci publik kriptografis.
E2eeContactKeysManager
dirancang untuk berintegrasi dengan aplikasi
kontak platform guna memberi pengguna cara terpusat untuk mengelola dan memverifikasi
kunci publik kontak mereka.
Melindungi file menggunakan fs-verity
FileIntegrityManager
Android 15 menyertakan API baru
yang memanfaatkan kecanggihan fitur fs-verity
di kernel Linux. Dengan fs-verity, file dapat dilindungi dengan tanda tangan
kriptografi kustom, sehingga membantu Anda memastikan file
tidak dimodifikasi atau dirusak. Hal ini menghasilkan
keamanan yang lebih baik, sehingga melindungi dari potensi malware atau modifikasi file
tidak sah yang dapat membahayakan fungsi atau data aplikasi Anda.
Pengalaman pengguna
Android 15 memberi developer aplikasi dan pengguna lebih banyak kontrol dan fleksibilitas untuk mengonfigurasi perangkat agar sesuai dengan kebutuhan.
Peningkatan aturan Jangan Ganggu
AutomaticZenRule
lets apps customize Attention
Management (Do Not Disturb) rules and decide when to activate or deactivate
them. Android 15 greatly enhances these rules with the goal of improving the
user experience. The following enhancements are included:
- Adding types to
AutomaticZenRule
, allowing the system to apply special treatment to some rules. - Adding an icon to
AutomaticZenRule
, helping to make the modes be more recognizable. - Adding a
triggerDescription
string toAutomaticZenRule
that describes the conditions on which the rule should become active for the user. - Added
ZenDeviceEffects
toAutomaticZenRule
, allowing rules to trigger things like grayscale display, night mode, or dimming the wallpaper.
Internasionalisasi
Android 15 menambahkan fitur dan kemampuan yang melengkapi pengalaman pengguna saat perangkat digunakan dalam berbagai bahasa.
Justifikasi antar-karakter
Starting with Android 15, text can be justified utilizing letter spacing by
using JUSTIFICATION_MODE_INTER_CHARACTER
. Inter-word justification was
first introduced in Android 8.0 (API level 26), and inter-character
justification provides similar capabilities for languages that use the
whitespace character for segmentation, such as Chinese, Japanese, and others.