Android Pie özellikleri

Xamarin.Android kullanarak Android 9 Pie için uygulama geliştirmeye başlama.

Android 9 Pie artık Google'dan kullanılabilir. Bu sürümde bir dizi yeni özellik ve API kullanılabilir olacak ve çoğu en son Android cihazlardaki yeni donanım özelliklerinden yararlanmak için gereklidir.

Android Pie hero görüntüsü

Bu makale, Android Pie için Xamarin.Android uygulamaları geliştirmeye başlamanıza yardımcı olacak şekilde yapılandırılmıştır. Gerekli güncelleştirmeleri yükleme, SDK'yı yapılandırma ve bir öykünücü ya da cihazı test için hazırlama açıklanmıştır. Ayrıca, Android Pie'daki yeni özelliklerin ana hatlarını sağlar ve bazı önemli Android Pie özelliklerinin nasıl kullanıLllarını gösteren örnek kaynak kodu sağlar.

Xamarin.Android 9.0, Android Pie için destek sağlar. Android Pie için Xamarin.Android desteği hakkında daha fazla bilgi için bkz. Android P Developer Preview 3 sürüm notları.

Gereksinimler

Xamarin tabanlı uygulamalarda Android Pie özelliklerini kullanmak için aşağıdaki liste gereklidir:

  • Visual Studio – Visual Studio 2019 önerilir. Visual Studio 2017 kullanıyorsanız, Windows 2017 Visual Studio 15.8 veya sonraki bir sürüme güncelleştirin. macOS'ta Mac için Visual Studio 2017 sürüm 7.6 veya sonraki bir sürüme güncelleştirin.

  • Xamarin.Android – Xamarin.Android 9.0.0.17 veya sonraki bir sürümü Visual Studio ile yüklü olması gerekir (Xamarin.Android, .NET iş yüküyle mobil geliştirmenin bir parçası olarak otomatik olarak yüklenir).

  • Java Developer Kit – Xamarin Android 9.0 geliştirmesi için JDK 8 gerekir (veya Microsoft'un OpenJDKdağıtımının önizlemesini denemeniz gerekir). JDK8, .NET ile mobil geliştirme iş yükü kapsamında otomatik olarak yüklenir.

  • Android SDK : Android SDK API 28 veya sonraki bir sürümü, Android SDK Yöneticisi.

Başlarken

Xamarin.Android ile Android Pie uygulamaları geliştirmeye başlamanız için, ilk Android Pie projenizi oluşturamadan önce en son araçları ve SDK paketlerini indirip yüklemeniz gerekir:

  1. Visual Studio 2019 önerilir. Visual Studio 2017 kullanıyorsanız, Visual Studio 2017 sürüm 15.8 veya sonraki bir sürüme güncelleştirin. Mac için Visual Studio kullanıyorsanız Mac için Visual Studio 7.6 veya sonraki bir sürüme güncelleştirin.

  2. Android Pie (API 28) paketlerini ve araçlarını SDK Yöneticisi.

  3. Android 9.0'ıhedef alan yeni bir Xamarin.Android projesi oluşturun.

  4. Android Pie uygulamalarını test etmek için bir öykünücü veya cihaz yapılandırma.

Bu adımların her biri aşağıdaki bölümlerde açıklanmıştır:

Visual Studio’yu güncelleştirme

Visual Studio Xamarin kullanarak Android Pie uygulamaları için Visual Studio 2019 önerilir.

Visual Studio 2017 kullanıyorsanız, Visual Studio 2017 sürüm 15.8 veya sonraki bir sürüme güncelleştirin (yönergeler için bkz. Güncelleştirme Visual Studio 2017'denen son sürüme ). macOS'ta Mac için Visual Studio 2017 7.6 veya sonraki bir sürümüne güncelleştirin (yönergeler için bkz. Kurulum ve Yükleme Mac için Visual Studio).

Install the Android SDK

Xamarin.Android 9.0 ile bir proje oluşturmak için, önce Android Pie (API düzeyi 28) veya sonraki bir sürümü için SDK platformunu yüklemek üzere Android SDK Yöneticisi'yi kullanın.

  1. İlkeyi SDK Yöneticisi. Bu Visual Studio Araçlar Android > uygulaması'Android SDK Yöneticisi. Bu Mac için Visual Studio Araçlar'a tıklayın SDK Yöneticisi.

  2. Sağ alt köşedeki dişli simgesine tıklayın ve Depo Google (Desteklenmiyor) öğesini seçin:

    Depoyu Google olarak ayarlama

  3. Platformlar sekmesinde Android SDK Platform 28 olarak listelenen Android Pie SDK paketlerini yükleyin (SDK Yöneticisi kullanma hakkında daha fazla bilgi için bkz. Android SDK Kurulumu):

    Android Pie paketlerini yükleme

  4. Öykünücü kullanıyorsanız API Düzeyi 28'idestekleyen bir sanal cihaz oluşturun. Sanal cihaz oluşturma hakkında daha fazla bilgi için, bkz. Managing Virtual Devices with the Android Cihaz Yöneticisi.

Xamarin.Android projesi başlatma

Yeni bir Xamarin.Android projesi oluşturun. Xamarin ile Android geliştirme konusunda yeniysiniz, Xamarin.Android projeleri oluşturma hakkında bilgi edinmek için bkz. Hello, Android.

Bir Android projesi oluşturmada sürüm ayarlarını Android 9.0 veya sonraki bir sürümü hedef olarak yapılandırmalı. Örneğin, projenizi Android Pie için hedeflemek için projenizin hedef Android API düzeyini Android 9.0 (API 28) olarak yapılandırmanız gerekir. Hedef Çerçeve düzeyinizi API 28 veya sonraki bir düzeye de ayarlamanız önerilir. Android API düzeylerini yapılandırma hakkında daha fazla bilgi için bkz. Android API Düzeylerini Anlama.

Cihaz veya öykünücü yapılandırma

Nexus veya Pixel gibi fiziksel bir cihaz kullanıyorsanız, Nexus ve Piksel Cihazları için Fabrika Görüntüleri'nin yönergelerini izleyerek cihazınızı Android Pie'a güncelleştirebilirsiniz.

Öykünücü kullanıyorsanız, API düzeyi 28 için bir sanal cihaz oluşturun ve x86 tabanlı bir görüntü seçin. Sanal cihazları oluşturmak ve yönetmek Android Cihaz Yöneticisi hakkında bilgi için bkz. Sanal Cihazları Android Cihaz Yöneticisi. Test ve hata ayıklama için Android öykünücüsünü kullanma hakkında bilgi için bkz. Android Emulator.

Yeni özellikler

Android Pie, çeşitli yeni özellikler sunar. Bu yeni özelliklerden bazıları en son Android cihazlar tarafından sunulan yeni donanım özelliklerinden faydalanma amaçlıyken, diğerleri Android kullanıcı deneyimini daha da geliştirmek için tasarlanmıştır:

  • Tam Ekran Desteği – Daha yeni Android cihazlarda ekranın üst kısmında kesmenin konumunu ve şeklini bulmak için API'ler sağlar.

  • Bildirim Geliştirmeleri – Bildirim iletileri artık görüntüleri görüntüler ve konuşma katılımcılarını basitleştirmek için yeni bir sınıf kullanılır.

  • İç Mekan Konumlandırma – Uygulamaların iç mekan ayarlarında gezinmek için WiFi cihazlarını kullanmalarını mümkün kılan WiFi Gidiş Dönüş Süresi protokolü için platform desteği.

  • Çoklu Kamera Desteği – Birden çok fiziksel kameradan (çift ön ve çift arka kamera gibi) akışlara aynı anda erişme özelliği sunar.

Aşağıdaki bölümlerde bu özellikler vurgulanır ve uygulamanıza kullanmaya başlamanıza yardımcı olacak kısa kod örnekleri verilmiştir.

Kesme desteğini görüntüleme

Kenardan edge ekranlarına sahip birçok yeni Android cihazı, kamera ve konuşmacı için ekranın üst kısmında Bir Ekran Kesme (veya "çentik") içerir. Aşağıdaki ekran görüntüsünde, tam çıkışa bir öykünücü örneği ve ardından bir öykünücü örneği ve bir tam çıkış ve bir ekran görüntüsü ve ardından aşağıdaki ekran görüntüsünde yer alan bir öykünücü örneği

Android öykünücüsü bir kesme benzetimi

Android Pie, uygulama pencerenizin içeriğini cihazlarda görüntülemesini yönetmek için yeni bir LayoutInDisplayCutoutMode pencere düzeni özniteliği ekledi. Bu öznitelik aşağıdaki değerlerden biri olarak ayarlanmış olabilir:

Örneğin, uygulama penceresinin kesme alanıyla çakışmasını önlemek için düzen kesme modunu hiçbir zaman olarak ayarlayın:

Window.Attributes.LayoutInDisplayCutoutMode =
    Android.Views.LayoutInDisplayCutoutMode.Never;

Aşağıdaki örneklerde bu kesme modlarına örnekler verilmiştir. Sol tarafta uygulamanın tam ekran modunda olmayan ilk ekran görüntüsü. Orta ekran görüntüsünde uygulama, olarak ayarlanmış tam LayoutInDisplayCutoutMode ekran LayoutInDisplayCutoutModeShortEdges olur. Uygulamanın beyaz arka planının görüntüleme kesme alanına genişletildiklerine dikkat edin:

Öykünücüde kesme modlarını görüntüleme örneği

Son ekran görüntüsünde (sağ üstte) tam LayoutInDisplayCutoutMode ekrana gitmeden önce olarak LayoutInDisplayCutoutModeShortNever ayarlanır. Uygulamanın beyaz arka planının görüntü kesme alanına genişletmesine izin verilmemiş olduğunu fark edin.

Cihazda kesme alanı hakkında daha ayrıntılı bilgilere ihtiyacınız varsa, yeni DisplayCutout sınıfını kullanabilirsiniz. DisplayCutout , içeriğin görüntüde kullanılamay olduğu alanı temsil eder. Bu bilgileri kullanarak kesmenin konumunu ve şeklini alabilir, böylece uygulamanız bu işlevsel olmayan alanda içerik görüntülemeye çalışmaz.

Android P'de yeni kesme özellikleri hakkında daha fazla bilgi için bkz. Kesme desteğini görüntüleme.

Bildirim geliştirmeleri

Android Pie, mesajlaşma deneyimini geliştirmek için aşağıdaki geliştirmeleri sunar:

  • Bildirim kanalları (Android Oreo'da tanıtıldı)artık kanal gruplarının engellenmesini destekliyor.

  • Bildirim sisteminde üç yeni "Rahatsız Etme" kategorisi vardır (alarmlara, sistem seslerine ve medya kaynaklarına öncelik verilmesi). Ayrıca, görsel kesintileri (rozetler, bildirim ışıklarını, durum çubuğu görünümlerini ve tam ekran etkinliklerinin başlatılması gibi) bastırmak için kullanılmaktadır.

  • bir iletinin göndereni temsil etmek için yeni bir Kişi sınıfı eklendi. Bu sınıfın kullanımı, bir konuşmaya katılan insanları (avatarları ve URI'leri dahil) belirleyerek her bildirimin işlemesini iyileştirmeye yardımcı olur.

  • Bildirimler artık görüntüleri görüntüleyebildi.

Aşağıdaki örnek, yeni API'leri kullanarak görüntü içeren bir bildirim oluşturmayı göstermektedir. Aşağıdaki ekran görüntülerde, bir metin bildirimi yayınlanmıştır ve ekli görüntü içeren bir bildirim takip edilecektir. Bildirimler genişletilirken (sağda görülen şekilde), ilk bildirimin metni görüntülenir ve ikinci bildirime eklenmiş olan görüntü büyütülür:

Görüntü ile örnek bildirim

Aşağıdaki örnek, Android Pie bildirimine görüntü dahil etmek için gereken bilgileri gösterir ve yeni sınıfın kullanımını Person gösterir:

  1. Göndereni Person temsil eden bir nesne oluşturun. Örneğin, gönderenin adı ve simgesi içine dahil edilmiştir fromPerson :

    Icon senderIcon = Icon.CreateWithResource(this, Resource.Drawable.sender_icon);
    Person fromPerson = new Person.Builder()
        .SetIcon(senderIcon)
        .SetName("Mark Sender")
        .Build();
    
  2. Notification.MessagingStyle.MessageGöndermek için görüntüsünü içeren bir oluşturun ve görüntüyü yeni Notification.MessagingStyle.Message yöntemine geçirerek. Örnek:

    Uri imageUri = Uri.Parse("android.resource://com.xamarin.pminidemo/drawable/example_image");
    Notification.MessagingStyle.Message message = new Notification.MessagingStyle
            .Message("Here's a picture of where I'm currently standing", 0, fromPerson)
            .SetData("image/", imageUri);
    
  3. İletiyi bir Notification.MessagingStyle nesnesine ekleyin. Örnek:

    Notification.MessagingStyle style = new Notification.MessagingStyle(fromPerson)
            .AddMessage(message);
    
  4. Bu stili bildirim oluşturucuya takın. Örnek:

    builder = new Notification.Builder(this, MY_CHANNEL)
        .SetContentTitle("Tour of the Colosseum")
        .SetContentText("I'm standing right here!")
        .SetSmallIcon(Resource.Mipmap.ic_notification)
        .SetStyle(style)
        .SetChannelId(MY_CHANNEL);
    
  5. Bildirimi yayımlayın. Örnek:

    const int notificationId = 1000;
    notificationManager.Notify(notificationId, builder.Build());
    

Bildirim oluşturma hakkında daha fazla bilgi için bkz. Yerel bildirimler.

Inkapaklı konumlandırması

Android pasta, uygulamaların bir veya daha fazla Wi-Fi erişim noktasına olan mesafeyi algılamasını olanaklı kılan IEEE 802.11 MC ( WiFi gidiş dönüş saati veya WiFi RTTolarak da bilinir) için destek sağlar. Bu bilgileri kullanarak, uygulamanızın, bir veya iki metreden oluşan bir doğrulukla karşı çok fazla kullanım özelliğinden yararlanması mümkündür. IEEE 801.11 MC için donanım desteği sağlayan Android cihazlarda, uygulamanız akıllı gereçlere konum tabanlı denetim veya bir mağaza aracılığıyla açık yönergeleri gibi gezinti özellikleri sunabilir:

WiFi RTT kullanan ınkapısı gezintisi örneği

Yeni Wifırttmanager sınıfı ve çeşitli yardımcı sınıfları, Wi-Fi cihazları arasındaki mesafeyi ölçmeye yönelik araçlar sağlar. Android P 'de tanıtılan ınkapısı konumlandırma API 'Leri hakkında daha fazla bilgi için bkz. Android .net. WiFi. RTT.

Çoklu kamera desteği

Birçok yeni Android cihazda, stereo görme, gelişmiş görsel etkiler ve geliştirilmiş yakınlaştırma özelliği gibi özellikler için yararlı olan çift ön ve/veya çift yönlü kameralar vardır. Android P, uygulamanızın iki veya daha fazla fiziksel kamera tarafından desteklenen bir mantıksal kamera (veya mantıksal çoklu kamera) kullanmasını olanaklı kılan yeni bir çok kamera API 'si sunar. Cihazın mantıksal bir çoklu kamerayı destekleyip desteklemediğini anlamak için cihazdaki her kameranın özelliklerine bakarak Requestavailablecapabilitieslogicalmulticamera' i destekleyip desteklemediğini görebilirsiniz.

Android pasta, ilk yakalama sırasında gecikmeleri azaltmaya ve kamera akışını başlatma ve başlatma gereksinimini ortadan kaldırmaya yardımcı olmak için kullanılabilecek yeni bir Sessionconfiguration sınıfı da içerir.

Android P 'de çok kamera desteği hakkında daha fazla bilgi için bkz. Çoklu kamera desteği ve kamera güncelleştirmeleri.

Diğer özellikler

Ayrıca, Android pastası diğer birçok yeni özelliği de destekler:

  • Animasyonlu görüntüleri çizmek ve görüntülemek için kullanılabilen yeni Animatedimagedrawable sınıfı.

  • ' Nin yerini alan yeni bir ımagedecoder sınıfı . ImageDecoder , kod çözme için kullanılabilir AnimatedImageDrawable .

  • HDR (Yüksek Dinamik Aralık) video ve HEIF (yüksek verimlilik görüntü dosyası biçimi) görüntüleri için destek.

  • Jobscheduler , ağla ilgili işleri daha akıllıca işleyecek şekilde geliştirilmiştir. Jobparameters sınıfının yeni getnetwork yöntemi, belirli bir iş için herhangi bir ağ isteği gerçekleştirmek üzere en iyi ağı döndürür.

En son Android pasta özellikleri hakkında daha fazla bilgi için bkz. Android 9 özellikleri ve API 'leri.

Davranış değişiklikleri

Hedef Android sürümü, API düzeyi 28 olarak ayarlandığında, yukarıda açıklanan yeni özellikleri uygulamasanız bile uygulamanızın davranışını etkileyebilecek birkaç platform değişikliği vardır. Aşağıdaki listede bu değişikliklerin kısa bir özeti verilmiştir:

  • Uygulamalar artık ön plan hizmetleri kullanılmadan önce ön plan iznini istemelidir.

  • Uygulamanızda birden fazla işlem varsa, işlemler arasında tek bir WebView veri dizinini paylaşamaz.

  • Başka bir uygulamanın veri dizinine yola göre doğrudan erişilmesine artık izin verilmez.

Android P 'yi hedefleyen uygulamalar için davranış değişiklikleri hakkında daha fazla bilgi için bkz. davranış değişiklikleri.

Örnek kod

AndroidPMiniDemo , görüntüleme kesikli modlarını, yeni sınıfın nasıl kullanılacağını ve görüntü içeren bir bildirimin nasıl gönderileceğini gösteren Android pastası için bir Xamarin. Android örnek uygulamasıdır.

Özet

Bu makalede Android pasta ve Android pasta ile Xamarin. Android geliştirmesi için en son araçların ve paketlerin nasıl yükleneceği ve yapılandırılacağı açıklanmaktadır. Bu özelliklerden bazıları için örnek kaynak kodu ile Android pasta 'da kullanılabilen temel özelliklere genel bir bakış sağlıyordu. Android pasta için uygulamalar oluşturmaya başlamanıza yardımcı olması için API belgelerine ve Android Geliştirici konularına bağlantılar dahil edilmiştir. Ayrıca, var olan uygulamaları etkileyebilecek en önemli Android pasta davranışı değişikliklerini vurgulanmıştır.