Geliştiriciler için Android 10

Android 10, üç önemli tema üzerine kurulmuştur. Android 10, gelişmiş makine öğrenimi ve katlanabilir cihazlar ile 5G özellikli telefonlar gibi yeni cihazlar için destek sunarak mobil yeniliklerin öncüsü oluyor. Ayrıca Android 10, gizlilik ve güvenliğe odaklanarak kullanıcılara daha fazla koruma, şeffaflık ve kontrol sağlayan yaklaşık 50 özellik sunuyor. Son olarak, Android 10, kullanıcıların dijital denge kontrollerini genişleterek bireylerin ve ailelerin teknolojiyle daha iyi bir denge kurmasını sağlıyor.

Android 10'da geliştiriciler için neler var ve bu sürümü bugün nasıl kullanabilirsiniz?

Yenilik ve yeni deneyimler

Android 10 ile, kullanıcılar için harika uygulama deneyimleri oluşturmak üzere en yeni 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

Android 10, güçlü çoklu pencere desteğini temel alarak uygulama pencerelerinde çoklu görev özelliğini genişletir ve cihaz katlandığında veya açıldığında uygulama durumunuzu korumak için ekran devamlılığı sağlar. Android 10, çoklu devam ettirmeyi desteklemek ve odaklandığında uygulamanızı bilgilendirmek için onResume ve onPause'da çeşitli iyileştirmeler sunar. Ayrıca, uygulamanızın katlanabilir ve büyük ekranlarda nasıl görüntülendiğini yönetmenize yardımcı olmak için resizeableActivity manifest özelliğinin çalışma şeklini de değiştirir. Katlanabilir cihazlar için geliştirme yapmanıza yardımcı olmak amacıyla Android Studio'da katlanabilir bir emülatörü sanal cihaz (AVD) olarak yapılandırabilirsiniz. Uygulamalarınızı katlanabilir cihazlar için optimize etme hakkında ayrıntılı bilgi edinmek istiyorsanız geliştirici kılavuzuna göz atın.

5G ağları

5G, sürekli olarak daha yüksek hız ve daha düşük gecikme süresi sunmayı vaat ediyor. Android 10 ise 5G için platform desteği ekliyor ve bu geliştirmelerden yararlanmanıza yardımcı olmak için mevcut API'leri genişletiyor. Cihazda yüksek bant genişliğine sahip bir bağlantı olup olmadığını algılamak ve bağlantının ölçülü olup olmadığını kontrol etmek için bağlantı API'lerini kullanabilirsiniz. Bu sayede uygulama ve oyunlarınız, 5G üzerinden kullanıcılara zengin ve sürükleyici deneyimler sunabilir.

Bildirimlerde Akıllı Yanıt

Android 10, bildirimlerde bağlama uygun işlemler önermek için cihaz üzerinde makine öğrenimini kullanır. Örneğin, iletiler için akıllı yanıtlar veya bildirimdeki bir adres için harita açma gibi. Uygulamalarınız, bu özellikten hemen yararlanabilir. Herhangi bir işlem yapmanız gerekmez. 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 işlemlerinizi de sağlayabilirsiniz. setAllowGeneratedReplies() ve setAllowSystemGeneratedContextualActions() kullanarak Akıllı Yanıt'ı bildirim bazında devre dışı bırakmanız yeterlidir.

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

Koyu Tema

Android 10, ışığın yeterli olmadığı ortamlarda ideal olan ve pil tasarrufuna yardımcı olan sistem genelinde koyu tema özelliğini ekler. Kullanıcılar, Ayarlar'a giderek veya pil tasarrufunu etkinleştirerek sistem genelinde yeni bir koyu tema etkinleştirebilir. Bu işlem, sistem kullanıcı arayüzünü koyu renge dönüştürür ve koyu temayı destekleyen uygulamalarda koyu temayı etkinleştirir. Uygulamanız için özel bir koyu tema oluşturabilir veya sistemin mevcut temanızdan dinamik olarak koyu bir sürüm oluşturmasına olanak tanıyan yeni bir Force Dark özelliğini etkinleştirebilirsiniz. Ayrıca, Android'in önceki sürümlerini kullanan kullanıcılara karanlık tema sunmak için AppCompat'in DayNight özelliğinden de yararlanabilirsiniz. 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 alanı sağlar.

Android 10, gezinme çubuğu alanını ortadan kaldıran ve uygulamaların daha zengin, daha sürükleyici deneyimler sunmak için tam ekranı kullanmasına olanak tanıyan tamamen harekete dayalı bir gezinme modu sunar. Görünür düğmeler yerine kenar kaydırmalarıyla tanıdık Geri, Ana Sayfa ve Son Kullanılanlar gezinme özelliklerini korur. Hareketli gezinmeyle sorunsuz bir şekilde uyum sağlamak için uygulamanız, kenardan kenara gitmeli ve sürükleyici bir deneyim oluşturmak için gezinme çubuğunun arkasında çizim yapmalıdır. Bunu uygulamak için uygulamalar, setSystemUiVisibility() API'yi kullanarak tam ekran düzenlenmeli ve ardından WindowInsets'i uygun şekilde işleyerek kullanıcı arayüzünün önemli kısımlarının gizlenmemesini sağlamalıdır. Uygulamanızı optimize etmeye hemen başlayın. Daha fazla bilgi için blog yayını serimize göz atın.

Ayarlar Panelleri

Artık yeni bir Settings Panel API aracılığıyla önemli sistem ayarlarını doğrudan uygulamanızın bağlamında gösterebilirsiniz. Ayarlar paneli, kullanıcıların ihtiyaç duyabileceği ayarları (ör. internet bağlantısı, NFC ve ses düzeyi) göstermek için çağırdığınız kayan bir kullanıcı arayüzüdür. Örneğin, bir tarayıcıda uçak modu, kablosuz ağ (yakındaki ağlar dahil) ve mobil veri gibi bağlantı ayarlarının bulunduğu bir panel gösterilebilir. Ayarlar panelini görüntülemek için yeni Settings.Panel işlemlerinden biriyle bir amaç başlatmanız yeterlidir.

Paylaşım kısayolları

Paylaşım kısayolları, paylaşımı daha hızlı ve kolay hale getirir. Kullanıcılar, içerik paylaşmak için doğrudan başka bir uygulamaya gidebilir. Geliştiriciler, uygulamalarında belirli bir etkinliği ekli içerikle başlatan paylaşım hedefleri yayınlayabilir. Bu hedefler, paylaşım kullanıcı arayüzünde kullanıcılara gösterilir. Önceden yayınlandıkları için paylaşım kullanıcı arayüzü başlatıldığında anında yüklenir. Paylaşım kısayolları, uygulama kısayollarına benzer ve aynı ShortcutInfo API'sini kullanır. API, ShareTarget AndroidX kitaplığında da desteklenir. Ayrıntılar için örnek uygulamaya bakın.

Paylaşım kısayolları, kullanıcıların ekli içeriklerle uygulamalarınızdaki belirli bir etkinliğe doğrudan gitmesini sağlar.

Kullanıcı gizliliği

Android 10'da gizlilik, platformdaki daha güçlü korumalardan gizlilik düşünülerek tasarlanmış yeni özelliklere kadar her alanda temel odak noktasıdır. Önceki sürümlerden yola çıkılarak geliştirilen Android 10, gizliliği korumak ve kullanıcılara daha fazla kontrol olanağı sunmak için kapsamlı değişiklikler içerir. Bu değişiklikler arasında geliştirilmiş sistem kullanıcı arayüzü, daha katı izinler ve uygulamaların hangi verileri kullanabileceğiyle ilgili kısıtlamalar yer alır. Uygulamalarınızda bu değişiklikleri nasıl destekleyeceğinizle ilgili ayrıntılar için gizlilik değişiklikleri bölümüne bakın.

Kullanıcılar artık uygulama ön planda çalışırken konuma erişim izni verebilir.

Kullanıcılara konum verileri üzerinde daha fazla kontrol imkanı sunma: Kullanıcılar, yeni izin seçeneği sayesinde konum verileri üzerinde daha fazla kontrol sahibi oluyor. Artık bir uygulamanın konuma yalnızca uygulama gerçekten kullanılırken (ön planda çalışırken) erişmesine izin verebiliyorlar. Bu, çoğu uygulama için yeterli düzeyde erişim sağlarken kullanıcılar açısından şeffaflık ve kontrol konusunda 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 göz atın.

Ağ taramalarında konum verilerini koruma: Ağ taraması için kullanılan API'lerin çoğu zaten kaba konum izni gerektiriyordu. Android 10, bunun yerine ayrıntılı konum izni gerektirerek bu API'lerin korunmasını artırır.

Cihaz takibini önleme: Uygulamalar artık cihaz IMEI'si, seri numarası ve benzeri tanımlayıcılar da dahil olmak üzere takip için kullanılabilecek sıfırlanamayan cihaz tanımlayıcılarına erişemez. Cihazın MAC adresi, varsayılan olarak kablosuz ağlara bağlandığında da 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ı burada inceleyin.

Harici depolama alanındaki kullanıcı verilerinin güvenliğini sağlama: Android 10, kullanıcılara harici depolama alanındaki dosyalar ve bu dosyalardaki uygulama verileri üzerinde daha fazla kontrol olanağı tanımak için çeşitli değişiklikler sunar. Uygulamalar kendi dosyalarını özel sanal alanlarında saklayabilir ancak paylaşılan medya dosyalarına erişmek için MediaStore'u, yeni İndirilenler koleksiyonundaki paylaşılan dosyalara erişmek için ise sistem dosya seçiciyi kullanmalıdır. Daha fazla bilgiyi burada bulabilirsiniz.

İstenmeyen kesintileri engelleme: Android 10, arka planda başlatılan ve beklenmedik bir şekilde ön plana geçerek başka bir uygulamanın odağını ele geçiren uygulamaları engeller. Daha fazla bilgiyi burada bulabilirsiniz.

Güvenlik

Android 10, şifreleme, platform güçlendirme ve kimlik doğrulama alanlarındaki gelişmelerle kullanıcıların güvenliğini artıran bir dizi özellik sunar. Android 10 güvenlik güncellemeleri hakkında daha fazla bilgi edinin.

Depolama alanı şifreleme: Android 10 ile kullanıma sunulan tüm uyumlu cihazların kullanıcı verilerini şifrelemesi gerekir. Bu işlemi daha verimli hale getirmek için Android 10'da yeni şifreleme modumuz Adiantum yer alır.

Varsayılan olarak TLS 1.3: Android 10, performans avantajları ve gelişmiş güvenlik sunan TLS standardında önemli bir revizyon olan TLS 1.3'ü de varsayılan olarak etkinleştirir.

Platformun güvenliğini artırma: Android 10, platformun güvenlik açısından kritik öneme sahip çeşitli alanlarının güvenliğini de artırır.

Geliştirilmiş Biyometri: Android 10, BiometricPrompt çerçevesini genişleterek yüz gibi pasif kimlik doğrulama yöntemlerini destekler ve örtülü ve açık kimlik doğrulama akışları ekler. Açık akışta, kullanıcının kimlik doğrulama sırasında TEE'de işlemi açıkça onaylaması gerekir. Örtülü akış, pasif kimlik doğrulama içeren işlemler için daha hafif bir alternatif olarak tasarlanmıştır. Android 10, gerektiğinde cihaz kimlik bilgilerinin yedeklenmesini de iyileştirir. Daha fazla bilgiyi burada bulabilirsiniz.

Kamera ve medya içerikleri

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 bir Dinamik Derinlik resmi isteyebilir. Bu sayede uygulamanızda özel bulanıklaştırma ve bokeh seçenekleri sunabilirsiniz. Dinamik Derinlik, ekosistem için açık bir biçimdir. Android 10 ve sonraki sürümleri çalıştıran cihazlara bu özelliği getirmek için iş ortaklarımızla birlikte çalışıyoruz.

Dinamik derinlikli resimle uygulamanızda özel bulanıklaştırma ve bokeh seçenekleri sunabilirsiniz.

Ses oynatma kaydı

Artık ses çalan tüm uygulamalar, yeni bir ses çalma yakalama API'si kullanarak diğer uygulamaların ses akışını yakalamasına izin verebilir. API, altyazı ve çeviri özelliğini etkinleştirmenin yanı sıra canlı oyun yayını 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. Bu nedenle, bir uygulamanın başka bir uygulamanın sesini yakalama özelliği kısıtlanmıştır. Böylece uygulamalar, ses akışlarının yakalanıp yakalanamayacağı konusunda tam kontrol sahibi olur. Daha fazla bilgiyi bu blog yayınında bulabilirsiniz.

Yeni ses ve video codec'leri

Android 10, açık kaynaklı video codec'i AV1'i destekler. Bu codec, medya sağlayıcıların daha az bant genişliği kullanarak Android cihazlara yüksek kaliteli video içeriklerini aktarmasına olanak tanır. Ayrıca Android 10, konuşma ve müzik akışı için optimize edilmiş, açık ve telifsiz bir codec olan Opus kullanılarak ses kodlamayı ve destekleyen cihazlarda yüksek dinamik aralıklı video için HDR10+'yı destekler. MediaCodecInfo API, Android cihazların video oluşturma özelliklerini belirlemenin daha kolay bir yolunu sunar. Belirli bir codec için desteklenen boyutların ve kare hızlarının listesini alabilirsiniz.

Native MIDI API

Ses işleme işlemlerini C++'da gerçekleştiren uygulamalar için Android 10, NDK aracılığıyla MIDI cihazlarla iletişim kurmak üzere yerel MIDI API'yi kullanıma sunar. Bu API, engellemeyen bir okuma işlemi kullanarak MIDI verilerinin bir ses geri çağırması içinde alınmasına olanak tanır. Böylece MIDI mesajlarının düşük gecikmeyle işlenmesi sağlanır. Örnek uygulamayı ve kaynak kodunu burada deneyebilirsiniz.

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

Android 10, yeni bir MicrophoneDirection API ile ses yakalama üzerinde daha fazla kontrol sahibi olmanızı sağlar. Ses kaydı alırken mikrofonun tercih edilen yönünü belirtmek için API'yi kullanabilirsiniz. Örneğin, kullanıcı "selfie" videosu çekerken ses kaydı için ön tarafa bakan mikrofonu isteyebilirsiniz (varsa). Ayrıca bu API, yakınlaştırılabilir mikrofonları kontrol etmek için standartlaştırılmış bir yöntem sunarak uygulamanızın kayıt alanı boyutunu kontrol etmesine olanak tanır.

Vulkan her yerde

Android 10, yüksek performanslı 3D grafikler için düşük ek yüke sahip, platformlar arası API'nin uygulanmasıyla Vulkan'ın etkisini genişletiyor. Vulkan 1.1, Android 10 ve sonraki sürümlerin yüklü olduğu tüm 64 bit cihazlarda zorunlu, tüm 32 bit cihazlarda ise önerilen bir özelliktir. Ekosistemde Vulkan desteği konusunda önemli bir ivme olduğunu görüyoruz. Android N veya sonraki sürümleri çalıştıran cihazların %53'ü Vulkan 1.0.3 veya sonraki sürümleri destekliyor. Android 10'daki yeni şartla birlikte, önümüzdeki yıl bu özelliğin daha fazla kullanılacağını tahmin ediyoruz.

Bağlantı

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

Gizliliği ve performansı artırmak, ayrıca konum izni gerektirmeden IoT cihazlarını yönetme ve internet bağlantıları önerme gibi yaygın kullanım alanlarını iyileştirmek için Wi-Fi yığınını 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ın yerel kablosuz ağ üzerinden yönetilmesini kolaylaştırır. Ağ önerisi API'leri, uygulamaların internet bağlantısı için kullanıcılara tercih edilen kablosuz ağları göstermesine olanak tanır.

Kablosuz ağ performans modları

Uygulamalar artık yüksek performans ve düşük gecikme süresi modlarını etkinleştirerek uyarlanabilir kablosuz bağlantı isteyebilir. Bu özellikler, kullanıcı deneyimi için düşük gecikmenin önemli olduğu durumlarda (ör. gerçek zamanlı oyun, aktif sesli görüşmeler ve benzeri kullanım alanları) büyük avantaj sağlayabilir. Platform, en düşük güç tüketimiyle ilgili koşulu karşılamak için cihaz donanım yazılımıyla birlikte çalışır. Yeni performans modlarını kullanmak için WIFI_MODE_FULL_LOW_LATENCY veya WIFI_MODE_FULL_HIGH_PERF ile WifiManager.WifiLock.createWifiLock() yöntemini çağırın. Bu modlarda platform, en düşük güç tüketimiyle gereksinimi karşılamak için cihaz donanım yazılımıyla birlikte çalışır.

Android'in temelleri

ART optimizasyonları

ART çalışma zamanındaki iyileştirmeler, uygulamalarınızın daha hızlı başlatılmasına, daha az bellek tüketmesine ve daha sorunsuz çalışmasına yardımcı olur. Bu iyileştirmeler için sizin herhangi bir işlem yapmanız gerekmez. Google Play tarafından sunulan ART profilleri, uygulamanız çalıştırılmadan önce bile ART'nin uygulamanızın bölümlerini önceden derlemesine olanak tanır. Android 10, çalışma zamanında ART'nin Eşzamanlı Kopyalama (CC) Çöp Toplayıcısı'na Nesil Çöp Toplama özelliği ekleyerek çöp toplama işleminin zaman ve CPU açısından daha verimli olmasını sağlar, takılmayı azaltır ve uygulamaların daha düşük seviyeli cihazlarda daha iyi çalışmasına yardımcı olur.

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

Neural Networks API 1.2

Çeşitli performans optimizasyonlarının yanı sıra ARGMAX, ARGMIN ve nicelenmiş LSTM dahil olmak üzere 60 yeni işlem ekledik. Bu, nesne algılama ve görüntü segmentasyonu gibi çok daha geniş bir model yelpazesinin hızlandırılması için temel oluşturur. NNAPI 1.2 desteğini optimize edip kullanıma 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'nun hızını düşürebilir. Bu durum, uygulamaları ve oyunları beklenmedik şekillerde etkileyebilir. Android 10'da uygulamalar ve oyunlar, cihazdaki değişiklikleri izlemek ve normal sıcaklığı geri getirmek için termal API 'yi kullanabilir. Örneğin, akış uygulamaları çözünürlüğü/bit hızını veya ağ trafiğini azaltabilir, kamera uygulaması flaşı ya da yoğun görüntü iyileştirmeyi devre dışı bırakabilir veya oyun kare hızını ya da poligon tessellasyonunu azaltabilir. Daha fazla bilgi için burayı inceleyin.

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

Android 10, uygulamaların yalnızca herkese açık API'leri kullanmaya kademeli olarak geçmesi için SDK olmayan arayüzlerdeki kısıtlamaları genişletmeye devam ediyor. Şu anda kullandığınız bir arayüz kısıtlanmışsa bunun yerine arayüz için yeni bir genel API isteğinde bulunabilirsiniz. Geçiş yapmanıza yardımcı olmak ve uygulamalarınızın bozulmasını önlemek 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, Project Treble sayesinde daha hızlı güncellemeler için geliştirilmiştir. Project Treble, Android ile cihaz üreticilerinin ve silikon üreticilerinin temel cihaz kodu arasında tutarlı ve test edilebilir bir arayüz sağlar. Treble sayesinde cihaz üreticileri, Treble uyumlu cihazlara Android 10'u daha hızlı ve daha düşük maliyetle getirebilir.

Android 10, Android kullanıcılarının güvenliğini sağlamak ve cihazlarını Google Play'den doğrudan önemli kod değişiklikleriyle güncel tutmak için geliştirdiğimiz yeni teknolojimiz Project Mainline'ı (resmi adıyla Google Play sistem güncellemeleri) destekleyen ilk sürüm olma özelliğini de taşıyor. Google Play sistem güncellemeleri sayesinde, cihaz üreticisinin tam sistem güncellemesi yapmasına gerek kalmadan Android 10 ve sonraki sürümlerin yüklü olduğu tüm cihazlardaki belirli dahili bileşenleri güncelleyebiliriz.

Geliştiriciler için Android 10'daki bu güncellemelerin, platform uygulamasının cihazlar genelinde tutarlılığını artırmasına ve zaman içinde geliştirme ve test maliyetlerinizi azaltacak daha fazla tekdüzelik sağlamasına yardımcı olmasını bekliyoruz.

Başlayın

Android 10 ile ilgili tüm geliştirici kaynakları için developer.android.com/10 adresini ziyaret edin.