Ürün Haberleri

Android 17'nin Dördüncü Beta Sürümü

Okuma süresi: 4 dakika
Daniel Galpin
Geliştirici Destekçisi

Android 17, bu sürüm döngüsünün planlanan son beta sürümü olan beta 4'e ulaştı. Bu, uygulama uyumluluğu ve platform kararlılığı açısından kritik bir dönüm noktasıdır. Uygulamanızın kullanıcı deneyimine ince ayar yaparken, uçtan uca sorunsuz oluşturma sağlarken veya en yeni API'lerden yararlanırken Beta 4, test etmeniz gereken neredeyse son ortamı sunar. 

Uygulamalarınızı, kitaplıklarınızı, araçlarınızı ve oyun motorlarınızı hazırlayın.

Android SDK, kitaplık, araç veya oyun motoru geliştiriyorsanız alt akış uygulama ve oyun geliştiricilerinizin uyumluluk sorunları nedeniyle engellenmesini önlemek ve en yeni SDK özelliklerini hedeflemelerine olanak tanımak için gerekli güncellemeleri şimdi yapmanız çok önemlidir. Android 17'nin tam olarak desteklenmesi için güncelleme yapılması gerekiyorsa lütfen alt akış geliştiricilerinizi bilgilendirin.

Android17_Timeline_01_V02.png

Test işlemi, Google Play veya başka yöntemler kullanarak üretim uygulamanızı ya da Android 17 Beta 4 çalıştıran bir cihaza veya emülatöre kitaplığınızı ya da motorunuzu kullanan bir test uygulamasını yüklemeyi içerir. Uygulamanızdaki tüm akışları inceleyin ve işlevsel veya kullanıcı arayüzü sorunlarını tespit edin. Android'in her sürümünde gizliliği, güvenliği ve genel kullanıcı deneyimini iyileştiren platform değişiklikleri bulunur. Testlerinize odaklanmak için Android 17'de çalışan ve Android 17'yi hedefleyen uygulamalarda uygulamayı etkileyen davranış değişikliklerini inceleyin. Bu değişiklikler arasında aşağıdakiler yer alır:

  • Büyük ekranlarda yeniden boyutlandırma: Android 17'yi hedeflediğinizde, büyük ekranlarda yön, yeniden boyutlandırma ve en boy oranı kısıtlamalarını korumayı devre dışı bırakamazsınız.
  • Dinamik kod yükleme: Uygulamanız Android 17 veya sonraki sürümleri hedefliyorsa DEX ve JAR dosyaları için Android 14'te kullanıma sunulan daha güvenli dinamik kod yükleme (DCL) koruması artık yerel kitaplıkları da kapsıyor. System.load() kullanılarak yüklenen tüm yerel dosyalar salt okunur olarak işaretlenmelidir. Aksi takdirde sistem UnsatisfiedLinkError hatası verir.
  • Varsayılan olarak CT'yi etkinleştirin: Sertifika şeffaflığı (CT) varsayılan olarak etkindir. (Android 16'da CT kullanılabilir ancak uygulamaların özelliği etkinleştirmesi gerekir.)
  • Yerel ağ korumaları: Android 17 veya sonraki sürümleri hedefleyen uygulamalarda yerel ağ erişimi varsayılan olarak engellenir. Mümkünse gizliliği koruyan seçicileri kullanmaya geçin ve geniş kapsamlı, kalıcı erişim için yeni ACCESS_LOCAL_NETWORK iznini kullanın.
  • Arka planda ses sağlamlaştırma: Android 17'den itibaren ses çerçevesi, 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 uygular. Geri bildirimlerinize dayanarak, beta 2'den bu yana bazı değişiklikler yaptık. Örneğin, kullanımda olan FGS'nin zorunlu kılınması sırasında targetSDK'yı sınırladık ve alarm sesini muaf tuttuk. Ayrıntılı bilgi için güncellenen kılavuza göz atın.

Uygulama belleği sınırları

Android, uygulamalarınız ve Android kullanıcıları için daha kararlı ve deterministik bir ortam oluşturmak amacıyla cihazın toplam RAM'ine göre uygulama bellek sınırları getiriyor. Android 17'de, sistem temellerini oluşturmak için sınırlar muhafazakar bir şekilde belirlenir. Bu sayede, sistem genelinde kararsızlığa yol açarak kullanıcı arayüzünün takılmasına, pilin hızlı tükenmesine ve uygulamaların kapatılmasına neden olmadan önce aşırı bellek sızıntıları ve diğer aykırı durumlar hedeflenir. Uygulama oturumlarının büyük çoğunluğunun bu değişiklikten en az düzeyde etkileneceğini tahmin etsek de bellek için temel oluşturma da dahil olmak üzere aşağıdaki bellek en iyi uygulamalarını kullanmanızı öneririz.

Mevcut uygulamada, uygulamanız etkilendiyse ApplicationExitInfo içindeki getDescription, "MemoryLimiter" dizesini içerir. Bellek sınırı aşıldığında toplanan yığın dökümlerini almak için TRIGGER_TYPE_ANOMALY ile tetikleyici tabanlı profil oluşturma özelliğini de kullanabilirsiniz.

unnamed (2).png
Android Studio Profiler'daki LeakCanary görevi

Android Studio Panda, bellek sızıntılarını bulmanıza yardımcı olmak için LeakCanary entegrasyonunu doğrudan Android Studio Profiler'a özel bir görev olarak ekler. Bu görev, IDE içinde bağlamsallaştırılır ve kaynak kodunuzla tamamen entegre edilir.

Daha az bellekte kaplanan yer, doğrudan daha sorunsuz performans, daha uzun pil ömrü ve tüm form faktörlerinde üstün bir deneyim anlamına gelir. Android ekosistemi için daha hızlı ve güvenilir bir gelecek inşa edelim.

Uygulama anormallikleri için profilleme tetikleyicileri

Android, kaynak yoğun davranışları ve olası uyumluluk gerilemelerini izleyen cihaz üzerinde anormallik algılama hizmetini kullanıma sunuyor. ProfilingManager ile entegre olan bu hizmet, uygulamanızın sistem tarafından algılanan belirli etkinlikler tarafından tetiklenen profil oluşturma yapılarını almasına olanak tanır.

Aşırı bağlayıcı çağrıları ve aşırı bellek kullanımı gibi sistem performansı sorunlarını tespit etmek için TRIGGER_TYPE_ANOMALY tetikleyicisini kullanın. Bir uygulama, işletim sistemi tarafından tanımlanan bellek sınırlarını aştığında anomali tetikleyici, geliştiricilerin bellek sorunlarını belirleyip düzeltmelerine yardımcı olmak için uygulamaya özgü yığın dökümleri almasına olanak tanır. Ayrıca, aşırı bağlayıcı spam'i için anomali tetikleyici, bağlayıcı işlemlerinde yığın örnekleme profili sağlar.

Bu API geri çağırması, sistem tarafından uygulanan zorunlu işlemlerden önce gerçekleşir. Örneğin, uygulamanın bellek sınırlarını aşması nedeniyle sistem tarafından sonlandırılmasından önce geliştiricilerin hata ayıklama verilerini toplamasına yardımcı olabilir. Tetikleyiciyi nasıl kullanacağınızı öğrenmek için tetikleyici tabanlı profil oluşturma ile ilgili dokümanlarımızı inceleyin.

    val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java)
    val triggers = ArrayList<ProfilingTrigger>()  
    triggers.add(ProfilingTrigger.Builder(
                 ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
    val mainExecutor: Executor = Executors.newSingleThreadExecutor()
    val resultCallback = Consumer<ProfilingResult> { profilingResult ->
        if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
            // upload profile result to server for further analysis          
            setupProfileUploadWorker(profilingResult.resultFilePath)
        } 
    profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
    profilingManager.addProfilingTriggers(triggers)
}

Android Anahtar Deposu'nda Kuantum Sonrası Kriptografi (PQC)

Android Keystore, NIST tarafından standartlaştırılmış ML-DSA (Module-Lattice-Based Digital Signature Algorithm) için destek ekledi. Desteklenen cihazlarda ML-DSA anahtarları oluşturabilir ve bunları kullanarak tamamen cihazın güvenli donanımında kuantum güvenli imzalar üretebilirsiniz. Android Keystore, ML-DSA-65 ve ML-DSA-87 algoritma varyantlarını standart Java Cryptographic Architecture API'leri (KeyPairGenerator, KeyFactory ve Signature) aracılığıyla kullanıma sunar. Daha fazla bilgi için geliştirici dokümanlarımıza bakın.

KeyPairGenerator generator = KeyPairGenerator.getInstance(
        ML-DSA-65, "AndroidKeyStore");
generator.initialize(
        new KeyGenParameterSpec.Builder(
                my-key-alias,
                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
        .build());
KeyPair keyPair = generator.generateKeyPair();

Android 17'yi kullanmaya başlama

Bu ve gelecekteki Android Beta güncellemelerini kablosuz olarak almak için desteklenen tüm Pixel cihazları 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ı'nda yer alıyorsanız Beta 4'e kablosuz güncelleme teklifi alırsınız.

Geri bildirim sayfasında sorun bildirmeye ve özellik istekleri göndermeye devam edin. Geri bildiriminizi ne kadar erken alırsak son sürümle ilgili çalışmalarımıza o kadar fazla şey ekleyebiliriz.

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

  • 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 olarak alırsınız.

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

Sohbete katılın

Geri bildirimleriniz bizim için en değerli varlık olmaya devam ediyor. Canary kanalında erken erişim kullanıcısı veya Beta 4'te 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