Özellikler ve API'ler

Android 16, geliştiriciler için harika yeni özellikler ve API'ler sunuyor. Aşağıdaki bölümlerde, ilgili API'leri kullanmaya başlamanıza yardımcı olmak için bu özellikler özetlenmiştir.

Yeni, değiştirilmiş ve kaldırılmış API'lerin ayrıntılı listesi için API farklılıkları raporunu inceleyin. Yeni API'lerle ilgili ayrıntılar için Android API referansını ziyaret edin. Yeni API'ler görünürlük için vurgulanmıştır.

Platform değişikliklerinin uygulamalarınızı etkileyebileceği alanları da incelemeniz gerekir. Daha fazla bilgi için aşağıdaki sayfalara göz atın:

Temel işlevler

Android, Android sisteminin temel özelliklerini genişleten yeni API'ler içerir.

2025'te iki Android API sürümü

  • Bu önizleme, 2025'in 2. çeyreğinde kullanıma sunulması planlanan Android'in bir sonraki büyük sürümüdür. Bu sürüm, geçmişteki tüm API sürümlerimize benzer. Bu sürümlerde genellikle bir targetSdkVersion ile ilişkili planlı davranış değişiklikleri yapabiliriz.
  • Ekosistemimizdeki cihaz lansmanlarının planıyla daha uyumlu olması için ana sürümü bir çeyrek daha erken (önceki yıllardaki 3. çeyrek yerine 2. çeyrek) yayınlamayı planlıyoruz. Böylece daha fazla cihaz, Android'in ana sürümünü daha erken alabilir. 2. çeyrekte büyük bir sürüm kullanıma sunulacak. Bu nedenle, uygulamalarınızın hazır olduğundan emin olmak için yıllık uyumluluk testinizi önceki yıllara kıyasla birkaç ay daha erken yapmanız gerekir.
  • 2025'in 4. çeyreğinde yeni geliştirici API'lerini de içerecek başka bir sürüm yayınlamayı planlıyoruz. 2025'te uygulamaları etkileyebilecek planlı davranış değişikliklerini içeren tek sürüm, 2. çeyrek ana sürümü olacaktır.

4. çeyrek küçük sürümünde, yeni geliştirici API'lerinin yanı sıra özellik güncellemeleri, optimizasyonlar ve hata düzeltmeleri yer alacak. Uygulamayı etkileyen davranış değişiklikleri bu sürüme dahil edilmeyecektir.

2025'teki Android sürümlerinin zaman çizelgesi görünümü. 2025'in 2. çeyreğindeki sürümün ana sürüm, 2025'in 4. çeyreğindeki sürümün ise küçük sürüm olduğu belirtilmiştir.

Android sürümlerini üç ayda bir yayınlamaya devam edeceğiz. API sürümleri arasındaki 1. ve 3. çeyrek güncellemeleri, sürekli kaliteyi sağlamaya yardımcı olacak artımlı güncellemeler sunar. 2. çeyrek sürümünü mümkün olduğunca fazla cihazda kullanıma sunmak için cihaz iş ortaklarımızla etkin bir şekilde çalışıyoruz.

Büyük ve küçük sürümlerde yeni API'leri kullanma

API düzeyi kontrolü içeren bir kod bloğunu korumak için günümüzde VERSION_CODES ile SDK_INT sabitinin kullanılması gerekir. Bu özellik, önemli Android sürümlerinde desteklenmeye devam edecektir.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

Yeni SDK_INT_FULL sabit değeri, yeni VERSION_CODES_FULL enumeration ile hem büyük hem de küçük sürümlere karşı API kontrolleri için kullanılabilir.

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

Yalnızca küçük SDK sürümünü almak için Build.getMinorSdkVersion() yöntemini de kullanabilirsiniz.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

Bu API'ler henüz nihai hâle getirilmedi ve değişiklik yapılabilir. Bu nedenle, endişeleriniz varsa lütfen bize geri bildirim gönderin.

Kullanıcı deneyimi ve sistem arayüzü

Android 16, uygulama geliştiricilere ve kullanıcılara cihazlarını ihtiyaçlarına göre yapılandırma konusunda daha fazla kontrol ve esneklik sunar.

İlerleme odaklı bildirimler

Android 16, kullanıcıların başlattığı baştan sona yolculukları sorunsuz bir şekilde izlemelerine yardımcı olmak için ilerleme odaklı bildirimler sunar.

Notification.ProgressStyle, ilerleme odaklı bildirimler oluşturmanıza olanak tanıyan yeni bir bildirim stilidir. Araç paylaşma, teslimat ve navigasyon, bu özelliğin başlıca kullanım alanları arasındadır. Notification.ProgressStyle sınıfında, noktalar ve segmentler kullanarak kullanıcı yolculuğundaki durumları ve aşamaları belirtebilirsiniz.

Daha fazla bilgi için İlerleme odaklı bildirimler doküman sayfasına bakın.

Kilit ekranında gösterilen ilerleme odaklı bildirim.
Bildirim gölgesinde gösterilen, ilerleme odaklı bir bildirim.

Tahmin edilen geri gitme güncellemeleri

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

Daha zengin dokunma teknolojisi

Android, başlangıcından beri dokunma motoru üzerinde kontrol sağlamıştır.

Android 11, daha gelişmiş aktüatörlerin cihaz tanımlı semantik primitiflerin VibrationEffect.Compositions aracılığıyla destekleyebileceği daha karmaşık dokunma efektleri için destek ekledi.

Android 16, uygulamaların cihaz özellikleri arasındaki farklılıkları göz ardı ederek dokunma etkisinin genlik ve frekans eğrilerini tanımlamasına olanak tanıyan dokunma API'leri ekler.

Geliştirici üretkenliği ve araçları

Üretkenliğinizi artırmaya yönelik çalışmalarımızın çoğu Android Studio, Jetpack Compose ve Android Jetpack kitaplıkları gibi araçlara odaklanırken platformda vizyonunuzu gerçekleştirmenize yardımcı olacak yollar aramaya devam ediyoruz.

Animasyonlu duvar kağıtları için içerik işleme

Android 16'da, canlı duvar kağıdı çerçevesi dinamik, kullanıcı odaklı duvar kağıtlarının zorluklarını gidermek için yeni bir içerik API'si kazanıyor. Kullanıcı tarafından sağlanan içeriklerin yer aldığı canlı duvar kağıtları şu anda karmaşık ve hizmete özel uygulamalar gerektiriyor. Android 16'da WallpaperDescription ve WallpaperInstance özellikleri kullanıma sunulmuştur. WallpaperDescription, aynı hizmetteki farklı animasyonlu duvar kağıdı örneklerini tanımlamanızı sağlar. Örneğin, hem ana ekranda hem de kilit ekranında örnekleri bulunan bir duvar kağıdında her iki yerde de benzersiz içerikler bulunabilir. Duvar kağıdı seçici ve WallpaperManager, duvar kağıtlarını kullanıcılara daha iyi sunmak için bu meta verileri kullanır. Böylece, çeşitli ve kişiselleştirilmiş canlı duvar kağıdı deneyimleri oluşturma sürecini kolaylaştırır.

Performans ve pil

Android 16, uygulamalarınız hakkında bilgi toplamanıza yardımcı olan API'ler sunar.

Sistem tarafından tetiklenen profil oluşturma

ProfilingManager, Android 15'e eklendi. Bu sayede uygulamalar, sahadaki herkese açık cihazlarda Perfetto'yu kullanarak profil oluşturma amacıyla veri toplama isteğinde bulunabilir. Ancak bu profil oluşturma işlemi uygulamadan başlatılması gerektiğinden, uygulamaların başlatma veya ANR gibi kritik akışları yakalaması zor veya imkansız olur.

Android 16, bu konuda yardımcı olmak için ProfilingManager'te sistem tarafından tetiklenen profil oluşturma özelliğini kullanıma sunar. Uygulamalar, sıfırdan başlatma reportFullyDrawn veya ANR'ler gibi belirli tetikleyiciler için izleme alma isteğini kaydedebilir. Ardından sistem, uygulama adına bir izlemeyi başlatır ve durdurur. İzleme tamamlandıktan sonra sonuçlar uygulamanın veri dizine gönderilir.

ApplicationStartInfo'da bileşeni başlatma

ApplicationStartInfo, Android 15'te eklendi. Bu parametre, uygulamaların işlem başlatma nedenlerini, başlatma türünü, başlatma zamanlarını, tıkanmayı ve diğer yararlı teşhis verilerini görmesine olanak tanır. Android 16, başlangıcı hangi bileşen türünün tetiklediğini ayırt etmek için getStartComponent() ekliyor. Bu, uygulamanızın başlangıç akışını optimize etmek için yararlı olabilir.

Daha iyi iş incelemesi

JobScheduler#getPendingJobReason() API, bir işin beklemede olmasının nedenini döndürür. Ancak bir işin beklemede olmasının birden fazla nedeni olabilir.

Android 16'da, hem geliştirici tarafından belirlenen açık kısıtlamalar hem de sistem tarafından belirlenen gizli kısıtlamalar nedeniyle bir işin beklemede olmasının birden fazla nedenini döndüren yeni bir API JobScheduler#getPendingJobReasons(int jobId) kullanıma sunuyoruz.

Ayrıca, en son kısıtlama değişikliklerinin listesini döndüren JobScheduler#getPendingJobReasonsHistory(int jobId) işlevini de kullanıma sunuyoruz.

Özellikle belirli görevlerin başarı oranlarının düştüğünü görüyorsanız veya belirli bir işin tamamlanma süresinde gecikmeyle ilgili hatalar varsa API'yi kullanarak işlerinizin neden yürütülemediğini tespit etmenizi öneririz. Örneğin, arka planda widget'ların güncellenmesi başarısız oldu veya uygulama başlatılmadan önce ön getirme işi çağrılamadı.

Bu, belirli işlerin sistem tarafından tanımlanan kısıtlamalar mı yoksa açıkça ayarlanan kısıtlamalar mı nedeniyle tamamlanmadığını daha iyi anlamanıza da yardımcı olabilir.

Uyarlanabilir yenileme oranı

Android 15'te kullanıma sunulan uyarlanabilir yenileme hızı (ARR), desteklenen donanımlarda ekran yenileme hızının ayrı VSync adımları kullanarak içerik kare hızına uyum sağlamasını sağlar. Bu sayede, güç tüketimi azalırken sarsıntıya neden olabilecek mod geçişi ihtiyacı ortadan kaldırılır.

Android 16, uygulamalarınızın ARR'den yararlanmasını kolaylaştırmak için hasArrSupport() ve getSuggestedFrameRate(int) özelliklerini sunarken getSupportedRefreshRates() özelliğini de geri yükler. RecyclerView 1.4, bir atıştan veya sorunsuz kaydırmadan sonra yerleşirken ARR'yi dahili olarak destekler. ARR desteğini daha fazla Jetpack kitaplığına ekleme çalışmalarımıza devam ediyoruz. Bu kare hızı makalesinde, uygulamanızın doğrudan ARR kullanabilmesi için kare hızını ayarlamak üzere kullanabileceğiniz API'lerin çoğu ele alınmaktadır.

ADPF'deki Headroom API'leri

SystemHealthManager 引入了 getCpuHeadroomgetGpuHeadroom API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。

在受支持的设备上使用 CpuHeadroomParamsGpuHeadroomParams,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。

Erişilebilirlik

Android 16, uygulamanızı her kullanıcıya ulaştırmanıza yardımcı olabilecek yeni erişilebilirlik API'leri ve özellikleri ekliyor.

Geliştirilmiş erişilebilirlik API'leri

Android 16, kullanıcı arayüzü anlamlarını iyileştirmek için ek API'ler ekleyerek TalkBack gibi erişilebilirlik hizmetlerini kullanan kullanıcılar için tutarlılığı artırmaya yardımcı olur.

Maksimum metin kontrastı için metnin dış çizgisini kalınlaştırma

Görme bozukluğu olan kullanıcıların kontrast hassasiyeti genellikle düşüktür. Bu durum, nesneleri arka planlarından ayırt etmeyi zorlaştırır. Bu kullanıcılara yardımcı olmak için Android 16, yüksek kontrastlı metnin yerini alan ana hat metnini kullanıma sunar. Bu metin, okunabilirliği büyük ölçüde artırmak için metnin etrafında daha büyük bir kontrast alanı çizer.

Android 16, bu modun etkin olup olmadığını görmek için uygulamalarınızın kontrol etmesine veya dinleyici kaydetmesine olanak tanıyan yeni AccessibilityManager API'leri içerir. Bu, öncelikle benzer bir görsel deneyim sunmak için Oluştur gibi kullanıcı arayüzü araç takımları içindir. Bir kullanıcı arayüzü araç seti kitaplığınız varsa veya uygulamanız android.text.Layout sınıfını atlayan özel metin oluşturma işlemi gerçekleştiriyorsa ana hat metninin ne zaman etkinleştirildiğini öğrenmek için bunu kullanabilirsiniz.

Android 16'daki yeni kenarlıklı metin erişilebilirlik özelliğinden önce ve sonra geliştirilmiş kontrasta sahip metin

TtsSpan'a süre eklendi

Android 16, TtsSpan'yi ARG_HOURS, ARG_MINUTES ve ARG_SECONDS'den oluşan bir TYPE_DURATION ile genişletir. Bu sayede, süreyi doğrudan not edebilirsiniz. Böylece TalkBack gibi hizmetlerde metin okuma özelliğini doğru ve tutarlı bir şekilde kullanabilirsiniz.

Birden fazla etikete sahip öğeleri destekleme

Android şu anda kullanıcı arayüzü öğelerinin erişilebilirlik etiketlerini başka bir öğeden almasına izin veriyor. Ayrıca, web içeriklerinde yaygın bir durum olan birden fazla etiketin ilişkilendirilmesine olanak tanıyor. Android, AccessibilityNodeInfo içinde liste tabanlı bir API tanıtarak bu çok etiketli ilişkileri doğrudan destekleyebilir. Bu değişiklik kapsamında, AccessibilityNodeInfo#setLabeledBy ve #getLabeledBy için desteği sonlandırdık. Bunun yerine #addLabeledBy, #removeLabeledBy ve #getLabeledByList'yi kullanmanızı öneririz.

Genişletilebilir öğeler için iyileştirilmiş destek

Android 16, menü ve genişletilebilir listeler gibi etkileşimli öğelerin genişletilmiş veya daraltılmış durumunu iletmenize olanak tanıyan erişilebilirlik API'leri ekler. setExpandedState kullanarak genişletilmiş durumu ayarlayarak ve CONTENT_CHANGE_TYPE_EXPANDED içerik değişikliği türüyle TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents göndererek TalkBack gibi ekran okuyucuların durum değişikliklerini duyurmasını sağlayabilir, böylece daha sezgisel ve kapsayıcı bir kullanıcı deneyimi sunabilirsiniz.

Belirsiz ilerleme çubukları

Android 16'da RANGE_TYPE_INDETERMINATE eklendi. Bu sayede, hem belirli hem de belirsiz ProgressBar widget'ları için RangeInfo'i gösterebilirsiniz. Böylece TalkBack gibi hizmetler, ilerleme göstergeleri için daha tutarlı geri bildirim sağlayabilir.

Üç durumlu onay kutusu

Android 16'daki yeni AccessibilityNodeInfo getChecked ve setChecked(int) yöntemleri artık "işaretli" ve "işaretsiz" seçeneklerine ek olarak "kısmen işaretli" durumu da destekliyor. Bu, desteği sonlandırılan isChecked ve setChecked(boolean) doğru/yanlış değerlerinin yerini almıştır.

Ek açıklamalar

Erişilebilirlik hizmetleri, bir ViewGroup tanımlarken alt görünümlerindeki içerik etiketlerini birleştirir. ViewGroup için bir contentDescription sağlarsanız erişilebilirlik hizmetleri, odaklanılabilir olmayan alt görünümlerin açıklamasını da geçersiz kıldığınızı varsayar. Erişilebilirlik için mevcut seçimi (ör. "Roboto") korurken açılır menü gibi öğeleri (ör. "Yazı Tipi Ailesi") etiketlemek isterseniz bu durum soruna yol açabilir. Android 16, ViewGroup öğelerinin bilgilerini geçersiz kılmadan ViewGroup hakkında bilgi veren metin sağlayabilmeniz için setSupplementalDescription öğesini ekler.

Zorunlu form alanları

Android 16, uygulamaların bir erişilebilirlik hizmetine form alanına giriş yapılması gerektiğini bildirebilmesi için AccessibilityNodeInfo değerine setFieldRequired değerini ekler. Bu, zorunlu hükümler ve koşullar onay kutusu gibi basit şeyler de dahil olmak üzere birçok form türü dolduran kullanıcılar için önemli bir senaryodur. Kullanıcıların zorunlu alanları tutarlı bir şekilde tanımlamasına ve bunlar arasında hızlıca gezinmesine yardımcı olur.

LEA işitme cihazlarıyla sesli aramalar için mikrofon girişi olarak telefon

Android 16, LE Audio işitme cihazı kullanıcılarının sesli aramalar için işitme cihazlarındaki yerleşik mikrofonlar ile telefonlarındaki mikrofon arasında geçiş yapmalarına olanak tanır. Bu, gürültülü ortamlarda veya işitme cihazının mikrofonlarının iyi performans göstermeyebileceği diğer durumlarda yararlı olabilir.

LEA işitme cihazları için ortam ses seviyesi kontrolleri

Android 16, LE Audio işitme cihazı kullanıcılarının işitme cihazının mikrofonları tarafından alınan ortam sesinin ses seviyesini ayarlama özelliğini ekler. Bu, arka plan gürültüsünün çok yüksek veya çok düşük olduğu durumlarda yararlı olabilir.

Kamera

Android 16, profesyonel kamera kullanıcıları için desteği geliştirerek hassas renk sıcaklığı ve renk tonu ayarlamalarının yanı sıra karma otomatik pozlamaya olanak tanır. Yeni bir gece modu göstergesi, uygulamanızın gece modu kamera oturumuna ne zaman geçeceğini ve bu oturumdan ne zaman çıkacağını bilmesine yardımcı olur. Yeni Intent işlemler, hareketli fotoğraflar çekmeyi kolaylaştırıyor. Ayrıca, HEIC kodlama desteği ve ISO 21496-1 taslak standardındaki yeni parametrelerle Ultra HDR görüntüleri iyileştirmeye devam ediyoruz.

Karma otomatik pozlama

Android 16 向 Camera2 添加了新的混合自动曝光模式,让您可以手动控制曝光的特定方面,同时让自动曝光 (AE) 算法处理其余部分。您可以控制 ISO + AE曝光时间 + AE,与当前方法(您要么完全手动控制,要么完全依赖自动曝光)相比,可提供更大的灵活性。

fun setISOPriority() {
    // ... (Your existing code before the snippet) ...

    val availablePriorityModes = mStaticInfo.characteristics.get(
        CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
    )

    // ... (Your existing code between the snippets) ...

    // Turn on AE mode to set priority mode
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_MODE,
        CameraMetadata.CONTROL_AE_MODE_ON
    )
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_PRIORITY_MODE,
        CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
    )
    reqBuilder.set(
        CaptureRequest.SENSOR_SENSITIVITY,
        TEST_SENSITIVITY_VALUE
    )
    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after the snippet) ...
}

Hassas renk sıcaklığı ve renk tonu ayarlamaları

Android 16 adds camera support for fine color temperature and tint adjustments to better support professional video recording applications. In previous Android versions, you could control white balance settings through CONTROL_AWB_MODE, which contains options limited to a preset list, such as Incandescent, Cloudy, and Twilight. The COLOR_CORRECTION_MODE_CCT enables the use of COLOR_CORRECTION_COLOR_TEMPERATURE and COLOR_CORRECTION_COLOR_TINT for precise adjustments of white balance based on the correlated color temperature.

fun setCCT() {
    // ... (Your existing code before this point) ...

    val colorTemperatureRange: Range<Int> =
        mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]

    // Set to manual mode to enable CCT mode
    reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
    reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30

    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after this point) ...
}

The following examples show how a photo would look after applying different color temperature and tint adjustments:

The original image with no color temperature or tint adjustments applied.
The image with color temperature adjusted to 3000.
The image with color temperature adjusted to 7000.


The image with tint levels lowered by 50.
The image with tint levels raised by 50.

Kamerada gece modu sahne algılama

Uygulamanızın gece modu kamera oturumuna ne zaman geçeceğini ve ne zaman çıkacağını bilmesi için Android 16'da EXTENSION_NIGHT_MODE_INDICATOR eklendi. Destekleniyorsa Camera2'deki CaptureResult bölümünde kullanılabilir.

Bu, Instagram'ın kullanıcıların düşük ışıkta muhteşem fotoğraflar çekmesini nasıl sağladığı blog yayınında yakında kullanıma sunulacağından kısaca bahsettiğimiz API'dir. Bu yayında, gece modunun nasıl uygulanacağıyla ilgili pratik bir kılavuz ve uygulama içi kameradan paylaşılan fotoğrafların sayısının artmasıyla daha yüksek kaliteli uygulama içi gece modu fotoğrafları arasında bağlantı kuran bir örnek olay yer alıyor.

Hareketli fotoğraf yakalama amaçlı intent işlemleri

Android 16, kamera uygulamasının hareketli fotoğraf çekmesini ve döndürmesini isteyen standart Intent işlemleri (ACTION_MOTION_PHOTO_CAPTURE ve ACTION_MOTION_PHOTO_CAPTURE_SECURE) ekler.

Resmin nereye yazılacağını kontrol etmek için ek bir EXTRA_OUTPUT veya Intent.setClipData(ClipData) aracılığıyla bir Uri göndermeniz gerekir. ClipData ayarlamazsanız Context.startActivity(Intent) araması yapılırken sizin için kopyalanır.

Hareketli fotoğraf örneği. Hareketli fotoğrafta, hareketli oynatma öncesinde sabit görüntü gösterilir.

Ultra HDR görsel iyileştirmeleri

Standart Dinamik Aralık (SDR) ve Yüksek Dinamik Aralık (HDR) resim kalitesinin karşılaştırmasını gösteren görsel.

Android 16, Ultra HDR görüntülerle göz kamaştırıcı görüntü kalitesi sunma çalışmalarımıza devam ediyor. HEIC dosya biçiminde UltraHDR resimleri için destek ekler. Bu resimler ImageFormat türü HEIC_ULTRAHDR alır ve mevcut UltraHDR JPEG biçimine benzer bir yerleşik kazanç haritası içerir. UltraHDR için AVIF desteği üzerinde de çalışıyoruz. Gelişmeleri takip edin.

Ayrıca Android 16, ISO 21496-1 taslak standardından UltraHDR'ye ek parametreler uygular. Bu parametreler arasında, kazanç haritası matematiğinin uygulanması gereken renk alanını alma ve ayarlama özelliğinin yanı sıra SDR kazanç haritaları içeren HDR kodlanmış temel resimler için destek yer alır.

Grafik

Android 16, AGSL ile özel grafik efektleri gibi en yeni grafik iyileştirmelerini içerir.

AGSL ile özel grafik efektleri

Android 16'da RuntimeColorFilter ve RuntimeXfermode eklendi. Bu sayede, Eşik, Sepya ve Ton Doygunluğu gibi karmaşık efektler oluşturabilir ve bunları çizim çağrılarına uygulayabilirsiniz. Android 13'ten beri Shader'i genişleten özel RuntimeShaders oluşturmak için AGSL'yi kullanabilirsiniz. Yeni API, ColorFilter'i genişleten AGSL destekli bir RuntimeColorFilter ve kaynak ile hedef pikseller arasında AGSL tabanlı özel birleştirme ve karıştırma uygulamanıza olanak tanıyan bir Xfermode efekti ekleyerek bunu yansıtır.

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

Bağlantı

Android 16, platformu güncelleyerek uygulamanızın iletişim ve kablosuz teknolojilerdeki en son gelişmelere erişmesini sağlar.

Gelişmiş güvenlik ile aralık belirleme

Android 16, Wi-Fi 6'nın 802.11az özelliğine sahip desteklenen cihazlarda kablosuz konum için güçlü güvenlik özellikleri desteği ekler. Bu sayede uygulamalar, protokolün daha yüksek doğruluğunu, daha fazla ölçeklenebilirliğini ve dinamik planlamasını AES-256 tabanlı şifreleme ve MITM saldırılarına karşı koruma gibi güvenlik geliştirmeleriyle birleştirebilir. Bu sayede, dizüstü bilgisayarın veya araç kapısının kilidini açma gibi yakınlık kullanım alanlarında daha güvenli bir şekilde kullanılabilir. 802.11az, daha geniş kullanım ve daha kolay dağıtım için altyapısından ve özelliklerinden yararlanarak Wi-Fi 6 standardıyla entegre edilmiştir.

Genel mesafe API'leri

Android 16, desteklenen donanımlarda yerel cihaz ile uzak cihaz arasındaki mesafeyi ve açıyı belirleme yöntemleri sunan yeni RangingManager özelliğini içerir. RangingManager, BLE kanal seslendirme, BLE RSSI tabanlı menzil ölçümü, Ultra Geniş Bant ve kablosuz ağ gidiş dönüş süresi gibi çeşitli menzil ölçümü teknolojilerinin kullanımını destekler.

Companion Device Manager cihaz varlığı

Android 16'da, tamamlayıcı uygulama hizmetinizi bağlamak için yeni API'ler kullanıma sunulmaktadır. BLE kapsama alanındayken ve Bluetooth bağlıyken hizmet bağlanır. BLE kapsama alanından çıktığında veya Bluetooth bağlantısı kesildiğinde hizmetin bağlantısı kaldırılır. Uygulama, DevicePresenceEvent türlerine göre yeni bir 'onDevicePresenceEvent()' geri çağırma işlevi alır. Daha ayrıntılı bilgiyi 'startObservingDevicePresence(ObservingDevicePresenceRequest)' işlevinde bulabilirsiniz.

Medya

Android 16, medya deneyimini iyileştiren çeşitli özellikler içerir.

Fotoğraf seçiciyle ilgili iyileştirmeler

照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。

Android 16 对照片选择器进行了以下改进:

  • 嵌入式照片选择器新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
  • 照片选择器中的云搜索新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。

Gelişmiş Profesyonel Video

Android 16, profesyonel düzeyde yüksek kaliteli video kaydı ve post prodüksiyon için tasarlanmış Gelişmiş Profesyonel Video (APV) codec'i desteğini kullanıma sunar.

APV codec standardı aşağıdaki özelliklere sahiptir:

  • Görsel açıdan kayıpsız video kalitesi (ham video kalitesine yakın)
  • Düzenleme iş akışlarını daha iyi desteklemek için düşük karmaşıklığa ve yüksek veri hızına sahip yalnızca kare içi kodlama (piksel alanı tahmini olmadan)
  • Hafif bir entropi kodlama şemasıyla etkinleştirilen 2K, 4K ve 8K çözünürlüklü içerikler için birkaç Gb/sn'ye kadar yüksek bit hızı aralığı desteği
  • Immersive içerikler ve paralel kodlama ve kod çözme için kare tarama
  • Çeşitli renk örnekleme biçimleri ve bit derinlikleri için destek
  • Görsel kalitede ciddi bozulma olmadan birden fazla kod çözme ve yeniden kodlama desteği
  • Çoklu izlemeli video ve yardımcı video (derinlik, alfa ve önizleme gibi) desteği
  • HDR10/10+ ve kullanıcı tanımlı meta veriler için destek

APV'nin referans uygulaması, OpenAPV projesi aracılığıyla sağlanır. Android 16, 10 bit kodlamanın yanı sıra YUV 422 renk örnekleme sağlayan ve 2 Gbps'ye kadar hedef bit hızları için APV 422-10 Profili'ne destek sunacaktır.

Gizlilik

Android 16, uygulama geliştiricilerin kullanıcı gizliliğini korumasına yardımcı olan çeşitli özellikler içerir.

Health Connect güncellemeleri

Health Connect, orta ve yoğun aktiviteyle ilgili Dünya Sağlık Örgütü kurallarına göre tanımlanan bir veri türü olan ACTIVITY_INTENSITY'ü ekler. Her kayıt için başlangıç zamanı, bitiş zamanı ve aktivite yoğunluğunun orta mı yoksa yoğun mu olduğu belirtilmelidir.

Health Connect, tıbbi kayıtları destekleyen güncellenmiş API'ler de içerir. Bu sayede uygulamalar, kullanıcının açık izniyle FHIR biçiminde tıbbi kayıtları okuyabilir ve yazabilir.

Android'de Özel Korumalı Alan

Android 16 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。

Güvenlik

Android 16, uygulamanızın güvenliğini artırmanıza ve uygulamanızın verilerini korumanıza yardımcı olan özellikler içerir.

Key Sharing API

Android 16 添加了一些 API,这些 API 支持与其他应用共享对 Android Keystore 密钥的访问权限。新的 KeyStoreManager 类支持按应用 uid 授予撤消对密钥的访问权限,并包含一个供应用访问共享密钥的 API。

Cihaz form faktörleri

Android 16, uygulamalarınızın Android'in form faktörlerinden en iyi şekilde yararlanmasını sağlar.

TV'ler için standartlaştırılmış görüntü ve ses kalitesi çerçevesi

Android 16 中的新 MediaQuality 软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:

  • 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
  • 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
  • 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。

借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。

Uluslararası hale getirme

Android 16, cihaz farklı dillerde kullanılırken kullanıcı deneyimini tamamlayan özellikler ve işlevler ekler.

Dikey metin

Android 16, kitaplık geliştiricileri için temel dikey yazma desteği sağlamak amacıyla metni dikey olarak oluşturma ve ölçme için düşük düzeyde destek ekler. Bu, özellikle Japonca gibi genellikle dikey yazı sistemlerinin kullanıldığı diller için yararlıdır. Paint sınıfına VERTICAL_TEXT_FLAG adlı yeni bir işaret eklendi. Bu işaret Paint.setFlags kullanılarak ayarlandığında Paint'in metin ölçüm API'leri yatay ilerlemeler yerine dikey ilerlemeleri raporlar ve Canvas metni dikey olarak çizer.

val text = "「春は、曙。」"
Box(
    Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
        drawIntoCanvas { canvas ->
            val paint = Paint().apply { textSize = 64.sp.toPx() }
            // Draw text vertically
            paint.flags = paint.flags or VERTICAL_TEXT_FLAG
            val height = paint.measureText(text)
            canvas.nativeCanvas.drawText(
                text,
                0,
                text.length,
                size.width / 2,
                (size.height - height) / 2,
                paint
            )
        }
    }
) {}

Ölçü sistemi özelleştirme

Users can now customize their measurement system in regional preferences within Settings. The user preference is included as part of the locale code, so you can register a BroadcastReceiver on ACTION_LOCALE_CHANGED to handle locale configuration changes when regional preferences change.

Using formatters can help match the local experience. For example, "0.5 in" in English (United States), is "12,7 mm" for a user who has set their phone to English (Denmark) or who uses their phone in English (United States) with the metric system as the measurement system preference.

To find these settings, open the Settings app and navigate to System > Languages & region.