Ü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üleyin
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 önemli bir dönüm noktasıdır. Uygulamanızın kullanıcı deneyiminde ince ayarlar yaparken, uçtan uca sorunsuz görüntüleme sağlarken veya en yeni API'lerden yararlanırken Beta 4, test etmeniz gereken neredeyse nihai 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 gerekli güncellemeleri hemen hazırlamanız çok önemlidir. Bu sayede, alt uygulama ve oyun geliştiricilerinizin uyumluluk sorunları nedeniyle engellenmesini önleyebilir ve en yeni SDK özelliklerini hedeflemelerini sağlayabilirsiniz. Android 17'yi tam olarak desteklemek için güncelleme yapılması gerekiyorsa lütfen alt geliştiricilerinizi bilgilendirin.

Android17_Timeline_01_V02.png

Test, üretim uygulamanızı veya kitaplığınızı ya da motorunuzu kullanan bir test uygulamasını Google Play'i veya başka yöntemleri kullanarak Android 17 Beta 4 çalıştıran bir cihaza ya da emülatöre yüklemeyi içerir. Uygulamanızın tüm akışlarını inceleyerek işlevsel veya kullanıcı arayüzüyle ilgili sorunları bulun. Android'in her sürümü gizlilik, güvenlik ve genel kullanıcı deneyimini iyileştiren platform değişiklikleri içerir. Testlerinizi odaklamak için Android 17'de çalışan ve Android 17'yi hedefleyen uygulamaları etkileyen davranış değişikliklerini inceleyin. Bu değişikliklerden bazıları şunlardır:

  • Büyük ekranlarda yeniden boyutlandırılabilirlik: 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 gerekiyordu.)
  • Yerel ağ korumaları: Android 17 veya sonraki sürümleri hedefleyen uygulamaların yerel ağ erişimi varsayılan olarak engellenir. Mümkünse gizliliği korumaya yönelik seçicileri kullanmaya geçin ve geniş kapsamlı, kalıcı erişim için yeni ACCESS_LOCAL_NETWORK iznini kullanın.
  • Arka plan sesini güçlendirme: 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 plan ses etkileşimlerine kısıtlamalar getirir. Geri bildirimlerinize dayanarak, Beta 2'den bu yana bazı değişiklikler yaptık. Bunlar arasında, kullanım sırasında ön plan hizmeti yaptırımını engelleyen targetSDK ve alarm sesinin muaf tutulması yer alıyor. Tüm ayrıntıları güncellenen yönergelerde bulabilirsiniz.

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 sınırlar, sistem referans değerlerini belirlemek için muhafazakar bir şekilde ayarlanır. Bu sayede, kullanıcı arayüzünde takılmalara, daha fazla pil tüketimine ve uygulamaların kapatılmasına neden olan sistem genelinde kararsızlığı tetiklemeden önce aşırı bellek sızıntıları ve diğer aykırı değerler hedeflenir. Uygulama oturumlarının büyük çoğunluğunda minimum etki beklesek de bellek için bir referans oluşturma dahil olmak üzere bellekle ilgili aşağıdaki en iyi uygulamaları kullanmanızı öneririz.

Mevcut uygulamada, uygulamanız etkilendiyse ApplicationExitInfo içindeki getDescription, "MemoryLimiter" dizesini içerir. Bellek sınırına ulaşıldığında toplanan yığın dökümlerini almak için TRIGGER_TYPE_ANOMALY ile tetikleyici tabanlı profillemeyi 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 bağlamında ve kaynak kodunuzla tamamen entegre şekilde çalışır.

Bellekte kaplanan yerin daha az olması, doğrudan daha sorunsuz performans, daha uzun pil ömrü ve tüm form faktörlerinde üstün bir deneyim sağlar. Android ekosistemi için daha hızlı ve daha güvenilir bir gelecek inşa edelim.

Uygulama anormallikleri için profil oluşturma tetikleyicileri

Android, kaynak yoğun davranışları ve olası uyumluluk gerilemelerini izleyen, cihaz üzerinde çalışan bir anormallik algılama hizmeti sunar. ProfilingManager ile entegre olan bu hizmet, uygulamanızın sistem tarafından algılanan belirli etkinliklerle 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ı ihlal ettiğinde anormallik tetikleyici, geliştiricilerin uygulamaya özel yığın dökümleri almasına olanak tanıyarak bellek sorunlarını tespit edip düzeltmelerine yardımcı olur. Ayrıca, aşırı bağlayıcı spam'i için anormallik tetikleyicisi, bağlayıcı işlemlerinde bir yığın örnekleme profili sağlar.

Bu API geri çağırma işlemi, sistem tarafından uygulanan yaptırımlardan önce gerçekleşir. Örneğin, geliştiricilerin, uygulama bellek sınırlarını aştığı için sistem tarafından sonlandırılmadan önce hata ayıklama verilerini toplamasına yardımcı olabilir. Tetikleyicinin nasıl kullanılacağını anlamak için tetikleyici tabanlı profil oluşturma 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, ML-DSA anahtarları oluşturabilir ve bunları tamamen cihazın güvenli donanımında kuantum güvenli imzalar oluşturmak için kullanabilirsiniz. Android Keystore, ML-DSA-65 ve ML-DSA-87 algoritma varyantlarını standart Java Cryptographic Architecture API'leri aracılığıyla kullanıma sunar: KeyPairGenerator, KeyFactory ve Signature. Daha fazla bilgi için geliştirici belgelerimizi inceleyin.

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

Geri bildirim sayfasında sorun bildirmeye ve özellik isteği göndermeye devam edin. Geri bildiriminizi ne kadar erken alırsak son sürümle ilgili çalışmalarımıza o kadar çok katkıda bulunabilirsiniz.

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 gerekenlerden bazıları şunlardır:

  • Yeni SDK'ya göre derleme yapın, CI ortamlarında test edin ve sorunları geri bildirim sayfasındaki takip aracımızda 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 derlemesini yükledikten sonra, sonraki tüm önizlemeler ve beta sürümleri için gelecekteki güncellemeleri kablosuz olarak otomatik olarak alırsınız.

Tüm bilgileri Android 17 geliştirici sitesinde bulabilirsiniz.

Sohbete katılın

Geri bildirimleriniz bizim için en değerli varlıktır. İster Canary kanalındaki ilk kullanıcılardan biri ister Beta 4'te test yapan bir uygulama geliştirici olun, topluluklarımıza katılabilir ve geri bildirim gönderebilirsiniz. Sizi dinliyoruz.

Yazan:
Okumaya devam et