Ürün Haberleri

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

Okuma süresi: 4 dk.
Daniel Galpin'in profilini görüntüleme
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ı deneyiminde ince ayarlar yapmanız, uçtan uca sorunsuz oluşturma sağlamanız veya en yeni API'lerden yararlanmanız fark etmeksizin 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'sı, kitaplığı, aracı veya oyun motoru geliştiriyorsanız aşağı akış uygulama ve oyun geliştiricilerinin uyumluluk sorunları nedeniyle engellenmesini önlemek ve en yeni SDK özelliklerini hedeflemelerine olanak tanımak için gerekli güncellemeleri şimdi yapmanız çok önemlidir. Lütfen alt geliştiricilerinize, Android 17'nin tam olarak desteklenmesi için güncelleme gerekip gerekmediğini bildirin.

Android17_Timeline_01_V02.png

Test işlemi, Google Play'i veya başka bir yöntemi kullanarak üretim uygulamanızı ya da kitaplığınızı veya motorunuzu kullanan bir test uygulamasını Android 17 Beta 4 çalıştıran bir cihaza veya emülatöre yüklemeyi içerir. Uygulamanızdaki tüm akışları inceleyin ve işlevsel veya kullanıcı arayüzü ile ilgili sorunları 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. Testinizi odaklamak için Android 17'de çalışan ve Android 17'yi hedefleyen uygulamalar için uygulamayı etkileyen davranış değişikliklerini inceleyin. Aşağıdakiler de bu değişikliklere dahildir:

  • Büyük ekranlarda yeniden boyutlandırma: Android 17'yi hedeflediğinizde artık büyük ekranlarda yön, yeniden boyutlandırılabilirlik 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.
  • CT'yi varsayılan olarak etkinleştir: 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 planda ses etkileşimleriyle ilgili kısıtlamaları zorunlu kılar. Geri bildirimlerinize dayanarak, beta 2'den bu yana bazı değişiklikler yaptık. Bu değişiklikler arasında, kullanımdayken FGS zorunluluğu ve alarm sesinin muaf tutulması sırasında targetSDK sınırlaması yer alıyor. Ayrıntılı bilgi için güncellenen yönergeleri inceleyin.

Uygulama bellek 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 sınırlar, 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ını ve diğer aykırı değerleri hedefler. Uygulama oturumlarının büyük çoğunluğunun bu değişiklikten en az düzeyde etkilenmesini bekliyoruz. Bununla birlikte, bellek için temel oluşturma da dahil olmak üzere bellekle ilgili en iyi uygulamaları uygulamanı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ı profilleme 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'de 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 birinci sınıf bir deneyim anlamına gelir. Android ekosistemi için daha hızlı ve güvenilir bir geleceği birlikte inşa edelim.

Uygulama anormallikleri için profilleme tetikleyicileri

Android, kaynak yoğun davranışları ve olası uyumluluk gerilemelerini izleyen cihaz üzerinde anomali 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 profilleme 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ı belirlemelerine ve düzeltmelerine yardımcı olmak için uygulamaya özgü yığın dökümleri almalarına olanak tanır. Ayrıca, aşırı bağlayıcı spam'i için anormallik tetikleyici, bağlayıcı işlemlerinde yığın örnekleme profili sağlar.

Bu API geri çağırması, sistem tarafından uygulanan yaptırımlardan önce gerçekleşir. Örneğin, uygulamanın bellek sınırlarını aşması nedeniyle sistem tarafından sonlandırılmadan önce hata ayıklama verilerini toplamalarına yardımcı olabilir. Tetikleyiciyi nasıl kullanacağınızı öğrenmek için tetikleyici tabanlı profilleme ile ilgili dokümanlarımıza göz atın.

    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 Keystore'da Kuantum Sonrası Kriptografi (PQC)

Android Keystore, NIST tarafından standartlaştırılmış ML-DSA (Modül Kafes Tabanlı Dijital İmza Algoritması) için destek ekledi. Desteklenen cihazlarda, tamamen cihazın güvenli donanımında ML-DSA anahtarları oluşturabilir ve bunları kuantum güvenli imzalar üretmek için kullanabilirsiniz. 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 belgelerimize 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 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 4'e kablosuz güncelleme yapmanız istenir.

Geri bildirim sayfasında sorun bildirmeye ve özellik istekleri göndermeye devam edin. Geri bildiriminizi ne kadar erken alırsak nihai sürümdeki çalışmamıza o kadar fazla şey dahil edebiliriz.

Android 17 ile en iyi geliştirme deneyimi için Android Studio (Panda)'nun 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, 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 kaynak 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 et