Android Pasta ö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ıma sunulmuştur ve bunların çoğu en son Android cihazlardaki yeni donanım özelliklerinden yararlanmak için gereklidir.

Android Pie hero image

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 test için öykünücü veya cihaz hazırlama açıklanmaktadır. Ayrıca Android Pastası'ndaki yeni özelliklerin ana hatlarını sağlar ve bazı önemli Android Pasta özelliklerinin nasıl kullanılacağı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'ta Visual Studio 2017 sürüm 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 sürümleri Visual Studio ile yüklenmelidir (Xamarin.Android, .NET iş yüküyle mobil geliştirme kapsamında otomatik olarak yüklenir).

  • Java Developer Kit – Xamarin Android 9.0 geliştirmesi için JDK 8 gerekir (veya Microsoft'un OpenJDK dağıtımının önizlemesini deneyebilirsiniz). JDK8, .NET iş yüküyle mobil geliştirmenin bir parçası olarak otomatik olarak yüklenir.

  • Android SDK – Android SDK API 28 veya üzeri, Android SDK Yöneticisi aracılığıyla yüklenmelidir.

Başlarken

Xamarin.Android ile Android Pie uygulamaları geliştirmeye başlamak için ilk Android Pie projenizi oluşturabilmeniz için ö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 2017 sürüm 7.6 veya sonraki bir sürüme güncelleştirin.

  2. SDK Yöneticisi aracılığıyla Android Pie (API 28) paketlerini ve araçlarını yükleyin.

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

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

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

Visual Studio’yu güncelleştirme

Xamarin kullanarak Android Pie uygulamaları oluşturmak 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 . Visual Studio 2017'yi en son sürüme güncelleştirme). macOS'ta, Mac için Visual Studio 2017 7.6 veya sonraki bir sürüme güncelleştirin (yönergeler için bkz. Kurulum ve Yükleme Mac için Visual Studio).

Android SDK'sını yükleme

Xamarin.Android 9.0 ile proje oluşturmak için, önce Android Pie (API düzeyi 28) veya üzeri için SDK platformunu yüklemek üzere Android SDK Yöneticisi'ni kullanmanız gerekir.

  1. SDK Yöneticisi'ni başlatın. Visual Studio'da Araçlar > Android Android > SDK Yöneticisi'ne tıklayın. Mac için Visual Studio'da Araçlar > SDK Yöneticisi'ne tıklayın.

  2. Sağ alt köşede dişli simgesine tıklayın ve Depo > Google (Desteklenmiyor) seçeneğini belirleyin:

    Setting the Repository to Google

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

    Installing Android Pie packages

  4. Öykünücü kullanıyorsanız API Düzey 28'i destekleyen bir sanal cihaz oluşturun. Sanal cihaz oluşturma hakkında daha fazla bilgi için bkz. Android Aygıt Yöneticisi ile Sanal Cihazları Yönetme.

Xamarin.Android projesi başlatma

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

Bir Android projesi oluşturduğunuzda, sürüm ayarlarını Android 9.0 veya sonraki sürümleri hedef olacak şekilde yapılandırmanız gerekir. Ö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 DE API 28 veya üzeri olarak 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 Piksel gibi fiziksel bir cihaz kullanıyorsanız, Nexus ve Piksel Cihazlar için Fabrika Görüntüleri'ndeki yönergeleri 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 için Android Aygıt Yöneticisi kullanma hakkında bilgi için bkz. Android Aygıt Yöneticisi ile Sanal Cihazları Yönetme. Test ve hata ayıklama için Android öykünücüsü kullanma hakkında bilgi için bkz . Android Öykünücüsü'nda Hata Ayıklama.

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 yararlanmaya yönelikken, diğerleri Android kullanıcı deneyimini daha da geliştirmek için tasarlanmıştır:

  • Ekran Kesme Desteği – Daha yeni Android cihazlarda ekranın üst kısmındaki 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üleyebilir ve konuşma katılımcılarını basitleştirmek için yeni Person bir sınıf kullanılır.

  • İç Mekan Konumlandırma – Uygulamaların iç mekan ayarlarında gezinti için WiFi cihazlarını kullanması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şim olanağı sunar.

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

Ekran kesintisi desteği

Kenardan kenara ekranlara sahip daha yeni android cihazların çoğunda kamera ve hoparlör için ekranın üst kısmında Ekran Kesme (veya "çentik") bulunur. Aşağıdaki ekran görüntüsü, bir kesmenin öykünücü örneğini sağlar:

Android emulator simulating a cutout

Uygulama pencerenizin içeriğini ekran kesintisi olan cihazlarda nasıl görüntülediğini yönetmek için Android Pie yeni bir LayoutInDisplayCutoutMode pencere düzeni özniteliği ekledi. Bu öznitelik aşağıdaki değerlerden birine ayarlanabilir:

Ö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. Soldaki ilk ekran görüntüsü, uygulamanın tam ekran modunda olmayan bir ekran görüntüsüdür. Ortadaki ekran görüntüsünde, uygulama olarak ayarlanmış LayoutInDisplayCutoutModeShortEdgesolarak LayoutInDisplayCutoutMode tam ekrana gider. Uygulamanın beyaz arka planının ekran kesme alanına genişletildiğini fark edin:

Example display cutout modes in emulator

Son ekran görüntüsünde (sağ üstte), LayoutInDisplayCutoutMode tam ekrana geçmeden önce olarak ayarlanır LayoutInDisplayCutoutModeShortNever . Uygulamanın beyaz arka planının ekran kesme alanına genişletilmediğine dikkat edin.

Cihazdaki 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ülenmesi için kullanılamayabilecek görüntü alanını temsil eder. Uygulamanızın bu işlevsel olmayan alanda içerik görüntülemeye çalışmaması için bu bilgileri, kesmenin konumunu ve şeklini almak için kullanabilirsiniz.

Android P'deki yeni kesme özellikleri hakkında daha fazla bilgi için bkz . Ekran kesintisi desteği.

Bildirim geliştirmeleri

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

  • Bildirim kanalları (Android Oreo'da kullanıma sunulmuştur) artık kanal gruplarının engellenmesini destekliyor.

  • Bildirim sisteminde üç yeni Rahatsız Etmeyin kategorisi vardır (alarmlara, sistem seslerine ve medya kaynaklarına öncelik verme). Buna ek olarak, görsel kesintileri (rozetler, bildirim ışıkları, durum çubuğu görünümleri ve tam ekran etkinliklerinin başlatılması gibi) engellemek için kullanılabilecek yedi yeni Rahatsız Etmeyin modu vardır.

  • İletinin gönderenini temsil eden yeni bir Person sınıfı eklendi. Bu sınıfın kullanılması, bir konuşmaya katılan kişileri (avatarları ve URI'leri dahil) tanımlayarak her bildirimin işlenmesini iyileştirmeye yardımcı olur.

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

Aşağıdaki örnekte, yeni API'lerin görüntü içeren bir bildirim oluşturmak için nasıl kullanılacağı gösterilmektedir. Aşağıdaki ekran görüntülerinde bir metin bildirimi gönderilir ve ardından eklenmiş görüntü içeren bir bildirim gönderilir. Bildirimler genişletildiğinde (sağda görüldüğü gibi), ilk bildirimin metni görüntülenir ve ikinci bildirime eklenen görüntü büyütülür:

Example notification with image

Aşağıdaki örnekte, Bir Android Pasta bildirimine görüntü ekleme işlemi gösterilmektedir ve yeni Person sınıfın kullanımı gösterilmektedir:

  1. Göndereni temsil eden bir Person nesne oluşturun. Örneğin, gönderenin adı ve simgesi içinde fromPersonbulunur:

    Icon senderIcon = Icon.CreateWithResource(this, Resource.Drawable.sender_icon);
    Person fromPerson = new Person.Builder()
        .SetIcon(senderIcon)
        .SetName("Mark Sender")
        .Build();
    
  2. Gönderilecek görüntüyü içeren bir Notification.MessagingStyle.Message oluşturun ve görüntüyü yeni Notification.MessagingStyle.Message.SetData yöntemine geçirin. Örneğin:

    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 nesneye ekleyin. Örneğin:

    Notification.MessagingStyle style = new Notification.MessagingStyle(fromPerson)
            .AddMessage(message);
    
  4. Bu stili bildirim oluşturucusuna takın. Örneğin:

    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. Örneğin:

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

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

İç mekan konumlandırma

Android Pie, IEEE 802.11mc (WiFi Gidiş Dönüş Süresi veya WiFi RTT olarak da bilinir) için destek sağlar ve bu da uygulamaların bir veya daha fazla Wi-Fi erişim noktasına olan mesafeyi algılamasını sağlar. Bu bilgileri kullanarak uygulamanızın iç mekan konumlandırmadan bir ile iki metre arasında bir doğrulukla yararlanması mümkündür. IEEE 801.11mc için donanım desteği sağlayan Android cihazlarda, uygulamanız bir mağaza aracılığıyla akıllı cihazların konum tabanlı denetimi veya sırayla yönergeler gibi gezinti özellikleri sunabilir:

Example of indoor navigation using WiFi RTT

Yeni WifiRttManager sınıfı ve çeşitli yardımcı sınıflar, Wi-Fi cihazlarına uzaklığı ölçmenin araçlarını sağlar. Android P'de kullanıma sunulan iç mekan 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örüntü işleme, gelişmiş görsel efektler ve gelişmiş yakınlaştırma özelliği gibi özellikler için yararlı olan çift ön ve/veya çift arka kameralar bulunur. 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ı mümkün kılan yeni bir Çoklu Kamera API'sini kullanıma sunms. Cihazın mantıksal çoklu kamerayı destekleyip desteklemediğini belirlemek için, cihazdaki her kameranın özelliklerine bakarak RequestAvailableCapabilitiesLogicalMulti Kamera'yi destekleyip desteklemediğini görebilirsiniz.

Android Pie ayrıca, ilk yakalama sırasındaki 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ı içerir.

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

Diğer özellikler

Buna ek olarak, Android Pie diğer birkaç yeni özelliği destekler:

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

  • yerine BitmapFactoryyeni bir ImageDecoder sınıfı. ImageDecoder bir AnimatedImageDrawablekodunu çözmek için kullanılabilir.

  • HDR (Yüksek Dinamik Aralık) video ve HEIF (Yüksek Verimli Görüntü Dosyası Biçimi) görüntüleri için destek.

  • JobScheduler, ağ ile ilgili işleri daha akıllı bir şekilde işleyecek şekilde geliştirilmiştir. JobParameters sınıfının yeni GetNetwork yöntemi, belirli bir iş için tüm ağ isteklerini gerçekleştirmek için en iyi ağı döndürür.

En son Android Pie ö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 çeşitli platform değişiklikleri vardır. Aşağıdaki liste, bu değişikliklerin kısa bir özetidir:

  • Uygulamaların ön plan hizmetlerini kullanmadan önce ön plan izni istemesi gerekir.

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

  • Başka bir uygulamanın veri dizinine yol yoluyla doğrudan erişmeye artık izin verilmiyor.

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

Örnek kod

AndroidPMiniDemo , ekran kesme modlarının nasıl ayarlandığını, yeni Person sınıfın nasıl kullanılacağını ve görüntü içeren bir bildirim göndermeyi gösteren bir Android Pastası için Xamarin.Android örnek uygulamasıdır.

Özet

Bu makalede Android Pie tanıtıldı ve Android Pie ile Xamarin.Android geliştirme için en son araçları ve paketleri yükleme ve yapılandırma işlemi açıklandı. Bu özelliklerden birkaçı için örnek kaynak koduyla Birlikte Android Pie'da bulunan temel özelliklere genel bir bakış sağladı. Android Pie için uygulama oluşturmaya başlamanıza yardımcı olmak için API belgelerinin ve Android Geliştirici konularının bağlantılarını içerir. Ayrıca, mevcut uygulamaları etkileyebilecek en önemli Android Pasta davranışı değişikliklerini de vurguladı.