Android 10 memperkenalkan fitur dan kemampuan hebat bagi pengguna dan developer. Dokumen ini memperjelas apa saja yang tersedia untuk developer.
Untuk mempelajari API, baca laporan perbedaan API atau buka Referensi API Android — cari API yang "ditambahkan di level API 29". Juga pastikan untuk memeriksa perilaku Android 10 perubahan (untuk aplikasi yang menargetkan API level 29 dan untuk semua aplikasi), serta privasi , untuk mempelajari area yang mungkin mengalami perubahan platform memengaruhi aplikasi Anda.
Penyempurnaan keamanan
Android 10 memperkenalkan sejumlah fitur keamanan, yang dirangkum dalam bagian berikut.
Dialog autentikasi biometrik yang disempurnakan
Android 10 memperkenalkan peningkatan berikut untuk Dukungan autentikasi biometrik:
- Pemeriksaan untuk kemampuan autentikasi biometrik.
- Mekanisme penggantian yang memungkinkan pengguna melakukan autentikasi menggunakan PIN, pola, atau sandi perangkat jika input biometrik tidak berfungsi.
- Petunjuk yang memberi tahu sistem untuk tidak meminta konfirmasi pengguna setelah pengguna melakukan autentikasi menggunakan modalitas biometrik implisit. Misalnya, Anda dapat memberi tahu sistem bahwa konfirmasi lebih lanjut tidak diperlukan setelah pengguna diotentikasi menggunakan otentikasi wajah.
Menjalankan kode DEX tersemat langsung dari APK
Mulai Android 10, Anda dapat memberi tahu platform agar menjalankan DEX tersemat kode langsung dari file APK aplikasi. Opsi ini dapat membantu mencegah terjadinya serangan. jika penyerang berhasil merusak kode yang dikompilasi secara lokal pada perangkat seluler.
Untuk informasi selengkapnya, lihat Jalankan kode DEX tersemat langsung dari APK.
Dukungan TLS 1.3
Android 10 menambahkan dukungan untuk TLS 1.3. TLS 1.3 merupakan revisi besar untuk TLS standar yang mencakup manfaat performa dan peningkatan keamanan. Tolok ukur kami menunjukkan bahwa koneksi aman dapat dibuat hingga 40% lebih cepat dengan TLS 1.3 dibandingkan dengan TLS 1.2.
Untuk detail selengkapnya tentang penerapan TLS 1.3 kami, lihat bagian TLS dalam perubahan perilaku untuk semua aplikasi halaman kami.
Conscrypt API Publik
Mulai dari Android 10, penyedia keamanan Conscrypt menyertakan publik untuk fungsionalitas TLS.
Kumpulan class dalam
android.net.ssl
berisi statis
metode untuk mengakses fungsionalitas yang tidak tersedia dari
javax.net.ssl
API. Nama-nama untuk class ini dapat disimpulkan sebagai bentuk jamak
dari class javax.net.ssl
yang sesuai. Misalnya, kode yang beroperasi di
instance javax.net.ssl.SSLSocket
dapat menggunakan metode dari
SSLSockets
.
Fitur konektivitas
Android 10 menghadirkan beberapa penyempurnaan terkait jaringan dan konektivitas.
API sambungan jaringan Wi-Fi
Android 10 menambahkan dukungan untuk koneksi peer-to-peer. Ini
memungkinkan aplikasi Anda meminta pengguna untuk mengubah titik akses yang
terhubung dengan menggunakan
WifiNetworkSpecifier
untuk mendeskripsikan properti
jaringan yang diminta. Koneksi peer-to-peer adalah
digunakan untuk tujuan non-penyediaan jaringan, seperti konfigurasi bootstrap untuk
perangkat sekunder seperti
hardware Chromecast dan Google Home.
Untuk mengetahui informasi selengkapnya, lihat Wi-Fi Network Request API untuk peer-to-peer konektivitas.
API saran jaringan Wi-Fi
Android 10 menambahkan dukungan yang memungkinkan aplikasi untuk meminta pengguna terhubung ke titik akses Wi-Fi. Anda dapat memberikan saran terkait jaringan mana yang sebaiknya dihubungkan tempat mesin terhubung. Platform tersebut pada akhirnya akan memilih titik akses mana yang akan diterima berdasarkan input dari aplikasi Anda dan aplikasi lainnya.
Untuk informasi selengkapnya tentang fitur ini, lihat Saran Wi-Fi.
Penyempurnaan pada mode Wi-Fi performa tinggi latensi rendah
Android 10 memungkinkan Anda memberikan petunjuk kepada modem yang mendasarinya untuk meminimalkan latensi yang rendah.
Android 10 memperluas API penguncian Wi-Fi untuk mendukung performa tinggi secara efektif dan mode latensi rendah. Penghematan daya Wi-Fi dinonaktifkan untuk performa tinggi dan mode latensi rendah, dan pengoptimalan latensi lebih lanjut dapat diaktifkan yang berbeda, tergantung pada dukungan modem.
Mode latensi rendah hanya diaktifkan saat aplikasi yang mendapatkan kunci berjalan di latar depan dan layar aktif. Mode latensi rendah ini sangat berguna untuk aplikasi game seluler real-time.
Pencarian khusus pada resolver DNS
Android 10 menambahkan dukungan native untuk pencarian DNS khusus menggunakan
pencarian {i>cleartext<i} dan
mode DNS-over-TLS. Sebelumnya, DNS platform
resolver hanya mendukung data A dan AAAA, yang hanya memungkinkan pencarian IP
alamat yang dikaitkan dengan nama, tetapi tidak mendukung jenis catatan lainnya.
DnsResolver
API menyediakan resolusi asinkron umum, yang memungkinkan Anda mencari SRV
, NAPTR
, dan jenis data lainnya. Perhatikan bahwa penguraian respons diserahkan ke aplikasi.
Untuk aplikasi berbasis NDK, lihat android_res_nsend
.
Wi-Fi Easy Connect
Android 10 memungkinkan Anda menggunakan Easy Connect untuk menyediakan Wi-Fi
kredensial ke perangkat peer, sebagai pengganti WPS yang sudah tidak digunakan lagi.
Aplikasi dapat mengintegrasikan Easy Connect ke dalam alur penyiapan dan penyediaan dengan menggunakan
intent
ACTION_PROCESS_WIFI_EASY_CONNECT_URI
.
Untuk informasi selengkapnya tentang fitur ini, lihat Wi-Fi Easy Connect.
API koneksi Wi-Fi Langsung
Class API WifiP2pConfig
dan WifiP2pManager
memiliki update di Android 10
untuk mendukung kemampuan pembuatan koneksi cepat ke Wi-Fi Direct menggunakan
informasi yang telah ditentukan. Informasi ini dibagikan melalui saluran samping, seperti
Bluetooth atau NFC.
Contoh kode berikut menunjukkan cara membuat grup menggunakan informasi:
Kotlin
val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager val channel = manager.initialize(this, mainLooper, null) // prefer 5G band for this group val config = WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build() // create a non-persistent group on 5GHz manager.createGroup(channel, config, null)
Java
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); Channel channel = manager.initialize(this, getMainLooper(), null); // prefer 5G band for this group WifiP2pConfig config = new WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build(); // create a non-persistent group on 5GHz manager.createGroup(channel, config, null);
Untuk bergabung dengan grup menggunakan kredensial, ganti manager.createGroup()
dengan
berikut ini:
Kotlin
manager.connect(channel, config, null)
Java
manager.connect(channel, config, null);
Saluran Berorientasi Koneksi (CoC) Bluetooth LE
Android 10 memungkinkan aplikasi Anda menggunakan koneksi CoC BLE untuk mentransfer streaming data berukuran besar antara dua perangkat BLE. Antarmuka ini mengabstraksi Bluetooth dan mekanisme konektivitas untuk menyederhanakan implementasi.
Fitur telepon
Android 10 menyertakan beberapa peningkatan terkait telepon.
Peningkatan kualitas panggilan
Android 10 menambahkan kemampuan untuk mengumpulkan informasi tentang kualitas Panggilan IP Multimedia Subsystem (IMS), termasuk kualitas ke dan dari jaringan, di perangkat yang mendukung fitur tersebut.
Penyaringan panggilan dan nomor penelepon
Android 10 memberi aplikasi Anda cara untuk mengidentifikasi panggilan yang
di buku alamat pengguna sebagai panggilan telepon spam potensial, dan untuk melakukan panggilan telepon spam
ditolak secara diam-diam atas nama pengguna. Informasi tentang panggilan yang diblokir ini
dicatat sebagai panggilan yang diblokir dalam log panggilan untuk memberikan transparansi yang lebih baik
saat pengguna kehilangan panggilan. Penggunaan API ini menghilangkan persyaratan
untuk mendapatkan izin READ_CALL_LOG
dari pengguna untuk melakukan penyaringan panggilan
dan fungsi ID penelepon.
API layanan pengalihan panggilan
Android 10 mengubah cara penanganan intent panggilan. Tujuan
Siaran NEW_OUTGOING_CALL
tidak digunakan lagi dan diganti dengan
API CallRedirectionService
. CallRedirectionService
API memberikan
berguna untuk memodifikasi panggilan keluar yang dilakukan oleh platform Android. Sebagai
misalnya, aplikasi pihak ketiga dapat membatalkan panggilan dan mengalihkannya melalui VoIP.
Penyempurnaan dalam pembuatan file di penyimpanan eksternal
Selain memperkenalkan penyimpanan terbatas, Android 10 menambahkan kemampuan berikut yang terkait dengan penyimpanan eksternal:
- Anda dapat menggunakan
IS_PENDING
flag agar aplikasi Anda akses eksklusif ke file media saat file tersebut ditulis ke {i>disk<i}. - Jika Anda mengetahui lokasi spesifik tempat file seharusnya disimpan, Anda dapat memberikan petunjuk ke sistem untuk tempat untuk menyimpan file yang baru ditulis.
- Setiap perangkat penyimpanan eksternal memiliki nama volume yang unik.
Media dan grafis
Android 10 memperkenalkan fitur dan API media dan grafis baru berikut ini:
Berbagi input audio
Android 10 menambahkan kemampuan yang memungkinkan dua aplikasi berbagi input audio secara bersamaan. Untuk mengetahui informasi selengkapnya, lihat Berbagi input audio.
Perekaman pemutaran audio
Android 10 memberikan kemampuan pada aplikasi untuk merekam pemutaran audio dari aplikasi lain. Untuk mengetahui informasi selengkapnya, lihat Perekaman pemutaran.
Seekbar dalam notifikasi MediaStyle
Mulai Android 10, notifikasi MediaStyle
akan menampilkan seekbar. Bilah geser menunjukkan
progres pemutaran dari
PlaybackState.getPosition()
,
dan dalam kasus tertentu, pencari dapat digunakan untuk
mencari lokasi dalam
program ini. Tampilan dan perilaku seekbar dikontrol oleh aturan berikut:
- Bilah geser muncul jika ada
MediaSession
yang aktif dan durasinya (ditentukan olehMediaMetadata.METADATA_KEY_DURATION
) lebih besar dari nol. Artinya batang ini tidak akan muncul untuk streaming yang tidak tentu seperti live stream, dan siaran radio. - Jika sesi menerapkan
ACTION_SEEK_TO
, pengguna dapat menarik pencari untuk mengontrol lokasi pemutaran.
Native MIDI API
Android Native MIDI API (AMidi) memberikan kemampuan kepada developer aplikasi untuk mengirim dan menerima data MIDI dengan kode C/C++, mengintegrasikan logika audio/kontrol C/C++ dan meminimalkan kebutuhan akan JNI.
Untuk informasi selengkapnya, lihat API MIDI Bawaan Android.
Penyempurnaan MediaCodecInfo
Android 10 menambahkan metode ke
MediaCodecInfo
yang mengungkapkan lebih banyak
informasi tentang codec.
Untuk mengetahui informasi selengkapnya, lihat Codec media.
Thermal API
Jika menjadi terlalu panas, perangkat dapat men-throttle CPU dan/atau GPU, dan hal ini dapat memengaruhi aplikasi dan game dengan cara yang tidak diharapkan. Aplikasi yang menggunakan grafis yang kompleks, berat komputasi jaringan, atau aktivitas jaringan yang berkelanjutan lebih mungkin menimbulkan masalah, dan dapat bervariasi di berbagai perangkat berdasarkan frekuensi {i>chipset<i} dan inti, tingkat integrasi, dan juga pengemasan perangkat dan faktor bentuk.
Di Android 10, aplikasi dan game dapat menggunakan thermal API untuk memantau perubahan pada perangkat dan mengambil tindakan untuk mempertahankan penggunaan daya yang lebih rendah guna mengembalikan ke suhu normal. Aplikasi mendaftarkan pemroses di PowerManager, yang digunakan untuk melaporkan status termal yang sedang berlangsung mulai dari ringan dan sedang hingga parah, kritis, darurat, dan shutdown.
Saat perangkat melaporkan tekanan termal, aplikasi dan game dapat membantu dengan membatalkan aktivitas berkelanjutan untuk mengurangi penggunaan daya dalam berbagai cara. Misalnya, aplikasi streaming dapat mengurangi resolusi/kecepatan bit atau traffic jaringan, aplikasi kamera dapat menonaktifkan flash atau penyempurnaan gambar intensif, game dapat mengurangi kecepatan frame atau poligon tesselasi, aplikasi media dapat mengurangi volume speaker, dan aplikasi peta dapat menonaktifkan GPS.
Thermal API memerlukan lapisan HAL perangkat baru—saat ini didukung di perangkat Pixel yang menjalankan Android 10 dan kami bekerja sama dengan produsen perangkat untuk memberikan dukungan luas ke ekosistem secepat mungkin.
Kamera dan gambar
Android 10 memperkenalkan fitur baru berikut ini terkait kamera dan gambar:
Dukungan kamera monokrom
Versi Android pertama yang memperkenalkan kemampuan kamera monokrom adalah Android 9 (API level 28). Android 10 menambahkan beberapa penyempurnaan untuk dukungan kamera monokrom:
- Dukungan format streaming Y8 untuk meningkatkan efisiensi memori.
- Dukungan untuk pengambilan gambar DNG RAW monokrom.
- Pengantar enumerasi MONO dan NIR CFA untuk membedakan antara kamera monokrom dan kamera inframerah dekat.
Anda dapat menggunakan fitur ini untuk mengambil gambar monokrom native. Perangkat multi-kamera logis dapat menggunakan kamera monokrom sebagai sub-kamera fisik untuk mencapai kualitas gambar cahaya rendah yang lebih baik.
Format Dynamic Depth
Mulai Android 10, kamera dapat menyimpan data kedalaman gambar dalam file terpisah, menggunakan skema baru yang disebut {i>Dynamic Depth Format (DDF).<i} Aplikasi dapat meminta gambar JPG dan metadata kedalamannya, menggunakan informasi tersebut untuk menerapkan blur apa pun yang diinginkan dalam pasca-pemrosesan tanpa memodifikasi data gambar.
Untuk membaca spesifikasi format ini, lihat Format Dynamic Depth.
Format File Gambar Efisiensi Tinggi
Format File Gambar Efisiensi Tinggi (HEIF) adalah format gambar dan video standar yang memperkenalkan encoding berkualitas tinggi dan ukuran file yang lebih kecil jika dibandingkan dengan format file lainnya.
Untuk informasi selengkapnya tentang format file, lihat HEIC.
Penyempurnaan pada multi-kamera
Android 10 meningkatkan penggabungan beberapa kamera menjadi satu kamera logis, fitur yang diperkenalkan di Android 9 (API level 28). Hal berikut ditambahkan ke tindakan API Camera2:
isSessionConfigurationSupported(SessionConfiguration sessionConfig)
—memungkinkan Anda mengkueri apakah sesi yang lulus atau tidak konfigurasi dapat digunakan untuk membuat sesi pengambilan gambar kamera.LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
—mengaktifkan Anda untuk menentukan ID kamera fisik aktif yang mendukung perangkat kamera utama. Anda dapat menggunakan ID yang dikembalikan untuk meminta aliran data logis dan streaming subkamera fisik untuk meningkatkan efisiensi daya.
API layanan aksesibilitas
Android 10 memperkenalkan layanan aksesibilitas baru berikut fitur dan API:
Tanda kunci entri AccessibilityNodeInfo
Mulai Android 10, Anda dapat memanggil
isTextEntryKey()
untuk menentukan apakah AccessibilityNodeInfo
yang ditentukan mewakili kunci entri teks
yang merupakan bagian dari {i>
keyboard<i} atau keypad.
Masukan lisan dialog aksesibilitas
Jika pengguna perlu melakukan pintasan aksesibilitas untuk memulai layanan aksesibilitas, Android 10 memungkinkan dialog ditampilkan disertai dengan prompt text-to-speech jika layanan memintanya.
Pintasan aksesibilitas saat navigasi gestur diaktifkan
Saat fitur navigasi gestur diaktifkan di Android 10, fitur aksesibilitas tombol tidak terlihat atau dapat dipilih. Untuk mengakses menu layanan aksesibilitas, pengguna harus lakukan salah satu gestur berikut:
- Geser ke atas dengan dua jari.
- Geser ke atas dengan dua jari dan tahan.
Pintasan aksesibilitas untuk keyboard fisik
Di Android 10, pengguna dapat memicu pintasan aksesibilitas pada keyboard fisik dengan menekan Control+Alt+Z.
Penyempurnaan pengontrol keyboard virtual
Di Android 10, layanan aksesibilitas dapat meminta agar akses ditampilkan bahkan saat perangkat mendeteksi {i>keyboard<i} fisik yang terpasang. Pengguna bisa mengganti perilaku ini.
Waktu tunggu aksesibilitas yang ditetapkan pengguna
Android 10 memperkenalkan
getRecommendedTimeoutMillis()
Compute Engine API. Metode ini menyediakan dukungan untuk waktu tunggu yang ditentukan pengguna untuk
elemen UI non-interaktif. Nilai hasil dipengaruhi oleh kedua tindakan pengguna
API layanan aksesibilitas dan preferensi.
Penyempurnaan IsiOtomatis
Android 10 menyertakan penyempurnaan berikut ini untuk layanan IsiOtomatis.
Permintaan IsiOtomatis terkait kompatibilitas
Anda dapat menggunakan
tanda FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST
untuk menentukan apakah permintaan isi otomatis dibuat melalui mode
kompatibilitas.
Menyimpan nama pengguna dan sandi secara bersamaan
Anda dapat mendukung kasus ketika aplikasi menggunakan beberapa aktivitas untuk
menampilkan nama pengguna, sandi, dan kolom lainnya menggunakan
tanda
SaveInfo.FLAG_DELAY_SAVE
.
Interaksi pengguna dengan UI Penyimpanan
Anda dapat menampilkan dan menyembunyikan kolom sandi dalam dialog simpan dengan menetapkan tindakan pemroses pada dialog dan mengubah visibilitas tampilan jarak jauh.
Dukungan untuk memperbarui set data
IsiOtomatis bisa memperbarui sandi yang sudah ada. Misalnya, jika pengguna sudah menyimpan sandi, dan mereka menyimpan sandi baru, Isi Otomatis akan meminta pengguna untuk memperbarui sandi yang ada, bukan menyimpan sandi yang baru.
Penyempurnaan Klasifikasi Kolom
Android 10 menyertakan penyempurnaan berikut ini pada API Klasifikasi Kolom.
Konstruktor UserData.Builder
Tujuan
UserData.Builder
telah diubah agar lebih selaras dengan pola Builder
.
Mengizinkan pemetaan satu Nilai ke beberapa jenis ID Kategori
Saat menggunakan
UserData.Builder
inci
Android 10, Anda kini dapat memetakan nilai ke beberapa jenis ID kategori. Di beberapa
rilis sebelumnya, akan muncul pengecualian jika satu nilai ditambahkan lebih dari sekali.
Dukungan yang lebih baik untuk nomor kartu kredit
Klasifikasi kolom kini dapat mendeteksi angka empat digit sebagai empat digit terakhir nomor kartu kredit.
Dukungan untuk klasifikasi kolom khusus aplikasi
Android 10 menambahkan
FillResponse.setUserData()
,
yang memungkinkan Anda menetapkan data pengguna khusus aplikasi selama durasi sesi.
Hal ini membantu layanan isi otomatis mendeteksi jenis kolom dengan konten khusus
aplikasi.
Kontrol UI dan sistem
Android 10 menghadirkan penyempurnaan berikut ini untuk antarmuka pengguna:
Mendukung batas PopFrame JFMTI
Android 10 menambahkan dukungan untuk
can_pop_frames
dalam implementasi Android JVMTI. Saat melakukan debug, fitur ini
memungkinkan Anda menjalankan kembali fungsi setelah dijeda pada titik henti sementara dan
lokal, global, atau implementasi suatu fungsi. Untuk informasi selengkapnya, lihat
Halaman referensi Pop Frame Oracle.
Surface control API
Android 10 menyediakan
API SurfaceControl
untuk akses tingkat rendah ke compositor sistem,
(SurfaceFlinger
). Sebagai
sebagian besar pengguna, SurfaceView adalah cara yang
benar untuk memanfaatkan compositor. Tujuan
SurfaceControl
API dapat berguna dalam kasus tertentu, misalnya:
- Sinkronisasi beberapa permukaan
- Penyematan permukaan lintas proses
- Pengelolaan masa aktif level rendah
SurfaceControl
API tersedia dalam
Binding SDK dan NDK.
Implementasi NDK menyertakan API untuk pertukaran buffer secara manual dengan
compositor. Cara ini merupakan sebuah alternatif bagi pengguna yang menghadapi
batasan
BufferQueue
Deteksi perender hung WebView
Android 10 memperkenalkan
class abstrak
WebViewRenderProcessClient
, yang dapat digunakan aplikasi untuk mendeteksi apakah
WebView
telah menjadi tidak responsif. Kepada
menggunakan class ini:
- Menentukan subclass Anda sendiri dan mengimplementasikannya
onRenderProcessResponsive()
danonRenderProcessUnresponsive()
metode. - Lampirkan instance
WebViewRenderProcessClient
Anda ke satu atau beberapa objekWebView
. - Jika
WebView
menjadi tidak responsif, sistem akan memanggil metode metodeonRenderProcessUnresponsive()
klien, dengan meneruskanWebView
danWebViewRenderProcess
. (JikaWebView
adalah proses tunggal,WebViewRenderProcess
parameternya null). Aplikasi Anda dapat mengambil tindakan yang sesuai, seperti menampilkan kotak dialog kepada pengguna untuk menanyakan apakah mereka ingin menghentikan proses rendering.
Jika WebView
tetap tidak responsif, sistem akan memanggil onRenderProcessUnresponsive()
secara berkala (tidak lebih dari sekali setiap lima detik), tetapi tidak melakukan tindakan lain.
Jika WebView
menjadi responsif
lagi, sistem hanya memanggil onRenderProcessResponsive()
sekali.
Panel setelan
Android 10 memperkenalkan Panel Setelan, yakni API yang memungkinkan aplikasi ditampilkan kepada pengguna dalam konteks aplikasi mereka. Hal ini mencegah pengguna dari untuk membuka Setelan guna mengubah data seperti NFC atau Data seluler di untuk menggunakan aplikasi.
Misalnya, pengguna membuka browser web saat perangkatnya berada mode pesawat. Sebelum Android 10, aplikasi hanya dapat menampilkan pesan umum meminta pengguna untuk membuka Setelan guna memulihkan konektivitas. Dengan Android 10, aplikasi browser dapat menampilkan panel inline yang menampilkan setelan konektivitas utama seperti mode pesawat, Wi-Fi (termasuk jaringan di sekitar), dan data seluler. Dengan di panel ini, pengguna dapat memulihkan konektivitas tanpa keluar dari aplikasi.
Untuk menampilkan panel setelan, aktifkan intent dengan salah satu hal berikut
Tindakan Settings.Panel
:
Kotlin
val panelIntent = Intent(Settings.Panel.settings_panel_type) startActivityForResult(panelIntent)
Java
Intent panelIntent = new Intent(Settings.Panel.settings_panel_type); startActivityForResult(panelIntent);
settings_panel_type
dapat berupa salah satu dari:
ACTION_INTERNET_CONNECTIVITY
- Menampilkan setelan terkait konektivitas internet, seperti Mode pesawat, Wi-Fi, dan Data Seluler.
ACTION_WIFI
- Menampilkan setelan Wi-Fi, tetapi tidak setelan konektivitas lainnya. Ini adalah berguna untuk aplikasi yang memerlukan koneksi Wi-Fi untuk melakukan upload besar atau hasil download.
ACTION_NFC
- Menampilkan semua setelan yang terkait dengan komunikasi nirkabel jarak dekat (NFC).
ACTION_VOLUME
- Menampilkan setelan volume untuk semua aliran audio.
Peningkatan fitur berbagi
Android 10 menghadirkan sejumlah penyempurnaan untuk fitur berbagi.
Sharing Shortcuts API
Sharing Shortcuts API menggantikan Berbagi Langsung API tertentu.
Alih-alih mengambil hasil secara reaktif sesuai permintaan, Sharing Shortcuts API
memungkinkan aplikasi memublikasikan target berbagi langsung lebih awal. Ini adalah cara
ShortcutManager
berfungsi.
Karena kedua API tersebut serupa, kami telah memperluas ShortcutInfo
API yang akan dibuat menggunakan
fitur menjadi lebih mudah. Dengan Sharing Shortcuts API, Anda bisa langsung menetapkan
kategori, atau orang dengan target berbagi. Target berbagi tetap ada di dalam sistem
hingga aplikasi yang sama memperbaruinya atau aplikasi tersebut di-uninstal.
Mekanisme Direct Share yang lebih lama masih berfungsi, tetapi aplikasi yang menggunakannya memiliki prioritas lebih rendah daripada aplikasi yang menggunakan Sharing Shortcuts API.
ShortcutInfo.Builder
menambahkan dan meningkatkan metode untuk memberikan info tambahan tentang target berbagi.
Target berbagi langsung
Anda dapat memublikasikan pintasan dinamis sebagai Target Berbagi Langsung. Lihat Memublikasikan target berbagi langsung.
ShortcutManagerCompat
adalah AndroidX API baru yang menyediakan kompatibilitas mundur dengan DirectShare API lama. Ini
adalah cara yang lebih sering digunakan untuk memublikasikan target berbagi.
Melihat pratinjau teks
Saat membagikan konten teks, aplikasi dapat menampilkan pratinjau opsional dari konten di UI Sharesheet.
Lihat Menambahkan pratinjau rich text
Pelajari lebih lanjut
Untuk mengetahui informasi selengkapnya tentang cara aplikasi berbagi data, lihat Mengirim data sederhana ke aplikasi lain dan Menerima data sederhana dari aplikasi lain
Tema gelap
Android 10 menawarkan Tema gelap yang berlaku untuk UI sistem Android dan aplikasi yang berjalan di perangkat. Untuk informasi selengkapnya, lihat Tema gelap.
Jenis layanan latar depan
Android 10 memperkenalkan
foregroundServiceType
atribut manifes XML, yang Anda sertakan dalam definisi beberapa
layanan IT perusahaan mereka. Meskipun biasanya kurang sesuai, Anda bisa menetapkan beberapa
jenis layanan latar depan ke layanan tertentu.
Tabel berikut menunjukkan berbagai jenis layanan latar depan dan layanan yang sesuai untuk mendeklarasikan jenis yang spesifik:
Jenis layanan latar depan | Contoh kasus penggunaan untuk layanan yang seharusnya menyatakan jenis ini |
---|---|
connectedDevice
| Memantau pelacak kebugaran perangkat wearable |
dataSync
| Mendownload file dari jaringan |
location
| Lanjutkan tindakan yang dimulai pengguna |
mediaPlayback
| Memutar buku audio, podcast, atau musik |
mediaProjection
| Merekam video dari tampilan perangkat dalam waktu singkat |
phoneCall
| Menangani panggilan telepon yang sedang berlangsung |
Kotlin
Android 10 menyertakan update berikut ini untuk pengembangan Kotlin.
Anotasi nullability untuk API libcore
Android 10 meningkatkan cakupan anotasi nullability pada SDK untuk API libcore. Anotasi ini memungkinkan developer aplikasi yang menggunakan analisis nullability Kotlin atau Java di Android Studio untuk mendapatkan nullness informasi saat berinteraksi dengan API ini.
Umumnya, pelanggaran kontrak nullability di Kotlin akan mengakibatkan kompilasi
yang sama. Untuk memastikan kompatibilitas dengan kode yang sudah ada, hanya
anotasi @RecentlyNullable
dan @RecentlyNonNull
yang akan ditambahkan. Artinya,
pelanggaran nullability akan memunculkan peringatan, bukan error.
Selain itu, setiap anotasi @RecentlyNullable
atau @RecentlyNonNull
yang
ditambahkan di Android 9 akan berubah menjadi @Nullable
dan @NonNull
.
Artinya, di Android 10 dan yang lebih tinggi, pelanggaran nullability
akan menyebabkan error, bukan peringatan.
Untuk mengetahui informasi selengkapnya tentang perubahan anotasi, lihat SDK Android Pie kini lebih cocok untuk Kotlin di Blog Developer Android.
NDK
Android 10 menyertakan perubahan NDK berikut ini.
Proses debug yang lebih baik untuk kepemilikan deskriptor file
Android 10 menambahkan fdsan, yang akan memudahkan Anda menemukan dan memperbaiki masalah kepemilikan deskriptor file.
Bug yang terkait dengan kesalahan penanganan kepemilikan deskriptor file yang cenderung sebagai use-after-close dan double-close, setara dengan alokasi memori bug use-after-free dan double-free, tetapi cenderung jauh lebih sulit untuk mendiagnosis dan memperbaikinya. fdsan mencoba mendeteksi dan/atau mencegah deskriptor file kesalahan pengelolaan dengan menegakkan kepemilikan deskriptor file.
Untuk mengetahui informasi selengkapnya tentang error yang terkait dengan masalah ini, lihat Error terdeteksi oleh fdsan. Untuk informasi selengkapnya tentang fdsan, lihat Halaman Googlesource di fdsan.
ELF TLS
Aplikasi yang dibangun menggunakan NDK dengan minimum API level 29 dapat menggunakan ELF TLS
bukan emutls
. Dukungan penaut dinamis dan statis telah ditambahkan ke dukungan
metode ini untuk menangani variabel lokal thread.
Untuk aplikasi yang dibangun untuk level API 28 dan yang lebih rendah, peningkatan telah diimplementasikan
untuk libgcc/compiler-rt
guna mengatasi beberapa masalah emutls
.
Untuk informasi selengkapnya, lihat Perubahan Android untuk developer NDK.
Runtime
Android 10 menghadirkan perubahan berikut ini untuk waktu proses.
Pemicuan pembersihan sampah memori berbasis Mallinfo
Bila objek Java platform kecil mereferensikan objek besar dalam heap C++, Objek C++ sering kali dapat diperoleh kembali hanya jika objek Java dikumpulkan dan, misalnya, diselesaikan. Dalam rilis sebelumnya, platform memperkirakan ukuran banyak objek C++ yang terkait dengan objek Java. Perkiraan ini tidak selalu akurat dan kadang-kadang mengakibatkan peningkatan penggunaan memori, karena platform gagal membersihkan sampah memori pada saat yang seharusnya.
Di Android 10, pembersih sampah memori (GC) melacak ukuran total
heap yang dialokasikan oleh malloc()
sistem, memastikan bahwa alokasi malloc()
yang besar selalu disertakan dalam penghitungan yang memicu GC. Aplikasi yang disisipkan
alokasi C++ dalam jumlah besar dengan eksekusi Java mungkin mengalami peningkatan
frekuensi pembersihan sampah memori. Aplikasi lainnya mungkin mengalami sedikit penurunan.
Pengujian dan proses debug
Android 10 menyertakan peningkatan berikut ini untuk pengujian dan proses debug.
Peningkatan pelacakan sistem pada perangkat
Mulai Android 10, Anda dapat menentukan batas ukuran dan durasi pelacakan saat Anda melakukan pelacakan sistem di perangkat. Saat Anda menentukan nilai tersebut, sistem akan melakukan pelacakan panjang, menyalin rekaman aktivitas secara berkala buffer ke file tujuan saat trace direkam. Perekaman aktivitas selesai saat batas ukuran atau durasi yang Anda tentukan tercapai.
Gunakan parameter tambahan ini untuk menguji kasus penggunaan yang berbeda dengan yang biasanya Anda uji dengan perekaman aktivitas standar. Misalnya, Anda mungkin mendiagnosis bug performa yang hanya terjadi setelah aplikasi berjalan untuk waktu yang lama. Dalam hal ini, Anda dapat merekam aktivitas yang cukup panjang satu hari penuh, lalu menganalisis penjadwal CPU, aktivitas disk, thread aplikasi, dan data lainnya dalam laporan untuk membantu menentukan penyebab bug.
Di Android 10 dan yang lebih tinggi, file rekaman aktivitas disimpan dalam format yang dapat dibuka dengan Perfetto, project open source untuk instrumentasi performa dan perekaman aktivitas. Anda dapat mengonversi file rekaman aktivitas Perfetto ke Systrace format.
Penyempurnaan TextClassifier
Android 10 menyediakan fungsi klasifikasi teks tambahan di
TextClassifier
dalam antarmuka berbasis web
yang sederhana.
Deteksi bahasa
Tujuan
detectLanguage()
bekerja mirip dengan metode klasifikasi yang sudah ada sebelumnya. Ini
menerima
TextLanguage.Request
dan mengembalikan
TextLanguage
.
Objek TextLanguage
terdiri dari daftar pasangan terurut. Setiap pasangan
berisi lokalitas dan skor keyakinan yang sesuai untuk klasifikasi.
Tindakan percakapan yang disarankan
Tujuan
suggestConversationActions()
bekerja mirip dengan metode klasifikasi yang sudah ada. Model ini menerima
ConversationActions.Request
dan mengembalikan
ConversationActions
.
Objek ConversationActions
terdiri dari daftar
objek
ConversationAction
. Setiap objek ConversationAction
mencakup tindakan
yang disarankan dan skor keyakinannya.
Smart reply/tindakan di notifikasi
Android 9 memperkenalkan kemampuan untuk menampilkan balasan yang disarankan dalam notifikasi. Android 10 mengembangkannya dengan kemampuan untuk menyertakan tindakan berbasis intent yang disarankan. Selain itu, platform ini mampu menghasilkan saran ini secara otomatis. Aplikasi masih dapat menyediakan atau menonaktifkan saran yang dihasilkan sistem.API yang digunakan untuk membuat balasan ini adalah bagian dari
TextClassifier
,
serta telah diperkenalkan secara langsung kepada developer di Android 10.
Baca bagian tentang peningkatan TextClassifier
untuk informasi selengkapnya.
Jika aplikasi Anda memberikan sarannya sendiri, platform tidak akan membuat
saran otomatis. Jika Anda tidak ingin notifikasi aplikasi ditampilkan
balasan atau tindakan yang disarankan, Anda dapat memilih untuk tidak menerima balasan yang dibuat sistem
dan tindakan menggunakan
setAllowGeneratedReplies()
dan
setAllowSystemGeneratedContextualActions()