Android 17 secara resmi mencapai stabilitas platform hari ini dengan Beta 3. Artinya, platform API dikunci; Anda dapat melakukan pengujian kompatibilitas akhir dan mengirimkan aplikasi yang menargetkan Android 17 ke Google Play Store. Selain itu, Beta 3 menghadirkan sejumlah kemampuan baru untuk membantu Anda membuat aplikasi yang lebih baik, lebih aman, dan sangat terintegrasi.
Siapkan aplikasi, library, alat, dan game engine Anda
Jika Anda mengembangkan SDK, library, alat, atau game engine, Anda harus segera menyiapkan update yang diperlukan untuk mencegah developer aplikasi dan game downstream Anda diblokir oleh masalah kompatibilitas dan memungkinkan mereka menargetkan fitur SDK terbaru. Harap beri tahu developer downstream Anda jika update diperlukan untuk mendukung Android 17 sepenuhnya.
Pengujian melibatkan penginstalan aplikasi produksi atau aplikasi pengujian yang menggunakan library atau engine Anda menggunakan Google Play atau cara lain ke perangkat atau emulator yang menjalankan Android 17 Beta 3. Jelajahi semua alur aplikasi Anda dan cari masalah fungsional atau UI. Tinjau perubahan perilaku untuk memfokuskan pengujian Anda. Setiap rilis Android berisi perubahan platform yang meningkatkan privasi, keamanan, dan pengalaman pengguna secara keseluruhan, dan perubahan ini dapat memengaruhi aplikasi Anda. Berikut beberapa perubahan yang perlu difokuskan:
- Perubahan ukuran di layar besar: Setelah menargetkan Android 17, Anda tidak dapat lagi memilih untuk tidak mempertahankan batasan orientasi, perubahan ukuran, dan rasio aspek di layar besar.
- Pemuatan kode dinamis: Jika aplikasi Anda menargetkan Android 17 atau yang lebih tinggi, perlindungan Pemuatan Kode Dinamis (DCL) yang Lebih Aman yang diperkenalkan di Android 14 untuk file DEX dan JAR kini diperluas ke library native. Semua file native yang dimuat menggunakan System.load() harus ditandai sebagai hanya baca. Jika tidak, sistem akan menampilkan UnsatisfiedLinkError.
- Mengaktifkan CT secara default: Transparansi sertifikat (CT) diaktifkan secara default. (Di Android 16, CT tersedia, tetapi aplikasi harus memilih untuk menggunakannya.)
- Perlindungan jaringan lokal: Aplikasi yang menargetkan Android 17 atau yang lebih tinggi akan memblokir akses jaringan lokal secara default. Beralihlah menggunakan pemilih yang menjaga privasi jika memungkinkan, dan gunakan ACCESS_LOCAL_NETWORK baru untuk akses luas dan persisten.
Peningkatan media dan kamera
Opsi penyesuaian Pemilih Foto
Android kini memungkinkan Anda menyesuaikan presentasi visual pemilih foto agar lebih melengkapi antarmuka pengguna aplikasi Anda. Dengan memanfaatkan API PhotoPickerUiCustomizationParams baru, Anda dapat mengubah rasio aspek tampilan petak dari persegi 1:1 standar menjadi tampilan potret 9:16. Fleksibilitas ini diperluas ke intent ACTION_PICK_IMAGES dan pemilih foto yang disematkan, sehingga Anda dapat mempertahankan estetika yang kohesif saat pengguna berinteraksi dengan media.
Semua ini merupakan bagian dari upaya kami untuk membantu membuat pemilih foto Android yang menjaga privasi sesuai dengan pengalaman aplikasi Anda. Pelajari lebih lanjut cara menyematkan pemilih foto langsung ke aplikasi Anda untuk mendapatkan pengalaman yang paling native.
val params = PhotoPickerUiCustomizationParams.Builder()
.setAspectRatio(PhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16)
.build()
val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply {
putExtra(MediaStore.EXTRA_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS, params)
}
startActivityForResult(intent, REQUEST_CODE)Dukungan untuk format gambar RAW14: Android 17 memperkenalkan dukungan untuk format gambar RAW14 — standar industri de-facto untuk fotografi digital kelas atas — melalui konstanta ImageFormat.RAW14 baru. RAW14 adalah format satu saluran, 14 bit per piksel yang menggunakan tata letak padat, dengan setiap empat piksel berurutan dikemas menjadi tujuh byte.
Ekstensi kamera yang ditentukan vendor: Android 17 menambahkan ekstensi yang ditentukan vendor untuk memungkinkan partner hardware menentukan dan menerapkan mode ekstensi kamera kustom guna memberi Anda akses ke fitur kamera terbaik dan terbaru, seperti 'Resolusi Super' atau peningkatan berbasis AI yang canggih. Anda dapat membuat kueri untuk mode ini menggunakan isExtensionSupported(int) API.
API jenis perangkat kamera: API Android 17 baru memungkinkan Anda membuat kueri jenis perangkat yang mendasarinya untuk mengidentifikasi apakah kamera adalah hardware bawaan, webcam USB eksternal, atau kamera virtual.
Dukungan alat bantu dengar Bluetooth LE Audio
Android kini menyertakan kategori perangkat khusus untuk alat bantu dengar Bluetooth Hemat Energi (BLE) Audio. Dengan penambahan konstanta AudioDeviceInfo.TYPE_BLE_HEARING_AID, aplikasi Anda kini dapat membedakan alat bantu dengar dari headset biasa.
val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
val devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
val isHearingAidConnected = devices.any { it.type == AudioDeviceInfo.TYPE_BLE_HEARING_AID }Perutean audio terperinci untuk alat bantu dengar
Android 17 memungkinkan pengguna mengelola secara independen tempat suara sistem tertentu diputar. Mereka dapat memilih untuk merutekan notifikasi, nada dering, dan alarm ke alat bantu dengar yang terhubung atau speaker bawaan perangkat.
Encoder software HE-AAC yang diperluas
Android 17 memperkenalkan encoder software HE-AAC yang Diperluas yang disediakan sistem. Encoder ini mendukung kecepatan bit rendah dan tinggi menggunakan pengkodean ucapan dan audio terpadu. Anda dapat mengakses encoder ini melalui MediaCodec API menggunakan nama c2.android.xheaac.encoder atau dengan membuat kueri untuk jenis MIME audio/mp4a-latm.
val encoder = MediaCodec.createByCodecName("c2.android.xheaac.encoder")
val format = MediaFormat.createAudioFormat(MediaFormat.MIMETYPE_AUDIO_AAC, 48000, 1)
format.setInteger(MediaFormat.KEY_BIT_RATE, 24000)
format.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectXHE)
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)Peningkatan Performa dan Baterai
Mengurangi wakelock dengan dukungan listener untuk alarm yang diizinkan saat tidak ada aktivitas
Android 17 memperkenalkan varian AlarmManager.setExactAndAllowWhileIdle baru yang menerima OnAlarmListener, bukan PendingIntent. Mekanisme berbasis callback baru ini ideal untuk aplikasi yang saat ini mengandalkan wakelock berkelanjutan untuk melakukan tugas berkala, seperti aplikasi pesan yang mempertahankan koneksi soket.
val alarmManager = getSystemService(AlarmManager::class.java)
val listener = AlarmManager.OnAlarmListener {
// Do work here
}
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60000,
listener,
null
)Pembaruan privasi
Tombol Lokasi yang Disediakan Sistem
Android memperkenalkan tombol lokasi yang dirender sistem yang dapat Anda sematkan langsung ke tata letak aplikasi menggunakan library Android Jetpack. Saat pengguna mengetuk tombol sistem ini, aplikasi Anda akan diberi akses lokasi presisi hanya untuk sesi saat ini. Untuk mengimplementasikan hal ini, Anda harus mendeklarasikan izin USE_LOCATION_BUTTON.
Setelan visibilitas sandi terpisah untuk keyboard sentuh dan fisik
Fitur ini membagi setelan sistem "Tampilkan sandi" yang ada menjadi dua preferensi pengguna yang berbeda: satu untuk input berbasis sentuh dan satu lagi untuk input keyboard fisik (hardware). Karakter yang dimasukkan melalui keyboard fisik kini langsung disembunyikan secara default.
val isPhysical = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD val shouldShow = android.text.ShowSecretsSetting.shouldShowPassword(context, isPhysical)
Keamanan
Pemuatan kode dinamis hanya baca yang diterapkan
Untuk meningkatkan keamanan terhadap serangan injeksi kode, Android kini menerapkan bahwa library native yang dimuat secara dinamis harus bersifat hanya baca. Jika aplikasi Anda menargetkan Android 17 atau yang lebih tinggi, semua file native yang dimuat menggunakan System.load() harus ditandai sebagai hanya baca terlebih dahulu.
val libraryFile = File(context.filesDir, "my_native_lib.so") // Mark the file as read-only before loading to comply with Android 17+ security requirements libraryFile.setReadOnly() System.load(libraryFile.absolutePath)
Penandatanganan APK Hybrid Kriptografi Pasca-Kuantum (PQC)
Untuk mempersiapkan kemajuan di masa mendatang dalam komputasi kuantum, Android memperkenalkan dukungan untuk Kriptografi Pasca-Kuantum (PQC) melalui APK Signature Scheme v3.2 baru. Skema ini menggunakan pendekatan hybrid, yang menggabungkan tanda tangan klasik dengan tanda tangan ML-DSA.
Pengalaman pengguna dan UI sistem
Dukungan yang lebih baik untuk widget di layar eksternal
Fitur ini meningkatkan konsistensi visual widget aplikasi saat ditampilkan di layar eksternal atau terhubung dengan kepadatan piksel yang berbeda menggunakan unit DP atau SP.
val options = appWidgetManager.getAppWidgetOptions(appWidgetId) val displayId = options.getInt(AppWidgetManager.OPTION_APPWIDGET_DISPLAY_ID) val remoteViews = RemoteViews(context.packageName, R.layout.widget_layout) remoteViews.setViewPadding( R.id.container, 16f, 8f, 16f, 8f, TypedValue.COMPLEX_UNIT_DIP )
Label aplikasi tersembunyi di layar utama
Android kini menyediakan setelan pengguna untuk menyembunyikan nama aplikasi (label) di ruang kerja layar utama. Pastikan ikon aplikasi Anda berbeda dan mudah dikenali.
Picture-in-Picture Interaktif Desktop
Tidak seperti Picture-in-Picture tradisional, jendela yang disematkan ini tetap interaktif sekaligus selalu berada di atas jendela aplikasi lain dalam mode desktop.
val appTask: ActivityManager.AppTask = activity.getSystemService(ActivityManager::class.java).appTasks[0]
appTask.requestWindowingLayer(
ActivityManager.AppTask.WINDOWING_LAYER_PINNED,
context.mainExecutor,
object : OutcomeReceiver<Int, Exception> {
override fun onResult(result: Int) {
if (result == ActivityManager.AppTask.WINDOWING_LAYER_REQUEST_GRANTED) {
// Task successfully moved to pinned layer
}
}
override fun onError(error: Exception) {}
}
)Toolbar perekaman layar yang didesain ulang
Fungsi inti
Setelan pengecualian aplikasi VPN
Dengan menggunakan ACTION_VPN_APP_EXCLUSION_SETTINGS Intent baru, aplikasi Anda dapat meluncurkan layar Setelan yang dikelola sistem tempat pengguna dapat memilih aplikasi untuk melewati tunnel VPN.
val intent = Intent(Settings.ACTION_VPN_APP_EXCLUSION_SETTINGS)
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}Update API OpenJDK 25 dan 21
Update ini menghadirkan fitur dan penyempurnaan yang luas dari OpenJDK 21 dan OpenJDK 25, termasuk dukungan Unicode terbaru dan dukungan SSL yang ditingkatkan untuk grup bernama di TLS.
Mulai menggunakan Android 17
Anda dapat mendaftarkan perangkat Pixel yang didukung atau menggunakan image sistem 64-bit dengan Android Emulator.
- Kompilasi terhadap SDK baru dan laporkan masalah di halaman masukan.
- Uji kompatibilitas aplikasi Anda saat ini dan pelajari apakah aplikasi Anda terpengaruh oleh perubahan di Android 17.
Untuk informasi lengkap, buka situs developer Android 17.
-
Berita ProdukGoogle I/O '26 menampilkan 17 pengumuman utama untuk developer Android yang berfokus pada produktivitas yang dipimpin oleh agen, Compose First sebagai standar UI kami, serta media berperforma tinggi dan pengembangan adaptif untuk ekosistem yang berkembang.
Matthew McCullough • 8 menit untuk dibaca -
Berita ProdukDiumumkan hari ini selama The Android Show, Android bertransisi dari sistem operasi menjadi sistem kecerdasan, sehingga menciptakan lebih banyak peluang untuk interaksi dengan aplikasi Anda.
Matthew McCullough • 4 menit untuk dibaca -
Berita ProdukHari ini, kami meningkatkan pengembangan Android dengan Gemma 4, model terbuka canggih terbaru kami yang dirancang dengan kemampuan penalaran kompleks dan pemanggilan alat otomatis.
Matthew McCullough • 2 menit untuk dibaca
Dapatkan insight pengembangan Android terbaru yang dikirim ke kotak masuk Anda setiap minggu.