Android 8.0 Özellikleri ve API'leri

Android 8.0 (API düzeyi 26), çok çeşitli özellikler kullanıcılar ve geliştiriciler için yeni özellikler ve olanaklar. Bu dokümanda, geliştiriciler için sunulan yenilikler vurgulanmaktadır.

Şuna da göz atmayı unutmayın: Android 8.0 Davranış Değişiklikleri, platformun değiştiği alanlar hakkında bilgi edinin uygulamalarınızı etkileyebilir.

Kullanıcı Deneyimi

Pencere içinde pencere modu

Android 8.0'da pencere içinde pencere.

Android 8.0 (API düzeyi 26), etkinliklerin pencere içinde pencere (PIP) modunu kullanabilirsiniz. PIP, özel çoklu pencere modu türü çoğunlukla video oynatma için kullanılır. PIP modu ilk olarak Yalnızca Android TV; Android 8.0, bu özelliği kullanıma sunar Android cihazlarda kullanabilirsiniz.

PIP modunda olan bir etkinlik duraklatılmış durumda olur, ancak içeriği göstermeye devam eder. Bu nedenle, uygulamanızın , onPause() içinde oynatmayı duraklatmaz gösterir. Bunun yerine, videoyu onStop() içinde duraklatmalı ve onStart() içinde oynatmaya devam etmelisiniz. Daha fazla bilgi için bkz. Çoklu Pencere Yaşam döngüsü.

Etkinliğinizin PIP modunu kullanabileceğini belirtmek için Manifest dosyasında android:supportsPictureInPicture değerini true olarak ayarlayın. (Android 8.0'dan itibaren PIP, android:resizeableActivity manifest özelliği. Ancak şunu ayarlamanız gerekir: Etkinliğiniz diğer etkinlikleri destekliyorsa android:resizeableActivity değerini "true" olarak ayarlayın çoklu pencere modlarında çalışır.)

Android 8.0 (API düzeyi 26), PictureInPictureParams adlı yeni bir nesneyi kullanıma sunuyor. Bir etkinliğin nasıl davranması gerektiğini belirtmek için PIP yöntemlerine iletirsiniz. PIP modunda olduğunda. Bu nesne etkinliğin tercih edilen en boy oranı.

Şu bölümde açıklanan mevcut PIP yöntemleri: Ekleme Pencere içinde pencere özelliği artık Yalnızca Android TV'de değil, tüm Android cihazlarda kullanılır. Ayrıca, Android 8.0, Android 8.0'ın PIP modu:

  • Activity.enterPictureInPictureMode(PictureInPictureParams args): Etkinliği pencere içinde pencere moduna alır. Etkinliğin en boy oranı ve diğer yapılandırma ayarları args tarafından belirtilir. Herhangi bir alan args içindeki veriler boşsa sistem, istediğiniz zaman adı Activity.setPictureInPictureParams().

    Belirtilen etkinlik ekranın bir köşesine yerleştirilir; geri kalan Ekran, ekrandaki önceki etkinlikle doldurulur. PIP moduna giren etkinlik duraklatılmış duruma geçer ancak devam eder başladı. Kullanıcı PIP etkinliğine dokunursa sistem, etkileşim kurulacak kullanıcı; Dokunmatik etkinlikler, aktiviteye devam ederken PIP durumunda olduğundan emin olun.

  • Activity.setPictureInPictureParams(): Bir etkinliğin PIP yapılandırma ayarlarını günceller. Etkinlik ayarlar güncellendi; Bu, aşağıdaki durumlarda en boy oranı değişiklikleri yaşar. Etkinlik PIP modunda değilse bu yapılandırma ayarları, enterPictureInPictureMode() yöntemini çağırın.

Bildirimler

Android 8.0 (API düzeyi 26) sürümünde, bildirimleri Bildirim davranışını yönetmenin daha kolay ve tutarlı bir yolunu sunar. ve ayarlar. Söz konusu değişiklikler şunlardır:

    Android 8.0'da (API düzeyi 26) bir bildirim menüsüne uzun basın.

    Kullanıcılar görüntülemek için uygulama başlatıcı simgelerine uzun basabilir en iyi uygulamaları paylaşacağız.

  • Bildirim kanalları: Android 8.0 kullanıma sunuldu kullanıcı tarafından özelleştirilebilir kanal oluşturmanıza olanak tanıyan bildirim kanalları tıklayın. Kullanıcı arayüzü, bildirim kategorileri olarak ayarlayabilirsiniz. Nasıl yapıldığını bildirim kanallarını uygulamak için Yöneticilik yapmak bildirim kanallarına dikkat edin.
  • Bildirim noktaları: Android 8.0, artık görüntüleme desteği de sunuyor noktalar veya rozetler gösterilir. Bildirim noktaları, Kullanıcının henüz kapatmadığı veya işlem yapmadığı bildirimlerin varlığı. Bildirim noktalarıyla nasıl çalışacağınızı öğrenmek için bkz. Bildirim rozetleri ekleyin.
  • Erteleme: Kullanıcılar bildirimleri erteleyebileceği için bu bildirimler kaybolacak bir süre beklemenizi öneririz. Bildirimler şu şekilde yeniden görünür: ortaya çıktığında aynı önem düzeyine sahip olmaları gerekir. Uygulamalar kaldırabilir veya güncelleyebilir ancak ertelenen bir bildirimin güncellenmesi, tekrar karşınıza çıkacak.
  • Bildirim zaman aşımları: şunu kullanarak bildirim gönder: setTimeoutAfter() Bildirimin ne kadar süre sonra gösterileceğini belirtmek için bu yöntemi kullanabilirsiniz. iptal edilmelidir. Gerekirse belirtilen zaman aşımı süresi geçer.
  • Bildirim ayarları: Şu numarayı arayabilirsiniz: setSettingsText(). ve uygulamanızın bağlantısı oluşturduğunuzda görünen metni ayarlamak bildirim ayarlarını kullanarak Amacı Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES. Sistem, filtre uygulama amacıyla aşağıdaki ekstraları sağlayabilir uygulamanızın kullanıcılara göstermesi gereken ayarlar: EXTRA_CHANNEL_ID, NOTIFICATION_TAG ve NOTIFICATION_ID.
  • Bildirim kapatma: Kullanıcılar bildirimleri kendileri kapatabilir ve uygulamalar bunları programatik olarak kaldırabilir. Bir bildirimin ne zaman gösterileceğini belirleyebilirsiniz ve onNotificationRemoved() yöntemini kullanarak NotificationListenerService sınıf.
  • Arka plan renkleri: Bir arka plan rengi belirleyip bildirimi görürsünüz. Bu özelliği bildirimlerde yalnızca kullanıcının bir bakışta görmesi için kritik önemde olan, devam eden görevlerdir. Örneğin, Örneğin, aşağıdaki ürünlerle ilgili bildirimler için bir arka plan rengi veya devam eden bir telefon aramasıyla karşılaşabilirsiniz. Ayrıca, kullanarak istediğiniz arka plan rengini setColor() İşlem devam ediyor bir bildirim için arka plan rengi kullanımını etkinleştirmek üzere setColorized() kullanmanızı sağlar.
  • Mesajlaşma stili: Android 8.0'da, MessagingStyle sınıf ekranı daha fazla içerik sunar. Bunun için Şu ders için MessagingStyle sınıf mevcut: Mesajlaşmaya yönelik bildirimler de dahil olmak üzere. Ayrıca şunu da kullanabilirsiniz: addHistoricMessage() yöntemini kullanarak bir ileti dizisine bağlam bilgisi Mesajlaşma ile ilgili bildirimlerdeki geçmiş mesajlar.

Otomatik doldurma çerçevesi

Hesap oluşturma, hesaba giriş yapma ve kredi kartı işlemleri zaman alır ve genelde hatalar. Kullanıcılar bu tür uygulamaların gerektirdiği uygulamaları kolayca hayal kırıklığına uğratabilir tekrarlayan görevlerden oluşur.

Android 8.0 (API düzeyi 26) giriş yapma gibi formların doldurulmasını sağlar kullanıma sunduk. Kullanıcı şu ayarı etkinleştirdikten sonra mevcut ve yeni uygulamalar Otomatik Doldurma Çerçevesi ile çalışır: Otomatik doldurma'yı tıklayın.

Uygulamanızın çerçeveyle çalışma şeklini optimize etmek için bazı adımlar atabilirsiniz. Daha fazla bilgi için Otomatik Doldurma Çerçevesine Genel Bakış başlıklı makaleyi inceleyin.

İndirilebilir yazı tipleri

Android 8.0 (API düzeyi 26) ve Android Destek Kitaplığı 26, bir bir sağlayıcı uygulamasına sahip olmanız gerekir. APK indirme yazı tipleri. Bu özellik, APK'nızın boyutunu küçültür, uygulamayı büyütür ve birden fazla uygulamanın aynı yazı tipini paylaşmasına izin verir.

Yazı tiplerini indirme hakkında daha fazla bilgi için İndirilebilir Yazı Tipleri.

XML'deki yazı tipleri

Android 8.0 (API düzeyi 26), XML'de yazı tiplerini destekleyen yeni bir yazı tiplerini kaynak olarak kullanmanızı sağlar. Yani, yazı tiplerini tek bir pakette kullanabilirsiniz. Yazı tipleri R dosyasında derlenir ve otomatik olarak oluşturulur sistemde kaynak olarak bulunur. Daha sonra bu yazı tiplerine yeni bir kaynak türünün yardımıyla font.

Support Library 26, cihazlarda bu özellik için tam destek sağlar .

Yazı tiplerini kaynak olarak kullanma ve sistem yazı tiplerini alma hakkında daha fazla bilgi için XML'deki yazı tipleri bölümünü inceleyin.

TextView'u otomatik boyutlandırma

Android 8.0 (API düzeyi 26), metin genişletme veya otomatik olarak daraltılmasını sağlar. Bu, çok fazla metin boyutunu farklı ekranlarda veya dinamik içerikle optimize etmeyi daha kolay hale getirir. Android 8.0'da TextView'u otomatik boyutlandırma hakkında daha fazla bilgi için TextView'u otomatik boyutlandırma konusuna bakın.

Uyarlanabilir simgeler

Android 8.0 (API düzeyi 26) sürümünde uyarlanabilir başlatıcı simgeleri kullanıma sunulmuştur. Uyarlanabilir simgeler görsel desteği destekler ve farklı cihaz modellerinde çeşitli şekiller gösterebilir. Nasıl yapıldığını öğrenmek için uyarlanabilir simgeler oluşturmak için Uyarlanabilir Simgeler'e bakın rehberini inceleyin.

Renk yönetimi

Görüntüleme uygulamalarının Android geliştiricileri artık yeni cihazlardan yararlanabiliyor Geniş gama sahip renkli bir ekrana sahip. Geniş gamı görüntülemek için görüntüler için, uygulamaların manifest dosyalarında bir işareti etkinleştirmesi gerekir (etkinlik başına) ve bit eşlemleri yerleşik bir geniş renk profiliyle (AdobeRGB, Pro Photo RGB, DCI-P3 vb.) gösterilir.

WebView API'leri

Android 8.0, yönetmenize yardımcı olacak çeşitli API'ler sağlar uygulamanızda web içeriğini gösteren WebView nesneleri. Uygulamanızın kararlılığını ve güvenliğini iyileştiren bu API'ler, takip etmek için:

  • Sürüm API'si
  • Google Güvenli Tarama API'sı
  • Fesih İşleyici API'sı
  • Oluşturucu Önem API'si

Bu API'lerin nasıl kullanılacağı hakkında daha fazla bilgi edinmek için Web Görünümlerini Yönetme.

WebView sınıfı, güvenliği artırmak için artık Güvenli Tarama API'si içeriyor en iyi yoludur. Daha fazla bilgi için bkz. Google Safe Browsing API.

Kısayolları ve widget'ları sabitleme

Android 8.0 (API düzeyi 26) sürümünde kısayolların ve diğer öğelerin uygulama içinde sabitlenmesi widget'lar. Uygulamanızda şunlar için sabitlenmiş kısayollar ve widget'lar oluşturabilirsiniz: desteklenen başlatıcılar, kullanıcı iznine tabi olur.

Daha fazla bilgi için Kısayolları ve Widget'ları Sabitleme bakın.

Maksimum ekran en boy oranı

Android 8.0 (API düzeyi 26), bir uygulamanın maksimum en boy oranının nasıl yapılandırılacağıyla ilgili değişiklikler getiriyor.

Android 8.0 ilk olarak maxAspectRatio özelliğini kullanarak Örneğin, uygulamanızın maksimum en boy oranını ayarlamak için kullanabilirsiniz. Ayrıca, Android 8.0 ve sonraki sürümlerde bir uygulamanın varsayılan maksimum en boy oranı, uygulamanın çalıştığı cihazın yerel en boy oranıdır.

Maksimum en boy oranını bildirme hakkında daha fazla bilgi için bkz. Birden Fazla Ekranı Destekleme.

Çoklu ekran desteği

Android 8.0 (API düzeyi 26) sürümünden itibaren platform, gelişmiş özellikler çoklu ekran desteği. Bir etkinlik, çoklu pencere modunu ve birden fazla ekranlı bir cihazda çalışıyorsa kullanıcılar etkinliği arasında geçiş yapabiliyoruz. Bir uygulama bir etkinliği başlattığında etkinliğin hangi ekranda çalıştırılacağını belirtebilir.

Not: Bir etkinlik şunları destekliyorsa: çoklu pencere modunda, Android 8.0 otomatik olarak çoklu ekran desteğini kullanabilirsiniz. Uygulamanızı test edip çok ekranlı bir ortamda yeterli çalıştığından emin olmaktır.

Bir defada yalnızca tek bir etkinlik devam ettirilmiş durumda olabilir, uygulamanın birden fazla ekranı var. Odaklanılan etkinlik devam ettirildi durumundadır; diğer tüm görünür etkinlikler duraklatılır ancak durdurulmaz. Okuyucu Gelirleri Yöneticisi'ni birkaç aktivite görünürken etkinlik yaşam döngüsünü etkileyebilir. bkz. Çoklu Pencere Yaşam döngüsü.

Kullanıcı bir etkinliği bir ekrandan diğerine taşıdığında, sistem etkinliği yeniden boyutlandırır ve gerektiğinde çalışma zamanında değişiklikler yapar. Etkinliğiniz yapılandırma değişikliğinin kendi başına üstesinden gelebilir veya sistemin etkinliğinizi içeren işlemi kaldırın ve yeni komut dosyasıyla yeniden oluşturun seçin. Daha fazla bilgi için bkz. Kullanım Yapılandırması Değişiklikler.

ActivityOptions, birden çok ekran:

setLaunchDisplayId()
Etkinlik başlatıldığında hangi ekranda gösterileceğini belirtir.
getLaunchDisplayId()
Etkinliğin o anki başlatma ekranını döndürür.

Adb kabuğu, birden fazla ekranı destekleyecek şekilde genişletilmiştir. shell start komutu artık bir etkinlik başlatmak için kullanılabilir. ve etkinliğin hedef görüntüsünü belirtmek için:

adb shell start <activity_name> --display <display_id>

Birleştirilmiş düzen kenar boşlukları ve dolgu

Android 8.0 (API düzeyi 26), karşıt tarafların olduğu durumları belirtmenizi kolaylaştırır bir View öğesi aynı kenar boşluğunu veya dolguyu kullanıyor. Özellikle, düzen XML'inizde aşağıdaki özellikleri kullanabilirsiniz dosyalar:

Not: Uygulamanızın mantığını farklı özellikleri metin yönü dahil olmak üzere, bu dillerin ve kültürlerin özellikleri, layout_marginStart, layout_marginEnd paddingStart veya paddingEnd tıklayın. Bu değerleri, ek olarak kendiniz de ayarlayabilirsiniz. yeni dikey ve yatay düzen özelliklerini kullanarak metin yönüne göre değişir.

İşaretçi yakalama

Oyunlar, uzaktan masaüstü ve sanallaştırma istemcileri gibi bazı uygulamalarda fare işaretçisi üzerinde kontrol sahibi olmanıza yardımcı olabilir. İşaretçi yakalama, yeni bir tüm fare etkinliklerini göndererek bu tür bir denetim sağlayan, Android 8.0'da (API düzeyi 26) odaklanmış bir görünüme sahiptir.

Android 8.0'dan itibaren uygulamanızdaki bir View istekte bulunabilir yakalanan işaretçi etkinliklerini işlemek için bir işleyici tanımlar. İlgili içeriği oluşturmak için kullanılan bu moddayken fare işaretçisi gizlenir. Görünüm, işaretçi yakalamayı serbest bırakabilir kullandığında devre dışı bırakabilirsiniz. Sistem ayrıca, oturum açma görünümün odağı kaybolduğunda (ör. kullanıcı açıldığında) işaretçi yakalama başka bir uygulama.

Uygulamanızda bu özelliği nasıl kullanacağınızla ilgili bilgi edinmek için bkz. İşaretçi yakalama.

Uygulama kategorileri

Android 8.0 (API düzeyi 26), her uygulamanın uygun olduğu bir kategoriyi tanımlamasına olanak tanır. uygun olmalıdır. Bu kategoriler benzer uygulamalara ait uygulamaları bir arada kümelemek için kullanılır kullanıcılara sunmanın amaç veya işlevi (ör. Veri Kullanımı, Pil Kullanımı veya Depolama Alanı Kullanımı. <application> metriğinizde android:appCategory özelliği manifesto etiketi.

Android TV başlatıcı

Android 8.0 (API düzeyi 26) yeni bir içerik odaklı, Android TV ana ekran deneyimi Android 8.0 için Android TV emülatörü ve Nexus Player cihaz resmi. Yeni ana ekran her şeyi düzenler Kanallara karşılık gelen satırlarda video içeriği. Bu kanalların her biri sisteme bakacağız. Uygulamalar birden fazla kanal yayınlayabilir ve kullanıcılar, hangi kanalların bir seçim yapın. Android TV ana ekranında Sıradaki Video satırı da bulunur. Kullanıcının izleme alışkanlıklarına göre uygulamalardan gelen programlarla doldurulur. Uygulamalar ayrıca şunları da sağlayabilir: Kullanıcı bir programa odaklandığında otomatik olarak oynatılan video önizlemeleri. API'ler Kanalların ve programların doldurulması, Android olarak dağıtılan TvProvider API'lerinin bir parçasıdır. Android 8.0'a sahip Destek Kitaplığı modülü.

Animatör Seti

AnimatorSet API, Android 8.0 (API düzeyi 26) sürümünden itibaren sarma ve oynatmayı destekliyor. değiştirilebilir. Arama özelliği, belirli bir konuma ayarlanan animasyonun konumunu bir nokta olabilir. Uygulamanızda animasyonlar varsa ters oynatma özelliği yararlıdır geri alınabilir. İki ayrı animasyon tekniğini tanımlamak yerine, aynı oyunu tersten de oynayabilirsiniz.

Giriş ve gezinme

Klavyeyle gezinme kümeleri

Uygulamanızdaki bir etkinlik karmaşık bir görünüm hiyerarşisi kullanıyorsa (ör. Şekil 2: Kullanımı kolaylaştırmak için kullanıcı arayüzü öğesi gruplarını kümeler halinde düzenleyebilirsiniz klavyeyle gezinme olanağı sunar. Kullanıcılar, Bir kümeden diğerine gitmek için Chromebook cihazları. Doğru kullanım örnekleri kümeler şunları içerir: yan paneller, gezinme çubukları, ana içerik alanları ve öğeler içeren bir dizi alt öğe içerir.

Kullanıcının görüntülediği beş gezinme kümesi içeren örnek bir etkinlik
  klavye gezinme kümesi kısayolunu kullanarak gezinebilir. Kümeler
  şu düzende görünür: üst panel, sol yan panel, ana içerik
  alan, alt panel ve kayan işlem düğmesi.
Şekil 2. 5 gezinme içeren etkinlik kümeler
'nı inceleyin.

View veya ViewGroup öğesi oluşturmak için bir kümenin yerine android:keyboardNavigationCluster özelliğini öğenin düzen XML dosyasında true veya true iletin uygulamanızın kullanıcı arayüzü mantığında setKeyboardNavigationCluster() içine ekleyin.

Not: Kümeler, iç içe yerleştirilmediği halde iç içe yerleştirilemez kümeleri hiyerarşinin farklı düzeylerinde görünebilir. Örneğin iç içe kümeler içeriyorsa çerçeve yalnızca en üstteki ViewGroup öğesi seçin.

Dokunmatik ekranı olan cihazlarda, her bir sisteme bağlı olarak ViewGroup nesnesi true öğesine android:touchscreenBlocksFocus öğesi Yalnızca kümenin o kümeye girip çıkmasına olanak tanır. Bunu uygularsanız yapılandırmazsanız, kullanıcılar Sekme tuşunu veya ok tuşlarını kullanarak kümenin içine veya dışına gitme; kümede gezinmeye basması gerekir klavye kombinasyonunu kullanın.

Varsayılan odağı göster

Android 8.0 (API düzeyi 26) sürümünde, kullanılabilmesi için gereken View (yeniden) oluşturulan bir etkinlik devam ettirildikten ve kullanıcı bir düğmeye bastıktan sonra odağı al klavye gezinme tuşunu kullanın. Bunu "varsayılan olarak odaklanmış" ayarını uygulamak için ayarı, bir View öğesinin android:focusedByDefault özelliğini true UI öğesini içeren düzen XML dosyasını oluşturun veya true öğesini setFocusedByDefault() arayüzü mantığıyla çalışır.

Konuşma çıkışı

Etkinlikler ve hizmetler, İçeriği dikte etmek ve telaffuz etmek için TextToSpeech. Şu tarih itibarıyla: Android 8.0 (API düzeyi 26) ile uygulamanız daha doğru zamanlama bilgileri alabilir. sentezlenmiş kelimeleri tek tek konuşmaya başladığında, ancak motor bu bilgileri sağladığı sürece. Bu işlevi, metin okuma motoru konuşurken belirli kelimelere dikkat çekmek için gerekir.

Bu metin okuma motoru iyileştirmelerini uygulamanızda kullanmak için bir UtteranceProgressListener örneği. için bir işleyici ekleyerek onRangeStart(). yöntemidir.

Metin okuma motoru Kaydedilecek rangeStart() belirli bir metin aralığındaki sesin çalınmasını beklediği nokta başlayabilirsiniz. Söz konusu metin aralığının sesi çalınmaya başladığında onRangeStart(). yöntemi yürütülür. Ardından, uygulamanız bu geri çağırmaya yanıt verebilir. Örneğin: vurgulayarak, ifadeyle ilişkili metin aralığını vurgulayabilirsiniz.

Metin okumada oynatma ilerleme durumunu izleme hakkında daha fazla bilgi motor, UtteranceProgressListener sınıfını inceleyin bir referans noktası olarak kabul edilir.

Sistem

Yeni StrictMode algılayıcıları

Android 8.0 (API düzeyi 26), tanımlamaya yardımcı olmak için üç yeni StrictMode algılayıcı ekledi. uygulamanızdaki olası hatalar:

Önbelleğe alınan veriler

Android 8.0 (API düzeyi 26), önbelleğe alınan verilerle ilgili daha iyi rehberlik ve davranışlar sağlar. Her biri uygulamasına artık getCacheQuotaBytes(UUID)

Sistemin disk alanı boşaltması gerektiğinde, önbelleğe alınan dosyaları uygulamalardan silerek başlar. kotayı en çok aşanları gösterir. Bu nedenle, önbelleğe alınan verilerinizi önbellekteki dosyalarınız sistemde bulunan son dosyalardan biri, verileri gerekir. Sistem, uygulamanızın içinde önbelleğe alınan hangi dosyaların silineceğine karar verirken en eski dosyaları göz önünde bulundurmalısınız (değiştirme zamanına göre belirlenir).

Ayrıca, kontrol etmek için dizin bazında etkinleştirebileceğiniz iki yeni davranış da vardır: sistem önbelleğe alınan verilerinizi nasıl kurtarır?

  • StorageManager.setCacheBehaviorAtomic(), belirtmek için kullanılabilir bir dizinin ve tüm içeriklerinin tek bir atom birimi olarak silinmesi gerektiğini ifade eder.
  • setCacheBehaviorTombstone(File, boolean), belirtmek için kullanılabilir dizindeki dosyaların silinmek yerine 0 bayt olacak şekilde kısaltılmasını uzunluğuna sahip olmalıdır (boş dosyayı olduğu gibi bırakırsınız).

Son olarak, büyük dosyalar için disk alanı ayırmanız gerektiğinde, yeni Otomatik olarak temizlenecek allocateBytes(FileDescriptor, long) API İsteğinizi yerine getirmek için (gerektiğinde) diğer uygulamalara ait önbelleğe alınmış dosyalar. Projenin başarılı olup olmadığına cihazda yeni verilerinizi saklamaya yetecek kadar disk alanı var, getAllocatableBytes(UUID) - İlki, önbelleğe alınmış tüm öğeleri dikkate aldığı için getUsableSpace() verilerin temizlenmesine yardımcı olur.

İçerik sağlayıcı sayfalama

İçerik sağlayıcıları, büyük boyutlu tek seferde bir sayfaya sığdırır. Örneğin, binlerce fotoğraf içeren bir fotoğraf görseller, bir sayfada sunulacak verilerin bir alt kümesini sorgulayabilir. Her sayfa bir içerik sağlayıcı tarafından döndürülen sonuçların yüzdesi tek bir İmleçle temsil edilmektedir nesnesini tanımlayın. bu özelliği kullanabilirsiniz.

İçerik sağlayıcılardaki değişiklikler hakkında ayrıntılı bilgi için ContentProvider ve ContentProviderClient.

İçerik yenileme istekleri

ContentProvider ve ContentResolver sınıfın her birinde artık bir refresh() yöntemini kullanarak müşterilerin ve istenen bilgilerin güncel olup olmadığını kontrol etmelidir.

Şunu genişleterek özel içerik yenileme mantığı ekleyebilirsiniz: ContentProvider Döndürülecek refresh() yöntem true (sağlayıcınızın müşterilerine, bağlantı kurmaya çalıştığınızı belirtir) seçeneğini tıklayın.

İstemci uygulamanız olarak da adlandırılan refresh() Bu çağrı yapılırken yöntemini kullanıyorsanız yenilenecek verilerin URI'sini iletin.

Not: Bir ağ üzerinden veri isteğinde bulunuyor olabileceğiniz için, refresh() öğesini şuradan çağırmalısınız: yalnızca içeriğin eski olduğuna dair güçlü bir gösterge olduğunda istemci tarafında görünür. Bu tür bir içerik yenilemesinin en yaygın nedeni, yenilemek için kaydırma güncel içeriği göstermesi için geçerli kullanıcı arayüzünden açıkça istekte bulunur.

JobScheduler iyileştirmeleri

Android 8.0 (API düzeyi 26), JobScheduler ile ilgili çok sayıda iyileştirme sunmaktadır. Bu iyileştirmeler, uygulamanızın yeni arka plana uyum sağlamak için yürütme sınırlarıyla uğraşmanız gerekmeyebilir. ya da örtülü yayın alıcıları olabilir.

JobScheduler güncellemeleri şunları içerir:

  • Artık iş sırasını planlanmış bir işle ilişkilendirebilirsiniz. Şuna bir çalışma öğesi eklemek için: bir iş sırası, JobScheduler.enqueue(). İş çalışırken, beklemedeki işleri sıradan alıp işleyebilir. Bu işlev, önceden karşılaşabileceğiniz pek çok kullanım arka plan hizmetinin başlatılmasını, özellikle de bu hizmetleri IntentService
  • Android Destek Kitaplığı 26.0.0 sürümünde, aynı sınıfa sahip yeni bir JobIntentService sınıfı kullanıma sunuluyor. işlevini IntentService olarak tanımlar ancak hizmetlerini kullanmanızı da öneririz.
  • Artık şu numarayı arayabilirsiniz: JobInfo.Builder.setClipData() ClipData işlemini bir işle ilişkilendirin. Bu seçenek, bu işlemlerde olduğu gibi, URI izni izinlerini bir işle izinler Context.startService() etki alanına yayılabilir. URI izni izinlerini niyetlerle de kullanabilirsiniz iş sıralarına alabilir.
  • Planlanmış işler artık birkaç yeni kısıtlamayı destekliyor:
    JobInfo.isRequireStorageNotLow()
    Cihazın kullanılabilir depolama alanı azsa iş çalışmaz.
    JobInfo.isRequireBatteryNotLow()
    Pil seviyesi, kritik düzeyde veya kritik seviyenin altındaysa iş çalışmıyor eşik bu, cihazda düşük pil seviyesi gösterildiğidir uyarı sistem iletişim kutusu.
    NETWORK_TYPE_METERED
    İş, çoğu hücresel veride olduğu gibi sayaçlı ağ bağlantısı gerektiriyor hakkında bilgi edindik.

Özel veri deposu

Android 8.0 (API düzeyi 26), tercihlerinize göre özel bir veri deposu sağlamanıza olanak tanır. Bu veri deposu Uygulamanız tercihleri bir bulutta veya yerel veritabanında depoluyorsa yararlı olabilir ya da sağlayabilirsiniz. Daha fazla bilgi için veri deposunun uygulanması için Özel Veri Deposu.

Medya geliştirmeleri

VolumeShaper

Yeni bir VolumeShaper sınıfı var. Tekliflerinizi otomatikleştirmek ve optimize etmek için kararma, az açılma ve çapraz geçişler gibi kısa otomatik hacim geçişleri gerçekleştirmek için bu işlevi kullanabilirsiniz. VolumeShaper ile Genişliği Kontrol Etme bölümüne bakın. konulu videomuzu izleyin.

Ses odağı geliştirmeleri

Ses uygulamaları, ses odağını isteyerek ve vazgeçerek bir cihazda ses çıkışını paylaşır. Bir uygulama, oynatmayı başlatarak, durdurarak veya ses düzeyini azaltarak odaktaki değişiklikleri işler. Yeni bir AudioFocusRequest sınıfı var. Bu sınıfı requestAudioFocus(), Uygulamalar, ses odağındaki değişiklikleri ele alırken yeni özelliklere sahiptir: otomatik kısma ve gecikmeli odak kazancı.

Medya metrikleri

Yeni bir getMetrics() yöntemi, PersistableBundle değeri döndürüyor yapılandırma içeren nesne ve performans bilgileri, öznitelikler ve değerler haritası olarak ifade edilir. getMetrics() yöntemi, şu medya sınıfları için tanımlanmıştır:

Metrikler her örnek için ayrı olarak toplanır ve süresi kadardır. Kullanılabilir metrik yoksa yöntem şunu döndürür: null. Döndürülen gerçek metrikler sınıfa bağlıdır.

Medya Oynatıcı

Android 8.0'dan (API düzeyi 26) itibaren MediaPlayer oynatabilir DRM korumalı materyal ve HLS örnek düzeyinde şifrelenmiş medya.

Android 8.0, aşırı yüklü yeni bir Ayrıntılı ayrıntı sağlayan seekTo() komutu kontrolüne sahip olur. Arama modunu belirten ikinci bir parametre içerir:

  • SEEK_PREVIOUS_SYNC, medya konumunu bir senkronizasyon (veya tuş) karesine taşır belirtilen zamandan hemen önce veya verilen bir veri kaynağıyla ilişkilendirilmiş
  • SEEK_NEXT_SYNC, medya konumunu ilişkili bir senkronizasyon (veya tuş) çerçevesine taşır belirtilen zamandan hemen sonra veya belirli bir zamanda yer alan bir veri kaynağıyla eşleştirilir.
  • SEEK_CLOSEST_SYNC, medya konumunu bir senkronizasyon (veya tuş) karesine taşır belirtilen zamana en yakın veya belirtilen zamana en yakın veri kaynağıyla ilişkilendirilmiş
  • SEEK_CLOSEST, medya konumunu bir kareye taşır (senkronizasyon olması gerekmez) veya animasyon karesi) size en yakın veya en yakın veri kaynağıyla düşünmesi gerekir.

Sürekli arama yaparken uygulamalar, nispeten daha yavaş ancak daha hassas olabilecek SEEK_CLOSEST yerine SEEK_ modlarından birini kullanmalıdır.

Medya Kaydedicisi

  • MediaRecorder artık MPEG2_TS biçimini destekliyor. Bu biçim, yayın:

    Kotlin

    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_2_TS)
    

    Java

    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_2_TS);
    

    bkz. MediaRecorder.OutputFormat

  • MediaMuxer artık istenilen sayıda ses ve video akışını işleyebilir. Artık sınırlı durumda değilsiniz bir ses parçasına ve/veya bir video parçasına bağlayabilirsiniz. addTrack() hesabını kullan istediğiniz kadar parça miksleyebilirsiniz.
  • MediaMuxer, her kare için kullanıcı tanımlı olan bir veya daha fazla meta veri kanalı da ekleyebilir ekleyebilirsiniz. Meta verilerin biçimi, uygulamanız tarafından belirlenir. İlgili içeriği oluşturmak için kullanılan Meta veri parçası, yalnızca MP4 kapsayıcıları için desteklenir.

Meta veriler, çevrimdışı işleme için yararlı olabilir. Örneğin, sensör ise video sabitlemesi için kullanılabilir.

Bir meta veri parçası eklenirken parçanın MIME biçimi önekle başlamalıdır "application/". Meta veri yazmak, video/ses verilerini yazmakla aynıdır. Bu işlem, verileri bir MediaCodec kaynağından gelmediğinden emin olun. Bunun yerine, uygulama ByteBuffer writeSampleData() yöntemini çağırın. Zaman damgası, video ve ses parçalarıyla aynı zaman tabanında olmalıdır.

Oluşturulan MP4 dosyası, bölümde tanımlanan TextMetaDataSampleEntry öğesini kullanır 12.3.3.2'deki (ISOBMFF) meta verilerin mime biçimini belirtmek için kullanılır. Meta veri parçası olan dosyayı çıkarmak için MediaExtractor kullanılırken MIME biçimi MediaFormat içine çıkarılır.

İyileştirilmiş medya dosyası erişimi

İlgili içeriği oluşturmak için kullanılan Depolama Erişim Çerçevesi (SAF), uygulamaların özel DocumentsProvider izniyle dosyalara erişebilirsiniz diğer uygulamalara aktarmanızı sağlar. Aslında Hatta bir doküman sağlayıcısının, bulunan veya şuna benzer bir protokol kullanan: Medya Aktarım Protokolü (MTP).

Ancak büyük medya dosyalarına uzak bir veri kaynağından erişmek meydan okumalar:

  • Medya oynatıcılar, bir belge sağlayıcıdan dosyaya aranabilir erişim gerektirir. Büyük bir medya dosyasının uzak bir veri kaynağında bulunduğu durumlarda, belge sağlayıcı tüm verileri önceden getirmeli ve anlık görüntü oluşturmalıdır dosya tanımlayıcısıdır. Medya oynatıcı, dosya olmadan dosyayı oynatamaz aksi takdirde, doküman sağlayıcı işlemi bitene kadar oynatma başlayamaz. dosyayı indirin.
  • Fotoğraf uygulamaları gibi medya koleksiyonu yöneticileri, kapsam dışı olarak harici bir SD kartta depolanan medyaya ulaşmak için URI'lere erişim klasörlerini tıklayın. Bu erişim kalıbı, medyalar üzerinde toplu işlemler gerçekleştirir; örneğin, taşıma, kopyalama ve silme işlemleri oldukça yavaş.
  • Medya koleksiyonu yöneticileri, dokümanların konumunu URI. Bu durum, kullanıcıların bu tür uygulamaların seçim yapmalarına izin vermelerini zorlaştırır. kaydedileceği yeri seçin.

Android 8.0, Depolama Alanı Erişimini iyileştirerek bu zorlukların her birini ele alıyor Çerçeve.

Özel belge sağlayıcılar

Android 8.0'dan itibaren Depolama Erişim Çerçevesi, özel dokümanlar sağlayıcılarını barındıran dosyalar için aranabilir dosya tanımlayıcıları uzak veri kaynağı. SAF, yerel aranabilir dosya almak için bir dosya açabilir açıklayıcıdır. Daha sonra SAF, farklı bayt isteklerini belgelere teslim eder. sağlar. Bu özellik, bir doküman sağlayıcının tam aralığı döndürmesine olanak sağlar bir medya oynatıcı uygulamasının tüm dosyayı önbelleğe almak yerine istediği bayt miktarının sayısı dosya ileterek.

Bu özelliği kullanmak için yeni StorageManager.openProxyFileDescriptor() yöntemini çağırın. İlgili içeriği oluşturmak için kullanılan openProxyFileDescriptor() yöntemi, geri çağırma olarak bir ProxyFileDescriptorCallback nesnesini kabul eder. SAF, bir istemci uygulaması, Search Console'da dosya işlemleri gerçekleştirdiğinde doküman sağlayıcısından döndürülen dosya tanımlayıcısı.

Dokümana doğrudan erişim

Android 8.0 (API düzeyi 26) sürümünden itibaren, getDocumentUri() yöntemini kullanarak belirtilen mediaUri ile aynı dokümana başvuruda bulunan bir URI alırsınız. Ancak döndürülen URI DocumentsProvider, medya koleksiyonu yöneticileri erişebilir ve kapsamdaki dizinlerin ağaçlarını aktarmak zorunda kalmadan doğrudan belgeyi destekler. Sonuç olarak, medya yöneticileri doküman üzerinde dosya işlemleri gerçekleştirebilir. çok daha hızlı şekilde sunuyor.

Dikkat: getDocumentUri() yöntemi yalnızca medya dosyalarını bulur; uygulamalara izin vermez bu dosyalara erişebilir. Erişim elde etme hakkında daha fazla bilgi edinmek için izin almak için referans belgelere bakın.

Belgeye giden yollar

Android 8.0 (API düzeyi 26) sürümünde Depolama Erişim Çerçevesi'ni kullanırken findDocumentPath() yöntemi (her ikisinde de kullanılabilir) DocumentsContract ve DocumentsProvider kök dizin yolunu belirlemek için bir belgenin Kimlik. Yöntem, bu yolu DocumentsContract.Path nesne algılandı. Bir dosyanın sistem aynı dokümana yönelik birden çok tanımlanmış yola sahipse yöntem, belirtilen kimlike sahip dokümana ulaşmak için en sık kullanılan yoludur.

Bu işlev özellikle aşağıdaki senaryolarda kullanışlıdır:

  • Uygulamanızda "farklı kaydet" özelliği kullanılıyor konumunu gösteren iletişim kutusu çok kolaylaşır.
  • Uygulamanız, klasörleri arama sonuçları görünümünde gösteriyor ve alt öğeyi yüklemesi gerekiyor kullanıcı söz konusu klasördeki dokümanları seçerse tıklayın.

Not: Uygulamanızın dokümanlardan yalnızca bazılarına erişim izni varsa yolda findDocumentPath() işlevinin döndürülen değeri yalnızca uygulamanızın erişebileceği klasörler ve dokümanlar.

Ses çalmayı izleme

AudioManager sistem hizmeti, her biri etkin AudioPlaybackConfiguration nesne Belirli bir ses çalma oturumuyla ilgili bilgileri içeren Uygulamanız şunları yapabilir: şunu çağırarak o anda etkin olan yapılandırmalar kümesini almak için getActivePlaybackConfigurations()

Android 8.0 (API düzeyi 26) sürümünden itibaren, uygulamanızın bir veya daha fazla AudioPlaybackConfiguration nesne değiştirildi. Bunun için, registerAudioPlaybackCallback() çağrısı, şunun bir örneğini iletir: AudioManager.AudioPlaybackCallback. İlgili içeriği oluşturmak için kullanılan AudioManager.AudioPlaybackCallback sınıfı şunu içeriyor: onPlaybackConfigChanged() yöntemini çağırın. oynatma yapılandırmasında yapılan değişiklikler.

Bağlantı

Kablosuz Ağ Uyumlu

Android 8.0 (API düzeyi 26), Komşu bölümüne dayalı Wi-Fi Aware desteği ekler Farkındalık Ağ İletişimi (NAN) spesifikasyonu. Uygun Wi-Fi Aware donanımları, uygulamalar ve yakındaki cihazlar keşfedip iletişim kurabilir kablosuz bağlantı üzerinden kullanabilirsiniz. Donanımımızla birlikte iş ortaklarımızın Wi-Fi Aware teknolojisini cihazlara mümkün olan en kısa sürede getirmelerini amaçlıyoruz. Örneğin, Wi-Fi Aware'i uygulamanıza nasıl entegre edeceğinize ilişkin bilgi için Wi-Fi Aware başlıklı makaleye bakın.

Bluetooth

Android 8.0 (API düzeyi 26), aşağıdaki özellikleri ekleyerek platformun Bluetooth desteğini zenginleştirir: özellikler:

  • Şarkı kitaplığına göz atmayı sağlayan AVRCP 1.4 standardı desteği.
  • Bluetooth Düşük Enerji (BLE) 5.0 standardı desteği.
  • Sony LDAC codec'inin Bluetooth yığınına entegrasyonu.

Tamamlayıcı cihaz eşleme

Android 8.0 (API düzeyi 26), şunun üzerinden tamamlayıcı cihazlarla eşlemeye çalışırken eşleme isteği iletişim kutusu: Bluetooth, BDE ve kablosuz. Daha fazla bilgi için bkz. Tamamlayıcı Cihaz Eşleme.

Android'de Bluetooth'u kullanma hakkında daha fazla bilgi için şuraya bakın: Bluetooth rehberi. Örneğin, için bkz. Bluetooth bölümü Android 8.0 Davranış Değişiklikleri sayfası.

Paylaşılıyor

Akıllı paylaşım

Android 8.0 (API düzeyi 26), kullanıcıların kişiselleştirilmiş paylaşım ve en uygun içerik türlerini daha iyi anlar pek çok uygulama vardır. Örneğin, bir kullanıcı bir makbuzun fotoğrafını çekerse, Android 8.0 gider takibi uygulaması önerebilir; Kullanıcı selfie çekerse veya bir sosyal medya uygulamanız resmi daha iyi işleyebilir. Android 8.0 tüm bunları otomatik olarak öğrenir kullanıcı davranışına ve kişiselleştirilmiş tercihler.

Akıllı paylaşım, image dışındaki içerik türlerinde çalışır. Örneğin: audio, video, text, URL, vb.

Akıllı paylaşımı etkinleştirmek için en fazla üç tane ArrayList ekleyin dize ek açıklamaları içerir. Ek açıklamalar içerikteki ana bileşenleri veya konuları açıklamak önemlidir. Aşağıdaki kod örneği Amaca ek açıklamaların nasıl ekleneceğini gösterir:

Kotlin

val annotations: ArrayList<String> = arrayListOf(
        "topic1",
        "topic2",
        "topic3"
)

intent.putStringArrayListExtra(
        Intent.EXTRA_CONTENT_ANNOTATIONS,
        annotations
)

Java

ArrayList<String> annotations = new ArrayList<>();

annotations.add("topic1");
annotations.add("topic2");
annotations.add("topic3");

intent.putStringArrayListExtra(
    Intent.EXTRA_CONTENT_ANNOTATIONS,
    annotations
);

Akıllı paylaşım ek açıklamaları hakkında ayrıntılı bilgi için bkz. EXTRA_CONTENT_ANNOTATIONS

Metin sınıflandırıcı

Uyumlu cihazlarda, uygulamalar yeni bir Metin Sınıflandırıcı kullanarak dize, bilinen bir sınıflandırıcı öğe türüyle eşleşiyor ve önerilen seçimi al sağlayabilir. Sistem tarafından tanınan varlıklar arasında adresler, URL'ler telefon numaraları ve e-posta adresleri. Daha fazla bilgi için bkz. TextClassifier

Erişilebilirlik

Android 8.0 (API düzeyi 26), kendi erişilebilirlik hizmetlerini oluşturan geliştiriciler:

ziyaret edin. Uygulamanızı nasıl daha erişilebilir hale getirebileceğiniz hakkında daha fazla bilgi edinmek için Erişilebilirlik konusunu inceleyin.

Güvenlik ve Gizlilik

İzinler

Android 8.0 (API düzeyi 26) telefon özellikleriyle ilgili pek çok yeni izin sunmaktadır:

  • ANSWER_PHONE_CALLS izni, uygulamanızın yanıt vermesine olanak tanır programlı bir şekilde gelen telefon aramalarıdır. Gelen bir aramayı şurada işlemek için: öğrenmek için acceptRingingCall(). yöntemidir.
  • READ_PHONE_NUMBERS izni, uygulamanıza okuma erişimi verir bir cihazda depolanan telefon numaralarıyla ilgilidir.

Bu izinlerin ikisi de şu şekilde sınıflandırılır: tehlikeli ve her ikisi de PHONE izin grubu.

Yeni hesap erişimi ve keşif API'leri

Android 8.0 (API düzeyi 26), uygulamaların kullanıcı hesaplarına erişimi olur. Yönettikleri hesaplar için Kimlik doğrulayıcılar, bu hesaplarda hesapların gizlenip gizlenmeyeceğini belirlemek için ortaya çıkarmanıza yardımcı olabilir. Android sistemi, şunları yapabilen uygulamaları izler: belirli bir hesaba erişebilirsiniz.

Android'in önceki sürümlerinde, kullanıcı hesaplarının, şuna sahip hesaplar dahil, tüm hesaplarla ilgili güncelleme alması gerekiyordu: alakası olmayan türler. Android 8.0, addOnAccountsUpdatedListener(android.accounts.OnAccountsUpdateListener, android.os.Handler, boolean, java.lang.String[]). yöntemini kullanan uygulamalardır. Bu yöntem, uygulamaların hangi hesap değişikliklerinin alınması gerektiği.

API değişiklikleri

Hesap Yöneticisi, kimlik doğrulayıcıların hangi uygulamalar bir hesabı görebilir:

Android 8.0 (API düzeyi 26), görünürlüğü belirtmek için iki özel Paket Adı değeri sunuyor kullanılarak ayarlanmayan uygulamalar için setAccountVisibility(android.accounts.Account, java.lang.String, int). yöntemidir. İlgili içeriği oluşturmak için kullanılan PACKAGE_NAME_KEY_LEGACY_VISIBLE. görünürlük değeri, GET_ACCOUNTS izinlerini ve hedef sürümlerini Android 8.0'dan eski Android 8.0 veya herhangi bir Android sürümünü hedefleyen kimlik doğrulayıcıyla eşleşen imzalar. PACKAGE_NAME_KEY_LEGACY_NOT_VISIBLE. şunun için varsayılan görünürlük değeri sağlar: daha önce ayarlanmamış olan PACKAGE_NAME_KEY_LEGACY_VISIBLE değil geçerlidir.

Yeni hesap erişimi ve keşif API'leri hakkında daha fazla bilgi için referans: AccountManager ve OnAccountsUpdateListener.

Test

Araç testi

Android 8.0 (API düzeyi 26), uygulamanızın araç testleri.

Varsayılan olmayan uygulama işlemlerinde çalıştır

Artık belirli bir araç testinin şuna göre çalıştırılacağını belirtebilirsiniz: varsayılan işlemin dışında bir işlem uygulayabilirsiniz. Bu yapılandırma, Uygulamanız farklı işlemlerde çalışan birden fazla etkinlik içeriyor.

Varsayılan olmayan işlem araçlarını tanımlamak için manifest dosyanıza gidin ve ardından istediğiniz <instrumentation> öğesi. URL'yi android:targetProcess özelliğini ve değerini şu:

  • Belirli bir işlemin adı.
  • İşlem adlarının virgülle ayrılmış listesi.
  • Aracın çalıştırılmasına olanak tanıyan bir joker karakter ("*") belirtilen paketteki kodu yürüten, başlatılmış herhangi bir işleme android:targetPackage özelliği.

Araç testiniz çalışırken hangi sürecin getProcessName() numaralı telefonu arayarak test ediyor.

Test sırasında sonuçları bildirme

Artık araç testiniz yürütülürken sonuçları raporlayabilirsiniz. değil, addResults() numaralı telefonu arayarak.

Testler için taklit amaçları

Uygulamanız için izole, bağımsız kullanıcı arayüzü testleri oluşturmayı kolaylaştırmak amacıyla etkinlikleri için Android 8.0 (API düzeyi 26) onStartActivity() yöntemini çağırın. Bu yöntemi Belirli bir işlemi işlemek için Instrumentation.ActivityMonitor sınıf test sınıfınızın çağırdığı niyete göre belirlenir.

Test sınıfınız niyeti çağırdığında, yöntem bir saplama döndürür Yürütmek yerine Instrumentation.ActivityResult nesnesi düşünmesi gerekir. Testlerinizde bu örnek amaç mantığını kullanarak etkinliği nasıl hazırladığı ve işlediğiyle ilgili daha fazla bilgi veya tamamen farklı bir uygulamaya yönlendirebilirsiniz.

Çalışma zamanı ve Araçlar

Platform optimizasyonları

Android 8.0 (API düzeyi 26), platforma çalışma zamanı gibi bazı optimizasyonlar getirir. çeşitli performans iyileştirmeleri sağlar. Bu optimizasyonlar, eşzamanlı sıkıştırma ile çöp toplamayı, daha verimli bir şekilde kullanmanızı sağlar.

Bu optimizasyonlar başlatma sürelerinin kısalmasını ve hem İşletim sistemi ve uygulamalar.

Java dil desteği güncellendi

Android 8.0 (API düzeyi 26), bazı ek OpenJDK Java API'leri için destek sağlar:

Yeni eklenen bu derslerdeki sınıflar ve yöntemler hakkında daha fazla bilgi edinmek için API referans belgelerine bakın.

Şunu yapmak istiyorsanız: Android Studio'da Java 8 dil özelliklerini kullanıyorsanız en son önizleme sürümünü indirin.

Güncellenmiş ICU4J Android Framework API'leri

Android 8.0 (API düzeyi 26), ICU4J Android Çerçevesi ICU4J API'lerinin bir alt kümesi olan API'ler, uygulama geliştiricilerin android.icu paketi altında kullanılıyor. Bu API'ler yerelleştirme verilerini kullanır APK'nızın ayak izini küçültmek için bu dosyayı derlemeyerek APK'nızdaki ICU4J kitaplıkları.

Tablo 1. Kullanılan ICU, CLDR ve Unicode sürümleri bazı yolları da görmüştük.

Android API düzeyi ICU sürümü CLDR sürümü Unicode sürümü
Android 7.0 (API düzeyi 24), Android 7.1 (API düzeyi 25) 56 28 8.0
Android 8.0 (API düzeyi 26) 58,2 30.0.3 9.0

Android'de uluslararasılaştırma hakkında daha fazla bilgi için ICU4J desteği, bkz. Android'de uluslararasılaştırma.

Android Enterprise

Şu özelliklere sahip cihazlar için yeni kurumsal özellikler ve API'ler kullanıma sunuldu: Android 8.0 (API düzeyi 26). Bu özelliğin öne çıkan özellikleri şunlardır:

  • Tümüyle yönetilen cihazlardaki iş profilleri, kurumların işleri ile kişisel verilerinizi yönetecek.
  • API yetkisi, cihaz sahiplerinin ve profil sahiplerinin uygulama ataması yapmasına olanak tanır başka uygulamalar da var.
  • Temel hazırlık akışında kullanıcı deneyimi iyileştirmeleri (yeni sürüm özelleştirme seçenekleri) kurulum süresini kısaltır.
  • Bluetooth, kablosuz ağ, yedekleme ve güvenlik üzerindeki yeni kontroller sayesinde kuruluşlar yönetebiliyorsunuz. Ağ etkinliği günlük kaydı, şirketlerin yardımcı olabilir.

Bu ve diğer yeni Android kurumsal API'leri ile özellikleri hakkında daha fazla bilgi edinmek için: Kurumsal Android'de Android başlıklı makaleyi inceleyin.