Ö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ü

  • This preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion.
  • We're planning the major release a quarter earlier (Q2 rather than Q3 in prior years) to better align with the schedule of device launches across our ecosystem, so more devices can get the major release of Android sooner. With the major release coming in Q2, you'll need to do your annual compatibility testing a few months earlier than in previous years to make sure your apps are ready.
  • We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps.

In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.

Timeline view of Android releases in 2025, noting that the 25Q2
       release is a major release and the 25Q4 release is a minor release.

We'll continue to have quarterly Android releases. The Q1 and Q3 updates in-between the API releases will provide incremental updates to help ensure continuous quality. We're actively working with our device partners to bring the Q2 release to as many devices as possible.

Using new APIs with major and minor releases

Guarding a code block with a check for API level is done today using the SDK_INT constant with VERSION_CODES. This will continue to be supported for major Android releases.

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

The new SDK_INT_FULL constant can be used for API checks against both major and minor versions with the new VERSION_CODES_FULL enumeration.

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

You can also use the Build.getMinorSdkVersion() method to get just the minor SDK version.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

These APIs have not yet been finalized and are subject to change, so please send us feedback if you have any concerns.

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.

Tahmine dayalı geri gitme güncellemeleri

Android 16, hareketle gezinme sırasında tahmine dayalı geri sistem animasyonlarını (ör. ana sayfaya geri animasyonu) etkinleştirmenize yardımcı olacak yeni API'ler ekler. onBackInvokedCallback'yi yeni PRIORITY_SYSTEM_NAVIGATION_OBSERVER ile kaydettiğinizde, uygulamanız normal geri gezinme akışını etkilemeden sistem geri gezinme işlemi gerçekleştirdiğinde normal onBackInvoked çağrısını alır.

Android 16'da ayrıca finishAndRemoveTaskCallback() ve moveTaskToBackCallback de eklenmiştir. Sistem, bu geri çağırma işlevlerini OnBackInvokedDispatcher ile kaydederek geri hareketi çağrıldığında belirli davranışları tetikleyebilir ve ilgili animasyonlar önceden oynatabilir.

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 analizler toplamanıza yardımcı olan API'ler sunar.

Sistem tarafından tetiklenen profil oluşturma

ProfilingManager 在 Android 15 中添加,让应用能够在现场使用 Perfetto 请求收集性能数据。不过,由于此性能分析必须从应用启动,因此应用很难或根本无法捕获启动或 ANR 等关键流程。

为此,Android 16 向 ProfilingManager 引入了系统触发的性能分析。应用可以注册接收特定触发器(例如冷启动 reportFullyDrawn 或 ANR)轨迹的兴趣,然后系统会代表应用启动和停止轨迹。轨迹完成后,结果会传送到应用的数据目录。

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, oyunlara ve yoğun kaynak kullanan uygulamalara mevcut CPU ve GPU kaynaklarının tahminlerini sağlamak için tasarlanmış getCpuHeadroom ve getGpuHeadroom API'lerini kullanıma sunar. Bu yöntemler, özellikle termal kısıtlamayı algılayan diğer Android Dinamik Performans Çerçevesi (ADPF) API'leriyle birlikte kullanıldığında, uygulamanızın veya oyununuzun sistem sağlığını en iyi şekilde nasıl iyileştirebileceğini ölçmenize olanak tanır.

Desteklenen cihazlarda CpuHeadroomParams ve GpuHeadroomParams düğmelerini kullanarak, boşluğu hesaplamak için kullanılan zaman aralığını özelleştirebilir ve ortalama veya minimum kaynak kullanılabilirliği arasında seçim yapabilirsiniz. Bu sayede CPU veya GPU kaynak kullanımınızı uygun şekilde azaltabilir, daha iyi kullanıcı deneyimleri ve daha uzun pil ömrü elde edebilirsiniz.

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 aramalarda 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'ye yeni karma otomatik pozlama modları ekler. Bu modlar, pozlamanın belirli yönlerini manuel olarak kontrol etmenize olanak tanır ve geri kalanını otomatik pozlama (AE) algoritmasının halletmesine olanak tanır. ISO + AE ve örnekleme süresi + AE'yi kontrol edebilirsiniz. Böylece, tam manuel kontrole sahip olduğunuz veya tamamen otomatik pozlamaya güvendiğiniz mevcut yaklaşıma kıyasla daha fazla esneklik elde edersiniz.

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, profesyonel video kayıt uygulamalarını daha iyi desteklemek için hassas renk sıcaklığı ve ton ayarlamaları için kamera desteği ekler. Önceki Android sürümlerinde, beyaz denge ayarlarını Akkor, Bulutlu ve Alacakaranlık gibi önceden belirlenmiş bir listeyle sınırlı seçenekler içeren CONTROL_AWB_MODE üzerinden kontrol edebiliyordunuz. COLOR_CORRECTION_MODE_CCT, ilişkili renk sıcaklığına göre beyaz dengesinin hassas ayarlanması için COLOR_CORRECTION_COLOR_TEMPERATURE ve COLOR_CORRECTION_COLOR_TINT düğmelerinin kullanılmasını sağlar.

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

Aşağıdaki örneklerde, farklı renk sıcaklığı ve ton düzenlemeleri uygulandıktan sonra bir fotoğrafın nasıl görüneceği gösterilmektedir:

Renk sıcaklığı veya ton ayarlaması uygulanmamış orijinal resim.
Renk sıcaklığı 3000 olarak ayarlanmış resim.
Renk sıcaklığı 7000 olarak ayarlanmış resim.


Ton seviyeleri %50 azaltılmış resim.
Ton seviyeleri 50 artırılmış resim.

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 çekme amaçlı işlem

Android 16 添加了标准 intent 操作 ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。

您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。

动态照片示例,显示静态图片和动态播放画面。

Ultra HDR görüntü geliştirmeleri

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量对比示意图。

Android 16 继续致力于通过 UltraHDR 图片提供出色的图片质量。它添加了对 HEIC 文件格式的 UltraHDR 图片的支持。这些图片将获得 ImageFormat 类型 HEIC_ULTRAHDR,并包含类似于现有 UltraHDR JPEG 格式的嵌入式增益图。我们还在努力为 UltraHDR 添加 AVIF 支持,敬请期待。

此外,Android 16 在 UltraHDR 中实现了 ISO 21496-1 草稿标准中的其他参数,包括能够获取和设置应应用增益图算法的色彩空间,以及支持使用 SDR 增益图的 HDR 编码基础图片。

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 mesafe ölçme

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 aralık 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 引入了对高级专业视频 (APV) 编解码器的支持,该编解码器专为专业级高品质视频录制和后期制作而设计。

APV 编解码器标准具有以下特点:

  • 感知上无损的视频画质(接近原始视频画质)
  • 复杂度低且吞吐量高的仅帧内编码(无像素域预测),以更好地支持编辑工作流
  • 支持高比特率范围(最高几十 Gbps),适用于 2K、4K 和 8K 分辨率内容,由轻量级熵编码方案实现
  • 帧平铺,用于沉浸式内容和启用并行编码和解码
  • 支持各种色度采样格式和位深
  • 支持多次解码和重新编码,且不会严重降低视觉质量
  • 支持多视图视频和辅助视频,例如深度、Alpha 和预览
  • 支持 HDR10/10+ 和用户定义的元数据

OpenAPV 项目提供了 APV 的参考实现。Android 16 将实现对 APV 422-10 配置文件的支持,该配置文件提供 YUV 422 色彩采样以及 10 位编码,并且目标比特率最高可达 2 Gbps。

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, kullanıcıların gizliliklerinin korunduğunu bildikleri teknolojiler geliştirmek için devam eden çalışmalarımızın bir parçası olan Android'de Özel Korumalı Alan'ın en son sürümünü içerir. Android geliştirici beta programındaki Özel Korumalı Alan hakkında daha fazla bilgiyi web sitemizde bulabilirsiniz. SDK'ların, sundukları uygulamadan ayrı özel bir çalışma zamanı ortamında çalışmasını sağlayan ve kullanıcı verilerinin toplanması ve paylaşılmasıyla ilgili daha güçlü önlemler sunan SDK Çalışma Zamanı'na göz atın.

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.

Anahtar paylaşımı API'si

Android 16, Android Anahtar Deposu anahtarlarına erişimi diğer uygulamalarla paylaşmayı destekleyen API'ler ekler. Yeni KeyStoreManager sınıfı, uygulama uid'sine göre anahtarlara erişim izni verme ve erişim iznini iptal etme işlemlerini destekler ve uygulamaların paylaşılan anahtarlara erişmesi için bir API içerir.

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'daki yeni MediaQualitypaketi, ses ve resim profillerine ve donanımla ilgili ayarlara erişim için standartlaştırılmış bir API grubu sağlar. Bu sayede akış uygulamaları profilleri sorgulayabilir ve medyaya dinamik olarak uygulayabilir:

  • Daha geniş dinamik aralıkla mastering işlemi uygulanan filmlerde, gölgelerdeki ince ayrıntıları görmek ve ortam ışığına uyum sağlamak için daha yüksek renk doğruluğu gerekir. Bu nedenle, parlaklık yerine renk doğruluğunu tercih eden bir profil uygun olabilir.
  • Canlı spor etkinlikleri genellikle dar bir dinamik aralık ile masterlanır ancak genellikle gün ışığında izlenir. Bu nedenle, renk doğruluğu yerine parlaklığı tercih eden bir profil daha iyi sonuçlar verebilir.
  • Tamamen etkileşimli içerikler, gecikmeyi azaltmak için minimum düzeyde işleme ve daha yüksek kare hızları gerektirir. Bu nedenle birçok TV, oyun profiliyle birlikte gönderilir.

API, uygulamaların profiller arasında geçiş yapmasına ve kullanıcıların desteklenen TV'leri içeriklerine en uygun şekilde ayarlamalarına olanak tanır.

Uluslararası hale getirme

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

Dikey metin

Android 16 添加了对垂直渲染和测量文本的低级支持,以便为库开发者提供基本的垂直书写支持。这对于日语等通常使用竖向书写系统的语言特别有用。Paint 类中添加了一个新标志 VERTICAL_TEXT_FLAG。使用 Paint.setFlags 设置此标志后,Paint 的文本测量 API 将报告垂直进度,而不是水平进度,并且 Canvas 将垂直绘制文本。

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

Kullanıcılar artık ölçüm sistemlerini Ayarlar'daki bölgesel tercihlerde özelleştirebilir. Kullanıcı tercihi, yerel ayar kodunun bir parçası olarak dahil edilir. Bu nedenle, bölgesel tercihler değiştiğinde yerel ayar yapılandırma değişikliklerini işlemek için ACTION_LOCALE_CHANGED üzerinde bir BroadcastReceiver kaydedebilirsiniz.

Düzenleyiciler kullanmak, yerel deneyimle eşleşmeye yardımcı olabilir. Örneğin, İngilizce (ABD) dilinde "0,5 in" olan ölçü birimi, telefonunu İngilizce (Danimarka) olarak ayarlayan veya telefonunu İngilizce (ABD) dilinde kullanırken ölçü birimi tercihi olarak metrik sistemi kullanan bir kullanıcı için "12,7 mm" olur.

Bu ayarları bulmak için Ayarlar uygulamasını açıp Sistem > Dil ve bölge'ye gidin.