Geliştiriciler için Android 10

Android 10, üç önemli tema etrafında geliştirilmiştir. İlk olarak Android 10, gelişmiş makine öğreniminin yanı sıra katlanabilir cihazlar ve 5G özellikli telefonlar gibi yeni çıkan cihazları destekleyerek mobil yeniliğe öncülük ediyor. Sırada kullanıcılara daha fazla koruma, şeffaflık ve kontrol sunan yaklaşık 50 özellik yer alan Android 10, gizlilik ve güvenliğe odaklanıyor. Son olarak, Android 10, kullanıcıların dijital denge kontrollerini genişleterek bireylerin ve ailelerin teknoloji ile daha iyi bir denge kurabilmelerini sağlar.

Android 10'un geliştiricilere yönelik özelliklerine ve bunu hemen nasıl kullanabileceğinize göz atın.

Yenilik ve yeni deneyimler

Android 10 ile kullanıcılar için harika uygulama deneyimleri oluşturmak amacıyla en son donanım ve yazılım yeniliklerinden yararlanabilirsiniz.

Android 10 ile uygulamalarınızı katlanabilir cihazlar ve diğer büyük ekranlı cihazlar için optimize edebilirsiniz.

Katlanabilir Cihazlar

Güçlü çoklu pencere desteğini temel alan Android 10, uygulama pencereleri arasında çoklu görevlerin kapsamını genişletir ve cihaz katlanır ya da açılırken uygulamanızın durumunu korumak için ekran sürekliliği sağlar. Android 10, çoklu devam ettirmeyi desteklemek ve odaklanıldığında uygulamanızı bilgilendirmek için onResume ve onPause'da çeşitli iyileştirmeler ekler. Ayrıca, uygulamanızın katlanabilir ve büyük ekranlarda nasıl görüntüleneceğini yönetmenize yardımcı olmak için resizeableActivity manifest özelliğinin çalışma şeklini de değiştirir. Katlanabilir cihaz geliştirmek için Android Studio'da katlanabilir emülatörü sanal cihaz (AVD) olarak yapılandırabilirsiniz. Uygulamalarınızı katlanabilir cihazlar için nasıl optimize edeceğinizle ilgili ayrıntılı bilgi için geliştirici kılavuzuna bakın.

5G ağları

5G, sürekli olarak daha yüksek hızlar ve daha düşük gecikme sunmayı vaat eder. Android 10, bu geliştirmelerden yararlanmanıza yardımcı olmak için 5G için platform desteği ekler ve mevcut API'lerin kapsamını genişletir. Cihazın yüksek bant genişliğine sahip bir bağlantıya sahip olup olmadığını algılamak ve bağlantının ölçülüp ölçülmediğini kontrol etmek için bağlantı API'lerini kullanabilirsiniz. Bunlar sayesinde uygulamalarınız ve oyunlarınız 5G üzerindeki kullanıcılara zengin ve sürükleyici deneyimler sunabilir.

Bildirimlerde Akıllı Yanıt

Android 10, bildirimlerde bağlamsal işlemler (ör. mesajlara akıllı yanıtlar veya bildirimdeki bir adres için harita açma) önermek için cihaz üzerinde makine öğrenimini kullanır. Uygulamalarınız, hiçbir şey yapmanıza gerek kalmadan bu özellikten hemen yararlanabilir. Sistem tarafından sağlanan akıllı yanıtlar ve işlemler, varsayılan olarak doğrudan bildirimlere eklenir. İsterseniz kendi yanıtlarınızı ve eylemlerinizi de sağlayabilirsiniz. setAllowGeneratedReplies() ve setAllowSystemGeneratedİçeriğeActions() işlevlerini kullanarak her bildirim için Akıllı Yanıt özelliğini devre dışı bırakmanız yeterlidir.

Akıllı Yanıt, bildirim içeriğine göre işlem önerebilir.

Koyu Tema

Android 10'da, düşük ışık için ideal olan ve pil tasarrufu sağlayan, sistem genelinde koyu bir koyu tema eklenir. Kullanıcılar, Ayarlar'a giderek veya Pil Tasarrufu'nu açarak sistem genelinde yeni bir koyu temayı etkinleştirebilirler. Bu, sistem kullanıcı arayüzünü koyu renk olarak değiştirir ve destekleyen uygulamalarda koyu temayı etkinleştirir. Uygulamanız için özel bir koyu tema oluşturabilir veya sistemin mevcut temanızdan dinamik olarak koyu renk sürümü oluşturmasını sağlayan yeni bir Force Dark özelliğini etkinleştirebilirsiniz. Android'in önceki sürümlerini kullanan kullanıcılara koyu bir tema sunmak için AppCompat’ın DayNight özelliğinden de yararlanmak isteyebilirsiniz. Daha fazla bilgi için geliştirici kılavuzuna bakın.

Android 10, Force Dark ile uygulamanız için dinamik olarak koyu tema oluşturabilir.

Hareketle gezinme

Hareketle gezinme, uygulamalara içerik için tam ekran olanağı sağlar.

Android 10'da, gezinme çubuğu alanını ortadan kaldıran ve uygulamaların daha zengin ve daha etkileyici deneyimler sunmak için tam ekranı kullanmalarına olanak tanıyan, tamamen hareketsel bir gezinme modu bulunur. Görünür düğmeler yerine kenardan hızlıca kaydırma hareketleriyle bilindik Geri, Ana Sayfa ve Son Kullanılanlar gezinme özelliklerini korur. Hareketle gezinmeyi sorunsuz bir şekilde birleştirmek için uçtan uca gezinmeniz ve etkileyici bir deneyim oluşturmak için gezinme çubuğunun arkasında çizim yapmanız gerekir. Bunu uygulamak için uygulamalar, tam ekran gösterilecek setSystemUiVisibility() API'sini kullanmalı ve ardından önemli kullanıcı arayüzü parçalarının gizlenmediğinden emin olmak için WindowInsets öğesini uygun şekilde işlemelidir. Hemen uygulamanızı optimize etmeye başlayın ve daha fazla bilgi için blog yayını serimize göz atın.

Ayar Panelleri

Artık temel sistem ayarlarını yeni bir Ayarlar Paneli API'si ile doğrudan uygulamanız bağlamında gösterebilirsiniz. Ayarlar paneli; internet bağlantısı, NFC ve ses düzeyi gibi kullanıcıların ihtiyaç duyabileceği ayarları göstermek için çağırdığınız kayan bir kullanıcı arayüzüdür. Örneğin, bir tarayıcı Uçak Modu, Kablosuz (yakındaki ağlar dahil) ve Mobil Veri gibi bağlantı ayarlarının bulunduğu bir panel görüntüleyebilir. Bir ayarlar panelini görüntülemek için yeni Settings.Panel işlemlerinden biriyle bir niyeti tetiklemeniz yeterlidir.

Paylaşım kısayolları

Kısayolları paylaşmak, paylaşımı daha hızlı ve kolay hale getirerek kullanıcıların içerik paylaşmak için doğrudan başka bir uygulamaya geçmesine olanak tanır. Geliştiriciler, içerik eklenmiş olarak uygulamalarında belirli bir etkinliği başlatan paylaşım hedefleri yayınlayabilir. Bunlar, kullanıcılara paylaşım kullanıcı arayüzünde gösterilir. Önceden yayınlandığından paylaş kullanıcı arayüzü başlatıldığında anında yüklenir. Kısayolları paylaşmak, Uygulama Kısayollarına benzer ve aynı Kısayol Bilgisi API'sini kullanır. API, ShareTarget AndroidX kitaplığında da desteklenmektedir. Ayrıntılar için örnek uygulamaya bakın.

Paylaşım kısayolları, kullanıcıların uygulamalarınızda içerik eklenmiş belirli bir etkinliğe doğrudan gitmelerine olanak tanır.

Kullanıcılar için gizlilik

Platformda daha güçlü koruma özelliklerinden, gizlilik göz önünde bulundurularak tasarlanmış yeni özelliklere kadar Android 10'un odak noktası gizliliktir. Android 10, önceki sürümleri temel alarak gizliliği korumaya ve kullanıcılara daha fazla kontrol sunmaya yönelik kapsamlı değişiklikler içerir. Ayrıca iyileştirilmiş sistem kullanıcı arayüzü, daha katı izinler ve uygulamaların kullanabileceği veri kısıtlamalarına sahiptir. Bunları uygulamalarınızda nasıl destekleyeceğinizle ilgili ayrıntılar için gizlilik değişiklikleri sayfasına bakın.

Kullanıcılar artık uygulama ön plandayken konuma erişim izni vermeyi seçebilirler.

Kullanıcılara konum verileri üzerinde daha fazla kontrol olanağı sunma - Kullanıcılar yeni bir izin seçeneğiyle konum verileri üzerinde daha fazla kontrol sahibi olurlar. Artık bir uygulamanın, yalnızca uygulama kullanılırken (ön planda çalışırken) konuma erişmesine izin verebilirler. Bu, çoğu uygulama için yeterli düzeyde erişim sağlarken kullanıcılar için şeffaflık ve kontrol açısından büyük bir gelişmedir. Konum değişiklikleri hakkında daha fazla bilgi edinmek için geliştirici kılavuzuna veya blog yayınımıza bakın.

Ağ taramalarında konum verilerini koruma - Ağları taramak için kullanılan API'lerin çoğu, zaten yaklaşık konum izni gerektirmektedir. Android 10, hassas konum iznini zorunlu kılarak bu API'lerin çevresindeki korumayı artırır.

Cihaz izlemesini engelleme - Uygulamalar artık izleme için kullanılabilecek sıfırlanamayan cihaz tanımlayıcılarına (cihaz IMEI'si, seri numarası ve benzer tanımlayıcılar dahil) erişemez. Cihazın MAC adresi de varsayılan olarak kablosuz ağlara bağlandığında rastgele hale getirilir. Kullanım alanınız için doğru tanımlayıcıları seçmenize yardımcı olacak en iyi uygulamaları okuyun ve ayrıntıları buradan inceleyin.

Harici depolama alanındaki kullanıcı verilerinin güvenliğini sağlama - Android 10, kullanıcılara harici depolama alanındaki dosyalar ve bunların içindeki uygulama verileri üzerinde daha fazla kontrol sağlamak için çok sayıda değişiklik sunar. Uygulamalar kendi dosyalarını özel korumalı alanlarında depolayabilirler ancak paylaşılan medya dosyalarına erişmek için MediaStore'u kullanmaları ve yeni İndirilenler koleksiyonundaki paylaşılan dosyalara erişmek için sistem dosya seçiciyi kullanmaları gerekir. Daha fazla bilgiyi burada bulabilirsiniz.

İstenmeyen kesintileri engelleme - Android 10, beklenmedik bir şekilde ön plana atlayarak başka bir uygulamanın odağını ele geçiren arka plandan uygulama başlatma işlemlerini engeller. Buradan daha fazla bilgi edinebilirsiniz.

Güvenlik

Android 10; şifreleme, platform sağlamlaştırma ve kimlik doğrulama alanlarındaki gelişmeler sayesinde kullanıcıların daha güvende olmasını sağlayan çeşitli özellikler sunar. Android 10 güvenlik güncellemeleri hakkında daha fazla bilgiyi buradan edinebilirsiniz.

Depolama alanı şifrelemesi: Android 10 ile kullanıma sunulan tüm uyumlu cihazların kullanıcı verilerini şifrelemesi gerekir. Android 10, bu işlemi daha verimli hale getirmek için yeni şifreleme modumuz olan Adiantum'u içerir.

Varsayılan olarak TLS 1.3: Android 10, varsayılan olarak TLS 1.3'ü de etkinleştirir. Bu, performans avantajları ve gelişmiş güvenlik ile TLS standardının önemli bir revizyonudur.

Platform sağlamlaştırma: Android 10 ayrıca platformun güvenlik açısından kritik olan çeşitli alanları için sağlamlaştırma da içerir.

İyileştirilmiş Biyometri - Android 10, BiometricPrompt çerçevesini yüz gibi pasif kimlik doğrulama yöntemlerini destekleyecek ve örtülü ve açık kimlik doğrulama akışları ekleyecek şekilde genişletir. Açık akışta, kullanıcının kimlik doğrulama sırasında işlemi TEE'de açıkça onaylaması gerekir. Örtülü akış, pasif kimlik doğrulamalı işlemler için daha hafif bir alternatif için tasarlanmıştır. Android 10, gerektiğinde cihaz kimlik bilgileri yedeğini de iyileştirir. Daha fazla bilgiyi burada bulabilirsiniz.

Kamera ve medya

Fotoğraflar için dinamik derinlik

Uygulamalar artık bir JPEG, derinlikle ilgili öğelerle ilişkili XMP meta verileri ve aynı dosyaya yerleştirilmiş bir derinlik ve güven haritasından oluşan Dinamik Derinlik resmi isteyebilir. Bunlar, uygulamanızda özel bulanıklaştırma ve bokeh seçenekleri sunmanıza olanak tanır. Dinamik Derinlik, ekosistem için açık bir biçimdir. Android 10 ve sonraki sürümleri çalıştıran cihazlarda bu özelliği kullanıma sunmak için iş ortaklarımızla birlikte çalışıyoruz.

Dinamik Derinlik resim ile uygulamanızda özel bulanıklaştırma ve bokeh seçenekleri sunabilirsiniz.

Ses çalma kaydı

Artık ses çalan herhangi bir uygulama, yeni bir ses çalma yakalama API'si kullanarak diğer uygulamaların kendi ses akışını yakalamasına izin verebilir. API, altyazıların etkinleştirilmesine ek olarak canlı yayın oyunları gibi popüler kullanım alanlarını da desteklemenize olanak tanır. Bu yeni özelliği gizlilik ve telif hakkı korumasını göz önünde bulundurarak geliştirdik. Dolayısıyla bir uygulamanın, başka bir uygulamanın sesini yakalama yeteneği kısıtlanır ve uygulamalara ses akışlarının kaydedilip kaydedilmeyeceği üzerinde tam kontrol verilir. Bu blog yayınından daha fazla bilgi edinebilirsiniz.

Yeni ses ve video codec'leri

Android 10'da medya sağlayıcılarının daha az bant genişliği kullanarak Android cihazlara yüksek kaliteli video içeriği akışı gerçekleştirmesine olanak tanıyan açık kaynak video codec'i AV1 desteği eklendi. Buna ek olarak Android 10, konuşma ve müzik akışı için optimize edilmiş açık ve telifsiz bir codec olan Opus'u ve destekleyen cihazlarda yüksek dinamik aralıklı videolar için HDR10+'yı kullanarak ses kodlamayı destekler. MediaCodecInfo API, bir Android cihazın video oluşturma özelliklerini belirlemek için daha kolay bir yol sunuyor. Belirli bir codec bileşeni için desteklenen boyutların ve kare hızlarının listesini edinebilirsiniz.

Yerel MIDI API'sı

Ses işlemeyi C++'ta gerçekleştiren uygulamalar için Android 10, NDK üzerinden MIDI cihazlarıyla iletişim kurmak için yerel bir MIDI API'yi kullanıma sunar. Bu API, engellemeyen bir okuma kullanılarak MIDI verilerinin sesli geri çağırma içinde alınmasına olanak tanır. Böylece MIDI mesajlarının düşük gecikmeli olarak işlenmesine olanak tanır. Örnek uygulamayı ve buradaki kaynak kodunu kullanarak deneyin.

Yönlü, yakınlaştırılabilir mikrofonlar

Android 10, yeni bir MicrophoneDirection API'si ile ses yakalama üzerinde daha fazla kontrol sahibi olmanızı sağlar. Ses kaydı çekerken tercih ettiğiniz mikrofonun yönünü belirtmek için API'yi kullanabilirsiniz. Örneğin, kullanıcı "selfie" video çekerken ses kaydı için (varsa) ön yüzdeki mikrofon için istekte bulunabilirsiniz. Ayrıca bu API, yakınlaştırılabilir mikrofonları kontrol etmenin standart bir yolunu sunarak uygulamanızın kayıt alanı boyutu üzerinde kontrol sahibi olmasını sağlar.

Vulkan her yerde

Android 10, yüksek performanslı 3D grafikler için düşük ek yüke sahip, platformlar arası API'yi uygulamamızla Vulkan'ın etkisini artırıyor. Vulkan 1.1 artık Android 10 ve sonraki sürümleri çalıştıran tüm 64 bit cihazlarda zorunlu, tüm 32 bit cihazlarda ise öneri olarak sunuluyor. Ekosistemdeki Vulkan desteğine ilişkin önemli bir ivme görüyoruz. Android N veya sonraki sürümleri çalıştıran cihazların %53'ü Vulkan 1.0.3 veya sonraki sürümünü destekliyor. Android 10'daki yeni gereksinimle birlikte, önümüzdeki yıl benimsenmenin daha da artmasını bekliyoruz.

Bağlantı

İyileştirilmiş eşler arası ve internet bağlantısı

Kablosuz ağ yığınını, hem gizliliği ve performansı iyileştirmek hem de IoT cihazlarını yönetme ve internet bağlantıları önerme gibi yaygın kullanım alanlarını konum izni gerektirmeden iyileştirmek için yeniden düzenledik. Ağ bağlantısı API'leri, yapılandırma, indirme veya yazdırma gibi eşler arası işlevler için IoT cihazlarını yerel kablosuz ağ üzerinden yönetmeyi kolaylaştırır. Ağ önerisi API'leri, uygulamaların internet bağlantısı için tercih edilen kablosuz ağları kullanıcıya göstermesine olanak tanır.

Kablosuz performans modları

Uygulamalar artık yüksek performans ve düşük gecikme modlarını etkinleştirerek uyarlanabilir kablosuz bağlantı isteğinde bulunabilir. Gerçek zamanlı oyun oynama, aktif sesli aramalar ve benzer kullanım alanları gibi düşük gecikmenin kullanıcı deneyimi açısından önemli olduğu durumlarda bu özellikler son derece faydalı olabilir. Platform, en düşük güç tüketimini gerektiren gereksinimleri karşılamak için cihazın donanım yazılımıyla çalışır. Yeni performans modlarını kullanmak için WIFI_MODE_FULL_LOW_LATENCY veya WIFI_MODE_FULL_HIGH_PERF ile WifiManager.WifiLock.createWifiLock() çağrısı yapın. Bu modlarda platform, en düşük güç tüketimiyle ilgili gereksinimi karşılamak için cihazın donanım yazılımıyla çalışır.

Android'in temelleri

ART optimizasyonları

ART çalışma zamanında yapılan iyileştirmeler, uygulamalarınızın daha hızlı başlatılmasına, daha az bellek tüketmesine ve daha düzgün çalışmasına yardımcı olur. Üstelik bunlar için herhangi bir işlem yapmanıza gerek yoktur. Google Play tarafından sunulan ART profilleri, ART'ın uygulamanızın bazı bölümlerini daha çalıştırılmadan önceden derlemesini sağlar. Android 10, çalışma zamanında çöp toplamayı zaman ve CPU açısından daha verimli hale getirmek, olumsuz etkiyi azaltmak ve uygulamaların alt segment cihazlarda daha iyi çalışmasına yardımcı olmak için Nesilsel Çöp Toplama özelliğini ART'ın Eşzamanlı Kopyalama (CC) Çöp Toplayıcısı'na ekler.

Bu grafikte, Play profilleri kullanılarak test edildiğinde belirli uygulamaların başlatma süresindeki iyileşme yüzdesi gösterilmektedir.

Sinir Ağları API'sı 1.2

Bir dizi performans optimizasyonuyla birlikte ARGMAX, ARGMIN ve ölçülmüş LSTM dahil 60 yeni işlem ekledik. Bu, nesne algılama ve görüntü segmentasyonu gibi çok daha çeşitli modellere hız kazandırmak için temel oluşturur. NNAPI 1.2'yi optimize edip sunmak için donanım tedarikçileri ve TensorFlow gibi popüler makine öğrenimi çerçeveleriyle birlikte çalışıyoruz.

Thermal API

Cihazlar aşırı ısındığında CPU ve/veya GPU'yu daraltabilirler. Bu da uygulamaları ve oyunları beklenmedik şekillerde etkileyebilir. Artık Android 10'daki uygulamalar ve oyunlar, cihazdaki değişiklikleri izlemek ve normal sıcaklığın geri kazanılmasına yardımcı olmak amacıyla harekete geçmek için termal API kullanabilir. Örneğin, akış uygulamaları; çözünürlüğü/bit hızını veya ağ trafiğini düşürebilir, bir kamera uygulaması flaşı veya yoğun görüntü iyileştirmeyi devre dışı bırakabilir ya da bir oyun, kare hızını ya da poligon mozaiklemesini düşürebilir. Buradan daha fazla bilgi edinebilirsiniz.

Herkese açık API'ler aracılığıyla uyumluluk

Android 10, SDK olmayan arayüzlerdeki kısıtlamaları genişletmeye devam etmektedir. Bu sayede uygulamalar yalnızca herkese açık API'leri kullanan uygulamalara kademeli olarak geçiş yapacaktır. Şu anda kullandığınız bir arayüz kısıtlanmışsa bunun yerine söz konusu arayüz için yeni bir genel API isteyebilirsiniz. Geçişi gerçekleştirmenize ve uygulamalarınızın bozulmasını önlemenize yardımcı olmak için kısıtlamaları yalnızca uygulamanız Android 10'u (API 29) hedeflediğinde etkinleştiriyoruz. Kısıtlamalar hakkında daha fazla bilgi için geliştirici kılavuzuna bakın.

Daha hızlı güncellemeler, daha yeni kod

Android 10, cihaz ve silikon üreticilerinin temel cihaz kodu ile Android arasında tutarlı, test edilebilir bir arayüz sağlayan ProjectTreble aracılığıyla daha hızlı güncelleme sağlamak için geliştirildi. Cihaz üreticileri, Treble aracılığıyla Android 10'u Treble uyumlu cihazlara daha hızlı ve daha düşük maliyetle Treble uyumlu cihazlara getirebiliyor.

Android 10 aynı zamanda, doğrudan Google Play'den önemli kod değişiklikleri yaparak Android kullanıcılarının güvenliğini sağlamaya ve cihazlarını güncel tutmaya yönelik yeni teknolojimiz olan Project Mainline'ı (resmi adıyla Google Play sistem güncellemeleri) destekleyen ilk sürümdür. Google Play sistem güncellemeleri sayesinde, Android 10 ve sonraki sürümleri çalıştıran tüm cihazlarda, cihaz üreticisinden tam sistem güncellemesi gerekmeksizin belirli dahili bileşenleri güncelleyebiliyoruz.

Geliştiricilerin, Android 10'daki bu güncellemelerin, cihazlar genelinde platform uygulamasının tutarlılığını sağlamalarına ve zamanla geliştirme ve test maliyetlerini azaltacak daha fazla tek tip olmaya yardımcı olmasını bekliyoruz.

Başlayın

Android 10 geliştirici kaynaklarının tamamını görmek için developer.android.com/10 adresini ziyaret edin.