Ürün Haberleri

Android 17'nin İlk Beta Sürümü

Okuma süresi 7 dakika
Matthew McCullough
Vice President, Product Management, Android Developer

Bugün, gizliliğe, güvenliğe ve gelişmiş performansa öncelik veren bir platform oluşturma çalışmalarımıza devam ederek Android 17'nin ilk beta sürümünü yayınlıyoruz. Bu derleme, daha uyarlanabilir Android uygulamaları için çalışmalarımızı sürdürüyor, kamera ve medya özelliklerinde önemli iyileştirmeler sunuyor, bağlantıyı optimize etmek için yeni araçlar ekliyor ve yardımcı cihazlar için profilleri genişletiyor. Bu sürüm, yeni sürümleri geliştirici topluluğuna sunma şeklimizde temel bir değişikliği de vurguluyor: Geleneksel Geliştirici Önizlemesi modelinden Android Canary programına geçiş

Geliştirici Önizlemesinin Ötesinde

Android, geleneksel "Geliştirici Önizlemesi"nin yerini sürekli Canary kanalı ile değiştirdi. Bu yeni "her zaman açık" modelin üç temel avantajı vardır:

  • Daha hızlı erişim: Özellikler ve API'ler, üç aylık sürüm beklenmeden dahili testi geçer geçmez Canary'ye eklenir.
  • Daha iyi kararlılık: Canary'deki erken "savaş testi", yeni API'ler ve son sürüme daha yakın davranış değişiklikleriyle daha iyi bir beta deneyimi sunar.
  • Daha kolay test: Canary, OTA güncellemelerini destekler (artık manuel olarak yükleme yapmanız gerekmez). Ayrıca ayrı bir güncelleme kanalı olarak CI iş akışlarıyla daha kolay entegre olur ve yaklaşan olası değişikliklerle ilgili anında geri bildirim vermek için size en erken fırsatı sunar.

Android 17 programı

Bu beta sürümünden Mart ayında kullanıma sunmayı hedeflediğimiz Platform Kararlılığı aşamasına hızlı bir şekilde geçeceğiz. Bu aşamada, son SDK/NDK API'lerini ve büyük ölçüde son uygulama odaklı davranışları sunacağız. Bu tarihten itibaren, son sürüm yayınlanmadan önce testinizi tamamlamak için birkaç ayınız olur.

timeline1.png

Bir yıllık yayınlar

Android 17'nin üç aylık sürümlerle güncellenmeye devam etmesini planlıyoruz. 2. çeyrekteki yaklaşan sürüm, planlanan ve uygulamalarda sorunlara yol açabilecek davranış değişikliklerini tanıttığımız tek sürümdür. 4. çeyrekte ek API'ler ve özellikler içeren küçük bir SDK sürümü yayınlamayı planlıyoruz.

timeline2.png

Yön ve yeniden boyutlandırma kısıtlamaları

Android 17 Beta sürümünün yayınlanmasıyla birlikte uyarlanabilir yol haritamızın bir sonraki aşamasına geçiyoruz: Android 17 (API düzeyi 37), büyük ekranlı cihazlarda (sw > 600 dp) yön ve yeniden boyutlandırma kısıtlamaları için geliştirici kapsamı dışında kalma seçeneğini kaldırıyor.

Uygulamanız SDK 37'yi hedeflediğinde uyum sağlamaya hazır olmalıdır. Kullanıcılar, uygulamalarının her yerde çalışmasını bekler. Örneğin, tablet üzerinde çoklu görev yaparken, katlanabilir cihazı açarken veya masaüstü pencereli görüntüleme ortamını kullanırken. Ayrıca, kullanıcı arayüzünün alanı doldurmasını ve cihazın duruşuna saygı göstermesini beklerler.

SDK 37'deki Önemli Değişiklikler

Android 17'yi hedefleyen uygulamalar, Android 16'da kullanıma sunulan manifest özelliklerinin ve çalışma zamanı API'lerinin kullanımdan kaldırılmasıyla uyumluluğu sağlamalıdır. Büyük bir ekranda (küçük boyut ≥ 600 dp) çalıştırıldığında aşağıdaki özellikler ve API'ler yoksayılır:

Manifest özellikleri/APIYoksayılan değerler
screenOrientationportrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape
setRequestedOrientation()portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape
resizeableActivitytümü
minAspectRatiotümü
maxAspectRatiotümü

Muafiyetler ve Kullanıcı Kontrolü

Bu değişiklikler büyük ekranlara özeldir ve sw600dp'den küçük ekranlar (geleneksel tablet form faktörlü telefonlar dahil) için geçerli değildir. Ayrıca, oyun olarak sınıflandırılan uygulamalar (android:appCategory işaretine göre) bu kısıtlamalardan muaftır.

Kullanıcıların kontrolü elinde tuttuğunu da belirtmek isteriz. Kullanıcılar, sistemin en-boy oranı ayarlarını kullanarak bir uygulamanın varsayılan davranışını kullanmayı açıkça etkinleştirebilir veya devre dışı bırakabilir.

Yapılandırma değişiklikleriyle ilgili güncellemeler

Uygulama uyumluluğunu artırmak ve kesintiye uğrayan video oynatma, bırakılan giriş ve diğer türden kesintiye neden olan durum kayıplarını en aza indirmek için Etkinlik yeniden oluşturma özelliğinin varsayılan davranışını güncelliyoruz. Android 17'den itibaren sistem, genellikle kullanıcı arayüzünün yeniden oluşturulmasını gerektirmeyen belirli yapılandırma değişiklikleri için etkinlikleri varsayılan olarak yeniden başlatmayacak. Bu değişiklikler arasında CONFIG_KEYBOARD, CONFIG_KEYBOARD_HIDDEN, CONFIG_NAVIGATION, CONFIG_UI_MODE (yalnızca UI_MODE_TYPE_DESK değiştirildiğinde), CONFIG_TOUCHSCREEN ve CONFIG_COLOR_MODE yer alıyor. Bunun yerine, çalışan etkinlikler bu güncellemeleri onConfigurationChanged üzerinden alır. Uygulamanız bu değişiklikler için kaynakları yeniden yüklemek üzere tam yeniden başlatmaya güveniyorsa artık yeni android:recreateOnConfigChanges manifest özelliğini kullanarak açıkça etkinleştirmeniz gerekir. Bu özellik, hangi yapılandırma değişikliklerinin ilgili sabitler mcc, mnc ve yenileri keyboard, keyboardHidden, navigation, touchscreen ve colorMode ile birlikte tam bir etkinlik yaşam döngüsünü (durdurmadan yok etmeye ve yeniden oluşturmaya kadar) tetiklemesi gerektiğini belirtmenize olanak tanır.

Uygulamanızı hazırlama

Bu işlemi kolaylaştırmak için araçlar ve dokümanlar yayınladık. Odaklanılmış blog yayınımızda, sık karşılaşılan sorunları ele almaya yönelik stratejiler de dahil olmak üzere daha fazla bilgi yer almaktadır. Yön veya en boy oranı kısıtlaması artık bir seçenek olmayacağından uygulamaların, en boy oranlarının tamamında pencere boyutları için yatay ve dikey düzenleri desteklemesi gerekecek. Uygulamanızı Pixel Tablet veya Pixel Fold emülatörleriyle (targetSdkPreview = "CinnamonBun" olarak yapılandırılmış) Android 17 Beta 1'i kullanarak ya da Android 16 cihazlarda UNIVERSAL_RESIZABLE_BY_DEFAULT'ı etkinleştirmek için uygulama uyumluluğu çerçevesini kullanarak test etmenizi öneririz.

Performans

Kilitlenmeyen MessageQueue

Android 17'de, SDK 37 veya sonraki sürümleri hedefleyen uygulamalar, kilit içermeyen bir uygulama olan android.os.MessageQueue'un yeni bir uygulamasını alır. Yeni uygulama performansı artırır ve kaçırılan kare sayısını azaltır ancak MessageQueue özel alanlarını ve yöntemlerini yansıtan istemcileri bozabilir.

Nesilsel atık toplama

Android 17, ART'nin eşzamanlı işaretleme ve sıkıştırma toplayıcısına nesilsel atık toplama özelliğini ekliyor. Bu optimizasyon, tam yığın atık toplama işlemlerinin yanı sıra daha sık ve daha az kaynak yoğun olan genç nesil atık toplama işlemlerini kullanıma sunar. Amaç, genel atık toplama CPU maliyetini ve süresini azaltmaktır. ART iyileştirmeleri, Google Play sistem güncellemeleri aracılığıyla Android 12 (API düzeyi 31) ve sonraki sürümleri çalıştıran bir milyardan fazla cihazda da kullanılabilir.

Statik nihai alanlar artık gerçekten nihai

Android 17'den itibaren, Android 17 veya sonraki sürümleri hedefleyen uygulamalar "static final" alanlarını değiştiremeyecek. Bu sayede çalışma zamanı, performans optimizasyonlarını daha agresif bir şekilde uygulayabilecek. Bunu yansıtma (ve derin yansıtma) yoluyla yapmaya çalışmak her zaman IllegalAccessException'ın oluşturulmasına neden olur. Bunları JNI'nin SetStatic<Type>Field yöntem ailesi aracılığıyla değiştirmek, uygulamanın hemen kilitlenmesine neden olur.

Özel Bildirim Görüntüleme Kısıtlamaları

Bellek kullanımını azaltmak için özel bildirim görünümlerinin boyutunu sınırlıyoruz. Bu güncelleme, uygulamaların URI'leri kullanarak mevcut sınırları atlamasına olanak tanıyan bir boşluğu kapatır. Bu davranış, hedef SDK sürümüne göre belirlenir ve API 37 ile sonraki sürümleri hedefleyen uygulamalarda geçerli olur.

Yeni performans hata ayıklama ProfilingManager tetikleyicileri

Performans sorunlarında hata ayıklamak için ayrıntılı veriler toplamanıza yardımcı olmak amacıyla ProfilingManager'da çeşitli yeni sistem tetikleyicileri kullanıma sunduk. Bu tetikleyiciler TRIGGER_TYPE_COLD_STARTTRIGGER_TYPE_OOM ve TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE'dır.

Yeni sistem tetikleyicilerinin nasıl ayarlanacağını öğrenmek için tetikleyici tabanlı profilleme ve profilleme verilerini alma ve analiz etme dokümanlarına göz atın.

Medya ve Kamera

Android 17, sorunsuz geçişler ve standartlaştırılmış ses yüksekliği gibi özelliklerle medya ve kamera uygulamalarına profesyonel düzeyde araçlar getiriyor.

Dinamik kamera oturumu güncellemeleri

CameraCaptureSession'a updateOutputConfigurations() özelliğini ekledik. Bu sayede, tüm kamera yakalama oturumunu yeniden yapılandırmanıza gerek kalmadan çıkış yüzeylerini dinamik olarak ekleyip kaldırabilirsiniz. Bu değişiklik, uygulamanızın kamera başlatma sırasında ihtiyaç duyabileceği tüm kamera çıkış yüzeylerini yapılandırma ve tutma işleminin getirdiği bellek maliyeti ve kod karmaşıklığı olmadan kamera kullanım alanları ve modları (ör. fotoğraf çekme ve video çekme) arasında sorunsuz geçişler yapılmasını sağlar. Bu sayede, işlem sırasında kullanıcıların görebileceği aksaklıklar veya donmalar önlenir.

  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
    }
}

Mantıksal çok kameralı cihaz meta verileri

Birden fazla fiziksel kamera sensörünü birleştiren mantıksal kameralarla çalışırken artık yalnızca birincil olan değil, çekime dahil olan tüm etkin fiziksel kameralardan ek meta veriler isteyebilirsiniz. Daha önce, ikincil etkin kameralardan meta veri almak için geçici çözümler uygulamanız (ör. takipçi kameranın etkin olduğu yakınlaştırma için lens değiştirme sırasında) ve bazen gereksiz fiziksel akışlar ayırmanız gerekiyordu. Bu özellik, CaptureRequest ve CaptureResult'ta yeni bir anahtar olan LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS'ı kullanıma sunar. Bu anahtarı CaptureRequest'inizde AÇIK olarak ayarladığınızda TotalCaptureResult, bu ek etkin fiziksel kameralardan gelen meta verileri içerir. Kamera uygulamalarınızda kaynak kullanımını optimize etmenizi sağlayabilecek daha ayrıntılı bilgilere ulaşmak için TotalCaptureResult.getPhysicalCameraTotalResults() kullanarak bu kapsamlı meta verilere erişebilirsiniz.

Çok Yönlü Video Kodlama (VVC) Desteği

Android 17, Çok Yönlü Video Kodlama (VVC) standardı için destek ekler. Bu kapsamda, MediaFormat içinde video/vvc MIME türünü tanımlama, MediaCodecInfo içinde yeni VVC profilleri ekleme ve MediaExtractor'a destek entegre etme yer alır. Bu özellik, donanım kod çözme desteği olan ve uygun sürücülere sahip cihazlarda kullanılabilecek.

Video kaydı için sabit kalite

MediaRecorder'a setVideoEncodingQuality() işlevini ekledik. Bu sayede, video kodlayıcılar için sabit kalite (CQ) modu yapılandırabilir ve basit bit hızı ayarlarının ötesinde video kalitesi üzerinde daha hassas kontrol sahibi olabilirsiniz.

Arka plan ses sağlamlaştırması

Android 17'den itibaren ses çerçevesi, bu değişikliklerin kullanıcı tarafından kasıtlı olarak başlatılmasını sağlamak için ses çalma, ses odağı istekleri ve ses seviyesi değişikliği API'leri dahil olmak üzere arka plandaki ses etkileşimleriyle ilgili kısıtlamaları zorunlu kılacak. 

Uygulama, geçerli bir yaşam döngüsünde değilken ses API'lerini çağırmaya çalışırsa ses çalma ve ses seviyesi değiştirme API'leri, istisna oluşturulmadan veya hata mesajı verilmeden sessizce başarısız olur. Ses odağı API'si, AUDIOFOCUS_REQUEST_FAILED sonuç koduyla başarısız olur.

Gizlilik ve Güvenlik

Şifresiz Metin Trafiği Özelliğinin Kullanımdan Kaldırılması

android:usesCleartextTraffic özelliği artık kullanımdan kaldırıldı. Uygulamanız (Android 17) veya sonraki sürümleri hedefliyorsa ve karşılık gelen bir Ağ Güvenliği Yapılandırması olmadan usesCleartextTraffic="true" değerini kullanıyorsa varsayılan olarak şifresiz metin trafiğine izin verilmez. Ayrıntılı kontrol için Ağ Güvenliği Yapılandırması dosyalarına geçmeniz önerilir.

HPKE Hybrid Cryptography

HPKE karma şifrelemesinin uygulanması için herkese açık bir Service Provider Interface (SPI) sunuyoruz. Bu arayüz, ortak anahtar ve simetrik şifrelemenin (AEAD) birleşimiyle güvenli iletişimi mümkün kılar.

Bağlantı ve Telekomünikasyon

Gelişmiş VoIP Arama Geçmişi

Uygulama VoIP çağrı geçmişi entegrasyonu için kullanıcı tercihi yönetimi özelliğini kullanıma sunuyoruz. Bu kapsamda, sistem çeviricisinde arayan ve katılımcı avatarı URI'leri için destek sunulur. Böylece, kullanıcıların çağrı günlüğü gizliliği üzerinde ayrıntılı kontrol sahibi olması sağlanır ve entegre VoIP çağrı günlüklerinin görsel gösterimi zenginleştirilir.

Kablosuz mesafe ve yakınlık

Wi-Fi Ranging, sürekli aralık belirleme ve güvenli eşler arası keşfi destekleyen yeni Yakınlık Algılama özellikleri ile geliştirildi. Wi-Fi Aware aralığıyla ilgili güncellemeler arasında, 11az güvenli aralığı için eş tanıtıcıları ve PMKID önbelleğe alma ile ilgili yeni API'ler yer alıyor.

Geliştirici Üretkenliği ve Araçları

Tamamlayıcı cihaz uygulamalarıyla ilgili güncellemeler

Cihaz ayrımını ve izin yönetimini iyileştirmek için CompanionDeviceManager'a iki yeni profil ekledik:

  • Tıbbi Cihazlar: Bu profil, tıbbi cihaz mobil uygulamalarının tek bir dokunuşla gerekli tüm izinleri istemesine olanak tanıyarak kurulum sürecini basitleştirir.
  • Fitness Takip Cihazları: DEVICE_PROFILE_FITNESS_TRACKER profili, yardımcı uygulamaların bir fitness takip cihazını yönettiğini açıkça belirtmesine olanak tanır. Bu sayede, mevcut izleme rolü izinleri yeniden kullanılırken farklı simgelerle doğru kullanıcı deneyimleri sağlanır.

Ayrıca, CompanionDeviceManager artık cihaz ilişkilendirme ve Yakındaki cihazlar izni istekleri için birleşik bir iletişim kutusu sunuyor. Yakındaki izin istemlerini mevcut ilişkilendirme akışında paketlemek için AssociationRequest.Builder'daki yeni setExtraPermissions yönteminden yararlanabilirsiniz. Bu sayede, kullanıcıya gösterilen iletişim kutularının sayısı azalır.

Android 17'yi kullanmaya başlama

Bu ve gelecekteki Android Beta güncellemelerini kablosuz olarak almak için desteklenen herhangi bir Pixel cihazı kaydedebilirsiniz. Pixel cihazınız yoksa Android Studio'da Android Emulator ile 64 bit sistem görüntülerini kullanabilirsiniz.

Şu anda Android Beta Programı'na kayıtlıysanız Beta 1'e kablosuz güncelleme yapmanız istenir.

Android 26Q1 Beta sürümünü kullanıyorsanız ve 26Q1'in son kararlı sürümünü yükleyip Beta'dan çıkmak istiyorsanız 26Q2 Beta 1'e yönelik kablosuz güncellemeyi yoksaymanız ve 26Q1'in yayınlanmasını beklemeniz gerekir.

Geri bildirimlerinizi bekliyoruz. Lütfen geri bildirim sayfasında sorunları bildirin ve özellik isteklerinizi gönderin. Geri bildiriminizi ne kadar erken alırsak son sürümdeki çalışmalarımıza o kadar fazla şey ekleyebiliriz.

Android 17 ile en iyi geliştirme deneyimi için Android Studio'nun (Panda) en son önizleme sürümünü kullanmanızı öneririz. Kurulumu tamamladıktan sonra yapmanız gereken bazı işlemler:

  • Yeni SDK'ya göre derleyin, CI ortamlarında test edin ve geri bildirim sayfasındaki izleyicimizde sorunları bildirin.
  • Mevcut uygulamanızın uyumluluğunu test edin, uygulamanızın Android 17'deki değişikliklerden etkilenip etkilenmediğini öğrenin ve uygulamanızı Android 17 çalıştıran bir cihaza veya emülatöre yükleyip kapsamlı bir şekilde test edin.

Android 17 sürüm döngüsü boyunca önizleme/beta sistem görüntülerini ve SDK'yı düzenli olarak güncelleyeceğiz. Beta sürümünü yükledikten sonra, sonraki tüm önizlemeler ve beta sürümleri için gelecekteki güncellemeleri otomatik olarak kablosuz bağlantı üzerinden alırsınız.

Eksiksiz bilgi için Android 17 geliştirici sitesini ziyaret edin.

Sohbete katılın

Bu yılın ilerleyen dönemlerinde Platform Kararlılığı ve Android 17'nin nihai kararlı sürümüne doğru ilerlerken geri bildirimleriniz bizim için en değerli kaynak olmaya devam ediyor. Canary kanalında erken erişim kullanıcısı veya Beta 1'de test yapan bir uygulama geliştirici olmanız fark etmeksizin topluluklarımıza katılabilir ve geri bildirim gönderebilirsiniz. Görüşlerinizi dikkate alıyoruz.

Yazan:

Okumaya devam edin