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.](https://developer.android.google.cn/static/images/about/versions/pie/rtt-nav.png?authuser=19&hl=tr)
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
izni gerekir. 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ı](https://developer.android.google.cn/static/images/about/versions/pie/emulator-devoptions-cutout_2x.png?authuser=19&hl=tr)
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:
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
Android 9 çalıştıran herhangi bir cihazda veya emülatörde ekran kesimi simülasyonu yapabilirsiniz. şu şekilde:
- Geliştirici seçeneklerini etkinleştirin.
- Geliştirici seçenekleri ekranında Çizim bölümüne gidin Kesim içeren bir ekranı simüle et'i seçin.
- Kesim boyutunu seçin.
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](https://developer.android.google.cn/static/images/about/versions/pie/p-messaging.jpg?authuser=19&hl=tr)
Fotoğraf eklenmiş MessagingStyle.
![Mesajlaşma bildirimi](https://developer.android.google.cn/static/images/about/versions/pie/p-replies.jpg?authuser=19&hl=tr)
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ıkCharSequence
yerinePerson
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:PRIORITY_CATEGORY_ALARMS
alarmlara öncelik verir.PRIORITY_CATEGORY_MEDIA
medya ve sesli navigasyon gibi medya kaynaklarından gelen seslere öncelik verir.PRIORITY_CATEGORY_SYSTEM
sistem seslerine öncelik verir.
NotificationManager.Policy
ayrıca yedi yeni Rahatsız Etmeyin sabit değeri içeriyor görsel kesmeyi önlemek için kullanabileceğiniz özellikler:SUPPRESSED_EFFECT_FULL_SCREEN_INTENT
bildirimin tam ekran etkinliği başlatmasını engeller.SUPPRESSED_EFFECT_LIGHTS
bildirim ışıklarını engeller.SUPPRESSED_EFFECT_PEEK
bildirimlerin kısa süreliğine görünüme kaymasını ("kısaca göz atma") engeller.SUPPRESSED_EFFECT_STATUS_BAR
bildirimlerinin durum çubuklarını destekleyen cihazlarda durum çubuğunda görünmesini engeller.SUPPRESSED_EFFECT_BADGE
rozetleri destekleyen cihazlarda rozetleri engeller. Daha fazla bilgi için: Bildirim rozetini değiştirmeSUPPRESSED_EFFECT_AMBIENT
ambiyans ekranlarını destekleyen cihazlarda bildirimleri engeller.SUPPRESSED_EFFECT_NOTIFICATION_LIST
bildirim gölgesi veya kilit ekranı gibi liste görünümünü destekleyen cihazlarda bildirimlerin liste görünümünde görünmesini engeller.
Ç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ğrudansetTargetSampleSize()
. - Bir resmi ölçeklendirilmiş resmin aralığı içinde kırpmak için
setCrop()
. - Değişebilir bit eşlem oluşturmak için
true
öğesinisetMutableRequired()
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:
- Element tabanlı matematik işlemleri:
- Dizi işlemleri:
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.
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:
- Kullanıcı şunları etkinleştirmiştir: Android 9 ile yedekleme veya daha yüksek olabilir.
- Kullanıcı bir ekran kendi cihazı için kilitle PIN, desen veya şifre gerektiren telefon numarası.
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 veACTION_SHOW_TOOLTIP
veACTION_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çinGLOBAL_ACTION_LOCK_SCREEN
veGLOBAL_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](https://developer.android.google.cn/static/images/about/versions/pie/rotate-changes.gif?authuser=19&hl=tr)
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ğinTextClassifier
, 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
özellikleriLinkify
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.