Bugün Android 17'yi yayınlıyor ve desteklenen çoğu Pixel cihazda kullanıma sunuyoruz. Önümüzdeki aylarda Android 17'nin yüklü olduğu yeni cihazlar satışa sunulacak.
Android 17, uygulamalarınızı merkeze alarak zeka sistemine geçişimizin başlangıcını işaret ediyor. Android, zorunlu büyük ekran yeniden boyutlandırma özelliğini sunarak uyarlanabilirliğe öncelik veren geliştirme standartlarına geçiş yapıyor. Aynı zamanda yeni nesil gizlilik, güvenlik, medya, kamera ve performans özelliklerini de sunuyor. Bu yayında tüm bunları ve uygulamalarınızın bu fırsattan yararlanmasına yardımcı olmak için yeni nesil araçları, kitaplıkları ve aracı becerilerini nasıl bir araya getirdiğimizi ele alacağız.
Geçtiğimiz yıl boyunca, Canary kanalımızdan beta sürümlerimize kadar, geliştirici topluluğundaki birçok kişiyle işbirliği yaparak sizin ve kullanıcılarınızın güvenebileceği bir platform oluşturduk. Bu nedenle, bu an itibarıyla kaynak kodu Android Açık Kaynak Projesi'nde (AOSP) kullanıma sunulmuştur. Bu sayede Android'in işleyiş şeklini daha iyi anlamak için kaynak kodunu inceleyebilirsiniz.
Android 17'yi daha ayrıntılı inceleyelim.
Bir istihbarat sistemi
Donanım, yazılım ve yapay zeka arasındaki derin entegrasyon sayesinde Android'i işletim sisteminden zeka sistemine dönüştürüyoruz. Kullanıcı ihtiyaçlarını öngören yeni ve faydalı deneyimler sunmakla ilgilidir ve uygulamalarınızla etkileşim için daha fazla fırsat sağlar. Bu amaçla Android 17, AppFunctions'ın (ilgili Jetpack kitaplığına sahip bir platform API'si) özelliklerini genişletiyor. Bu sayede, uygulamanızın benzersiz özelliklerini Android MCP için düzenlenebilir "araçlar " olarak kullanabilirsiniz. Android MCP, Model Bağlam Protokolü'nün cihaz üzerinde çalışan eşdeğeridir. Yapay zeka aracıları ve asistanları (ör. Google Gemini), uygulamanın yerel durumuna doğrudan erişerek kullanıcı adına iş akışlarını gerçekleştirmek için AppFunction'ları keşfedip yürütebilir.
Şu anda alfa sürümünde olan Jetpack kitaplığı, AppFunction'ları eklemeyi bir sınıfı açıklama eklemek ve KDoc yorumları eklemek kadar kolay hale getirir.
/** * A note app's [AppFunction]s. */ class NoteFunctions( private val noteRepository: NoteRepository ) { /** * Adds a new note to the app. * * @param appFunctionContext The execution context. * @param title The title of the note. * @param content The note's content. */ @AppFunction(isDescribedByKDoc = true) suspend fun createNote( appFunctionContext: AppFunctionContext, title: String, content: String ): Note { return noteRepository.createNote(title, content) } }
Ayrıca, uygulamanızın temel iş akışlarını analiz eden, gerekli Kotlin kodunu otomatik olarak oluşturan, KDoc'larınızı LLM araç çağrısı için optimize eden ve test ile hata ayıklama için ADB komutları sağlayan bir AppFunctions agent becerisi de kullanıma sunduk.
Gemini entegrasyonu şu anda güvenilir test kullanıcılarıyla özel önizleme aşamasındadır ancak uygulamalarınızı hazırlamaya başlayabilirsiniz. AppFunctions'larınızı yürütmek için ADB komutlarına ek olarak, AppFunctions'larınızı keşfedip yürütmek ve yapay zeka aracısı entegrasyonunu simüle etmek için bir arayüz içeren test aracısı uygulaması da sağladık. Uygulama İşlevlerini üretime dağıtan ilk uygulamalar arasında yer almak için goo.gle/eap-af adresinden entegrasyon erken erişim programımıza katılın.
Uyarlanabilirliğe öncelik verme
Kullanıcılarınız artık tek bir form faktörüne bağlı kalmıyor. Telefonlar, katlanabilir cihazlar, tabletler, dizüstü bilgisayarlar, otomotiv ekranları ve etkileyici XR ortamları arasında geçiş yapıyorlar. Kullanıcıların elinde 580 milyondan fazla büyük ekranlı cihaz ve Googlebooks'un yakında kullanıma sunulmasıyla birlikte, Android yığını üzerine kurulu yeni nesil ChromeOS'te uyarlanabilirlik artık sadece teknik bir hedef değil. Bu, yüksek etkileşimli kullanıcılara ulaşmak için büyük bir fırsat. Bu nedenle uyarlanabilirliğe öncelik veren bir geliştirme standardına geçiyoruz.
Büyük ekranlarda yeniden boyutlandırılabilirlik/yön kısıtlaması yok
Android 17 (API düzeyi 37), uygulamaların bağlı ekranlarda masaüstü modunda çalışan mobil cihazlar da dahil olmak üzere tüm form faktörlerinde birinci sınıf bir deneyim sunmasını sağlamak için API düzeyi 37'yi hedefleyen uygulamalarda büyük ekranlı cihazlarda (sw > 600 dp) yön ve yeniden boyutlandırma kısıtlamaları için geliştirici devre dışı bırakma seçeneğini kaldırır. Sistem, screenOrientation, setRequestedOrientation(), resizeableActivity=false ve en-boy oranı kısıtlamaları (minAspectRatio/maxAspectRatio) dahil olmak üzere eski manifest özelliklerini ve çalışma zamanı API'lerini yoksayar. Oyunlar (Google Play'deki uygulama kategorisine göre) muaf olmaya devam eder. Uygulamanız, herhangi bir pencere boyutuna uyum sağlamaya hazır olmalı, kullanıcının tercih ettiği cihaz duruşuna saygı duymalı ve serbest biçimli pencerelemeyi yerel olarak desteklemelidir.
Yeni nesil çoklu görev: uygulama balonları, balon çubuğu ve masaüstü etkileşimli PIP
Android 17, kullanıcıların çoklu görev yapma şeklini yeniden tanımlayan güçlü yeni pencere özellikleri sunuyor. Bu özellikler, uygulamalarınızdan daha da fazla düzen esnekliği talep ediyor:
- Uygulama Balonları: Mesajlaşma balonları API'sinin ötesine geçen bu özellik sayesinde kullanıcılar, başlatıcıda simgesine uzun basarak herhangi bir uygulamayı kayan balon haline getirebilir. Bu özellik telefonlarda, katlanabilir cihazlarda ve tabletlerde kullanılabilir. Böylece, herhangi bir iş akışında kolayca çoklu görev yapabilirsiniz.
- Balon çubuğu: Büyük ekranlarda (tabletler ve katlanabilir cihazlar) sistem görev çubuğu artık bu kayan uygulama balonlarını düzenlemek, aralarında geçiş yapmak ve sabitlemek için özel bir balon çubuğu içeriyor.
- Masaüstü etkileşimli PiP: Android 17, masaüstü ortamlarında etkileşimli pencere içinde pencere (PiP) özelliğini kullanıma sunar. Salt okunur olan geleneksel PiP pencerelerinin aksine, bu sabitlenmiş pencereler diğer uygulama pencerelerinin her zaman üzerinde kalırken tamamen etkileşimli olmaya devam eder.
Etkinlik yeniden oluşturma güncellemeleri
Android 17, kesintiye neden olan durum kaybını ve takılmayı önlemek için Activity yeniden oluşturma işleminin varsayılan davranışını günceller. Sistem artık tam bir kullanıcı arayüzü yeniden çizimi gerektirmeyen tipik yapılandırma değişiklikleri için (CONFIG_KEYBOARD, CONFIG_KEYBOARD_HIDDEN, CONFIG_NAVIGATION, CONFIG_TOUCHSCREEN ve CONFIG_COLOR_MODE dahil) etkinlikleri varsayılan olarak yeniden başlatmayacak.
Bunun yerine, çalışan etkinlikler bu güncellemeleri onConfigurationChanged() üzerinden alarak sorunsuz geçişler sağlar. Uygulamanız bu değişiklikler için kaynakları yeniden yüklemek üzere açıkça tam yeniden başlatmaya bağlıysa artık yeni android:recreateOnConfigChanges manifest özelliğini kullanarak açıkça etkinleştirmeniz gerekir.
Şurada devam edin
Android 17, kullanıcıların bir görevi Android cihazlar arasında sorunsuz bir şekilde aktarmasına yardımcı olmak için Devam Et özelliğini ekler. Kullanıcı, tablet görev çubuğunda mobil cihazından en son açılan uygulamayla ilgili bir öneri görür. Bu öneri, uygulamayı başlatmak ve kaldığı yerden devam etmek için tek dokunuşla kolaylık sağlar. Devam etme özelliği, uygulama yüklenmemişse web'i kullanmaya geri dönme de dahil olmak üzere uygulamadan web'e geçişleri destekleyebilir.
class MyHandoffActivity : Activity() {
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Do stuff
...
// Enable handoff
setHandoffEnabled(true, null)
}
// Override and implement onHandoffActivityDataRequested
override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
// Create and return handoff data
}
}Jetpack Compose ile uyarlanabilirliğe öncelik verme
Uygulamalarınızı yeni Android 17 şartlarına uyarlamanıza yardımcı olmak için Jetpack Compose uyarlanabilir becerisini kullanıma sunduk. Yapay zeka destekli bu geliştirici iş akışı, en iyi uyarlanabilir uygulamaları uygulamanıza yardımcı olur:
- Uyarlanabilir gezinme: Material 3 Adaptive kitaplığındaki
NavigationSuiteScaffoldöğesini kullanarak mobil cihazlarda alt gezinme çubukları, büyük ekranlarda ise kenara sabitlenmiş gezinme rayları arasında otomatik olarak geçiş yapın. - Çok panelli düzenler: Kırılgan parça işlemleri yerine Navigation 3 Scenes (
ListDetailSceneStrategyveSupportingPaneSceneStrategy) kullanarak listeleme-ayrıntı düzenlerini ve destekleyici bölme düzenlerini yerel olarak uygulayın. - FlexBox ve Grid API'leri: İçeriğinizin her zaman alanı güzel bir şekilde doldurmasını sağlamak için Compose 1.11'in dinamik düzen bileşenlerini kullanarak satır ve sütun aralıklarını kolayca ayarlayın.
- Gelişmiş dokunma dışı giriş: Compose 1.11'in gelişmiş dokunmatik yüzey ve fare desteğinden yararlanın. Bu destek kapsamında, yerel odak halkaları ve yeni API'ler (ör.
TrackpadInjectionScopeveperformTrackpadInput) bulunur. Bu sayede, Googlebook'larda ve masaüstü modunda gerçek bir "dizüstü bilgisayar sınıfı" deneyimini kolayca test edip sunabilirsiniz. - Dinamik pencere durumları: Uygulama tam ekrandan kayan uygulama balonuna veya etkileşimli masaüstü PiP penceresine geçerken kullanıcı arayüzünüzü sorunsuz bir şekilde uyarlamak için Compose'un reaktif durum modelinden yararlanın. Böylece, en küçük boyutlarda bile birinci sınıf bir deneyim sunabilirsiniz.
Android'de öncelikli olarak Compose kullanılır
Compose, uyarlanabilir uygulamalar oluşturmanın en kolay yoludur. Bu, tüm Android kullanıcı arayüzlerinin Compose ile oluşturulması gerektiğine inanmamızın birçok nedeninden yalnızca biridir. Bu nedenle, Android geliştirmede artık öncelikli olarak Compose kullanılmaktadır. Tüm yeni Android API'leri, kitaplıkları, araçları ve geliştirici kılavuzları yalnızca Jetpack Compose için oluşturulacak. Eski View bileşenleri (android.widget paketinde) ve View tabanlı Jetpack kitaplıkları (ör. Fragments, RecyclerView ve ViewPager) artık bakım modundadır. Yalnızca kritik hata düzeltmelerini alırlar ve yeni özellikler almazlar.
İPUCU Taşımaya hazır mısınız? Eski View düzenlerinizi otomatik olarak analiz edip son derece uyarlanabilir Compose koduna dönüştürmek için yapay zeka destekli XML to Compose Migration Skill aracımızı kullanın.
Performans ve verimlilik
Uygulama performansı; sorunsuz bir kullanıcı arayüzü, hızlı uygulama başlatma süreleri ve verimli çoklu görev anlamına gelir. Android 17, bu alanların tümünde etkili iyileştirmeler sunar.
Uygulama bellek sınırları
Bellek kullanımı, genel performansın sessiz temellerinden biridir. Ön plandaki bir uygulama veya hizmet kontrolsüz bir şekilde büyüdüğünde bellek yönetimi, CPU ve pil kullanımını artırır. Sonunda, düzgün çalışan diğer önbelleğe alınmış uygulamaların ve arka plan işlerinin sonlandırılmasına yol açar. Bu da sonuç olarak daha yavaş soğuk başlatmalara ve bozulmuş çoklu görevlere neden olur.
Android 17'den itibaren sistem, cihazın toplam RAM'ine göre katı uygulama bellek sınırları uygulayacak ve sorunlu işlemleri aniden sonlandıracak. Bu daha katı şartlara uyum sağlamanıza yardımcı olacak yeni özellikler:
- R8 Optimizasyon Aracı: R8 optimizasyon aracı, sınıfları, yöntemleri ve alanları daha kısa adlarla küçülterek ve kullanılmayan kodları ve kaynakları kaldırarak uygulamanızın bayt kod bellekte kaplanan yerini önemli ölçüde azaltır. Uygulamanızın R8'den en iyi şekilde yararlandığından emin olmak için R8'i tam modda yeni R8 yapılandırma analiz aracı ile birlikte kullanın.
- Android Studio Panda'da LeakCanary: Profiler artık IDE'niz ve kaynak kodunuzla tamamen entegre edilmiş özel bir görev olarak yerel LeakCanary entegrasyonuna sahiptir.
- ApplicationExitInfo: Uygulamanız bu sınırlar nedeniyle sonlandırılırsa ApplicationExitInfo'daki getDescription() işlevi "MemoryLimiter:AnonSwap" değerini döndürür.
- Cihaz Üzerinde Anomali Algılama: ProfilingManager'ın bir parçası olan bu özellik sayesinde, bellek sınırına ulaşıldığında yığın dökümlerini otomatik olarak yakalamak için
TRIGGER_TYPE_ANOMALYkullanarak tetikleyici tabanlı profil oluşturmadan yararlanabilirsiniz.
val profilingManager = applicationContext .getSystemService(ProfilingManager::class.java) val triggers = ArrayList<ProfilingTrigger>().apply { add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build()) } profilingManager.addProfilingTriggers(triggers)
Ayrıca, Google Play Console'da daha fazla saha içi bellek metriği göstermek için çalışıyoruz.
Nesilsel atık toplama
Android 17, ART'ın Concurrent Mark-Compact çöp toplayıcısına (GC) daha sık ve daha az kaynak yoğun genç nesil koleksiyonları sunar. Kısa ömürlü nesneleri kararlı ve uzun ömürlü nesnelerden ayıran sistem, pahalı tam yığın taramaları yerine sık sık hafif "genç nesil" temizlemeleri yaparak CPU kullanımını, güç tüketimini ve kullanıcı arayüzü takılmasını önemli ölçüde azaltır. Testlerimiz, GC'nin uygulama iş parçacıklarıyla etkileşiminde önemli iyileşmeler ve maksimum bellek yerleşik küme boyutunda (RSS) azalma olduğunu gösterdi. ART iyileştirmeleri, Google Play sistem güncellemeleri aracılığıyla Android 12 (API düzeyi 31) ve sonraki sürümleri çalıştıran bir milyardan fazla cihazda da kullanılabilir.
Lock-Free MessageQueue
SDK 37 veya sonraki sürümleri hedefleyen uygulamalarda temel android.os.MessageQueue artık kilitlenmeyen bir mimariyi uyguluyor. Bu sayede, kaçırılan kareler önemli ölçüde azaltılıyor, uygulamanın başlatılma süresi iyileştiriliyor ve çok iş parçacıklı senaryolarda yoğun kuyrukların performansı büyük ölçüde artırılıyor. Not: Bu, özel MessageQueue alanlarında ve yöntemlerinde yansıtma kullanan uygulamaların bozulmasına neden olabilir. peekWhen ve poll API'leri, MessageQueue iç öğelerine bağlı kalmadan enstrümantasyon testi için TestLooperManager'a eklendi.
Statik nihai alanlar artık gerçekten nihai
Android 17'den itibaren, SDK 37 veya sonraki sürümleri hedefleyen uygulamalar "static final" alanlarını değiştiremeyecek. Bu sayede, çalışma zamanı performans optimizasyonlarını daha agresif bir şekilde uygulayabilecek. Yansıtma (veya derin yansıtma) yoluyla bunu yapmaya çalışmak IllegalAccessException'ın atılmasına neden olur.
Bunları JNI'nin SetStatic<Type>Field yöntem ailesi aracılığıyla değiştirmek uygulamayı hemen kilitler.
Özel bildirim görüntüleme kısıtlamaları
Bellek kullanımını azaltmak için özel bildirim görünümlerinin boyutunu daha da kısıtlıyoruz. Bu güncelleme, uygulamaların URI'leri kullanarak mevcut sınırları atlamasına olanak tanıyan bir boşluğu kapatır. Bu davranış, hedef SDK sürümüne göre belirlenir ve API 37 ile sonraki sürümleri hedefleyen uygulamalarda geçerli olur.
Gizlilik ve Güvenlik
Kullanıcıların güvenini korumak, Android ekosisteminin temelini oluşturur. Android 17, kullanıcı deneyimlerini basitleştirirken hassas verileri koruyan güçlü özellikler sunar.
Gizliliği korumaya yönelik seçenekler
Geçmişte uygulamalar, kişiler, tam konum ve medya dosyaları gibi bilgilere erişmek için geniş kapsamlı ve kalıcı izinler gerektiriyordu. Android 17, yalnızca kullanıcının açıkça seçtiği verilere geçici ve oturum tabanlı erişim sağlayan, gizliliği korumaya yönelik seçeneklere geçişi sürdürüyor:
- Sistem düzeyinde kişi seçici:
ACTION_PICK_CONTACTSkullanılarak uygulamalar, yalnızca kullanıcı tarafından seçilen belirli alanlara (ör.e-posta veya telefon numarası) geçici erişim isteyebilir. Bu sayede, geniş kapsamlıREAD_CONTACTSiznine gerek kalmaz. Ayrıca, iş/kişisel profil ayrımını da tam olarak destekler. - Özelleştirilebilir fotoğraf seçici en boy oranı: PhotoPickerUiCustomizationParams'i kullanarak sistem fotoğraf seçiciyi dikey modda küçük resimleri gösterecek şekilde özelleştirebilirsiniz. Bu, fotoğraf ve videoları her zaman dikey olarak gösteren uygulamalar (ör. video tabanlı sosyal medya uygulamaları) için idealdir.
- Sistem tarafından oluşturulan konum düğmesi: Uygulamanıza yerleştirebileceğiniz yeni bir sistem tarafından oluşturulan konum düğmesi, yalnızca mevcut oturum için tam konum erişimi sağlar.
- EyeDropper API: Yeni bir sistem düzeyinde API olan
ACTION_OPEN_EYE_DROPPER, uygulamanızın sistem destekli bir damlalık oluşturmasına olanak tanır. Bu sayede kullanıcı, ekrandaki herhangi bir pikselden renk seçebilir. Bu, kapsamlı ve hassas ekran görüntüsü veya medya projeksiyonu izinlerine gerek kalmadan güvenli ve gizliliği korumaya yönelik bir renk seçme deneyimi sunar.
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> if (result.resultCode == Activity.RESULT_OK) { val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK) // Use the picked color in your app } } fun launchColorPicker() { val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER) eyeDropperLauncher.launch(intent) }
Yerel ağ erişimi
Android 17'yi hedefleyen uygulamalar artık ACCESS_LOCAL_NETWORK çalışma zamanında istenen izin veya yerel ağ iletişimi için sistem aracılı, gizliliği korumaya yönelik cihaz seçicilerin (ör. akıllı ev cihazlarıyla konuşma veya alıcıları yayınlama) kullanılmasını gerektiriyor. ACCESS_LOCAL_NETWORK mevcut NEARBY_DEVICES izin grubu kapsamında olduğundan, diğer NEARBY_DEVICES izinlerini daha önce vermiş olan kullanıcılardan tekrar izin istenmez.
SMS OTP koruması
Android 17, SMS tek kullanımlık şifre (OTP) korumasını SMS mesajlarına erişimi üç saat geciktirerek genişletir:
- WebOTP Biçimi: Amaçlanan alıcı olmayan tüm uygulamalar için geciktirilir (alan adı eşleşmemesi).
- Standart SMS OTP: SDK 37 ve sonraki sürümleri hedefleyen tüm uygulamalar için ertelendi.
İstisnalar: Varsayılan SMS, asistan ve bağlı yardımcı uygulamalar istisnadır. Uygulamaların SMS Retriever veya SMS User Consent API'lerine geçmesi önemle tavsiye edilir.
Kuantum Sonrası Kriptografi (PQC)
Android 17, yeni nesil kriptografik güvenliğe hazır:
- Anahtar deposu entegrasyonu: Desteklenen cihazlar, standart JCA API'leri aracılığıyla kullanıma sunulan kuantum güvenli imzalar oluşturmak için güvenli donanımda ML-DSA (Modül Kafes Tabanlı Dijital İmza Algoritması) anahtarları oluşturabilir.
- Karma APK İmzalama: Uygulama dağıtımını güvenli hale getirmek için klasik imzaları ML-DSA imzalarıyla birleştiren v3.2 APK İmza Şeması kullanıma sunuldu.
Daha güvenli yerel dinamik kod yükleme
Uygulamanız SDK 37 veya sonraki bir sürümü 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 değerini döndürür.
Fiziksel girişler için daha akıllı şifre koruması
Android 17 ile, fiziksel klavye kullanırken şifre, PIN ve diğer gizli bilgileri girme işlemini daha güvenli hale getiriyoruz. Artık varsayılan olarak son yazılan karakter gösterilmeyecek.
Kullanıcılar, bu ekran ayarlarını tercihlerine göre kolayca özelleştirebilir (kullanılabilirlik, cihaz üreticisine göre değişebilir).
Bu gelişmiş gizlilik korumaları, Android'in yerleşik SDK bileşenleri tarafından otomatik olarak desteklenir ve SecureTextFields için Compose 1.12'de desteklenecektir.
İçerik üreticileri güçlendiren ve kullanıcıları memnun eden medya ve kamera özellikleri
Android 17, tüketicilerin deneyimini iyileştirirken profesyonel kalitede kamera ve medyaya erişim sağlayan yeni içerik üretici özellikleri sunuyor.
- Eclipsa Video: Cihazların içerikleri ekran paylarına ve ortam ışığı koşullarına göre uyarlamasına yardımcı olmak için yeni meta veriler sunan ve standart ile HDR içeriklerin eşzamanlı olarak gösterilmesini iyileştiren SMPTE ST 2094-50 spesifikasyonu üzerine kurulu bir HDR video standardı.
- RAW14 görüntü biçimi: RAW14 görüntü biçimi için yeni destek, profesyonel kamera uygulamanızın uyumlu kamera sensörlerinden en yüksek düzeyde ayrıntı ve renk derinliği yakalamasını sağlar.
- Tedarikçi tarafından tanımlanan kamera uzantıları: Tedarikçi tarafından tanımlanan uzantılar, donanım iş ortaklarının özel kamera uzantısı modları tanımlayıp uygulamasına olanak tanıyarak en iyi ve en yeni kamera özelliklerine erişim sağlar.
- Genişletilmiş HE-AAC yazılım kodlayıcı: Sistemin sağladığı yeni Genişletilmiş HE-AAC yazılım kodlayıcı, birleştirilmiş konuşma ve ses kodlaması kullanarak hem düşük hem de yüksek bit hızlarını destekler. Bu sayede, sesli mesajlar için düşük bant genişliği koşullarında önemli ölçüde daha iyi ses kalitesi sunar. Ayrıca, ses yüksekliği meta verileri de desteklenir.
- Çok Yönlü Video Kodlama (H.266): OEM'lerin MediaFormat içinde video/vvc MIME türünü tanımlayarak, MediaCodecInfo içinde yeni VVC profilleri ekleyerek ve MediaExtractor'a destek entegre ederek codec desteği eklemesini sağlar.
- Kamera cihaz türü: Bir kameranın yerleşik donanım, harici USB web kamerası veya sanal kamera olup olmadığını belirlemek için temel cihaz türünü sorgulayan yeni API'ler.
- Video Kaydı İçin Sabit Kalite: MediaRecorder'daki setVideoEncodingQuality, video kodlayıcılar için sabit kalite (CQ) modu yapılandırarak videonun tamamında görsel doğruluğun eşit olmasını sağlar.
İşitme cihazları için daha iyi destek
- Bluetooth LE Audio işitme cihazı desteği: Android artık AudioDeviceInfo.TYPE_BLE_HEARING_AID sabitiyle Bluetooth Low Energy (BLE) Audio işitme cihazları için özel bir cihaz kategorisi içeriyor. Böylece uygulamanız, işitme cihazlarını normal kulaklıklardan ayırt ederek işitme cihazı kullanan kişilere özel bir deneyim sunabiliyor.
- İşitme cihazları için ayrıntılı ses yönlendirme: Android 17, kullanıcıların belirli sistem seslerinin nerede çalınacağını bağımsız olarak yönetmesine olanak tanır. Bildirimleri, zil seslerini ve alarmları bağlı işitme cihazlarına veya cihazın yerleşik hoparlörüne yönlendirebilirler. Bu sayede, işitme cihazı yönetim uygulamaları için Bluetooth bağlantısı korunurken istenmeyen kulak içi kesintiler önlenir.
CameraX ve Media3
CameraX ve Media3, Android 17 için güncellendi. Bu API'ler, medya geliştirmenin zorlu kısımlarını halletmek, güvenilir kamera yakalama, sorunsuz medya oynatma ve yaratıcı ve karmaşık düzenleme deneyimleri oluşturmayı kolaylaştırmak için tasarlanmıştır.
Eski Android kamera uygulamalarını (Camera1 veya ham Camera2 API'leri) CameraX'e taşıyabilen bir aracı becerisi yayınladık.
Not: Android 17 cihazlarda eklenen dinamik aralık moduyla ilgili kilitlenmeyi önlemek için CameraX sürümünüzü 1.5.2 veya 1.6.0 ya da sonraki bir sürüme güncellemeniz gerekir.
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.
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 (SDK 37) hedefledikten sonra, 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 SDK 37 veya sonraki bir sürümü 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ı: SDK 37 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_NETWORKiznini 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.
- NPU erişim beyanı: Android 17'yi hedefleyen ve NPU'ya doğrudan erişmesi gereken uygulamalar, NPU'ya erişimlerinin engellenmemesi için manifestlerinde
FEATURE_NEURAL_PROCESSING_UNITbeyanında bulunmalıdır. LiteRT NPU temsilcisini, tedarikçiye özel SDK'ları ve desteği sonlandırılan NNAPI'yi kullanan uygulamalar bu kapsamdadır.
Android 17'yi kullanmaya başlama
Daha önce Android Beta'ya katılmadıysanız Pixel cihazınız kısa süre içinde Android 17'yi alır. Pixel cihazınız yoksa Android Studio'da Android Emulator ile 64 bit sistem görüntülerini kullanabilirsiniz. Şu anda Android 17 Beta 4.1 kullanıyorsanız ve henüz Android 17 QPR1 beta sürümünü yüklemediyseniz programdan çıkabilirsiniz. Bu durumda, Android 17'nin yayınlanan sürümü kablosuz olarak sunulur.
İş ortağı cihazlarda Android 17 beta sürümünü edinme
Android 17; Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo ve Xiaomi gibi iş ortaklarının mobil telefon, tablet ve katlanabilir cihaz form faktörlerinde Beta sürümü olarak kullanılabilir.
Android 17 ile en iyi geliştirme deneyimi için Android Studio Quail'in en yeni Canary sürümünü kullanmanızı öneririz. Kurulumu tamamladıktan sonra yapmanız gereken bazı işlemler:
- 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'nin yüklü olduğu bir cihaza veya Android Emulator'a yükleyip kapsamlı bir şekilde test edin.
Android geliştirici önizleme ve beta programımıza katılan herkese tekrar teşekkür ederiz. Uygulamalarınızın Android 17'deki güncellemelerden nasıl yararlanacağını görmek için sabırsızlanıyoruz. Ayrıca, gelecekte hızlı bir yayın döngüsüyle güncellemeler sunmayı planlıyoruz.
Android 17 hakkında eksiksiz bilgi için lütfen Android 17 geliştirici sitesini ziyaret edin.
-
Ürün HaberleriAndroid 17, Beta 3 ile bugün resmen platform kararlılığına ulaştı. Bu, API yüzeyinin kilitlendiği anlamına gelir. Son uyumluluk testini yapabilir ve Android 17'yi hedefleyen uygulamalarınızı Play Store'a gönderebilirsiniz.
Matthew McCullough • Okuma süresi: 5 dk. -
Ürün HaberleriBugün, mühendislerin tamamlaması birkaç gün hatta bir hafta süren, büyük ölçüde karmaşık görevler olan uzun vadeli görevlerin (LHT) ilk grubunu yayınlıyoruz. Ayrıca, ilgili model sağlayıcıların temsilcileriyle başlayarak temsilci tabanlı değerlendirmeyi de kullanıma sunuyoruz.
Matthew McCullough • Okuma süresi: 3 dk. -
Ürün HaberleriMükemmel bir kullanıcı deneyimi, Android'in misyonunun merkezinde yer alır. Bu sözü yerine getirmek için cihazların hızlı, duyarlı ve güvenilir olması gerekir.
Blair Harmon • Okuma süresi: 2 dk.
Android geliştirmeyle ilgili en son analizleri haftalık olarak gelen kutunuza alın.