Android 12 memperkenalkan fitur dan API baru yang hebat bagi para developer. Bagian di bawah ini membantu Anda mempelajari fitur-fitur yang tersedia untuk aplikasi Anda, serta mulai menggunakan API yang terkait.
Untuk mengetahui daftar mendetail tentang API yang baru, diubah, dan dihapus, baca artikel Perbedaan API laporan. Untuk mengetahui detail tentang API baru, buka halaman Android Referensi API — API baru ditandai agar lebih terlihat. Selain itu, untuk mempelajari area mana saja dalam aplikasi Anda yang dapat terpengaruh oleh perubahan platform, pastikan untuk memeriksanya perubahan perilaku Android 12 untuk aplikasi yang menargetkan Android 12 dan untuk semua pengguna aplikasi.
Pengalaman pengguna
Material You
Android 12 memperkenalkan bahasa desain baru yang disebut Material You, yang akan membantu Anda mem-build aplikasi yang lebih dipersonalisasi dan menarik. Untuk menghadirkan semua update Desain Material 3 terbaru ke dalam aplikasi Anda, coba Komponen Desain Material versi alfa.
Peningkatan widget
Android 12 mengubah API Widget yang ada untuk menghadirkan pengalaman yang lebih baik bagi pengguna dan developer di platform dan peluncur. Kami telah membuat panduan untuk membantu memastikan bahwa widget Anda kompatibel dengan Android 12 dan untuk memperbarui widget tersebut dengan fitur baru.
Lihat peningkatan widget Android 12 untuk informasi selengkapnya.
Penyisipan konten lengkap
Android 12 memperkenalkan API terpadu baru yang memungkinkan aplikasi Anda menerima konten lengkap dari sumber yang tersedia, seperti papan klip, keyboard, atau tarik lalu lepas.
Untuk mengetahui informasi selengkapnya, lihat Menerima konten lengkap.
API layar pembuka aplikasi
Android 12 memperkenalkan animasi peluncuran aplikasi baru untuk semua aplikasi yang menyertakan gerakan ke dalam aplikasi dari titik peluncuran, layar pembuka yang menampilkan ikon aplikasi, serta transisi ke aplikasi tersebut. Lihat panduan developer layar pembuka untuk detail selengkapnya.
API sudut bulat
Android 12 memperkenalkan RoundedCorner
dan WindowInsets.getRoundedCorner(int
position)
,
yang memberikan radius dan titik tengah untuk sudut bulat.
Untuk mengetahui informasi selengkapnya, lihat Sudut bulat.
Pengalaman sentuhan yang kaya
Android 12 memperluas alat untuk membuat respons haptik yang informatif untuk UI peristiwa, efek imersif dan menyenangkan untuk game, serta haptic yang menarik perhatian untuk produktivitas.
Efek aktuator
Android 12 menambahkan efek ekspresif seperti tick rendah yang memanfaatkan bandwidth frekuensi yang lebih luas dari aktuator terbaru. Developer game kini dapat mengakses beberapa aktuator berbeda secara terpisah di pengontrol game untuk memberikan efek yang sama secara sinkron atau efek sentuhan yang berbeda pada beberapa aktuator. Untuk developer, sebaiknya gunakan konstanta dan primitif sebagai komponen penyusun untuk efek sentuhan yang kaya - konstanta untuk meningkatkan peristiwa UI dan alat penggabung efek haptik guna mengurutkan primitif untuk efek yang lebih kompleks. API ini tersedia untuk dicoba di perangkat Pixel 4, dan kami terus bekerja sama dengan partner pembuat perangkat untuk menghadirkan dukungan sentuhan terbaru kepada pengguna di seluruh ekosistem.
Efek haptik yang digabungkan dengan audio
Aplikasi Android 12 dapat membuat respons haptik yang berasal dari sesi audio menggunakan getaran ponsel. Dengan begitu, Anda memiliki kesempatan untuk memberikan pengalaman bermain game dan mendengarkan audio yang lebih imersif. Misalnya, nada dering yang ditingkatkan via sentuhan dapat membantu mengidentifikasi penelepon, atau game mengemudi dapat menyimulasikan nuansa medan yang kasar.
Baca dokumentasi referensi
HapticGenerator
untuk mengetahui informasi selengkapnya.
AppSearch
Android 12 memperkenalkan AppSearch, sebuah mesin telusur di perangkat dengan performa tinggi, sebagai layanan sistem. AppSearch memungkinkan aplikasi mengindeks data terstruktur dan menelusurinya dengan kemampuan penelusuran teks lengkap bawaan. Selain itu, AppSearch mendukung fitur penelusuran native, seperti pengindeksan dan pengambilan yang sangat efisien, dukungan multibahasa, dan peringkat relevansi.
![Diagram yang menggambarkan pengindeksan dan penelusuran dalam AppSearch](https://developer.android.com/static/images/about/versions/12/appsearch.png?authuser=9&hl=id)
AppSearch tersedia dalam dua ragam: indeks lokal untuk aplikasi Anda yang kompatibel dengan Android versi lama, atau indeks terpusat yang dikelola untuk seluruh sistem di Android 12. Dengan menggunakan indeks pusat, aplikasi Anda dapat mengizinkan datanya ditampilkan di platform UI sistem oleh komponen inteligensi yang telah diinstal di sistem. Data yang ditampilkan pada platform UI sistem bergantung pada OEM. Selain itu, aplikasi Anda dapat berbagi data secara aman dengan aplikasi lain, agar aplikasi tersebut juga dapat menelusuri data tersebut.
Pelajari AppSearch lebih lanjut di panduan developer, lalu mulailah menggunakannya dengan library AppSearch Jetpack, yang menyediakan platform API yang cocok untuk developer serta dukungan pemroses anotasi.
Mode Game
Game Mode API dan Game Mode intervensi memungkinkan Anda mengoptimalkan gameplay dengan memprioritaskan karakteristik, seperti performa atau masa pakai baterai berdasarkan setelan pengguna atau konfigurasi khusus game.
Untuk mengetahui informasi selengkapnya, lihat Mode Game.
Rekomendasi dan peningkatan fitur picture-in-picture (PiP)
Android 12 memperkenalkan peningkatan berikut untuk mode PiP:
Dukungan untuk gestur PiP baru
Android 12 kini mendukung penyembunyian dan cubit untuk memperbesar gestur untuk PiP periode:
Untuk menyembunyikan jendela, pengguna dapat menarik jendela ke kiri atau kanan tepi. Untuk membatalkan penyembunyian batas jendela, pengguna dapat mengetuk bagian jendela yang disembunyikan atau menyingkapnya.
Pengguna kini dapat mengubah ukuran jendela PiP menggunakan cubit untuk memperbesar.
Rekomendasi fitur baru yang mendukung pengalaman transisi PiP yang ditingkatkan
Android 12 menambahkan peningkatan tampilan yang signifikan ke animasi transisi antara jendela layar penuh dan PiP. Kami sangat menyarankan menerapkan semua perubahan yang berlaku; setelah Anda melakukannya, perubahan ini otomatis diskalakan ke perangkat layar besar seperti perangkat foldable dan tablet tanpa pekerjaan lebih lanjut yang diperlukan.
Fitur tersebut adalah sebagai berikut:
Flag API baru untuk transisi yang lebih lancar ke mode PiP dengan navigasi gestur
Gunakan flag
setAutoEnterEnabled
untuk memberikan transisi yang lebih lancar ke mode PiP saat menggeser ke beranda dalam mode navigasi gestur. Sebelumnya, Android menunggu animasi geser ke beranda agar selesai sebelum memudar di jendela PiP.Animasi yang lebih halus saat masuk dan keluar dari mode PiP
SourceRectHint
flag sekarang digunakan kembali untuk menerapkan animasi yang lebih halus saat masuk dan keluar Mode PiP.Flag API baru untuk menonaktifkan pengubahan ukuran yang lancar untuk konten non-video.
Flag
SeamlessResizeEnabled
memberikan animasi cross-fading yang jauh lebih halus saat mengubah ukuran konten non-video di jendela PiP. Sebelumnya, mengubah ukuran konten non-video di jendela PiP dapat membuat artefak visual yang janggal.
Notifikasi panggilan telepon baru memungkinkan untuk menentukan urutan panggilan masuk
Android 12 menambahkan gaya notifikasi baru
Notification.CallStyle
untuk panggilan telepon. Dengan menggunakan template ini, aplikasi Anda akan dapat menunjukkan pentingnya
panggilan aktif dengan menampilkan chip yang muncul, yang menunjukkan waktu panggilan di
status bar. Pengguna dapat mengetuk chip ini untuk kembali ke panggilannya.
Karena panggilan masuk dan sedang berlangsung merupakan yang hal paling penting bagi pengguna, notifikasi ini diberi urutan teratas pada menu. Urutan ini juga memungkinkan sistem untuk meneruskan panggilan yang diprioritaskan ini ke perangkat lain.
Terapkan kode berikut untuk semua jenis panggilan.
Kotlin
// Create a new call with the user as caller. val incoming_caller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as caller. Person incoming_caller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
Gunakan forIncomingCall()
untuk membuat notifikasi gaya panggilan untuk panggilan masuk.
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller);
Gunakan forOngoingCall()
untuk membuat notifikasi gaya panggilan pada panggilan yang sedang berlangsung.
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller);
Gunakan forScreeningCall()
untuk membuat notifikasi gaya panggilan guna menyaring panggilan.
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
Dukungan gambar yang diperkaya untuk notifikasi
Di Android 12, Anda kini dapat memperkaya pengalaman notifikasi aplikasi dengan
menyediakan gambar animasi di notifikasi MessagingStyle()
dan BigPictureStyle()
. Selain itu, aplikasi Anda kini dapat memungkinkan pengguna mengirim pesan gambar saat
mereka membalas pesan dari menu notifikasi.
Peningkatan mode imersif untuk navigasi gestur
Android 12 menggabungkan perilaku yang ada untuk memudahkan pengguna melakukan perintah navigasi gestur saat dalam mode imersif. Selain itu, Android 12 menyediakan perilaku kompatibilitas mundur untuk mode imersif melekat.
Berbagi URL terbaru (khusus Pixel)
Pada perangkat Pixel, pengguna kini dapat berbagi link ke konten web yang baru-baru ini dilihat langsung dari layar Terbaru. Setelah mengunjungi konten dalam aplikasi, pengguna dapat menggeser ke layar Terbaru dan menemukan aplikasi tempat mereka melihat konten, lalu mengetuk tombol link untuk menyalin atau membagikan URL.
Untuk informasi selengkapnya, lihat Mengaktifkan URL terbaru berbagi.
Keamanan dan privasi
Dasbor Privasi
Pada perangkat didukung yang menjalankan Android 12 atau yang lebih baru, layar Dasbor Privasi muncul di setelan sistem. Di layar ini, pengguna dapat mengakses layar terpisah yang muncul saat aplikasi mengakses informasi lokasi, kamera, dan mikrofon. Setiap layar menampilkan linimasa saat aplikasi yang berbeda telah mengakses jenis data tertentu. Gambar 1 menunjukkan linimasa akses data untuk informasi lokasi.
Aplikasi Anda dapat memberikan alasan bagi pengguna untuk membantu mereka memahami mengapa aplikasi Anda mengakses informasi lokasi, kamera, atau mikrofon. Alasan ini dapat muncul di layar Dasbor Privasi yang baru, layar izin aplikasi, atau keduanya.
Izin Bluetooth
Android 12 memperkenalkan izin
BLUETOOTH_SCAN
,
BLUETOOTH_ADVERTISE
,
dan
BLUETOOTH_CONNECT
. Izin ini mempermudah aplikasi yang menargetkan
Android 12 untuk berinteraksi dengan perangkat
Bluetooth, terutama untuk aplikasi yang tidak
memerlukan akses ke lokasi perangkat.
Memperbarui pernyataan izin Bluetooth aplikasi Anda
Guna menyiapkan perangkat untuk menargetkan Android 12 atau yang lebih baru, perbarui logika aplikasi Anda. Dibandingkan mendeklarasikan kumpulan izin Bluetooth lama, deklarasikan kumpulan izin Bluetooth yang lebih modern.
Pencarian grup izin
Di Android 12 atau yang lebih baru, Anda dapat mengkueri cara sistem mengatur izin yang disediakan platform ke dalam grup izin:
- Untuk menentukan grup izin tempat sistem telah menerapkan
izin yang ditentukan platform, panggil
getGroupOfPlatformPermission()
. - Untuk menentukan izin yang ditentukan platform yang telah diterapkan sistem ke dalam
grup izin tertentu, panggil
getPlatformPermissionsForGroup()
.
Menyembunyikan jendela overlay aplikasi
Untuk memberi developer kontrol lebih besar atas apa yang dilihat pengguna saat mereka berinteraksi dengan aplikasi
developer, Android 12 memperkenalkan kemampuan untuk menyembunyikan
jendela overlay yang digambar oleh aplikasi yang memiliki izin
SYSTEM_ALERT_WINDOW
.
Setelah menyatakan izin HIDE_OVERLAY_WINDOWS
, suatu aplikasi dapat memanggil setHideOverlayWindows()
untuk menunjukkan bahwa semua jendela dengan jenis TYPE_APPLICATION_OVERLAY
harus disembunyikan saat jendela aplikasi terlihat. Aplikasi dapat memilih untuk melakukannya
saat menampilkan layar sensitif, seperti alur konfirmasi transaksi.
Aplikasi yang menampilkan jendela jenis TYPE_APPLICATION_OVERLAY
harus mempertimbangkan
alternatif yang mungkin lebih sesuai untuk kasus penggunaannya, seperti
picture-in-picture atau
balon.
Flag perlindungan izin penanda tangan yang diketahui
Mulai dari Android 12, atribut
knownCerts
untuk
izin level tanda tangan
memungkinkan Anda melihat ringkasan sertifikat
tanda tangan yang diketahui pada saat
deklarasi.
Aplikasi Anda dapat mendeklarasikan atribut ini dan menggunakan flag knownSigner
untuk memungkinkan
perangkat dan aplikasi memberikan izin tanda tangan ke aplikasi
lain, tanpa
harus menandatangani aplikasi di waktu produksi dan pengiriman perangkat.
Pengesahan properti perangkat
Android 12 memperluas rangkaian aplikasi yang dapat memverifikasi properti perangkat yang berada dalam sertifikat pengesahan saat aplikasi ini membuat kunci baru.
Mulai Android 9 (API level 28), pemilik kebijakan perangkat (DPO) yang menggunakan Keymaster 4.0 atau yang lebih baru dapat memverifikasi properti perangkat di sertifikat pengesahan ini. Mulai di
Android 12, aplikasi apa pun yang menargetkan Android 12 (API level 31) atau yang lebih baru dapat menjalankan
verifikasi ini menggunakan
metode
setDevicePropertiesAttestationIncluded()
.
Properti perangkat yang dihasilkan mencakup kolom
Build
berikut:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
Tindakan notifikasi layar penguncian aman
Mulai di Android 12, class Notification.Action.Builder
mendukung metode setAuthenticationRequired()
yang memungkinkan aplikasi Anda mewajibkan perangkat dibuka kuncinya sebelum aplikasi memanggil tindakan notifikasi tertentu. Metode ini membantu menambahkan
lapisan keamanan tambahan pada notifikasi di perangkat yang terkunci.
String yang dapat dilokalkan untuk BiometricPrompt
Android 12 memperkenalkan API baru untuk membantu Anda mengoptimalkan pengalaman pengguna autentikasi biometrik aplikasi Anda. Class bertingkat BiometricManager.Strings
yang baru menyertakan getButtonLabel()
,
getPromptMessage()
,
dan getSettingName()
,
yang memungkinkan aplikasi Anda mengambil label tombol yang dapat dibaca pengguna dan dilokalkan,
pesan perintah, atau nama setelan aplikasi. Gunakan label ini untuk membuat petunjuk untuk pengguna
yang lebih akurat dan khusus untuk metode autentikasi
biometrik yang digunakan, seperti "Gunakan face unlock" atau "Gunakan sidik jari untuk melanjutkan".
Deteksi phishing di aplikasi pesan (khusus Pixel)
![](https://developer.android.com/static/images/about/versions/12/phishing-detection.png?authuser=9&hl=id)
Pada perangkat Pixel yang didukung, Android 12 menjalankan deteksi phishing pada pesan yang diterima di aplikasi pesan populer. Sistem menggunakan machine learning di perangkat untuk mendeteksi aktivitas yang mencurigakan. Saat terdeteksi, sistem akan menampilkan overlay keamanan di atas UI aplikasi pesan untuk memperingatkan pengguna. Misalnya, deteksi phishing dapat memperingatkan pengguna tentang potensi risiko berikut:
- Permintaan yang mencurigakan, seperti mengirim kode, uang, atau sejenisnya
- URL tidak tepercaya
- Lampiran berbahaya
- Link ke aplikasi berbahaya
Selain memperingatkan pengguna, overlay juga memungkinkan pengguna melaporkan pesan yang mencurigakan dan memberikan masukan tentang peringatan yang dikeluarkan oleh sistem.
Developer dapat memilih untuk tidak menggunakan fitur ini dengan menambahkan tag metadata baru termasuk
string com.google.android.ALLOW_PHISHING_DETECTION
dalam file manifes
aplikasinya. Contoh:
<manifest>
<application android:name="com.messagingapp">
<meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />
</application>
</manifest>
Media
Transcoding media yang kompatibel
Mulai dari Android 12 (API level 31), sistem dapat otomatis melakukan transcoding video HEVC(H.265) dan HDR (HDR10 dan HDR10+) yang direkam di perangkat menjadi AVC (H.264), format yang kompatibel dengan berbagai versi pemutar standar. Cara ini memanfaatkan codec modern jika tersedia tanpa mengorbankan kompatibilitas dengan versi aplikasi yang lebih lama.
Lihat transcoding media yang kompatibel untuk mengetahui detail selengkapnya.
Class performa
Android 12 memperkenalkan standar yang disebut class performa. Class performa akan menentukan kemampuan hardware di luar persyaratan dasar Android. Setiap perangkat Android akan mendeklarasikan class performa yang didukungnya. Developer dapat memeriksa class performa perangkat saat runtime dan memberikan upgrade pengalaman guna memanfaatkan kemampuan perangkat secara penuh.
Lihat Class performa untuk mengetahui detail selengkapnya.
Peningkatan encoding video
Android 12 menentukan kumpulan kunci standar untuk mengontrol nilai parameter kuantisasi (QP) untuk encoding video yang akan memungkinkan developer menghindari kode khusus vendor.
Kunci baru tersedia di MediaFormat
API dan juga di library NDK Media.
Dimulai dengan encoder video Android 12 yang menerapkan batas kualitas minimum. Ini menjamin pengguna tidak akan mendapatkan kualitas yang sangat rendah saat mengenkode video dengan kompleksitas adegan yang tinggi.
Fokus audio
Mulai Android 12 (API level 31), saat aplikasi meminta fokus audio saat aplikasi lain memiliki fokus dan sedang melakukan pemutaran, sistem akan memudarkan aplikasi yang sedang diputar.
Lihat Fokus audio di Android 12 dan yang lebih baru untuk detail selengkapnya.
Update MediaDrm
Untuk menentukan apakah komponen decoder aman diperlukan
dengan MediaDrm
API saat ini, Anda harus mengikuti langkah-langkah berikut:
- Buat
MediaDrm
. - Buka sesi untuk mendapatkan ID sesi.
- Buat
MediaCrypto
menggunakan ID sesi. - Panggil
MediaCrypto.requiresSecureDecoderComponent(mimeType)
.
Dengan metode baru requiresSecureDecoder(@NonNull String mime)
dan
requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)
,
Anda dapat menentukannya segera setelah membuat MediaDrm
.
Kamera
Ekstensi vendor Camera2
Banyak partner produsen perangkat kami yang telah membuat ekstensi kamera kustom, seperti sebagai Bokeh, HDR, Mode malam, dan lain-lain—yang mereka inginkan untuk digunakan oleh aplikasi pengalaman yang berbeda di perangkat mereka. CameraX library sudah mendukung ekstensi vendor khusus ini. Di Android 12, ekstensi vendor sekarang ditampilkan langsung di platform.
Penambahan ini membantu aplikasi yang memiliki
Camera2
implementasinya memanfaatkan ekstensi
vendor tanpa harus membuat
perubahan signifikan pada kode lama. API Ekstensi Camera2 mengekspos secara tepat
sekumpulan data yang sama
ekstensi sebagai
di CameraX, dan itu sudah didukung di berbagai jenis
di perangkat seluler, sehingga Anda dapat
menggunakannya tanpa
konfigurasi tambahan.
Untuk mengetahui informasi selengkapnya, lihat
CameraExtensionCharacteristics
.
Dukungan sensor kamera Quad Bayer
Banyak perangkat Android saat ini dilengkapi dengan sensor kamera beresolusi tinggi biasanya dengan pola Quad atau Nona Bayer, dan perangkat ini menawarkan fleksibilitas tinggi dalam hal kualitas gambar dan performa cahaya yang rendah. Android 12 memperkenalkan API platform baru yang memungkinkan aplikasi pihak ketiga memanfaatkan sepenuhnya sensor serbaguna ini. API baru mendukung perilaku unik sensor ini dan akan mempertimbangkan bahwa API tersebut mungkin mendukung konfigurasi dan kombinasi streaming yang berbeda saat beroperasi dalam mode resolusi penuh atau 'resolusi maksimum' dibandingkan mode 'default'.
Grafik dan gambar
Memberi aplikasi akses langsung ke rekaman aktivitas tombstone
Mulai dari Android 12, Anda dapat mengakses tombstone masalah pada native code aplikasi Anda sebagai
buffering protokol melalui metode
ApplicationExitInfo.getTraceInputStream()
.
Buffering protokol diserialisasi menggunakan skema ini.
Sebelumnya, satu-satunya cara untuk mendapatkan akses ke informasi ini adalah melalui
Android Debug Bridge (adb).
Untuk mengetahui informasi selengkapnya, lihat Memberi aplikasi akses langsung ke rekaman aktivitas tombstone
Dukungan image AVIF
Android 12 memperkenalkan dukungan untuk gambar yang menggunakan Format File Image AV1 (AVIF). AVIF adalah format penampung untuk gambar dan urutan gambar yang dienkode menggunakan AV1. Cara ini memanfaatkan konten enkode intra-frame dari kompresi video. Proses ini akan meningkatkan kualitas gambar untuk ukuran file yang sama secara signifikan jika dibandingkan dengan format gambar lama, seperti JPEG. Untuk melihat lebih dalam tentang manfaat format ini, lihat postingan blog dari Jake Archibald.
Blur lebih mudah, filter warna, dan efek lainnya
Android 12 menambahkan RenderEffect
baru
yang menerapkan efek grafis umum seperti blur, filter warna, efek shader
Android, dan lainnya ke View
dan hierarki perenderan. Efek dapat digabungkan sebagai efek berantai
(yang membentuk efek dalam dan luar) atau efek campuran. Perangkat Android
yang berbeda mungkin mendukung atau tidak mendukung fitur ini karena keterbatasan daya pemrosesan.
Efek juga dapat diterapkan pada RenderNode
yang mendasarinya
untuk View
dengan memanggil View.setRenderEffect(RenderEffect)
.
Untuk menerapkan RenderEffect
:
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
Dekode gambar animasi native
Pada Android 12, API ImageDecoder
NDK telah diperluas untuk mendekode semua data frame dan waktu dari gambar yang menggunakan format file GIF animasi dan WebP. Saat diperkenalkan
di Android 11, API ini hanya mendekode gambar pertama dari
animasi dalam format ini.
Gunakan ImageDecoder
, bukan library pihak ketiga, untuk mengurangi ukuran
APK
lebih banyak dan dapatkan manfaat dari update selanjutnya yang terkait dengan keamanan dan performa.
Untuk mengetahui detail API selengkapnya, lihat referensi API dan sampel di GitHub.
Konektivitas
Menjaga aplikasi pendamping tetap aktif
Untuk mendukung kebutuhan aplikasi pendamping agar tetap berjalan guna mengelola perangkat, Android 12 memperkenalkan API yang akan melakukan hal berikut:
- Memungkinkan Anda mengaktifkan aplikasi saat perangkat pendamping berada dalam jangkauan.
- Menjamin bahwa proses akan terus berjalan saat perangkat berada dalam jangkauan.
Untuk menggunakan API, perangkat Anda harus terhubung dengan menggunakan Pengelola Perangkat
Pendamping. Untuk informasi
selengkapnya, lihat
CompanionDeviceManager.startObservingDevicePresence()
dan
CompanionDeviceService.onDeviceAppeared()
.
Profil Pengelola Perangkat Pendamping
![](https://developer.android.com/static/images/about/versions/12/companion-device-profile.png?authuser=9&hl=id)
Aplikasi partner di Android 12 (API level 31) dan yang lebih baru dapat menggunakan profil perangkat pendamping saat terhubung ke smartwatch. Menggunakan profil dapat menyederhanakan proses pendaftaran dengan menggabungkan pemberian sekumpulan izin khusus jenis perangkat ke dalam satu langkah.
Izin paket diberikan ke aplikasi pendamping setelah perangkat terhubung, dan hanya berlangsung selama perangkat terasosiasi. Menghapus aplikasi atau menghapus pengaitan akan menghapus izin.
Untuk mengetahui informasi selengkapnya, lihat
AssociationRequest.Builder.setDeviceProfile()
.
Peningkatan estimasi bandwidth
Pada Android 12, kemampuan estimasi bandwidth yang disediakan oleh getLinkDownstreamBandwidthKbps()
, dan getLinkUpstreamBandwidthKbps()
ditingkatkan agar Wi-Fi dan konektivitas seluler jadi lebih baik. Nilai yang ditampilkan sekarang mewakili throughput rata-rata terukur sepanjang waktu dari pengguna setiap operator atau SSID WiFi, jenis jaringan, dan level sinyal, di semua aplikasi pada perangkat.
Hal ini dapat menampilkan perkiraan throughput yang diharapkan yang lebih akurat dan nyata, dapat memberikan estimasi tentang start cold aplikasi Anda, serta memerlukan lebih sedikit siklus jika dibandingkan dengan menggunakan metode estimasi throughput lainnya.
Peningkatan Wi-Fi Aware (NAN)
Android 12 menambahkan beberapa peningkatan pada Wi-Fi Aware:
- Pada perangkat yang menjalankan Android 12 (API level 31) dan yang lebih baru, Anda dapat menggunakan
callback
onServiceLost()
untuk mendapatkan notifikasi saat layanan yang telah ditemukan oleh aplikasi Anda hilang karena layanan tersebut berhenti atau keluar dari jangkauan. - Cara beberapa jalur data (Jalur Data NAN) disiapkan berubah menjadi lebih efisien. Versi sebelumnya menggunakan pesan L2 untuk bertukar informasi pembanding dari pembuat, yang menyebabkan latensi. Pada perangkat yang menjalankan Android 12 dan yang lebih tinggi, penjawab (server) dapat dikonfigurasi untuk menerima pembanding yang artinya bahwa informasi awal tidak perlu diketahui. Hal ini dapat mempercepat pengumpulan data dan memungkinkan beberapa link titik ke titik hanya dengan satu permintaan jaringan.
- Pada perangkat yang menjalankan Android 12 dan yang lebih tinggi, Anda dapat memanggil
WifiAwareManager.getAvailableAwareResources()
untuk mencegah agar framework tidak menolak permintaan penemuan atau koneksi karena resource habis. Dengan nilai hasil metode ini, Anda bisa mendapatkan jumlah jalur data, jumlah sesi publikasi, dan jumlah sesi berlangganan yang tersedia.
Peer-to-Peer + Koneksi Internet Serentak
Jika perangkat yang menargetkan Android 12 (API level 31) dan yang lebih baru berjalan di perangkat yang memiliki
dukungan hardware, penggunaan Koneksi
peer-to-peer tidak akan memutuskan
koneksi Wi-Fi yang ada saat membuat koneksi ke perangkat pembanding. Untuk
memeriksa dukungan fitur ini, gunakan
WifiManager.isMultiStaConcurrencySupported()
.
Mengaktifkan layar nonaktif untuk pembayaran NFC
Pada aplikasi yang menargetkan Android 12 dan lebih tinggi, Anda dapat mengaktifkan pembayaran NFC
tanpa mengaktifkan layar perangkat dengan menyetel
requireDeviceScreenOn
ke
false
. Untuk mengetahui informasi selengkapnya tentang pembayaran NFC dengan layar nonaktif atau terkunci, lihat
Perilaku
layar nonaktif dan layar kunci.
Penyimpanan
Android 12 memperkenalkan kemampuan pengelolaan penyimpanan berikut:
- Dukungan penyimpanan media untuk
MediaDocumentsProvider
saat aplikasi Anda mengambil URI media yang setara dengan URI penyedia dokumen tertentu. - Direktori untuk rekaman suara manusia.
- Izin
MANAGE_MEDIA
, yang memungkinkan aplikasi menjalankan operasi pengelolaan media tanpa menampilkan dialog konfirmasi kepada pengguna untuk setiap operasi. - Aplikasi yang memiliki izin
MANAGE_EXTERNAL_STORAGE
dan izinQUERY_ALL_PACKAGES
, seperti aplikasi pengelolaan file, dapat memanggil aktivitas kustom untuk mengelola ruang penyimpanan aplikasi lain, asalkan aplikasi lain membuat aktivitas kustom.
Fungsi inti
Update aplikasi otomatis
Android 12 memperkenalkan metode setRequireUserAction()
untuk aplikasi yang menggunakan PackageInstaller
API.
Metode ini memungkinkan aplikasi penginstal untuk melakukan update aplikasi tanpa mengharuskan pengguna untuk mengonfirmasi tindakan.
Informasi chipset perangkat
Android 12 menambahkan dua konstanta ke android.os.Build
yang mengekspos informasi vendor dan model chipset SoC melalui SDK. Anda dapat mengambil
informasi ini dengan memanggil Build.SOC_MANUFACTURER
dan Build.SOC_MODEL
masing-masing.
Update untuk API Java inti
Berdasarkan permintaan dan kolaborasi dengan developer, kami telah menambahkan library inti berikut di Android 12:
Class | API |
---|---|
java.lang.Deprecated
|
|
java.lang.Byte
|
|
java.lang.Short
|
|
java.lang.Math
|
|
java.lang.StrictMath
|
|
java.util.Set
|
copyOf()
|
java.util.Map
|
copyOf()
|
java.util.List
|
copyOf()
|
java.time.Duration
|
|
java.time.LocalTime
|