Berita Produk

Beta Pertama Android 17

Waktu baca: 7 menit
Matthew McCullough
Wakil Direktur, Manajemen Produk, Developer Android

Hari ini, kami merilis versi beta pertama Android 17, melanjutkan upaya kami untuk membangun platform yang memprioritaskan privasi, keamanan, dan performa yang ditingkatkan. Build ini melanjutkan upaya kami untuk membuat aplikasi Android yang lebih mudah disesuaikan, memperkenalkan peningkatan signifikan pada kemampuan kamera dan media, alat baru untuk mengoptimalkan konektivitas, dan profil yang diperluas untuk perangkat pendamping. Rilis ini juga menyoroti perubahan mendasar dalam cara kami menghadirkan rilis baru kepada komunitas developer, dari model Pratinjau Developer tradisional ke program Android Canary

Di luar Pratinjau Developer

Android telah mengganti "Pratinjau Developer" tradisional dengan saluran Canary berkelanjutan. Model "selalu aktif" baru ini menawarkan tiga manfaat utama:

  • Akses Lebih Cepat: Fitur dan API tersedia di Canary segera setelah lulus pengujian internal, bukan menunggu rilis triwulanan.
  • Stabilitas Lebih Baik: "Pengujian tempur" awal di Canary menghasilkan pengalaman Beta yang lebih baik dengan API baru dan perubahan perilaku yang lebih mendekati final.
  • Pengujian Lebih Mudah: Canary mendukung update OTA (tidak perlu lagi melakukan flash secara manual) dan, sebagai saluran update terpisah, lebih mudah diintegrasikan dengan alur kerja CI dan memberi Anda jendela paling awal untuk memberikan masukan langsung tentang potensi perubahan mendatang.

Jadwal Android 17

Kami akan bergerak cepat dari versi Beta ini ke pencapaian Stabilitas Platform, yang ditargetkan pada bulan Maret. Pada pencapaian ini, kami akan menyediakan API SDK/NDK final dan perilaku dari sisi aplikasi yang sebagian besar final. Mulai saat itu, Anda akan memiliki waktu beberapa bulan sebelum rilis final untuk menyelesaikan pengujian.

timeline1.png

Rilis selama setahun

Kami berencana agar Android 17 terus mendapatkan update dalam serangkaian rilis triwulanan. Rilis mendatang pada Kuartal 2 adalah satu-satunya rilis yang memperkenalkan perubahan perilaku yang direncanakan dan dapat menyebabkan gangguan pada aplikasi. Kami berencana untuk merilis SDK minor pada Kuartal 4 dengan API dan fitur tambahan.

timeline2.png

Batasan orientasi dan ukuran yang dapat diubah

Dengan rilis Android 17 Beta, kami beralih ke fase berikutnya dalam peta strategi adaptif kami: Android 17 (level API 37) menghapus opsi keluar developer untuk batasan orientasi dan ukuran yang dapat diubah di perangkat layar besar (sw > 600 dp).

Jika menargetkan SDK 37, aplikasi Anda harus siap beradaptasi. Pengguna mengharapkan aplikasi mereka berfungsi di mana saja—baik saat melakukan multitasking di tablet, membuka perangkat, atau menggunakan lingkungan jendela desktop—dan mereka mengharapkan UI mengisi ruang dan menghormati postur perangkat mereka.

Perubahan Utama untuk SDK 37

Aplikasi yang menargetkan Android 17 harus memastikan kompatibilitas dengan penghentian atribut manifes dan API runtime yang diperkenalkan di Android 16. Saat berjalan di layar besar (dimensi yang lebih kecil ≥ 600 dp), atribut dan API berikut akan diabaikan:

Atribut/API manifesNilai yang diabaikan
screenOrientationportrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape
setRequestedOrientation()portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape
resizeableActivityall
minAspectRatioall
maxAspectRatioall

Pengecualian dan Kontrol Pengguna

Perubahan ini khusus untuk layar besar; perubahan ini tidak berlaku untuk layar yang lebih kecil dari sw600dp (termasuk ponsel dengan faktor bentuk slate tradisional). Selain itu, aplikasi yang dikategorikan sebagai game (berdasarkan flag android:appCategory) dikecualikan dari batasan ini.

Perlu diperhatikan juga bahwa pengguna tetap memiliki kontrol. Mereka dapat secara eksplisit memilih untuk menggunakan/tidak menggunakan perilaku default aplikasi melalui setelan rasio aspek sistem.

Pembaruan pada perubahan konfigurasi

Untuk meningkatkan kompatibilitas aplikasi dan membantu meminimalkan pemutaran video yang terganggu, input yang terputus, dan jenis kehilangan status yang mengganggu lainnya, kami memperbarui perilaku default untuk pembuatan ulang Aktivitas. Mulai Android 17, sistem tidak akan lagi memulai ulang aktivitas secara default untuk perubahan konfigurasi tertentu yang biasanya tidak memerlukan pembuatan ulang UI, termasuk CONFIG_KEYBOARDCONFIG_KEYBOARD_HIDDENCONFIG_NAVIGATIONCONFIG_UI_MODE (jika hanya UI_MODE_TYPE_DESK yang diubah), CONFIG_TOUCHSCREEN, dan CONFIG_COLOR_MODE. Sebagai gantinya, aktivitas yang sedang berjalan hanya akan menerima update ini melalui onConfigurationChanged.Jika aplikasi Anda mengandalkan memulai ulang sepenuhnya untuk memuat ulang resource untuk perubahan ini, Anda kini harus memilih untuk ikut serta secara eksplisit menggunakan atribut manifes android:recreateOnConfigChanges baru, yang memungkinkan Anda menentukan perubahan konfigurasi mana yang harus memicu siklus proses aktivitas lengkap (dari berhenti, hingga menghancurkan dan membuat lagi), bersama dengan konstanta terkait mccmnc, dan yang baru keyboardkeyboardHiddennavigationtouchscreen dan colorMode.

Menyiapkan Aplikasi Anda

Kami telah merilis alat dan dokumentasi untuk mempermudah Anda. Postingan blog kami yang berfokus pada hal ini memiliki panduan lebih lanjut, dengan strategi untuk mengatasi masalah umum. Aplikasi harus mendukung tata letak lanskap dan potret untuk ukuran jendela di seluruh rentang rasio aspek, karena membatasi orientasi atau rasio aspek tidak akan lagi menjadi opsi. Sebaiknya uji aplikasi Anda menggunakan Android 17 Beta 1 dengan emulator Pixel Tablet atau Pixel Fold (dikonfigurasi ke targetSdkPreview = "CinnamonBun") atau menggunakan framework kompatibilitas aplikasi untuk mengaktifkan UNIVERSAL_RESIZABLE_BY_DEFAULT di perangkat Android 16.

Performa

MessageQueue tanpa kunci

Di Android 17, aplikasi yang menargetkan SDK 37 atau yang lebih tinggi akan menerima implementasi baru android.os.MessageQueue yang implementasinya tanpa kunci. Implementasi baru ini meningkatkan performa dan mengurangi frame yang terlewat, tetapi dapat merusak klien yang merefleksikan metode dan kolom pribadi MessageQueue.

Pengumpulan sampah memori generasional

Android 17 memperkenalkan pengumpulan sampah memori generasional ke pengumpul Concurrent Mark-Compact ART. Pengoptimalan ini memperkenalkan pengumpulan generasi muda yang lebih sering dan tidak terlalu menggunakan resource bersama dengan pengumpulan heap penuh. bertujuan untuk mengurangi biaya CPU dan durasi waktu pengumpulan sampah memori secara keseluruhan. Peningkatan ART juga tersedia untuk lebih dari satu miliar perangkat yang menjalankan Android 12 (level API 31) dan yang lebih tinggi melalui update Sistem Google Play.

Kolom final statis kini benar-benar final

Mulai dari aplikasi Android 17 yang menargetkan Android 17 atau yang lebih baru tidak akan dapat mengubah kolom “final statis”, sehingga runtime dapat menerapkan pengoptimalan performa dengan lebih agresif. Upaya untuk melakukannya melalui refleksi (dan refleksi mendalam) akan selalu menyebabkan IllegalAccessException ditampilkan. Mengubahnya melalui keluarga metode SetStatic<Type>Field JNI akan langsung menyebabkan aplikasi error.

Batasan Tampilan Notifikasi Kustom

Untuk mengurangi penggunaan memori, kami membatasi ukuran tampilan notifikasi kustom. Update ini menutup celah yang memungkinkan aplikasi melewati batas yang ada menggunakan URI. Perilaku ini dibatasi oleh versi SDK target dan berlaku untuk aplikasi yang menargetkan API 37 dan yang lebih tinggi.

Pemicu ProfilingManager proses debug performa baru

Kami telah memperkenalkan beberapa pemicu sistem baru ke ProfilingManager untuk membantu Anda mengumpulkan data mendalam guna melakukan proses debug masalah performa. Pemicu ini adalah TRIGGER_TYPE_COLD_STARTTRIGGER_TYPE_OOMdan TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE.

Untuk memahami cara menyiapkan pemicu sistem baru, lihat dokumentasi pembuatan profil berbasis pemicu dan mengambil serta menganalisis data pembuatan profil.

Media dan Kamera

Android 17 menghadirkan alat profesional untuk aplikasi media dan kamera, dengan fitur seperti transisi yang lancar dan volume standar.

Update Sesi Kamera Dinamis

Kami telah memperkenalkan updateOutputConfigurations() ke CameraCaptureSession. Hal ini memungkinkan Anda melampirkan dan melepaskan platform output secara dinamis tanpa perlu mengonfigurasi ulang seluruh sesi pengambilan gambar kamera. Perubahan ini memungkinkan transisi yang lancar antara kasus penggunaan dan mode kamera (seperti mengambil gambar diam vs merekam video) tanpa biaya memori dan kompleksitas kode untuk mengonfigurasi dan menyimpan semua platform output kamera yang mungkin diperlukan aplikasi Anda selama kamera dimulai. Hal ini membantu menghilangkan gangguan atau pembekuan yang terlihat oleh pengguna selama pengoperasian.

  fun updateCameraSession(session: CameraCaptureSession, newOutputConfigs:  List<OutputConfiguration>)) {
    // Dynamically update the session without closing and reopening
    try {
        
        // Update the output configurations
        session.updateOutputConfigurations(newOutputConfigs)
    } catch (e: CameraAccessException) {
        // Handle error
    }
}

Metadata perangkat multi-kamera logis

Saat menggunakan kamera logis yang menggabungkan beberapa sensor kamera fisik, Anda kini dapat meminta metadata tambahan dari semua kamera fisik aktif yang terlibat dalam pengambilan gambar, bukan hanya kamera utama. Sebelumnya, Anda harus menerapkan solusi sementara, terkadang mengalokasikan aliran fisik yang tidak perlu, untuk mendapatkan metadata dari kamera aktif sekunder (misalnya, selama peralihan lensa untuk zoom saat kamera pengikut aktif). Fitur ini memperkenalkan kunci baru, LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS, di CaptureRequest dan CaptureResult. Dengan menetapkan kunci ini ke AKTIF di CaptureRequest, TotalCaptureResult akan menyertakan metadata dari kamera fisik aktif tambahan ini. Anda dapat mengakses metadata komprehensif ini menggunakan TotalCaptureResult.getPhysicalCameraTotalResults() untuk mendapatkan informasi yang lebih mendetail yang dapat memungkinkan Anda mengoptimalkan penggunaan resource di aplikasi kamera.

Dukungan Versatile Video Coding (VVC)

Android 17 menambahkan dukungan untuk standar Versatile Video Coding (VVC). Hal ini mencakup penentuan jenis MIME video/vvc di MediaFormat, menambahkan profil VVC baru di MediaCodecInfo, dan mengintegrasikan dukungan ke MediaExtractor. Fitur ini akan tersedia di perangkat dengan dukungan dekode hardware dan driver yang mumpuni.

Kualitas Konstan untuk Perekaman Video

Kami telah menambahkan setVideoEncodingQuality() ke MediaRecorder. Hal ini memungkinkan Anda mengonfigurasi mode kualitas konstan (CQ) untuk encoder video, sehingga memberi Anda kontrol yang lebih baik atas kualitas video di luar setelan bitrate sederhana.

Hardening Audio Latar Belakang

Mulai Android 17, framework audio akan menerapkan batasan pada interaksi audio latar belakang, termasuk pemutaran audio, permintaan fokus audio, dan API perubahan volume untuk memastikan bahwa perubahan ini dimulai secara sengaja oleh pengguna. 

Jika aplikasi mencoba memanggil API audio saat aplikasi tidak dalam siklus proses yang valid, API pemutaran audio dan perubahan volume akan gagal secara diam-diam tanpa pengecualian yang ditampilkan atau pesan kegagalan yang diberikan. API fokus audio akan gagal dengan kode hasil AUDIOFOCUS_REQUEST_FAILED.

Privasi dan Keamanan

Penghentian Atribut Traffic Cleartext

Atribut android:usesCleartextTraffic kini tidak digunakan lagi. Jika aplikasi Anda menargetkan (Android 17) atau yang lebih tinggi dan mengandalkan usesCleartextTraffic="true" tanpa Konfigurasi Keamanan Jaringan yang sesuai, aplikasi tersebut akan secara default tidak mengizinkan traffic cleartext. Anda dianjurkan untuk bermigrasi ke file Konfigurasi Keamanan Jaringan untuk kontrol terperinci.

Kriptografi Hybrid HPKE

Kami memperkenalkan Service Provider Interface (SPI) publik untuk implementasi kriptografi hybrid HPKE, yang memungkinkan komunikasi aman menggunakan kombinasi kunci publik dan enkripsi simetris (AEAD).

Konektivitas dan Telekomunikasi

Histori Panggilan VoIP yang Ditingkatkan

Kami memperkenalkan pengelolaan preferensi pengguna untuk integrasi histori panggilan VoIP aplikasi. Hal ini mencakup dukungan untuk URI avatar penelepon dan peserta di dialer sistem, yang memungkinkan kontrol pengguna terperinci atas privasi log panggilan dan memperkaya tampilan visual log panggilan VoIP terintegrasi.

Rentang dan Kedekatan Wi-Fi

Rentang Wi-Fi telah ditingkatkan dengan kemampuan Deteksi Kedekatan baru, yang mendukung rentang berkelanjutan dan penemuan peer-to-peer yang aman. Update pada rentang Wi-Fi Aware mencakup API baru untuk pengendali peer dan caching PMKID untuk rentang aman 11az.

Produktivitas dan Alat Developer

Update untuk aplikasi perangkat pendamping

Kami telah memperkenalkan dua profil baru ke CompanionDeviceManager untuk meningkatkan perbedaan perangkat dan penanganan izin:

  • Perangkat Medis: Profil ini memungkinkan aplikasi seluler perangkat medis meminta semua izin yang diperlukan dengan satu ketukan, sehingga menyederhanakan proses penyiapan.
  • Pelacak Kebugaran: Profil DEVICE_PROFILE_FITNESS_TRACKER memungkinkan aplikasi pendamping menunjukkan secara eksplisit bahwa mereka mengelola pelacak kebugaran. Hal ini memastikan pengalaman pengguna yang akurat dengan ikon yang berbeda saat menggunakan kembali izin peran jam tangan yang ada.

Selain itu, CompanionDeviceManager kini menawarkan dialog terpadu untuk permintaan izin Perangkat di sekitar dan asosiasi perangkat. Anda dapat memanfaatkan metode setExtraPermissions baru di AssociationRequest.Builder untuk menggabungkan perintah izin di sekitar dalam alur asosiasi yang ada, sehingga mengurangi jumlah dialog yang ditampilkan kepada pengguna.

Mulai menggunakan Android 17

Anda dapat mendaftarkan perangkat Pixel yang didukung untuk mendapatkan update Android Beta ini dan mendatang secara over the air (OTA). Jika tidak memiliki perangkat Pixel, Anda dapat menggunakan image sistem 64-bit dengan Android Emulator di Android Studio.

Jika saat ini Anda berada dalam program Android Beta, Anda akan ditawari update over the air (OTA) ke Beta 1.

Jika Anda memiliki Android 26Q1 Beta dan ingin menggunakan rilis stabil final 26Q1 dan keluar dari Beta, Anda harus mengabaikan update over the air (OTA) ke 26Q2 Beta 1 dan menunggu rilis 26Q1.

Kami ingin mendapatkan masukan Anda, jadi harap laporkan masalah dan kirimkan permintaan fitur di halaman masukan. Semakin awal kami mendapatkan masukan, semakin banyak yang dapat kami sertakan dalam pekerjaan kami pada rilis final.

Untuk mendapatkan pengalaman pengembangan terbaik dengan Android 17, sebaiknya gunakan pratinjau terbaru Android Studio (Panda). Setelah menyiapkan semuanya, berikut beberapa hal yang harus Anda lakukan:

  • Kompilasi terhadap SDK baru, uji di lingkungan CI, dan laporkan masalah apa pun di pelacak kami di halaman masukan.
  • Uji kompatibilitas aplikasi Anda saat ini, pelajari apakah aplikasi Anda terpengaruh oleh perubahan di Android 17, dan instal aplikasi Anda ke perangkat atau emulator yang menjalankan Android 17 dan uji secara menyeluruh.

Kami akan mengupdate image sistem pratinjau/beta dan SDK secara rutin sepanjang siklus rilis Android 17. Setelah menginstal build beta, Anda akan otomatis mendapatkan update mendatang secara over the air (OTA) untuk semua pratinjau dan Beta mendatang.

Untuk informasi lengkap, buka situs developer Android 17.

Ikut berdiskusi

Saat kami beralih ke Stabilitas Platform dan rilis stabil final Android 17 pada akhir tahun ini, masukan Anda tetap menjadi aset kami yang paling berharga. Baik Anda pengguna awal di saluran Canary maupun developer aplikasi yang menguji di Beta 1, sebaiknya bergabunglah dengan komunitas kami dan ajukan masukan. Kami mendengarkan.

Ditulis oleh:

Lanjutkan membaca