Android 9 özellikleri ve API'leri

Android 9 (API düzeyi 28), kullanıcılar ve geliştiriciler. Bu dokümanda, geliştiriciler için sunulan yenilikler vurgulanmaktadır.

Yeni API'ler hakkında bilgi edinmek için API farkları raporuna göz atın veya Android API referansı. Ayrıca, reklam kampanyaları için Öğrenmek için Android 9 Davranış Değişiklikleri Platform değişikliklerinin uygulamalarınızı etkileyebileceği alanlar hakkında

Kablosuz RTT ile iç mekan konumlandırması

Yeni RTT API'leri, uygulamalarınızda iç mekan konumlandırmasını destekler.

Android 9, IEEE 802.11-2016 kablosuz ağı için platform desteğini ekledi Kablosuz Gidiş Dönüş Süresi (RTT) olarak da bilinen protokol iç mekan konumlandırması.

Donanım destekli Android 9 çalıştıran cihazlarda uygulamalarınız RTT API'lerini kullanarak yakındaki RTT özellikli kablosuz erişim noktalarına (AP) uzaklık. Cihazda şunlar olmalıdır: konum hizmetleri etkin ve kablosuz ağ taraması açık (altında) Ayarlar > Konum) belirtin ve uygulamanızda ACCESS_FINE_LOCATION iznidir. RTT'yi kullanmak için cihazın erişim noktalarına bağlanması gerekmez. Gizliliği korumak için, harici kameraya olan mesafeyi yalnızca telefon belirleyebilir erişim noktası; erişim noktalarında bu bilgiler yok.

Cihazınız 3 veya daha fazla erişim noktasına uzaklığı ölçüyorsa Bunlara en uygun cihaz konumunu tahmin etmek için kullanılan çoklu katmanlama algoritması ölçümler. Sonuç genellikle 1-2 metre içinde doğru sonuç verir.

Bu doğruluk oranıyla, bina içinde gezinme gibi yeni deneyimler oluşturabilirsiniz. ve konum tabanlı ayrıntılı hizmetler (örneğin, belirsizleştirilmiş sesli kontrol gibi) (örneğin, "Bu ışığı aç") ve konuma dayalı bilgiler (ör. "Bu ürün için özel teklifler var mı?").

Kullanımdaki WiFi RTT API'sini Android WifiRttScan demo uygulaması.

Daha fazla bilgi için bkz. Kablosuz konumu: RTT ile aralık.

Ekran kesimi desteği

Farklı kesim boyutlarının gösterildiği geliştirici seçenekleri ekranı

Emülatör kullanarak ekran kesimini test etme

Android 9 en yeni uçtan uca ekranları destekler. kamera ve hoparlörler için ekran kesimleri içeren reklam öğeleri. İlgili içeriği oluşturmak için kullanılan DisplayCutout sınıfta işlevsiz alanların yerini ve şeklini öğrenmenize olanak sağlar görüntülenmemelidir. Mevcut olduğunu ve konumunu belirlemek için bu kesim alanlarını belirlemek için getDisplayCutout() yöntemidir.

Yeni pencere düzeni özelliği layoutInDisplayCutoutMode, olması, uygulamanızın içeriğini cihazdaki kesimlerin etrafına yerleştirmesine olanak tanır. Faturalandırma hesabınızdaki ücretleri takip etmek için bu özelliği aşağıdaki değerlerden biriyle ilişkilendirin:

Android 9 çalıştıran herhangi bir cihazda veya emülatörde ekran kesimi simülasyonu yapabilirsiniz. şu şekildedir:

  1. Geliştirici seçeneklerini etkinleştirin.
  2. Geliştirici seçenekleri ekranında Çizim bölümüne gidin Kesim içeren bir ekranı simüle et'i seçin.
  3. Kesim boyutunu seçin.
ziyaret edin.

Bildirimler

Android 9'da bildirimlerle ilgili çeşitli geliştirmeler sunulmaktadır. Bunların tümü API düzeyi 28 ve üstünü hedefleyen geliştiriciler tarafından kullanılabilir.

Mesajlaşma bildirimleri

Fotoğraf eklenmiş MessagingStyle.

Mesajlaşma bildirimi

Yanıtlar ve görüşme içeren MessagingStyle.

Android 9 özellikleri de dahil olmak üzere bildirimleri kullanan örnek kod için Kişiler Örnek.

Gelişmiş mesajlaşma deneyimi

Android 7.0 (API düzeyi 24) sürümünden itibaren, yanıt vermek üzere bir işlem ekleyebilirsiniz doğrudan bildirimden mesaj gönderebilir veya başka bir metin girebilirsiniz. Android 9 geliştirmeleri aşağıdaki geliştirmelerle bu özelliği sunar:

  • Sohbet katılımcıları için basitleştirilmiş destek: Person sınıfı, bir görüşmede yer alan kişileri tanımlamak, avatarlar ve URI'ler. Örneğin, addMessage() artık CharSequence yerine Person sınıfından yararlanacak. Person sınıfı Oluşturucu tasarım kalıbını da destekler.

  • Resim desteği: Android 9 artık Mesajlaşma Bildirimleri'nde resimleri gösteriyor kullanıyor. Tekliflerinizi otomatikleştirmek ve optimize etmek için setData() mesajda bir resim gösterilir. Aşağıdaki kod snippet'i, (Person ve resim içeren bir ileti oluşturun).

Kotlin

// Create new Person.
val sender = Person()
        .setName(name)
        .setUri(uri)
        .setIcon(null)
        .build()
// Create image message.
val message = Message("Picture", time, sender)
        .setData("image/", imageUri)
val style = Notification.MessagingStyle(getUser())
        .addMessage("Check this out!", 0, sender)
        .addMessage(message)

Java

// Create new Person.
Person sender = new Person()
        .setName(name)
        .setUri(uri)
        .setIcon(null)
        .build();
// Create image message.
Message message = new Message("Picture", time, sender)
        .setData("image/", imageUri);
Notification.MessagingStyle style = new Notification.MessagingStyle(getUser())
        .addMessage("Check this out!", 0, sender)
        .addMessage(message);
  • Yanıtları taslak olarak kaydetme: Uygulamanız EXTRA_REMOTE_INPUT_DRAFT Kullanıcı yanlışlıkla bir mesajlaşma bildirimini kapattığında sistem tarafından gönderilen ileti. Bu ekstrayı, uygulamadaki metin alanlarını önceden doldurmak için kullanabilirsiniz. Böylece kullanıcılar, yanıtını tamamlayabilir.

  • Bir görüşmenin grup görüşmesi olup olmadığını belirleme: setGroupConversation() bir görüşmeyi kasıtlı olarak grup sohbeti veya grup dışı görüşme olarak tanımlamak için kullanılır.

  • Bir amaç için semantik işlemi ayarlayın: setSemanticAction() yöntemi, bir eyleme anlamsal bir anlam vermenizi "okundu olarak işaretle", "sil," "yanıtla" vb.

  • SmartReply: Android 9, mesajlaşma uygulamasıdır. Tekliflerinizi otomatikleştirmek ve optimize etmek için RemoteInput.setChoices() kullanıcıya standart yanıt dizisi sağlamak için kullanılır.

Kanal ayarları, yayınlar ve Rahatsız Etmeyin

Android 8.0'da Bildirim Kanalları kullanıma sunuldu. kullanarak bir kullanıcı tarafından özelleştirilebilen bir kanal oluşturun. Android 9, aşağıdaki değişikliklerle bildirim kanalı ayarlarını basitleştirir:

  • Kanal gruplarını engelleme: Kullanıcılar artık kanal gruplarının tamamını engelleyebilir uygulamanın bildirim ayarlarını kullanabilirsiniz. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için isBlocked() bir yöntem belirlemek için bir e-posta alırsınız ve sonuç olarak bildirim alırsınız.

    Ayrıca, uygulamanız yeni getNotificationChannelGroup() yöntemidir.

  • Yeni yayın amacı türleri: Android sistemi artık yayın amaçları gönderiyor Bildirim kanallarının ve kanal gruplarının engelleme durumu değiştiğinde. Engellenen kanalın veya grubun sahibi olan uygulama, bu amaçları dinleyebilir ve tepki verebilirsiniz. Bu intent işlemleri ve ekstra özellikler hakkında daha fazla bilgi için: NotificationManager bir referans noktası olarak kabul edilir. Yayın amaçlarına tepki vermeyle ilgili bilgi için Yayınlar.

  • NotificationManager.Policy üç yeni Rahatsız Etmeyin öncelik kategorisi vardır:

  • NotificationManager.Policy ayrıca yedi yeni Rahatsız Etmeyin sabit değeri içeriyor görsel kesmeyi önlemek için kullanabileceğiniz özellikler:

Çoklu kamera desteği ve kamera güncellemeleri

Android 9 çalıştıran cihazlarda akışlara erişebilirsiniz fiziksel mağazada aynı anda iki veya daha fazla kameralar. Çift ön veya çift arka kameralı cihazlarda tek bir kamerayla mümkün olmayan yenilikçi özellikler, yakınlaştırma, bokeh ve stereo görüş. API ayrıca mantıksal veya çok kaynaklı bir iki veya daha fazla kamera arasında otomatik olarak geçiş yapan kamera akışı.

Kameradaki diğer iyileştirmeler arasında ek Oturum sayısı parametreleri fotoğraf çekme sırasında gecikmeleri azaltmaya yardımcı olur. kamera istemcileri, çeşitli kullanım alanlarını devre dışı bırakıp başlatmama kamera akışı ile. Ayrıca, görüntülü reklam tabanlı Flash için API'ler de destek ve OIS'ye erişim zaman damgaları kullanıma sunduk.

Android 9'da çoklu kamera API aşağıdaki özelliklere sahip cihazlar için tek renkli kameraları destekler: FULL veya LIMITED özelliği. Tek renkli çıkış şu komutla yapılır: YUV_420_888. gri tonlamalı olarak Y, 128 olarak U (Cb) ve V (Cr) 128 olarak biçimlendirilmelidir.

Android 9, harici USB/UVC desteği de sunar. kamera açık cihazlar.

Çekilebilir öğeler ve bit eşlemler için ImageDecoder

Android 9, ImageDecoder sınıfını kullanıma sunuyoruz. Bu sınıfı kullan (BitmapFactory yerine) ve BitmapFactory.Options API'ler.

ImageDecoder, aşağıdakileri oluşturmanızı sağlar: Drawable veya bir bir bayt arabelleğinden, bir dosyadan Bitmap veya URI olabilir. Bir resmin kodunu çözmek için ilk çağrıyı createSource() kodlanan resmin kaynağıyla birlikte kullanılır. Ardından şu numarayı arayın: decodeDrawable() veya decodeBitmap() ImageDecoder.Source Drawable oluşturmak için nesne veya Bitmap. varsayılan ayarları kullanıyorsanız OnHeaderDecodedListener öğesini decodeDrawable() veya decodeBitmap(). ImageDecoder arama onHeaderDecoded() resmin varsayılan genişliği ve yüksekliğine ayarlanır. Kodlanan resim, animasyonlu bir GIF veya WebP ise decodeDrawable(), Drawable, şunun bir örneğidir: AnimatedImageDrawable sınıfını kullanır.

Resim özelliklerini ayarlamak için kullanabileceğiniz farklı yöntemler vardır:

  • Kodu çözülmüş resmi kesin bir boyuta ölçeklendirmek için hedef boyutları setTargetSize(). Resimleri örnek boyutu kullanarak da ölçeklendirebilirsiniz. Örnek boyutunu doğrudan setTargetSampleSize().
  • Bir resmi ölçeklendirilmiş resmin aralığı içinde kırpmak için setCrop().
  • Değişebilir bit eşlem oluşturmak için true öğesini setMutableRequired()

ImageDecoder, resimlere özelleştirilmiş ve karmaşık efektler eklemenize de olanak tanır köşeleri yuvarlatılmış veya kullanın. Tekliflerinizi otomatikleştirmek ve optimize etmek için setPostProcessor() örneğin PostProcessor sınıfını kullanabilirsiniz.

Animasyon

Android 9, AnimatedImageDrawable sınıfını kullanabilirsiniz. AnimatedImageDrawable, şuna benzer şekilde çalışır: AnimatedVectorDrawable AnimatedImageDrawable animasyonlarını oluşturmada kullanılır. Oluşturma iş parçacığı kodu çözmek için bir çalışan iş parçacığı da kullanır, böylece kod çözme oluşturma iş parçacığı üzerindeki diğer işlemleri engeller. Bu uygulama, uygulamanızın güncellemelerini yönetmeden animasyonlu resim görüntülemesini veya uygulamanızın kullanıcı arayüzü iş parçacığındaki diğer etkinlikleri engelleme.

AnimatedImageDrawable kodunun kodu, şunun bir örneği kullanılarak çözülebilir: ImageDecoder Aşağıdakiler kod snippet'i, ImageDecoder yönergesini kullanarak AnimatedImageDrawable:

Kotlin

@Throws(IOException::class)
private fun decodeImage() {
    val decodedAnimation = ImageDecoder.decodeDrawable(
        ImageDecoder.createSource(resources, R.drawable.my_drawable))

    // Prior to start(), the first frame is displayed.
    (decodedAnimation as? AnimatedImageDrawable)?.start()
}

Java

private void decodeImage() throws IOException {
    Drawable decodedAnimation = ImageDecoder.decodeDrawable(
        ImageDecoder.createSource(getResources(), R.drawable.my_drawable));

    if (decodedAnimation instanceof AnimatedImageDrawable) {
        // Prior to start(), the first frame is displayed.
        ((AnimatedImageDrawable) decodedAnimation).start();
    }
}

ImageDecoder, resimde daha fazla değişiklik yapmanıza olanak tanıyan çeşitli yöntemler sunar. Örneğin, setPostProcessor() Örneğin, dairesel maske uygulamak veya yuvarlatılmış köşeler.

HDR VP9 Video, HEIF resim sıkıştırma ve Medya API'leri

Android 9, Yüksek Dinamik Aralık (HDR) VP9 Profil 2 için yerleşik destek sağlar. Böylece, HDR özellikli filmleri YouTube, Play Filmler ve TV gibi platformlarda ve diğer kaynakları görüntüleyin.

Android 9, Yüksek Verimli Resim'i kullanarak resim kodlama desteği de sunmaya başladı Dosya biçimi (HEIF veya HEIC) kullanın. Bu yöntem, sıkıştırmayı artırarak depolama alanını ve ağ verilerini azaltır bazı yolları da görmüştük. HEIF hareketsiz resim örnekleri MediaMuxer ve MediaExtractor sınıflar. Android 9 cihazlarda platform desteği sayesinde iletileri kolayca gönderebilir ve arka uç sunucunuzdaki HEIF görüntülerini kullanın. Verilerinizin uygulama, paylaşım ve görüntüleme için bu veri biçimiyle uyumlu. HEIF'yi deneyin bunu uygulamanızda resim depolama biçimi olarak kullanabilirsiniz. jpeg-heic dönüştürme işlemi yapabilirsiniz. ImageDecoder veya BitmapFactory ( JPEG dosyası bit eşlem olarak ayarlanır). Ardından HEIF yazmak için HeifWriter YUV bayt arabelleklerinden veya örnek dosya örneklerinden Surface veya Bitmap.

Medya metrikleri, AudioTrack AudioRecord, ve MediaDrm sınıfları.

Android 9, Metrikleri almak için MediaDRM sınıfı, HDCP oturum sayısı ile ilgili güvenlik düzeylerini, güvenlik düzeylerini ve oturum sayısını test edebilirsiniz. ve güvenli durdurma özellikleri bulunuyor. Bkz. API Farkı raporunu inceleyin.

Android 9'da AAudio API, kullanım, içerik ve trafik dahil olmak üzere çeşitli ek AAudioStream özellikleri desteği ve giriş hazır ayarı gösterilir. Bu özellikleri kullanarak şu özelliklere sahip akışlar oluşturabilirsiniz: veya video kamera uygulamaları için ayarlanmış olmalıdır. Ayrıca, oturum kimliğini şu şekilde de ayarlayabilirsiniz: Ses akışını efekt içerebilen bir alt mix'le ilişkilendirme Şunu kullanın: Kontrol etmek için AudioEffect API'yi hoşuma gidiyor.

Android 9, Şunun için AudioEffect API: dinamik işleme hakkında daha fazla bilgi edinin. Bu ders ile kanal tabanlı ses efektleri oluşturabilirsiniz: dengeleme, çok bantlı sıkıştırma ve sınırlayıcı özellikleri sunar. İlgili içeriği oluşturmak için kullanılan Bant sayısı ve etkin aşama sayısı yapılandırılabilir, çoğu parametre ise gerçek zamanlı olarak kontrol edilir.

JobScheduler'daki veri maliyeti hassasiyeti

Android 9'dan itibaren JobScheduler işlemeyi iyileştirmek için operatörler tarafından sağlanan ağ durumu sinyallerini kullanabilir ortaya çıkarmanıza yardımcı olabilir.

İşler tahmini veri boyutlarını, sinyal önceden getirme özelliğini ve ayrıntılı ağ gereksinimleri. JobScheduler, işleri ağ durumu. Örneğin, ağ tıkanık olduğunu gösterdiğinde JobScheduler, büyük ağ isteklerini erteleyebilir. Bir sayaçsız ağda, JobScheduler önceden getirme işlerini Başlıkları önceden getirmek gibi yöntemlerle kullanıcı deneyimini iyileştirebilir.

İş eklerken setEstimatedNetworkBytes(), setPrefetch(), ve setRequiredNetwork() gerektiğinde JobScheduler bu işleri düzgün şekilde halleder. İşiniz yürütüldüğünde Network nesnesini kullandığınızdan emin olun iade eden: JobParameters.getNetwork(). Aksi takdirde, dolaylı olarak bir cihazda kullanmak için gereksinimlerinizi karşılamayabilir ve bu durum istenmeyen veri kullanımına yol açabilir.

Neural Networks API 1.1

Neural Networks API kullanıma sunuldu şu uygulamalarda cihaz üzerinde makine öğrenimini hızlandırmak için: Android Android 9, API'yi genişleterek dokuz yeni işlem için destek:

Bilinen sorun: İletiyi geçerken ANEURALNETWORKS_TENSOR_QUANT8_ASYMM tensörleri ANEURALNETWORKS_PAD Android 9 ve sonraki sürümlerde kullanılabilen bu işlem NNAPI'den alınan çıkış, üst düzey makineden alınan çıkışla eşleşmeyebilir öğrenme çerçeveleri, TensorFlow Lite. Siz yalnızca ANEURALNETWORKS_TENSOR_FLOAT32 devam etmesi gerekir.

Buna ek olarak, API, yeni bir işlev ANeuralNetworksModel_relaxComputationFloat32toFloat16(), yoksa her bir senaryonun doğru şekilde hesaplanıp ANEURALNETWORKS_TENSOR_FLOAT32 IEEE 754 16 bit kayan nokta kadar düşük bir aralık ve hassasiyetle biçimindedir.

Otomatik doldurma çerçevesi

Android 9, otomatik doldurma özelliğiyle ilgili birçok iyileştirme sunar. kullanıcı deneyimini daha da iyileştirmek için uygulayabileceği oluşturabilirsiniz. Uygulamanızda otomatik doldurma özelliklerini kullanma hakkında daha fazla bilgi edinmek için şu sayfaya bakın: Otomatik Doldurma Çerçevesi rehberi

Güvenlik geliştirmeleri

Android 9, bir dizi güvenlik özelliği sunar. aşağıdaki bölümlerde özetlenmiştir:

Android Korumalı Onayı

Android 9 veya sonraki sürümleri çalıştıran desteklenen cihazlarda Android Korumalı Onayı'nı kullanma yetkisi. Bu iş akışını kullanırken uygulamada kullanıcıya, kısa bir ifadeyi onaylamasını isteyen bir istem gösteriliyor. Bu ifade, uygulamanın kullanıcının bir şeyi tamamlamak istediğini hassas işlemler (ör. ödeme yapma)

Kullanıcı ifadeyi kabul ederse Android Anahtar Deposu bir anahtarlı karma ileti kimlik doğrulamasıyla korunan kriptografik imza kodu (HMAC) kullanır. Android Anahtar Deposu mesajın geçerliliğini onayladıktan sonra, uygulamanız güvenilir klasöründeki trustedConfirmationRequired hizmetinden oluşturulan anahtarı kullanabilir kullanıcının kabul ettiği mesajı imzalamak için yürütme ortamı (TEE) kullanır. İlgili içeriği oluşturmak için kullanılan imza, kullanıcının en az bir haftalık ve bunu kabul etti.

Dikkat: Android Korumalı Onayı, kullanıcı için güvenli bilgi kanalı. Uygulamanız, Android platformunun sunduğu özelliklerin ötesinde gizlilik garantileri verir. İçinde bu iş akışını, kullandığınız hassas bilgileri normalde kullanıcının cihazında görünmez.

Android Korumalı Onayı desteğinin eklenmesi hakkında bilgi edinmek için şuraya bakın: Android Korumalı Onay rehberini inceleyin.

Birleştirilmiş biyometrik kimlik doğrulama iletişim kutusu

Android 9'da sistem adına biyometrik kimlik doğrulama iletişim kutuları sunar. en iyi yoludur. Bu işlev, standartlaştırılmış bir görünüm, tarz ve yerleşim oluşturur. kullanıcılara, kimlik doğrulaması yaptıklarına dair daha çok güven verir. güvenilir bir biyometrik kimlik bilgisi denetleyicisi.

Uygulamanızda FingerprintManager kullanıcılara parmak izi kimlik doğrulaması iletişim kutusu görüntülemek için BiometricPrompt . BiometricPrompt, kimlik doğrulamayı görüntülemek için sisteme ihtiyaç duyar iletişim kutusu. Ayrıca davranışını, biyometri türüne uyum sağlayacak şekilde değiştirir. kullanıcının seçtiği kimlik doğrulama işlemidir.

Donanım güvenlik modülü

Android 9 veya sonraki sürümleri çalıştıran desteklenen cihazlar Keymaster HAL'nin kullanımı olan bir uygulama olan StrongBox Keymaster'a sahip bir donanım güvenlik modülünde bulunur. Modül şunları içerir:

  • Kendi CPU'su.
  • Güvenli depolama alanı.
  • Gerçek bir rastgele sayı oluşturma aracı.
  • Paketlerin değiştirilmesine ve yetkisiz başka cihazdan yüklemeye direnecek ek mekanizmalar sayısı.

StrongBox Keymaster'da saklanan anahtarları kontrol ederken sistem bir anahtarının Güvenilir Yürütme Ortamı (TEE) ile bütünlüğünü kontrol eder.

Strongbox Keymaster'ı kullanma hakkında daha fazla bilgi edinmek için Donanım Güvenliği Modül.

Anahtar deposuna güvenli anahtar aktarma

Android 9, bir API anahtarı kullanarak şifrelenmiş anahtarları Anahtar Deposu'na güvenli bir şekilde ASN.1 kodlamalı anahtar biçimi. Daha sonra Keymaster, Anahtar deposu sayesinde, anahtarların içeriği cihazın ana makine belleğinde hiçbir zaman şifrelenmemiş metin olarak görünmez.

Şifrelenmiş anahtarları daha fazla içe aktarma hakkında daha fazla bilgi ile ilgili daha fazla bilgi edinin.

Anahtar rotasyonu ile APK imza şeması

Android 9'a APK İmza Şeması v3 desteği eklendi. Bu şemada her imzalama için imzalama blokuna bir rotasyon kanıtı kaydı eklemek sertifikası. Bu özellik, uygulamanızın yeni bir imzalama ile imzalanmasını sağlar sertifikasının güncellenmesini sağlayarak APK dosyasının geçmiş imzalama sertifikalarını imzalandı.

Tuşları döndürme hakkında daha fazla bilgi apksigner.

Yalnızca kilidi açık cihazlarda anahtar şifresinin çözülmesine izin verme seçeneği

Android 9'da unlockedDeviceRequired işareti kullanıma sunulmuştur. Bu seçenek, Anahtar Deposu'nun, izin vermeden önce ekran kilidinin açılmasını gerektirip gerektirmediği belirtilen anahtarı kullanarak yayındaki veya depolanan verilerin şifresini çözme. Bu türler gibi hassas verileri diskte depolamak için uygundur. Örneğin, sağlık veya kurumsal veriler. İşaret, kullanıcılara Telefonu kaybolduğu takdirde cihaz kilitliyken verilerin şifresi çözülemez olabilir.

Cihaz kilitliyken bir anahtarı şifrenin çözülmesine karşı korumak için işareti etkinleştirin true öğesini setUnlockedDeviceRequired() yöntemidir. Bu adım tamamlandıktan sonra, kullanıcının ekranı kilitliyken, veya bu anahtarı kullanarak verilerin şifresini çözmeyi ya da imzalamayı dener. Kilitli bir cihaz, PIN, şifre, parmak izi veya başka bir güvenilir faktör güvenli olacaktır. erişilebilir.

Eski şifreleme desteği

Keymaster 4 ile gönderilen Android 9 cihazlar Triple Data'yı destekler Şifreleme Algoritması veya Triple DES. Uygulamanız eski sürümlerle birlikte çalışıyorsa üçüncü taraf DES gerektiren sistemlerde, verileri şifrelerken bu tür şifreler ve hassas kimlik bilgilerine sahip olmalıdır.

Uygulamanızı nasıl daha güvenli hale getireceğiniz hakkında daha fazla bilgiyi Android için güvenlik sayfasında bulabilirsiniz. Geliştiriciler.

WPS'nin kullanımdan kaldırılması

Kablosuz Korumalı Kurulum (WPS) güvenlik nedeniyle kullanımdan kaldırıldı.

Android yedeklemeleri

Android 9, yazılımla alakalı yeni işlevler ve geliştirici seçenekleri ekler. geri yükleyebilirsiniz. Bu değişikliklerle ilgili ayrıntılar şurada görünür: bölümlerini kontrol edin.

İstemci tarafı şifreleme yedeklemeleri

Android 9, Android yedeklemelerinin istemci tarafı gizli anahtarı. Bu destek aşağıdaki durumlarda otomatik olarak etkinleştirilir: karşılanıyorsa:

Bu gizlilik önlemi etkinleştirildiğinde cihazın PIN'i, deseni veya şifresi kullanıcının cihazı tarafından yapılan yedeklerden verilerin geri yüklenmesi için gereklidir. Öğrenmek için daha fazla bilgi için bkz. Google Cloud Key Vault Hizmet teknik belgesi.

Yedekleme için gereken cihaz koşullarını tanımlayın

Uygulama verileriniz hassas bilgiler veya tercihler içeriyorsa Android 9 bir cihazı tanımlamak için cihazı koşullarında geçerli olur. Uygulamanızın verileri kullanıcının yedeklemesine dahil edildiğinde (örneğin, istemci taraflı olduğunda) şifreleme etkinleştirilmiş veya yerel olarak cihazlar arası aktarım gerçekleşiyor.

Android cihazlarda veri yedekleme hakkında daha fazla bilgi edinmek için Veriler bölümüne bakın. Yedeklemeye Genel Bakış.

Erişilebilirlik

Android 9, erişilebilirlikle ilgili iyileştirmeler sunuyor kullanıcılara daha iyi deneyim sunmayı kolaylaştıran bir çerçeve en iyi şekilde yararlanabilirsiniz.

Gezinme anlamı

Android 9'da eklenen özellikler, kullanıcıların bu sürümde nasıl başta ekran okuyucular olmak üzere erişilebilirlik hizmetlerini kullanmak için taşımak zorunda kalırsınız. Bu özellikler, görme engelli kullanıcılara yardımcı olabilir Uygulamanızın kullanıcı arayüzündeki metinleri hızlıca gezinebilir ve seçim yapmalarına olanak tanıyabilirsiniz.

Örneğin, bir alışveriş uygulamasında ekran okuyucu, kullanıcıların gezinmesine yardımcı olabilir. bir fırsat kategorisinden diğerine, ekran okuyucu olmadan doğrudan ancak bir sonrakine geçmeden önce ilgili kategorideki tüm öğeleri okumak zorunda kalabilirsiniz.

Erişilebilirlik bölmesi başlıkları

Android 8.1 (API düzeyi 27) ve önceki sürümlerde erişilebilirlik hizmetleri her zaman ekranın belirli bir bölmesinin ne zaman güncellendiğini (örneğin, bir etkinliğin bir parçayı başka bir parçayla değiştirmesi) belirler. Bölmelerin içeriği mantıksal olarak gruplandırılmış, görsel olarak ilişkili kullanıcı arayüzü öğeleri (genellikle bir olabilir.

Android 9'da erişilebilirlik bölmesi başlıklarını veya ayrı ayrı sağlayabilirsiniz. tanımlanabilir başlıklar kullanabilirsiniz. Bir bölmenin erişilebilirlik bölmesi başlığı varsa Bölme değiştiğinde daha ayrıntılı bilgi erişilebilirlik hizmetleri alır. Bu olanak, hizmetlerin kullanıcıya daha ayrıntılı bilgiler sağlamasına olanak tanır değişiklik hakkında bilgi edinebilirsiniz.

Bir bölmenin başlığını belirtmek için android:accessibilityPaneTitle özelliğini gönderin. Ayrıca, setAccessibilityPaneTitle() kullanarak çalışma zamanını değiştirebilirsiniz. Örneğin, bir reklamın içerik alanı için Fragment nesnesini tanımlayın.

Başlık tabanlı gezinme

Uygulamanız mantıksal başlıklar içeren metin içeriği görüntülüyorsa android:accessibilityHeading özelliğini true değerine ayarlayın. View bu başlıkları temsil eder. Ölçüt başlıkları ekleyerek, erişilebilirlik hizmetlerinin kullanıcıların gezinmesine yardımcı olmasını sağlayabilirsiniz. doğrudan bir başlıktan diğerine geçer. Bunu tüm erişilebilirlik hizmetleri kullanabilir ve kullanıcı deneyimini iyileştirme imkanı Kullanıcı arayüzünde gezinme deneyimi.

Grupta gezinme ve çıkış

Ekran okuyucular geleneksel olarak android:focusable özelliğini ne zaman okumaları gerektiğini ViewGroup veya View nesneleri tek bir birim olarak gösterir. Bu şekilde ekip görüntülemelerin mantıksal olarak birbiriyle ilişkili olduğunu anlayabiliyordu.

Android 8.1 ve önceki sürümlerde, View her nesneyi bir Odaklanamaz olarak ViewGroup ve odaklanılabilir olarak ViewGroup öğesi. Bu düzenleme, bazı View örneklerinin odaklanılabilir olarak işaretlenmesine neden oldu. klavyeyle gezinmeyi daha hantal hale getirdi.

Android 9 sürümünden itibaren android:screenReaderFocusable özelliğini kullanarak, aşağıdaki durumlarda android:focusable özelliği yerine bir View nesnesini odaklanabilir hale getirmenin istenmeyen sonuçları vardır. Ekran okuyucular yer, android:screenReaderFocusable ayarından herhangi birine ayarlanmış tüm öğelere odaklanır veya android:focusable ile true arasında.

Kolaylık işlemleri

Android 9, kullanıcılar adına kolaylık işlemleri gerçekleştirme için destek eklemiştir:

İpuçlarıyla etkileşim
Erişilebilirlik çerçevesindeki yeni özellikler, ipuçları Tekliflerinizi otomatikleştirmek ve optimize etmek için getTooltipText() araç ipucu metnini okuyabilir ve ACTION_SHOW_TOOLTIP ve ACTION_HIDE_TOOLTIP View örneklerinden birinin ipuçlarını gizler.
Eklenen genel işlemler
Android 9, AccessibilityService sınıfını kullanır. Hizmetiniz kullanıcıların cihazlarını kilitlemesine ve ekran görüntüsü almasına yardımcı olabilir her bir arama terimi için GLOBAL_ACTION_LOCK_SCREEN ve GLOBAL_ACTION_TAKE_SCREENSHOT işlemleri için de geçerli.

Aralık değişikliği ayrıntıları

Android 9, bir uygulama etkinken uygulamanın pencerelerinde yapılan güncellemeleri kolayca takip etmenizi sağlar. aynı anda birden çok pencereyi yeniden çizer. Bir TYPE_WINDOWS_CHANGED etkinlik gerçekleşirse getWindowChanges() Pencerelerin nasıl değiştiğini belirleyen API. Çoklu pencere güncellemesi sırasında penceresi kendi etkinlik kümesini oluşturur. getSource() yöntemi, her bir etkinlikle ilişkili pencerenin kök görünümünü döndürür.

Bir uygulama, kendisi için erişilebilirlik bölmesi başlıkları tanımlamışsa View nesneleri kullanıyorsanız hizmetiniz uygulamanın kullanıcı arayüzü güncellendiğinde. Bir TYPE_WINDOW_STATE_CHANGED bir etkinlik gerçekleştirdiğinde, getContentChangeTypes() zaman çizelgesinin ne şekilde değiştiğini belirler. Örneğin, bu çerçeve başlığı olduğunda veya kaybolduğunda bunu algılar.

Döndürme

Yanlışlıkla döndürmeleri ortadan kaldırmak için akımı sabitleyen bir mod ekledik. cihazın yönünü değiştirebilirsiniz. Kullanıcılar rotasyonu tetikleyebilir manuel olarak manuel olarak değiştirebilirsiniz.

Uygulamalar üzerindeki uyumluluk etkisi çoğu durumda minimum düzeydedir. Ancak, Uygulama, özelleştirilmiş rotasyon davranışına sahip veya olağan dışı bir ekran yönü kullanıyor ayarlarını yaptığınızda, daha önce fark edemediğiniz sorunlarla karşılaşabilirsiniz. kullanıcı döndürme tercihi her zaman dikey olarak ayarlıydı. Hedef kitlenizin kim olduğunu Uygulamanızın tüm temel etkinliklerindeki rotasyon davranışına bakıp tüm ekran yönü ayarlarınızın hâlâ doğru olduğundan emin olun en iyi deneyimdir.

Daha fazla bilgi için, ilgili davranışa bakın değişiklikler başlıklı makaleyi inceleyin.

Kullanıcıların rotasyonu manuel olarak tetiklemesine olanak tanıyan yeni rotasyon modunu gösteren dönen cep telefonu

Yeni bir döndürme modu, kullanıcıların gerektiğinde sistem çubuğundaki bir düğmeyle rotasyonu manuel olarak tetiklemesine olanak tanır.

Metin

Android 9, metinle ilgili aşağıdaki özellikleri platform:

  • Önceden Hesaplanmış Metin: PrecomputedText sınıfı daha iyi hale geliyor gerekli verileri hesaplamanıza ve önbelleğe almanıza olanak tanıyarak metin bu bilgilerden faydalanabilirsiniz. Ayrıca, uygulamanızın kapalı metin düzenini, takip edebilirsiniz.

  • Büyüteç: Magnifier sınıfı bir büyüteç API'si sağlayan ve tutarlı bir görüntü tüm uygulamalarda büyüteç özelliği deneyimi.

  • Smart Linkify: Android 9 TextClassifier sınıf, Bu kampanya, seçilen metindeki bazı varlıkları tespit etmek için makine öğreniminden yararlanır. işlem önerebilir. Örneğin TextClassifier, uygulamanızın şunları algılamasını sağlayabilir: Kullanıcının bir telefon numarası seçtiğini gösterir. Ardından, uygulamanız telefon eden bir kullanıcı olduğunu varsayalım. TextClassifier özellikleri Linkify sınıfının işlevlerini değiştirir.

  • Metin Düzeni: Birçok kullanım kolaylığı yöntemi ve özelliği, kullanıcı arayüzü tasarımınızı uygulamanıza yardımcı olabilir. Ayrıntılar için şu referans belgelerine bakın: TextView.

DEX dosyalarının ART önceden dönüşümü

Android 9 veya sonraki sürümleri çalıştıran cihazlarda Android çalışma zamanı (ART) önceden derleyici, sıkıştırılmış Dalvik Executable'ı daha da optimize eder bir uygulama paketindeki DEX dosyalarını daha spesifik bir uygulama paketine dönüştürerek temsil eder. Bu değişiklik, uygulamanızın daha hızlı başlatılmasına ve daha az disk alanı ve RAM.

Bu iyileştirme, özellikle daha yavaş disk G/Ç'sine sahip düşük teknoloji cihazlara fayda sağlar hızları.

Cihaz üzerinde sistem izleme

Android 9, cihazınızdaki sistem izlemelerini kaydetmenize olanak tanır. ve bu kayıtların bir raporunu geliştirme ekibinizle paylaşabilirsiniz. Bu rapor HTML dahil birden fazla biçimi destekler.

Bu izleri toplayarak uygulamanızın izleme verileriyle ilgili zamanlama verilerini işlem ve iş parçacıklarını görebilir, küresel açıdan önemli diğer cihaz türlerini görüntüleyebilirsiniz. eyaletler.

Bu araç hakkında daha fazla bilgi edinmek için Cihaz üzerinde sistem gerçekleştirme izleme.