Android 14 Uyumluluk Tanımı

1. Giriş

Bu belgede, cihazların kullanılabilmesi için karşılanması gereken Android 14 ile uyumlu olacak.

"ZORUNLU", "ZORUNLU OLMAMALIDIR", "ZORUNLU", "YAPILMAYACAK", "YAPILMAYACAK", "KULLANMAMALIDIR", "ÖNERİLİR", "MAYIS" ve "İSTEĞE BAĞLI" IETF standardına göre RFC2119'da tanımlanmıştır.

Bu dokümanda kullanıldığı gibi, "cihaz uygulayıcı" veya “uygulayıcı” bir kişidir Android çalıştıran bir donanım/yazılım çözümü geliştiren kuruluş veya kuruluş 14. "Cihaz uygulaması" veya "uygulama" , donanım/yazılım çözümünün çok gelişmiş olması.

Android 14 ile uyumlu sayılması için cihazınızın uygulamalarının bu Uyumluluk belgesinde belirtilen gereksinimleri karşılaması ZORUNLUDUR Referans yoluyla dahil edilen tüm belgeler dahil olmak üzere tanım.

Bu tanımın veya aşağıda açıklanan yazılım testlerinin bölüm 10 sessiz, muğlak veya tüm cihaz sahibinin sorumluluğundadır. ve mevcut uygulamalarla uyumluluk da sağlar.

Bu nedenle Android Açık Kaynak Projesi hem referans hem de tercih edilen uygulamadır. Cihaz uygulayıcılarına, uygulamalarını temel ilkelere dayalı olarak "Yukarı akış" için mümkün olan en geniş şuradan edinebileceğiniz kaynak kodu: Android Açık Kaynak Projesi. Bazı bileşenler bu açıdan alternatif uygulamalarla değiştirildiğinden, bu uygulamayı kullanabilirsiniz, çünkü yazılım testlerini geçmek önemli ölçüde daha zor olabilir. Eksiksiz bir zaman çizelgesi hazırlamak için uygulayıcının standart Android uygulamalarıyla davranış uyumluluğu ve diğer Uyumluluk Test Paketi'nin ötesine geçer. Son olarak, belirli bileşenlerin değişiklikler ve değişiklikler bu belge tarafından açıkça yasaklanmıştır.

Bu belgede bağlantı verilen kaynakların çoğu doğrudan Android SDK'dan dolaylı olarak indirilmiş olur ve Android ilgili daha fazla bilgi bulabilirsiniz. Bu Uyumluluğun söz konusu olduğu, Tanım veya Uyumluluk Test Paketi, SDK ile aynı fikirde değil SDK dokümanları güvenilir olarak kabul edilir. Teknik konular bu belgede bağlantılı kaynaklarda verilen ayrıntılar dahil edilmeden önce bu Uyumluluk Tanımı'nın bir parçası olarak kabul edilir.

1.1 Belge Yapısı

1.1.1. Cihaz Türüne Göre Koşullar

Bölüm 2, belirli bir cihaz türü olabilir. 2. Bölüm'ün her bir alt bölümü, bir kampanya oluşturun.

Tüm Android cihazlar için geçerli olan diğer tüm koşullar 2. Bölüm'den sonraki bölümlerde listelenmiştir. Bu şartlar "Temel Şartlar" olarak belirtilmiştir değineceğiz.

1.1.2. Gereklilik kimliği

Gereklilik kimliği, ZORUNLU şartlar için atanır.

  • Kimlik yalnızca ZORUNLU koşulları için atanmıştır.
  • Şiddetle ÖNERİLEN gereksinimler [SR] olarak işaretlenir ancak kimlik atanmaz.
  • Kimlik şunlardan oluşur : Cihaz Türü Kimliği - Koşul Kimliği - Gereklilik Kimliği (örneğin, C-0-1).

Her kimlik aşağıda tanımlanmıştır:

  • Cihaz türü kimliği (daha fazla bilgi için 2. Cihaz Türleri)
    • C: Temel (Tüm Android cihaz uygulamalarında geçerli olan şartlar)
    • H: Android Avuç İçi cihaz
    • T: Android Televizyon cihazı
    • C: Android Automotive uygulaması
    • W: Android Watch uygulaması
    • Sekme: Android Tablet uygulaması
  • Koşul kimliği
    • Gereksinim koşulsuz olduğunda bu kimlik 0 olarak ayarlanır.
    • Koşul koşullu olduğunda, 1. koşul ve sayı aynı bölümde 1 birim artar ve emin olmanız gerekir.
  • Gereklilik kimliği
    • Bu kimlik 1'den başlar ve aynı bölümde 1'le artar. olacaktır.

1.1.3. Bölüm 2'deki gereklilik kimliği

Bölüm 2'deki Zorunlu Kimlikler iki bölümden oluşur. İlk yukarıda açıklanan bir bölüm kimliğine karşılık gelir. İkinci kısım ise gerekir.

bölüm kimliği ekleyin.

  • 2. Bölüm'de yer alan kimlik şunları içerir : Bölüm Kimliği / Cihaz Türü Kimliği - Durum Kimliği - Gereklilik Kimliği (ör. 7.4.3/A-0-1).

2. Cihaz Türleri

Android Açık Kaynak Projesi, kullanılabilecek bir yazılım yığını sağlar cihaz türleri ve form faktörleri için hazırlandı. Cihazlarda güvenliği desteklemek için herhangi bir yedek işletim sistemi veya alternatif çekirdek de dahil olmak üzere yazılım yığını belirtildiği gibi güvenli bir ortamda yürütülmesi beklenir. ve bu CDD'nin diğer bölümlerinde yer almaktadır. Birkaç cihaz türü var bir uygulama dağıtım ekosistemine sahip olan kuruluştur.

Bu bölümde söz konusu cihaz türleri ile ek şartlar ve önerileri inceleyin.

Açıklananlardan hiçbirine uymayan tüm Android cihaz uygulamaları cihaz türlerinin, bu Belgenin diğer bölümlerindeki tüm gereksinimleri Uyumluluk Tanımı.

2.1 Cihaz Yapılandırmaları

Cihaza göre donanım yapılandırmasındaki önemli farklılıklar için bu bölümde yer alan cihaza özel şartlara bakın.

2.2. Elle Birlikte Kullanılabilen Gereksinimler

Android Avuç İçi cihaz, gerçekleştirdiğimiz Android cihaz uygulamasını ifade eder. genellikle elinde tutulurken (örneğin, mp3 çalar, telefon veya tablete yerleştiriyoruz.

Android cihaz uygulamaları, aşağıda açıklanan tüm şartları karşılıyorsa "Mobil Cihaz" olarak sınıflandırılır. şu ölçütleri dikkate alın:

  • Pil gibi hareketlilik sağlayan bir güç kaynağına sahip olmalısınız.
  • Fiziksel diyagonal ekran boyutuna sahip olma 4 inç 3,3 inç (veya API düzeyi 29'da gönderilen cihaz uygulamaları için 2,5 inç veya daha önce) -8 inç.
  • Dokunmatik ekranlı bir giriş arayüzüne sahip olmalıdır. 'nı inceleyin.

Bu bölümün geri kalanındaki ek şartlar Android'e özeldir. Avuç içi cihaz uygulamaları.

Not: Android Tablet cihazlar için geçerli olmayan şartlar * ile işaretlenmiştir.

2.2.1. Donanım

Avuç içi cihaz uygulamaları:

  • [7.1.1.1/H-0-1] en az bir Tüm gereksinimleri karşılayan Android ile uyumlu ekran bahsetmelidir. kısa kenarı en az 2,2 inç ölçen ekran ve uzun kenarda 3,4 inç.
  • [7.1.1.3/H-SR-1] Şiddetle ÖNERİLİR: Kullanıcılara görüntü boyutunu (ekran yoğunluğu) değiştirme olanağı tanır.

  • [7.1.1.1/H-0-2] aşağıdaki GPU bileşimini DESTEKLEMELİDİR: en az yerleşik mevcut ekranların en yüksek çözünürlüğü kadar büyük grafik arabellekleri görüntüleyin.

Yeni koşullarla başlayın

  • [7.1.1.1/H-0-3]* her bir UI_MODE_NORMAL öğesinin eşlenmesi GEREKİR üçüncü taraf uygulamalarının kullanımına açılmış ekran kısa kenarı en az 2,2 inç ve 3,4 inç olan fiziksel görüntüleme alanı inç yapın.

  • [7.1.1.3/H-0-1]* DENSITY_DEVICE_STABLE, gerçek fiziksel yoğunluktan% 92 veya daha fazla olmalıdır değiştirebilirsiniz.

Yeni şartları sonlandırma

Avuç içi cihaz uygulamaları, yazılımda ekran döndürmeyi destekliyorsa:

  • [7.1.1.1/H-1-1]* Mantıksal ekranı oluşturması ZORUNLUDUR en az 2 inç, üçüncü taraf uygulamaları için kullanılabilir kısa kenar ve uzun kenarlardan 2,7 inç girin. Android API düzeyi 29 veya önceki sürümlerde gönderilen cihazlar hariç tutulabilir.

Avuç içi cihaz uygulamaları yazılım ekran döndürmesini desteklemiyorsa onlar:

  • [7.1.1.1/H-2-1]* Mantıksal ekranı oluşturması ZORUNLUDUR için kullanılabilir hale gelen 3,5 cm'den az kısa kenarlara yazın. Android API düzeyi 29 veya önceki sürümlerde gönderilen cihazlar hariç tutulabilir.

Yeni koşullarla başlayın

Avuç içi cihaz uygulamaları Vulkan desteği içeriyorsa bunlar:

Yeni şartları sonlandırma

Avuç içi cihaz uygulamaları, yüksek dinamik aralık için destek talep ediyorsa Configuration.isScreenHdr() aracılığıyla gösterilir için:

  • [7.1.4.5/H-1-1] EGL_EXT_gl_colorspace_bt2020_pq, EGL_EXT_surface_SMPTE2086_metadata, EGL_EXT_surface_CTA861_3_metadata, VK_EXT_swapchain_colorspace ve VK_EXT_hdr_metadata uzantı.

Avuç içi cihaz uygulamaları:

  • [7.1.4.6/H-0-1] cihazın, cihazın Bir sistem özelliği aracılığıyla GPU profili oluşturma özelliğini destekler graphics.gpu.profiler.support.

Avuç içi cihaz uygulamaları, bir sistem özelliği üzerinden destek bildiriyorsa graphics.gpu.profiler.support, onlar:

Avuç içi cihaz uygulamaları:

  • [7.1.5/H-0-1] eski sürüm için destek İÇERMELİDİR yukarı akış Android açılışı tarafından uygulandığı şekliyle uygulama uyumluluk modu kaynak kodudur. Yani, cihaz uygulamalarının tetikleyicileri DEĞİŞTİRMEMELERİ veya uyumluluk modunun etkinleştirildiği eşikler ve davranışını değiştirebilirsiniz.
  • [7.2.1/H-0-1] Üçüncü taraf desteğinin olması ZORUNLUDUR Giriş Yöntemi Düzenleyici (IME) uygulamaları.
  • [7.2.3/H-0-2] hem normal hem de uzun basmayı ZORUNLUDUR Geri işlevinin etkinliği (KEYCODE_BACK) geçiş yapabilirsiniz. Bu etkinlikler sistem tarafından TÜKETİLMEMELİDİR ve Android cihazın dışından (ör. harici donanım) tetiklenebilir Android cihaza bağlı klavye).
  • [7.2.3/H-0-3], Ana Ekran işlevini ZORUNLUDUR Android uyumlu ekranlarla uyumlu olduğunu unutmayın.
  • [7.2.3/H-0-4] Tüm cihazlarda Geri işlevini sağlamalı Android uyumlu ekranları ve Son Arananlar işlevini en az bir cihazda Android uyumlu ekranlar.
  • [7.2.4/H-0-1] Dokunmatik ekran girişini DESTEKLEMELİDİR.
  • [7.2.4/H-SR-1] kullanıcı tarafından seçilen destek uygulaması, diğer bir deyişle VoiceEngagementService veya ACTION_ASSIST işlemini işleyen bir etkinlik KEYCODE_MEDIA_PLAY_PAUSE düğmesine uzun basıldığında veya KEYCODE_HEADSETHOOK ön plan etkinliği bu uzun basma etkinliklerini işleyemiyorsa
  • [7.3.1/H-SR-1] 3 eksenli olması ÖNEMLE ÖNERİLİR ivme ölçer.

Avuç içi cihaz uygulamaları 3 eksenli ivme ölçer içeriyorsa:

  • [7.3.1/H-1-1] etkinlikleri belirli bir sıklıkta raporlayabilmesi ZORUNLUDUR en az 100 Hz hızda.

Avuç içi cihaz uygulamalarında GPS/GNSS alıcısı varsa android.hardware.location.gps özelliği aracılığıyla uygulamalara veri gönderme onlar:

  • [7.3.3/H-2-1] GNSS ölçümlerini anında raporlamalıdır GPS/GNSS üzerinden hesaplanan bir konum henüz bildirilmemiş olsa bile bulunur.
  • [7.3.3/H-2-2] GNSS gerçek olmayan aralıklarını ve sözde aralıklarını Bildirmelisiniz. konumu belirlendikten sonra açık gökyüzü koşullarında, arama sonuçlarının hareket halinde veya saniyede 0,2 metreden daha az kareyle 20 metre içindeki konumu ve hızı hesaplamak için yeterlidir. 0, 2 metre (saniyede en az% 95'inde)

Avuç içi cihaz uygulamaları 3 eksenli bir jiroskop içeriyorsa:

  • [7.3.4/H-3-1] etkinlikleri belirli bir sıklıkta raporlayabilmesi ZORUNLUDUR en az 100 Hz hızda.
  • [7.3.4/H-3-2] Yön değişikliklerini ölçebilmesi ZORUNLUDUR saniyede 1000 dereceye kadar.

Sesli arama yapabilen ve sesli arama yapabilen avuç içi cihaz uygulamaları getPhoneType içinde PHONE_TYPE_NONE dışındaki herhangi bir değer:

  • [7.3.8/H] Bir yakınlık sensörü İÇERMELİDİR.

Avuç içi cihaz uygulamaları:

  • [7.3.11/H-SR-1] Poz sensörünü desteklemesi için ÖNEMLE ÖNERİLİR izin verir.
  • [7.4.3/H] Bluetooth ve Bluetooth desteği İÇERMELİDİR Bluetooth LE.

Cihazlar, kablosuz komşu ağ iletişimi (NAN) protokolünü PackageManager.FEATURE_WIFI_AWARE ve Kablosuz Konumu tanımlanıyor (Wi-Fi Round) PackageManager.FEATURE_WIFI_RTT kodunu belirterek Seyahat Zamanı — RTT) sonra:

  • [7.4.2.5/H-1-1] aralığı doğru bir şekilde 68. yüzde birlik dilimde 160 MHz bant genişliğinde +/-1 metre içinde (hesaplandığı şekilde Kümülatif Dağılım İşlevi ile), 80 MHz bant genişliğinde +/-2 metre 68. yüzde birlik dilimde, 68. yüzde birlik dilimde 40 MHz bant genişliğinde +/-4 metre, ve 10. mesafelerde 68. yüzde birlik dilimde 20 MHz bant genişliğinde +/-8 metre ile gözlemlendiği şekilde, 1 m, 3 m ve 5 m WifiRttManager#startRanging Android API.

  • [7.4.2.5/H-SR-1] 90'da 160 MHz bant genişliğinde +/-1 metre aralığında doğru bir şekilde değişir yüzdelik dilim (Kümülatif Dağılım İşlevi ile hesaplandığı şekliyle), +/-2 90. yüzde birlik dilimde 80 MHz bant genişliğinde metre, 40 MHz'de +/-4 metre 90. yüzde birlik dilimde ve 20 MHz bant genişliğinde +/-8 metre üzerinden gözlemlendiği üzere, 10 cm'lik mesafelerde 90. yüzdelik dilim WifiRttManager#startRanging Android API.

Bulunma Kalibrasyonu.

Yeni koşullarla başlayın

Avuç içi cihaz uygulamalarında FEATURE_BLUETOOTH_LE beyan ediliyorsa:

  • [7.4.3/H-1-3] Rx'in ölçülmesi ve telafi edilmesi GEREKİR ortanca BLE RSSI'nin, ADVERTISE_TX_POWER_HIGH itibarıyla iletim yapan referans cihaz.
  • [7.4.3/H-1-4] Tx'in ölçülmesi ve telafi edilmesi ZORUNLUDUR bir 1 m mesafeye yerleştirilmiş ve ADVERTISE_TX_POWER_HIGH.

Yeni şartları sonlandırma

Avuç içi cihaz uygulamalarında, aşağıdaki listede bulunan mantıksal bir kamera özelliklerini kullanarak CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA onlar:

  • [7.5.4/H-1-1] varsayılan olarak normal görüş alanına (FOV) sahip OLMALIDIR ve 50 ile 50 arasında olması ZORUNLUDUR derece.

Avuç içi cihaz uygulamaları:

  • [7.6.1/H-0-1] en az 4 GB uygulama özel verileri için kullanılabilen kalıcı depolama alanı ("/veri" bölümü olarak da bilinir.)
  • [7.6.1/H-0-2], 1 GB'tan az bellek olduğunda ActivityManager.isLowRamDevice() tarafından kullanılabilir.

Avuç içi cihaz uygulamaları yalnızca 32 bit ABI desteklediğini belirtiyorsa:

  • [7.6.1/H-1-1] Çekirdek tarafından kullanılabilen bellek Varsayılan ekranda çerçeve arabelleği kullanılıyorsa kullanıcı alanının en az 416 MB olması ZORUNLUDUR qHD'ye kadar çözünürlük (ör. FWVGA).

  • [7.6.1/H-2-1] Çekirdek tarafından kullanılabilen bellek Varsayılan ekranda çerçeve arabelleği kullanılıyorsa kullanıcı alanının en az 592 MB olması ZORUNLUDUR HD+ çözünürlüğe kadar (ör. HD, WSVGA).

  • [7.6.1/H-3-1] Çekirdek tarafından kullanılabilen bellek Varsayılan ekranda çerçeve arabelleği kullanılıyorsa kullanıcı alanının en az 896 MB olması ZORUNLUDUR FHD'ye kadar çözünürlüklerde (ör. WSXGA+).

  • [7.6.1/H-4-1] Çekirdek tarafından kullanılabilen bellek ve varsayılan ekranda QHD'ye kadar (ör. QWXGA) kare arabellek çözünürlükleri.

Avuç içi cihaz uygulamaları, 64 bit ABI'yı (32 bit ABI olan veya olmayan) desteklediğini belirtiyorsa:

  • [7.6.1/H-5-1] Çekirdek tarafından kullanılabilen bellek ve kullanıcı alanının Varsayılan ekranda framearabellek çözünürlükleri daha yüksekse en az 816 MB olmalıdır qHD (ör. FWVGA) olarak değiştirin.

  • [7.6.1/H-6-1] Çekirdek tarafından kullanılabilen bellek ve kullanıcı alanının Varsayılan ekranda HD+'ya kadar çerçeve arabelleği çözünürlükleri kullanılıyorsa 944 MB (ör. HD, WSVGA).

  • [7.6.1/H-7-1] Çekirdek tarafından kullanılabilen bellek ve kullanıcı alanının Varsayılan ekranda FHD'ye kadar çerçeve arabelleği çözünürlükleri kullanılıyorsa 1280 MB (ör. WSXGA+).

  • [7.6.1/H-8-1] Çekirdek tarafından kullanılabilen bellek ve kullanıcı alanının Varsayılan ekranda QHD'ye kadar kare arabellek çözünürlükleri kullanılıyorsa 1824 MB (ör. QWXGA).

"Çekirdek ve kullanıcı alanı tarafından kullanılabilen bellek" yukarıdaki durum, halihazırda donanıma ayrılmış belleğe ek olarak sağlanan bellek alanı radyo, video vb. gibi bileşenler çekirdeğin altında yer almaz. cihaz uygulamalarını kontrol etme.

Avuç içi cihaz uygulamaları 1 GB'tan az veya 1 GB'a eşit bellek içeriyorsa kullanıma sunulduğunda:

  • [7.6.1/H-9-1] özellik bayrağının beyan edilmesi ZORUNLUDUR android.hardware.ram.low.
  • [7.6.1/H-9-2] en az 1,1 GB uygulama için kalıcı depolama alanı ("/veriler" bölümü olarak da bilinir).

Avuç içi cihaz uygulamaları 1 GB'tan fazla kullanılabilir bellek içeriyorsa eklemek için:

  • [7.6.1/H-10-1] en az 4 GB kalıcı depolama alanı uygulamanın özel verileri ("/veriler" bölümü olarak da bilinir).
  • Özellik bayrağını android.hardware.ram.normal BELİRTMELİDİR.

Avuç içi cihaz uygulamaları 2 GB'tan büyük veya 2 GB'a eşitse Çekirdek ve kullanıcı alanında 4 GB'tan az bellek bulunduğunda:

  • [7.6.1/H-SR-1] Yalnızca 32 bit kullanıcı alanını desteklemesi Kesinlikle ÖNERİLİR (hem uygulamalar hem de sistem kodu)

Avuç içi cihaz uygulamaları, arasında paylaştıracağı için:

  • [7.6.1/H-1-1] yalnızca tek bir ABI'yı (sadece 64 bit veya 32 bit) desteklemelidir .

Avuç içi cihaz uygulamaları:

  • [7.6.2/H-0-1] Uygulama SAĞLAMAMALIDIR paylaşılan depolama alanı 1 GiB'tan küçük olmalıdır.
  • [7.7.1/H] Çevre birimi modunu destekleyen bir USB bağlantı noktası İÇERMELİDİR.

Avuç içi cihazı uygulamalarında çevre birimini destekleyen bir USB bağlantı noktası varsa kullanıyorlarsa:

  • [7.7.1/H-1-1], Android Açık Aksesuar'ı (AOA) uygulaması ZORUNLUDUR API'ye gidin.

Avuç içi cihaz uygulamalarında ana makine modunu destekleyen bir USB bağlantı noktası varsa onlar:

Avuç içi cihaz uygulamaları:

  • [7.8.1/H-0-1] mikrofon İÇERMELİDİR.
  • [7.8.2/H-0-1] bir ses çıkışının olması ve android.hardware.audio.output.

Avuç içi cihaz uygulamaları, mobil cihazda tüm performansa yerine getirmek ve video ile ilgili destek sağlamak için şunlara sahip olursunuz:

  • [7.9.1/H-1-1] için android.hardware.vr.high_performance özellik bayrağı.
  • [7.9.1/H-1-2] Bir uygulama İÇERMELİDİR VR ile etkinleştirilebilen android.service.vr.VrListenerService uygulanıyor android.app.Activity#setVrModeEnabled üzerinden başvuru yapabilirsiniz.

Avuç içi cihaz uygulamaları, ana makinede bir veya daha fazla USB-C bağlantı noktası içeriyorsa ve uygulama (USB ses sınıfı) ile ilgili gereksinimlere ek olarak bölüm 7.7.2'ye dahilse:

  • [7.8.2.2/H-1-1] Aşağıdaki yazılım eşlemesini sağlamanız ZORUNLUDUR veya HID kodlarından bazıları:
İşlev Eşleştirmeler Bağlam Davranış
A HID kullanım sayfası: 0x0C
HID kullanımı: 0x0CD
Çekirdek anahtarı: KEY_PLAYPAUSE
Android anahtarı: KEYCODE_MEDIA_PLAY_PAUSE
Medya oynatma Giriş: Kısa basma
Çıkış: Oynatın veya duraklatın
Giriş: Uzun basın
Çıkış: Sesli komutu başlat
Gönderiler: Cihaz: android.speech.action.VOICE_SEARCH_HANDS_FREE kilitli veya ekranı kapalı. Gönderme Aksi durumda android.speech.RecognizerIntent.ACTION_WEB_SEARCH
Gelen arama Giriş: Kısa basma
Çıkış: Çağrıyı kabul etme
Giriş: Uzun basın
Çıkış: Çağrıyı reddet
Devam eden arama Giriş: Kısa basma
Çıkış: Çağrıyı sonlandır
Giriş: Uzun basın
Çıkış: Mikrofonun sesini kapatın veya açın
B HID kullanım sayfası: 0x0C
HID kullanımı: 0x0E9
Çekirdek anahtarı: KEY_VOLUMEUP
Android anahtarı: VOLUME_UP
Medya oynatma, Devam eden çağrı Giriş: Kısa veya uzun basma
Çıkış: Sistemin veya mikrofonlu kulaklığın sesini artırır
C HID kullanım sayfası: 0x0C
HID kullanımı: 0x0EA
Çekirdek anahtarı: KEY_VOLUMEDOWN
Android anahtarı: VOLUME_DOWN
Medya oynatma, Devam eden çağrı Giriş: Kısa veya uzun basma
Çıkış: Sistemin veya mikrofonlu kulaklığın sesini kısar
D HID kullanım sayfası: 0x0C
HID kullanımı: 0x0CF
Çekirdek anahtarı: KEY_VOICECOMMAND
Android anahtarı: KEYCODE_VOICE_ASSIST
Tümü'ne dokunun. Herhangi bir durumda tetiklenebilir. Giriş: Kısa veya uzun basma
Çıkış: Sesli komutu başlat
  • [7.8.2.2/H-1-2], ACTION_HEADSET_PLUG'yi tetiklemelidir ancak USB ses arayüzleri ve uç noktalar takıldıktan sonra doğru şekilde numaralandığından emin olun.

USB ses terminali türleri 0x0302 algılandığında:

  • [7.8.2.2/H-2-1] ACTION_HEADSET_PLUG intent'ini "mikrofon" ekstra 0 olarak ayarlanır.

USB ses terminali türleri 0x0402 algılandığında:

  • [7.8.2.2/H-3-1] ACTION_HEADSET_PLUG intent'ini "mikrofon" ekstra 1 olarak ayarlanır.

USB çevre birimi etkin durumdayken API AudioManager.getDevices() çağrıldığında şunları bağladılar:

  • [7.8.2.2/H-4-1] AudioDeviceInfo.TYPE_USB_HEADSET türünde bir cihaz LİSTELEMELİ ve USB ses terminali tür alanı 0x0302 ise isSink() rolü.

  • [7.8.2.2/H-4-2] Cihaz türü LİSTELENMELİDİR AudioDeviceInfo.TYPE_USB_HEADSET ve USB ses terminali ise isSink() rolü type alanı 0x0402'dir.

  • [7.8.2.2/H-4-3] Cihaz türü LİSTELENMELİDİR USB ses terminali ise AudioDeviceInfo.TYPE_USB_HEADSET ve rol isSource() type alanı 0x0402'dir.

  • [7.8.2.2/H-4-4] AudioDeviceInfo.TYPE_USB_DEVICE türünde bir cihaz LİSTELEMELİDİR ve USB ses terminali tür alanı 0x603 ise isSink() rolü.

  • [7.8.2.2/H-4-5] Cihaz türü LİSTELENMELİDİR USB ses terminali ise AudioDeviceInfo.TYPE_USB_DEVICE ve rol isSource() type alanı 0x604'tür.

  • [7.8.2.2/H-4-6] Cihaz türü LİSTELENMELİDİR AudioDeviceInfo.TYPE_USB_DEVICE ve USB ses terminali türü ise isSink() rolü alanı 0x400'tür.

  • [7.8.2.2/H-4-7] Cihaz türü LİSTELENMELİDİR USB ses terminali ise AudioDeviceInfo.TYPE_USB_DEVICE ve rol isSource() type alanı 0x400'tür.

  • [7.8.2.2/H-SR-1] Bir USB-C ses çevre birimi, USB tanımlayıcılarının numaralandırılması için, terminal türleri ve yayın Amacı ACTION_HEADSET_PLUG 1000 milisaniye.

Avuç içi cihaz uygulamalarında android.hardware.audio.output ve android.hardware.microphone:

  • [5.6/H-1-1] Ortalama Sürekli Gidiş Dönüş 300 milisaniye veya 5'ten az ölçümle birlikte, Ortalama Mutlak Sapma şundan daha az: 30 ms, uzun "hoparlörden mikrofona", 3,5 mm geri döngü adaptörü (destekleniyorsa), USB geri döngü (destekleniyorsa).

  • [5.6/H-1-2] için ortalama bir dokunma tonlama gecikmesi GEREKİR 300 milisaniye veya hoparlörde en az 5 ölçümden az olmalıdır. -)

Avuç içi cihaz uygulamaları en az bir dokunma teknolojisi etkinleştirici içeriyorsa:

Doğrusal rezonant aktüatör (LRA), farklı kütleye sahip tek kütleli bir yay sistemidir. Kütlenin yönünde hareket ettiği baskın rezonant frekansı hareket ettirebilirsiniz.

Taşınabilir cihaz uygulamaları en az bir genel amaçlı 7.10 içeriyorsa doğrusal rezonant aktüatöre sahiptir:

Yeni koşullarla başlayın

  • [7.10/H] Aktüatörün yerini cihazın genellikle elle tutulduğu veya dokunduğu yer.

Yeni şartları sonlandırma

  • [7.10/S] Dokunsal uyarı aktüatörünü X eksenindeki HAREKET ETMELİDİR cihazın doğal akışının (sol-sağ) dikey yönde.

Avuç içi cihaz uygulamalarının genel bir amacı varsa X ekseni doğrusal rezonant aktüatörü (LRA) olan dokunma teknolojisi aktüatörü:

  • [7.10/S] X ekseni LRA'nın rezonans frekansının 200 Hz'in altında olması GEREKİR.

Avuç içi cihaz uygulamaları, dokunsal sabit değer eşlemesini takip ediyorsa:

2.2.2. Multimedya

Avuç içi cihaz uygulamalarının aşağıdaki ses kodlamasını DESTEKLEMELİDİR ve kod çözme ve üçüncü taraf uygulamalarının kullanımına sunma:

  • [5,1/H-0-1] AMR-NB
  • [5,1/H-0-2] AMR-WB
  • [5.1/H-0-3] MPEG-4 AAC profili (AAC LC)
  • [5.1/H-0-4] MPEG-4 HE AAC profili (AAC+)
  • [5.1/H-0-5] AAC ELD (geliştirilmiş düşük gecikmeli AAC)

Avuç içi cihaz uygulamalarının aşağıdaki video kodlamasını DESTEKLEMELİDİR üçüncü taraf uygulamalarının kullanımına sunmak için aşağıdaki adımları uygulayabilirsiniz:

  • [5,2/H-0-1] H.264 AVC
  • [5.2/H-0-2] VK8

Yeni koşullarla başlayın

  • [5,2/H-0-3] AV1

Yeni şartları sonlandırma

Avuç içi cihaz uygulamalarında aşağıdaki video kod çözme özelliğinin desteklenmesi ZORUNLUDUR ve bunların üçüncü taraf uygulamalarının kullanımına sunulmasını sağlayabilirsiniz:

  • [5,3/H-0-1] H.264 AVC
  • [5,3/H-0-2] H.265 HEVC
  • [5.3/H-0-3] MPEG-4 SP
  • [5,3/H-0-4] VK8
  • [5,3/H-0-5] VK9

Yeni koşullarla başlayın

  • [5,3/H-0-6] AV1

Yeni şartları sonlandırma

2.2.3. Yazılım

Avuç içi cihaz uygulamaları:

  • [3.2.3.1/H-0-1] için bir ACTION_GET_CONTENT ve sonraki sürümlerin yüklü olduğu ACTION_OPEN_DOCUMENT, ACTION_OPEN_DOCUMENT_TREE, ve ACTION_CREATE_DOCUMENT SDK dokümanlarında açıklandığı şekilde amaçlarına hizmet eder ve kullanıcının ihtiyaçlarını karşılar. DocumentsProvider API'sını kullanarak doküman sağlayıcı verilerine erişmek.
  • [3.2.3.1/H-0-2]* Birinin önceden yüklenmesi ZORUNLUDUR intent işleyicisi olan daha fazla uygulama ya da hizmet bileşenine aşağıdaki uygulama tarafından tanımlanan tüm genel amaç filtre kalıpları amaçları burada bulabilirsiniz.
  • [3.2.3.1/H-SR-1] GÜÇLÜ ACTION_SENDTO işlemini gerçekleştirebilen bir e-posta uygulamasının önceden yüklenmesi ÖNERİLİR veya ACTION_SEND veya ACTION_SEND_MULTIPLE bir e-posta gönderir.
  • [3.4.1/H-0-1] için eksiksiz bir android.webkit.Webview API uygulanması.
  • [3.4.2/H-0-1] Bağımsız bir Tarayıcı İÇERMELİDİR genel kullanıcı web tarama uygulaması.
  • [3.8.1/H-SR-1] Şiddetle ÖNERİLİR kısayolların uygulama içinde sabitlenmesini destekleyen varsayılan bir başlatıcı uygulamak için widget'ları ve widgetFeatures.
  • [3.8.1/H-SR-2] Şiddetle ÖNERİLİR diğer uygulamalara hızlı erişim sağlayan varsayılan bir başlatıcıyı üçüncü taraf uygulamalar tarafından Kısayol Yöneticisi üzerinden sağlanan kısayollar API'ye gidin.
  • [3.8.1/H-SR-3] Şiddetle ÖNERİLİR uygulama simgeleri için rozetleri gösteren varsayılan bir başlatıcı uygulaması eklemelidir.
  • [3.8.2/H-SR-1] Şiddetle ÖNERİLİR Google Analytics 4'te tarama yapar.
  • [3.8.3/H-0-1] Üçüncü tarafa izin verilmelidir uygulamaları kullanarak önemli olaylar hakkında kullanıcıları Notification ve NotificationManager API sınıfları.
  • [3.8.3/H-0-2] zengini DESTEKLEMELİDİR bildirimleri etkinleştirebilirsiniz.
  • [3.8.3/H-0-3] Uyarı'yı DESTEKLEMELİDİR bildirimleri etkinleştirebilirsiniz.
  • [3.8.3/H-0-4] şunları içermelidir: kullanıcıya doğrudan kontrol olanağı sağlayan bildirim gölgesi (ör. ve bunlara uygun şekilde kullanıcı desteğiyle (örneğin, AOSP'de uygulandığı şekilde işlem düğmeleri veya denetim masası.
  • [3.8.3/H-0-5] seçenekleri GÖRÜNTÜLEMELİDİR RemoteInput.Builder setChoices() üzerinden sağlanır bildirim gölgesinde belirir.
  • [3.8.3/H-SR-1] Şiddetle ÖNERİLİR RemoteInput.Builder setChoices() üzerinden sağlanan ilk seçimi görüntüleyin bildirim gölgesinde gösterilecek şekilde ayarlayabilirsiniz.
  • [3.8.3/H-SR-2] Şiddetle ÖNERİLİR RemoteInput.Builder setChoices() aracılığıyla sağlanan tüm seçenekleri görüntüleyin kullanıcı, tüm bildirimleri genişlettiğinde bildirim gölgesinde bildirim gölgesi.
  • [3.8.3.1/H-SR-1] Şiddetle ÖNERİLİR Notification.Action.Builder.setContextual ile ilgili işlemleri görüntülemek için tarafından gösterilen yanıtlarla satır içinde true olarak ayarlandı Notification.Remoteinput.Builder.setChoices.
  • [3.8.4/H-SR-1] Şiddetle ÖNERİLİR Destek işlemini gerçekleştirmek için cihaza bir asistan eklemek.

Avuç içi cihaz uygulamaları MediaStyle bildirimlerini destekliyorsa onlar:

  • [3.8.3.1/H-SR-2] Şiddetle ÖNERİLİR bir kullanıcı erişimi sağlamak (örneğin, çıkış değiştirici) kullanıcıların uygun mevcut medyalar arasında geçiş yapmasına olanak tanıyan sistem kullanıcı arayüzü rotaları (örneğin, Bluetooth cihazları ve MediaRouter2Manager) Uygulama MediaSession jeton ile MediaStyle bildirimi yayınladığında.

Yeni koşullarla başlayın

Son kullanılanlar işlevi gezinme tuşunu içeren cihaz uygulamaları 7.2.3 bölümünde ayrıntılı olarak açıklanan arayüz değişiklikleri:

  • [3.8.3/H-1-1] ekranın uygulanması ZORUNLUDUR kullanıcıya sabitlenmesi için bir ayarlar menüsü sunarak özelliğini kullanabilirsiniz.

Yeni şartları sonlandırma

Avuç içi cihaz uygulamaları, Destek İşlemi'ni destekliyorsa:

  • [3.8.4/H-SR-2] Şiddetle ÖNERİLİR başlatmak için HOME tuşuna uzun basmayı ve destek uygulamasını bölüm 7.2.3'te açıklandığı şekilde tanımlar. BAŞLATILMALI kullanıcı tarafından seçilen asistan uygulaması, diğer bir deyişle VoiceInteractionService veya ACTION_ASSIST amacını işleyen bir etkinlik.

Avuç içi cihaz uygulamaları conversation notifications'i destekliyorsa bunları, uyarı niteliğindeki ve sessiz görüşmelerden ayrı bir bölümde en iyi uygulamaları takip etmek için:

  • [3.8.4/H-1-1]* GÖRÜNTÜLENMELİDİR ileti dizisi olmayan bildirimlerden önce, devam eden ön plan hizmeti bildirimleri ve Önem:yüksek bildirimleri etkinleştirebilirsiniz.

Android Avuç içi cihaz uygulamaları kilit ekranını destekliyorsa:

  • [3.8.10/H-1-1] için Kilit GEREKLİDİR Bildirim Şablonu'nu içeren bildirimlere dokunun.

Avuç içi cihaz uygulamaları, güvenli kilit ekranını destekliyorsa:

  • [3.9/H-1-1], dönüşüm hunisinin tamamını kapsayan cihaz yönetimi politikaları hakkında daha fazla bilgi edinin.

Taşınabilir cihaz uygulamaları, ControlsProviderService ve Control API'lere ve üçüncü taraf uygulamalarının cihaz denetimlerini yayınlamasına izin vermenin ardından bunlar:

  • [3.8.16/H-1-1] Özelliğin Beyan Edilmesi ZORUNLUDUR işaretle android.software.controls ve true olarak ayarladım.
  • [3.8.16/H-1-2] Bir kullanıcı SAĞLAMALIDIR ekleme, düzenleme, seçme ve çalıştırma olanağının yanı sıra, üçüncü tarafın kaydettiği kontrollerden favori cihaz denetimleri ControlsProviderService aracılığıyla yapılan başvurular ve Control API'ler.
  • [3.8.16/H-1-3] şunlara erişim SAĞLAMALIDIR: varsayılan Başlatıcı'dan üç etkileşimde de bu kullanıcıya sunulur.
  • [3.8.16/H-1-4] doğru şekilde oluşturulması ZORUNLUDUR üçüncü taraf uygulamasının adını ve simgesini; ControlsProviderService aracılığıyla kontrol sağlar tarafından sağlanan Control API'ler.

  • [3.8.16/H-1-5] Bir kullanıcı SAĞLAMALIDIR uygulamaya özel kimlik doğrulama amaçlı cihaz denetimlerini devre dışı bırakma üçüncü taraf uygulamaları tarafından kaydedilen denetimler, ControlsProviderService ve Control Control.isAuthRequired API'sı.

Yeni koşullarla başlayın

Yeni şartları sonlandırma

Öte yandan, Avuç içi cihaz uygulamalarında bu tür denetimler uygulanmazsa onlar:

Avuç içi cihaz uygulamaları kilit görevi modunda çalışmıyorsa içerik panoya kopyalandığında:

  • [3.8.17/H-1-1] Kullanıcıya, verilerin toplandığına dair panoya kopyalandı (ör. küçük resim veya "İçerik kopyalandı." uyarısı). Ayrıca, pano verilerinin senkronize edilip edilmeyeceğini belirten bir uyarı ekleyin cihazlarda kullanabilirsiniz.

Avuç içi cihaz uygulamaları:

  • [3.10/H-0-1] üçüncü taraf erişilebilirliğini DESTEKLEMELİDİR kullanıma sunuyoruz.
  • [3.10/H-SR-1] Önceden yükleme işlemi ÖNEMLE ÖNERİLİR cihazdaki erişilebilirlik hizmetleri, işlevlerle karşılaştırılabilir veya aşan işlevler ve TalkBack'in (önceden yüklenmiş Metin okuma motoru) erişilebilirlik hizmetleri, TalkBack açık ayarında gösterilir. kaynak proje hakkında daha fazla bilgi edinin.
  • [3.11/H-0-1] şunların yüklenmesini DESTEKLEMELİDİR: üçüncü taraf TTS motorları
  • [3.11/H-SR-1] Bir Cihazda kullanılabilen dilleri destekleyen TTS motoru.
  • [3.13/H-SR-1] Bir Hızlı Ayarlar kullanıcı arayüzü bileşeni.

Android mobil cihaz uygulamalarında FEATURE_BLUETOOTH veya FEATURE_WIFI, şunları destekliyor:

  • [3.16/H-1-1], tamamlayıcı cihaz eşlemeyi DESTEKLEMELİDİR özelliğini kullanabilirsiniz.

Gezinme işlevi ekranda gösterilen, harekete dayalı bir işlem olarak sağlanırsa:

  • [7.2.3/H] Ana ekran için hareket tanıma bölgesi işlevinin alt kısmından yüksekliğinin 32 dp'den daha yüksek olmaması gerekir tıklayın.

Avuç içi cihaz uygulamaları bir hareket olarak gezinme işlevi sağlıyorsa ekranın sol ve sağ kenarlarında herhangi bir yerden:

  • [7.2.3/H-0-1] Gezinme işlevinin hareket alanı Her bir kenarının genişliği 40 dp'den az OLMALIDIR. Hareket alanının Varsayılan olarak 24 dp genişlik.

Avuç içi cihaz uygulamaları, güvenli kilit ekranını destekliyorsa ve bu cihazlarda 2 GB'a eşit veya 2 GB'lık belleğe eşitse:

  • [3.9/H-1-2] Yönetilen profillerin desteğini [3.9/H-1-2] android.software.managed_users özellik bayrağı.

Android avuç içi cihaz uygulamaları, kamera desteğini android.hardware.camera.any:

Cihaz uygulamasının ayarlar uygulaması bölünmüş işlevsellik, kullandığında:

Yeni koşullarla başlayın

Cihaz uygulamaları, kullanıcıların herhangi bir türde arama yapmasına olanak tanıyorsa

Yeni şartları sonlandırma

2.2.4. Performans ve Güç

  • [8.1/H-0-1] Tutarlı kare gecikmesi. Tutarsız kare gecikmesi veya karelerin oluşturulmasında gecikme daha fazla OLMAMALIDIR. genellikle saniyede 5 kareden fazladır ve saniyede 1 karenin altında OLMALIDIR.
  • [8.1/H-0-2] Kullanıcı arayüzü gecikmesi. Cihaz uygulamaları, ekranın alt kısmındaki bir sayfayı kaydırarak düşük gecikmeli kullanıcı deneyimi Android Uyumluluk Test Paketi tarafından tanımlanan 10.000 liste girişinin listesi (CTS) verilerini 36 saniyeden kısa sürede
  • [8.1/H-0-3] Görev değiştirme. Zaman birçok uygulamanın kullanıma sunulduğunu ve bu uygulamaların yeniden başlatılması başlatıldıktan sonra uygulamanın 1 saniyeden kısa sürmesi GEREKİR.

Avuç içi cihaz uygulamaları:

  • [8.2/H-0-1], reklamların sıralı olarak en az 5 MB/sn'lik yazma performansı.
  • [8.2/H-0-2] Rastgele bir yazma işleminin sağlanması ZORUNLUDUR en az 0,5 MB/sn'lik performans.
  • [8.2/H-0-3] Sıralı okumanın sağlanması ZORUNLUDUR en az 15 MB/sn'lik bir performans.
  • [8.2/H-0-4] Rastgele bir okumanın sağlanması ZORUNLUDUR en az 3,5 MB/sn'lik performans.

Avuç içi cihaz uygulamaları, cihaz gücünü iyileştirecek özellikler içeriyorsa AOSP'ye dahil olan ya da Google Play Store'a dahil olan özelliklerin AOSP'de:

  • [8.3/H-1-1] aşağıdakileri etkinleştirmek için kullanıcıya uygun bir mali kaynak sunmak ZORUNLUDUR ve pil tasarrufu özelliğini devre dışı bırakın.
  • [8.3/H-1-2] Görüntüleme için kullanıcıya ödeme imkanı SAĞLAMALIDIR Uygulama Bekleme ve Doz Güç Tasarrufu modlarından muaf olan tüm uygulamalar

Avuç içi cihaz uygulamaları:

  • [8.4/H-0-1] şunları sağlamalıdır: mevcut tüketim değerini tanımlayan bileşen başına güç profili her bir donanım bileşenine ve bu bileşenin neden olduğu bileşenlerine örnek olarak verebiliriz.
  • [8.4/H-0-2] tüm gücü bildirmelidir Miliamper saat (mAh) cinsinden tüketim değerleri.
  • [8.4/H-0-3] CPU gücü GEREKLİ tüketim değerini belirlemenize yardımcı olur. Android Açık Kaynak Projesi, uid_cputime çekirdek modülü uygulaması aracılığıyla sağlamanız gerekiyor.
  • [8.4/H-0-4] bu güç kullanımının zorunlu olması ZORUNLUDUR adb shell dumpsys batterystats üzerinden kullanılabilir kabuk komutunu kullanabilirsiniz.
  • [8.4/H] donanım bileşeninin güç kullanımını ilişkilendiremezse donanım bileşeninin kendisi bir şekilde tanımlar.

Avuç içi cihaz uygulamaları ekran veya video çıkışı içeriyorsa:

Avuç içi cihaz uygulamaları:

  • [8.5/H-0-1] ŞARKI SAĞLAMALIDIR Ayarlar menüsünde bir kullanıcı erişimi etkin ön plan hizmetlerine sahip tüm uygulamaları görmek için veya kullanıcı tarafından başlatılan işler (bu hizmetlerin her birinin süresi dahil) SDK dokümanında açıklandığı gibi başlatıldığından beri ve ön plan hizmeti çalıştıran bir uygulamayı durdurma olanağı kullanıcı tarafından başlatılan bir iş olabilir. ön plan hizmeti çalıştıran bir uygulamayı durdurma özelliği ve ekranı etkin ön plan hizmetlerine sahip tüm uygulamaları ve bunların her birinin süresini açıklandığı şekilde kurulduğundan bu yana bu hizmetleri SDK dokümanı.
    • Bazı uygulamalar, durdurulan veya bu tür bir programda listelenmekten muaf kullanıcı tarafından sağlanan maliyeti SDK dokümanında bulabilirsiniz.

Yeni koşullarla başlayın

  • [8.5/H-0-2]Bir kullanıcıya ödeme yapması ZORUNLUDUR Ön plan hizmeti veya kullanıcı tarafından başlatılan bir iş çalıştıran bir uygulamayı durdurma

Yeni şartları sonlandırma

2.2.5. Güvenlik Modeli

Avuç içi cihaz uygulamaları:

  • [9/H-0-1] android.hardware.security.model.compatible ZORUNLUDUR özelliğini kullanabilirsiniz.
  • [9.1/H-0-1] Üçüncü taraf uygulamalarının android.permission.PACKAGE_USAGE_STATS izni aracılığıyla kullanım istatistikleri ve Bu tür uygulamalara erişim izni vermek veya erişimi iptal etmek için kullanıcının erişebileceği bir mekanizma sağlama. android.settings.ACTION_USAGE_ACCESS_SETTINGS için verilen yanıt isteyebilirsiniz.

Yeni koşullarla başlayın

Cihaz uygulamaları android.hardware.telephony için destek beyan ederse, onlar:

  • [9.5/H-1-1] UserManager.isHeadlessSystemUserMode AYARLANMAMALIDIR Hedef: true.

Yeni şartları sonlandırma

Avuç içi cihaz uygulamaları:

  • [9.11/H-0-2], anahtar deposu uygulamasını yedekleme ZORUNLUDUR yürütmeliyiz.
  • [9.11/H-0-3] RSA, AES, ECDSA, HMAC şifreleme algoritmaları ile MD5, SHA1 ve SHA-2 ailesi Android KeyStore sisteminin desteklediğini doğru bir şekilde desteklemek için karma işlevleri çalışan koddan güvenli bir şekilde izole edilmiş bir alanda kullanılabilir. üst tarafında yer alır. Güvenli yalıtım, tüm olası mekanizmaları Engelleme GEREKİR bir veri kümesindeki çekirdek veya kullanıcı alanı kodunun, DMA dahil, izole bir ortamdan izole edilmiş olmalıdır. Yukarı akış Android Açık Kaynağı Proje (AOSP), bu şartı Trusty uygulamasını kullanarak karşılar, ancak başka bir ARM TrustZone tabanlı bir çözüm veya üçüncü bir tarafça incelenmiş güvenli bir çözüm uygun bir hipervizör tabanlı yalıtımının uygulanması, seçenekleri vardır.
  • [9.11/H-0-4], kilit ekranı YAPILMALIDIR kimlik doğrulama işlemini izole yürütme ortamında ve yalnızca başarılı olursa kimlik doğrulamaya bağlı anahtarların kullanılmasına izin verin. Kilit ekranı kimlik bilgilerinin, yalnızca izole çalıştırmaya izin verecek şekilde saklanabilmesi ZORUNLUDUR kilit ekranı kimlik doğrulaması gerçekleştirmesine yardımcı olur. Yukarı akış Android Açık Kaynak Projesi, Gatekeeper Donanım Soyutlama Katmanı (HAL) ve Trusty gibi araçlar mevcuttur.
  • [9.11/H-0-5], onay imzalama anahtarı güvenli bir donanımla korunur ve imzalama anahtarı güvenli donanımda yürütülür. Onay imzalama anahtarlarının paylaşılması ZORUNLUDUR anahtarların kullanılmasını engelleyecek kadar fazla sayıda cihazda kullanılabilir. . Bu şartı karşılamanın bir yolu da belirli bir SKU'nun en az 100.000 birimi yoksa aynı onay anahtarı üretilir. 100.000'den fazla SKU üretildiyse farklı bir anahtarı her 100.000 birim için kullanılabilir.

Önceki Android sürümünde cihaz uygulaması zaten kullanıma sunulmuşsa bu tür bir cihaz, bir anahtar deposuna sahip olma zorunluluğundan muaf izole bir yürütme ortamıyla desteklenir ve anahtar onayını destekler. gerektiren android.hardware.fingerprint özelliğini bildirmez. yalıtılmış bir yürütme ortamıyla desteklenen anahtar deposudur.

Avuç içi cihaz uygulamaları, güvenli kilit ekranını desteklediğinde:

  • [9.11/H-1-1], kullanıcının en kısa olanı seçmesine İZİN VERMELİDİR uyku zaman aşımı, kilidi açık moddan kilitli moduna geçiş süresidir tercih edebilirsiniz.
  • [9.11/H-1-2] Kullanıcıya gizlenme imkanı sunmalıdır dışındaki tüm kimlik doğrulama biçimlerini devre dışı bırakın. aşağıda açıklandığı şekilde birincil kimlik doğrulama: 9.11.1 Güvenli Kilit Ekranı AOSP, bu koşulları sağlamanız gerekir.

Yeni koşullarla başlayın

Cihaz uygulamalarında güvenli bir kilit ekranı varsa ve TrustAgentService System API'yi uygulayan bir veya daha fazla güven aracısı varsa bunlar:

  • [9.11.1/H-1-1] Önerilen birincil kimlik doğrulama yöntemlerinden biri (ör. PIN, desen, şifre) için kullanıcıyı 72 saatte bir kezden daha sık sınaması ZORUNLUDUR.

Yeni şartları sonlandırma

Taşınabilir cihaz uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirmezler:

  • [9.5/H-2-1] kısıtlı profilleri DESTEKLEMELİDİR, Cihaz sahiplerinin ek kullanıcıları ve diğer kullanıcıları yönetmesine olanak tanıyan bir özellik cihazdaki özellikleri kontrol edebilirsiniz. Kısıtlanmış profiller sayesinde cihaz sahipleri şunları yapabilir: ek kullanıcıların çalışabileceği ayrı ortamlar oluşturmayı ve daha ayrıntılı kısıtlamaları yönetme olanağı sayesinde bu ortamlarda kullanılabilir.

Taşınabilir cihaz uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirdiğinde:

  • [9.5/H-3-1] Kısıtlı özelliği DESTEKLEMEMELİDİR ama kontrollerin AOSP uygulamasıyla uyumlu olması ZORUNLUDUR diğer kullanıcıların sesli aramalara ve SMS'lere erişmesini etkinleştirme /devre dışı bırakma.

Yeni koşullarla başlayın

Avuç içi cihaz uygulamaları UserManager.isHeadlessSystemUserMode olarak ayarlanmışsa true adlı kullanıcıya

  • [9.5/H-4-1] eUICC'ler için destek İÇERMEMELİDİR, ya da arama özelliği olan eSIM'ler için.
  • [9.5/H-4-2], android.hardware.telephony.

Yeni şartları sonlandırma

System API VoiceEngagementService üzerinden Android, Mikrofon erişimi göstergesi olmadan güvenli her zaman açık özel kelime algılama ve mikrofon veya kamera olmadan her zaman açık sorgu algılama erişim göstergesi.

Avuç içi cihaz uygulamaları System API'yi destekliyorsa Özel kelime algılamak için HotwordDetectionService veya başka bir mekanizma mikrofon erişimi göstergesi:

  • [9.8/H-1-1] Özel kelime algılama hizmetinin yalnızca ContentCaptureService, veya Google Ads'in geliştirdiği cihaz üzerinde konuşma tanıma hizmeti SpeechRecognizer#createOnDeviceSpeechRecognizer()
  • [9.8/H-1-2] Özel kelime algılama hizmetinin yalnızca veya bu ses verilerinden türetilen verileri sistem sunucusuna HotwordDetectionService API veya ContentCaptureService üzerinden ContentCaptureManager API.
  • [9.8/H-1-3] özel kelime algılama hizmetine yönelik donanım tarafından tetiklenen tek tek istek.
  • [9.8/H-1-4] özel kelime algılama hizmetine özel istek gönderebilirsiniz.
  • [9.8/H-1-5] 30 saniyeden eski arabelleğe alınmış mikrofon sesini ses etkileşimi hizmeti veya benzer bir tüzel kişilik olabilir.
  • [9.8/H-1-6] 100 bayttan fazla veriye İZİN VERİLMEMELİDİR özel kelime algılama hizmetinden iletilmesini istemeyebilirsiniz. geçen ses verileri hariç, özel kelime sonucu HotwordAudioStream'de oturum açın.
  • [9.8/H-1-7] 5 bitten fazla verinin iletilmesine İZİN VERİLMEMELİDİR özel kelime algılama hizmetinin sonuna geldik.
  • [9.8/H-1-8] Yalnızca özel kelime dışına veri aktarımına izin verilmesi ZORUNLUDUR algılama hizmeti sunmaz.
  • [9.8/H-1-9] Kullanıcı tarafından yüklenebilen bir uygulamanın özel kelime algılama hizmetidir.
  • [9.8/H-1-10] tarafından yapılan kullanıcı arayüzü nicel verilerinde özel kelime algılama hizmetinden yararlanabilirsiniz.
  • [9.8/H-1-11] Her iletime dahil edilen bayt sayısını günlüğe kaydetmesi ZORUNLUDUR özel kelime algılama hizmetinden yararlanarak güvenlik açısından incelenebilirliği sağlar birlikte çalışır.
  • [9.8/H-1-12] her dosyanın ham içeriğini günlüğe kaydeden bir hata ayıklama modunu özel kelime algılama hizmetinden iletimi güvenlik araştırmacılarımız bulunuyor.
  • [9.8/H-1-14] Bölümde açıklandığı gibi, mikrofon göstergesini GÖRÜNTÜLEMELİDİR 9.8.2: Sese başarılı bir özel kelime sonucu iletildiğinde hizmet veya benzeri tüzel kişilik olabilir.

Yeni koşullarla başlayın

  • [9.8/H-1-15] Başarılı özel kelime ile ses akışı sağlandığından emin olunması gerekir sonuçları, özel kelime algılama hizmetinden gelen kullanıma sunuyoruz.

Yeni şartları sonlandırma

  • [9.8/H-SR-1] Bir sağlayıcısı olarak da bilinen bir uygulama.
  • [9.8/H-SR-2] Şunların iletilmesine izin vermemeniz ÖNEMLE ÖNERİLİR yapılandırılmamış verileri özel kelime algılama hizmetinden çıkarır.
  • [9.8/H-SR-3] en az saatte bir veya 30 günde bir özel kelime algılama hizmeti donanım tetikleyici etkinlikleri (hangisi önce gerçekleşirse)

Cihaz uygulamaları System API kullanan bir uygulama içeriyorsa HotwordDetectionService veya benzer bir mekanizma olmadan özel kelime algılama mikrofon kullanım göstergesi, uygulama:

  • [9.8/H-2-1] Her özel kelime öbeği için kullanıcıya açık bir şekilde bildirim gönderilmesi ZORUNLUDUR desteklenir.
  • [9.8/H-2-2] Ham ses verilerini veya bu verilerden türetilen verileri KORUMAMALIDIR. özel kelime algılama hizmeti ile uygulanabilir.
  • [9.8/H-2-3] Özel kelime algılama hizmetinden, ses, sesi (tamamen veya kısmen) yeniden oluşturmak için kullanılabilecek veriler, özel kelimeyle alakasız ses içerikleri, ContentCaptureService veya cihaz üzerinde konuşma kullanıma sunuyoruz.

Yeni koşullarla başlayın

Avuç içi cihaz uygulamaları System API'yi destekliyorsa Sorgu algılama için VisualQueryDetectionService veya başka bir mekanizma mikrofon ve/veya kamera erişimi göstergesi olmadan:

  • [9.8/H-3-1] Sorgu algılama hizmetinin yalnızca veri aktarımı yapabildiğinden emin olması ZORUNLUDUR Sisteme veri veya ContentCaptureService ya da cihaz üzerindeki konuşma tanıma hizmeti (oluşturan SpeechRecognizer#createOnDeviceSpeechRecognizer()) tıklayın.
  • [9.8/H-3-2] Ses veya görüntü bilgisinin aktarılmasına İZİN VERİLMEMELİDİR ContentCaptureService dışında VisualQueryDetectionService içinden konuşma tanıma hizmeti de sunabilirsiniz.
  • [9.8/H-3-3] Cihaz bir kullanıcı algıladığında Sistem kullanıcı arayüzünde bir kullanıcı bildirimi GÖRÜNTÜLEMELİDİR Dijital Asistan Uygulaması'yla etkileşime geçme amacı (ör. kamera aracılığıyla kullanıcı varlığı).
  • [9.8/H-3-4] Bir mikrofon göstergesi görüntülenmeli ve algılanan kullanıcı sorgusu algılandıktan hemen sonra gösterilen kullanıcı sorgusuna karşılık gelir.
  • [9.8/H-3-5] Kullanıcı tarafından yüklenebilen bir uygulamanın görsel sorgu algılama hizmeti kapsamındadır.

Yeni şartları sonlandırma

Avuç içi cihaz uygulamalarında android.hardware.microphone beyan ediliyorsa:

  • [9.8.2/H-4-1] şu işlem sırasında mikrofon göstergesini GÖRÜNTÜLEMELİDİR: bir uygulama mikrofondan ses verilerine erişiyor ancak mikrofona yalnızca HotwordDetectionService tarafından erişilebilir. SOURCE_HOTWORD,ContentCaptureService veya şu rollere sahip uygulamalar: bölüm 9.1'de CDD tanımlayıcısını [C-4-X] bulabilirsiniz.
  • [9.8.2/H-4-2] En Son ve Etkin listesinin görüntülenmesi ZORUNLUDUR geri döndüğü şekliyle mikrofonu kullanan uygulamalar PermissionManager.getIndicatorAppOpUsageData() (herhangi bir atıf ile birlikte) otomatik olarak bulunur.

Avuç içi cihaz uygulamalarında android.hardware.camera.any beyan ediliyorsa:

  • [9.8.2/H-5-1] aşağıdaki durumlarda kamera göstergesini görüntülemelidir: Uygulama, canlı kamera verilerine erişiyor, ancak kamera yalnızca açık durumdayken erişim sağlamıyor. bu bölümde açıklanan rolleri içeren uygulamaların eriştiği bölüm 9.1'i tıklayın.
  • [9.8.2/H-5-2]; Son kullanılan ve Etkin uygulamaların PermissionManager.getIndicatorAppOpUsageData() adlı satıcıdan iade edilen kamera ve bunlarla ilişkili ilişkilendirme mesajları gösterilir.

2.2.6. Geliştirici Araçları ve Seçenek Uyumluluğu

Avuç içi cihaz uygulamaları (* Tablet için geçerli değildir):

  • [6.1/H-0-1]*, kabuk komutunu desteklemelidir cmd testharness.

Avuç içi cihaz uygulamaları (* Tablet için geçerli değildir):

  • Perfetto
    • [6.1/H-0-2]* için bir /system/bin/perfetto GEREKİR cmdline'ın uyumlu olduğu kabuk kullanıcısına ikili program perfetto dokümanlarını inceleyin.
    • [6.1/H-0-3]* Perfetto ikilisi Şurada tanımlanan şemayla uyumlu bir protobuf yapılandırması girin: perfetto belgelerini inceleyin.
    • [6.1/H-0-4]* Perfetto ikilisi Şurada tanımlanan şemaya uygun bir protobuf izi çıktısı verir perfetto belgelerini inceleyin.
    • [6.1/H-0-5]* Şeklin perfetto yoluyla sağlanması ZORUNLUDUR en azından perfetto belgelerinde açıklanan veri kaynakları olmalıdır.
    • [6.1/H-0-6]* Perfetto izlenen arka plan programının varsayılan olarak etkindir (persist.traced.enable sistem mülkü).

2.2.7. Mobil Cihaz Medya Performans Dersi

İlgili hizmetin tanımı için bkz. Bölüm 7.11 medya performansı sınıfı.

2.2.7.1. Medya

Avuç içi cihaz uygulamaları android.os.Build.VERSION_CODES.T sonucunu döndürürse android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS için:

Yeni koşullarla başlayın

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.U döndürürse: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS kullanıcısıysanız:

  • [5.1/H-1-1] Maksimum sayıda donanım video kod çözücüsünün reklamını yapması ZORUNLUDUR üzerinden herhangi bir codec kombinasyonunda eşzamanlı olarak çalıştırılabilecek CodecCapabilities.getMaxSupportedInstances() ve VideoCapabilities.getSupportedPerformancePoints() yöntem.
  • [5.1/H-1-2] 6 adet 8 bit (SDR) donanım video kod çözücü örneğini DESTEKLEMELİDİR çalışan herhangi bir codec kombinasyonunda gerçekleşen (AVC, HEVC, VP9, AV1 veya sonraki sürümler) 30 fps'de 1080p çözünürlükte 3 oturum ve 4K'da 3 oturumla eşzamanlı olarak (AV1 hariç) 30 fps'de çözünürlük. AV1 codec'leri yalnızca 1080p çözünürlüğü desteklemek için gereklidir, ancak 1080p30 fps'de 6 örneği desteklemek için gereklidir.
  • [5.1/H-1-3] Maksimum sayıda donanımla video kodlayıcının tanıtımını yapması ZORUNLUDUR üzerinden herhangi bir codec kombinasyonunda eşzamanlı olarak çalıştırılabilecek CodecCapabilities.getMaxSupportedInstances() ve VideoCapabilities.getSupportedPerformancePoints() yöntem.
  • [5.1/H-1-4] 8 bit (SDR) donanım video kodlayıcısının 6 örneğini DESTEKLEMELİDİR çalışan herhangi bir codec kombinasyonunda gerçekleşen (AVC, HEVC, VP9, AV1 veya sonraki sürümler) 30 fps'de 1080p çözünürlükte 4 oturum ve 4K'da 2 oturumla eşzamanlı olarak (AV1 hariç) 30 fps'de çözünürlük. AV1 codec'leri yalnızca 1080p çözünürlüğü desteklemek için gereklidir, ancak 1080p30 fps'de 6 örneği desteklemek için gereklidir.
  • [5.1/H-1-5], maksimum sayıda donanımla video kodlayıcının ve üzerinden herhangi bir codec kombinasyonunda eşzamanlı olarak çalıştırılabilen kod çözücü oturumları CodecCapabilities.getMaxSupportedInstances() ve VideoCapabilities.getSupportedPerformancePoints() yöntem.
  • [5.1/H-1-6] 6 adet 8 bit (SDR) donanım video kod çözücü örneğini DESTEKLEMELİDİR ve donanım video kodlayıcı oturumları (AVC, HEVC, VP9, AV1 veya 4K'da 30 fps'de 3 oturumla eş zamanlı olarak çalışan codec kombinasyonu en fazla 2'si kodlayıcı oturumu, 3'ü ise kodlayıcı oturumu olmak üzere (AV1 hariç) 1080p çözünürlükte izler. AV1 codec'leri yalnızca 1080p çözünürlüğü desteklemek için gereklidir, ancak 1080p30 fps'de 6 örneği desteklemek için gereklidir.
  • [5.1/H-1-19] 10 bit (HDR) donanım video kod çözücünün 3 örneğini DESTEKLEMELİDİR ve donanım video kodlayıcı oturumları (AVC, HEVC, VP9, AV1 veya 4K'da 30 fps çözünürlükte eş zamanlı olarak çalışan codec kombinasyonu (AV1 hariç) Bu oturumlardan en fazla 1'i kodlayıcı oturumudur ve GL yüzeyinden RGBA_1010102 giriş biçimi. HDR meta verisi oluşturma ölçütü GL yüzeyinden kodlama varsa kodlayıcı gerekmez. AV1 codec oturumları olsa bile yalnızca 1080p çözünürlüğü desteklemek için gereklidir. Bunun için 4K kalitesi gerekir.
  • [5.1/H-1-7] için bir codec başlatma gecikmesinin 40 ms veya daha az olması ZORUNLUDUR Tüm donanım video kodlayıcılar için 1080p veya daha küçük video kodlama oturumu yardımcı olabilir. Buraya yükleme, eş zamanlı 1080p ile 720p arası yalnızca video olarak tanımlanır 1080p ile birlikte donanım video codec'lerini kullanarak kod dönüştürme oturumu ses-video kaydını başlatma. Dolby Vision codec için codec başlatma gecikmesinin 50 ms veya daha az olması ZORUNLUDUR.
  • [5.1/H-1-8] için bir codec başlatma gecikmesinin 30 ms veya daha az olması ZORUNLUDUR Aşağıdaki durumlarda tüm ses kodlayıcıları için 128 kb/sn veya daha düşük bit hızı ses kodlama oturumu yardımcı olabilir. Buraya yükleme, eş zamanlı 1080p ile 720p arası yalnızca video olarak tanımlanır 1080p ile birlikte donanım video codec'lerini kullanarak kod dönüştürme oturumu ses-video kaydını başlatma.
  • [5.1/H-1-9] 2 güvenli donanım video kod çözücü örneğini DESTEKLEMELİDİR çalışan herhangi bir codec kombinasyonunda gerçekleşen (AVC, HEVC, VP9, AV1 veya sonraki sürümler) hem 8 bit (SDR) hem de 30 fps'de (AV1 hariç) 4K çözünürlükte eş zamanlı olarak 10 bit HDR içerik. AV1 codec oturumları olsa bile yalnızca 1080p çözünürlüğü desteklemek için gereklidir. Bunun için 4K kalitesi gerekir.
  • [5.1/H-1-10], güvenli olmayan donanım video kod çözücüsünün 3 örneğini DESTEKLEMELİDİR 1 güvenli donanım video kod çözücü oturumu örneğiyle birlikte oturum Herhangi bir codec kombinasyonunda (toplam 4 örnek) (AVC, HEVC, VP9, AV1 veya sonrası) 30 fps'de 4K çözünürlükte 3 oturumla eş zamanlı olarak çalışıyor (AV1 hariç) Bir güvenli kod çözücü oturumu ve 1080p'de 1 nn güvenli oturum içerir en fazla 2 oturumun 10 bit HDR'de olabildiği, çözünürlük 30 fps'de. AV1 codec oturumları olsa bile yalnızca 1080p çözünürlüğü desteklemek için gereklidir. Bunun için 4K kalitesi gerekir.
  • [5.1/H-1-11]; her donanım AVC, HEVC ve Cihazda VP9 veya AV1 kod çözücü.
  • [5.1/H-1-12] için bir codec başlatma gecikmesinin 40 ms veya daha az olması ZORUNLUDUR Tüm donanım video kod çözücüler için 1.080p veya daha küçük video kod çözme oturumu yardımcı olabilir. Buraya yükleme, eş zamanlı 1080p ile 720p arası olarak tanımlanır donanım video codec'lerini ve yalnızca video codec'lerini destekleyen 1080p ses-video oynatma başlatma. Dolby Vision codec için codec başlatma gecikmesinin 50 ms veya daha az olması ZORUNLUDUR.
  • [5.1/H-1-13] için bir codec başlatma gecikmesinin 30 ms veya daha az olması Aşağıdaki durumlarda tüm ses kod çözücüler için 128 kb/sn veya daha düşük bit hızına sahip ses kod çözme oturumu yardımcı olabilir. Buraya yükleme, eş zamanlı 1080p ile 720p arası yalnızca video olarak tanımlanır 1080p ile birlikte donanım video codec'lerini kullanarak kod dönüştürme oturumu ses-video oynatma başlatma.
  • [5.1/H-1-14] AV1 donanım kod çözücü Ana 10, Seviye 4.1 ve film DESTEKLEMELİDİR gren
  • [5.1/H-1-15] 4K60'ı destekleyen en az 1 donanım video kod çözücüsü OLMALIDIR.
  • [5.1/H-1-16] 4K60'ı destekleyen en az 1 donanım video kodlayıcısı OLMALIDIR.
  • [5.3/H-1-1] 10 saniyede 1 kareden fazla (yani %0,167 kare düşüş) gösterir.
  • [5.3/H-1-2] Video sırasında 10 saniyede 1 kareden fazla DEVAM ETMEMELİDİR 4K oturumda yükleme altındaki 60 fps video oturumunda çözünürlük değişikliği.
  • [5.6/H-1-1] test edebilirsiniz.
  • [5.6/H-1-2] gidiş dönüş ses gecikmesinin 80 milisaniye veya en az bir desteklenen veri yolundan daha az.
  • [5.6/H-1-3] 3,5 mm ses üzerinden stereo çıkış için >=24 bit sesi DESTEKLEMELİDİR (varsa) jaklara ve veri genelinde destekleniyorsa USB ses üzerinden kolay bir yoludur. Düşük gecikme için yapılandırmasında, uygulama tarafından düşük gecikmeli geri çağırmada AAudio kullanılmalıdır yatırım yapmanız önemlidir. Akış yapılandırması için Java AudioTrack, görebilirsiniz. Hem düşük gecikmeli hem de akış yapılandırmalarında HAL çıkış havuzu şunu kabul etmelidir: AUDIO_FORMAT_PCM_24_BIT, AUDIO_FORMAT_PCM_24_BIT_PACKED, AUDIO_FORMAT_PCM_32_BIT veya Hedef çıkış biçimi için AUDIO_FORMAT_PCM_FLOAT.
  • [5.6/H-1-4] >=4 kanallı USB ses cihazlarını DESTEKLEMELİDİR (DJ tarafından kullanılır) şarkı kumandaları.)
  • [5.6/H-1-5] Sınıfla uyumlu MIDI cihazlarını DESTEKLEMELİ ve MIDI özellik bayrağı.
  • [5.6/H-1-9] en az 12 kanal mix'ini desteklemektedir. Bu, bir Ses Parçası'nı 7.1.4 kanal maskesiyle açma ve gerektiği gibi Üç tekerlekli sandalyeye uygun hale getirmek için.
  • [5.6/H-SR] 24 kanalın birden çok kanalla mix'ini desteklemesi ÖNERİLİR en az 9.1.6 ve 22.2 kanallı maskeleri desteklemelidir.
  • [5.7/H-1-2], MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL alan adını DESTEKLEMELİDİR özelliklerini ele alalım.
Minimum Örnek boyutu 4 MiB
Minimum Alt Örnek Sayısı - H264 veya HEVC 32
Minimum Alt Örnek Sayısı - VP9 9
Minimum Alt Örnek Sayısı - AV1 288
Minimum alt örnek arabellek boyutu 1 MiB
Minimum Genel şifreleme arabelleği boyutu 500 KiB
Minimum eşzamanlı oturum sayısı 30
Oturum başına minimum anahtar sayısı 20
Minimum Toplam Anahtar Sayısı (tüm oturumlar) 80
Minimum Toplam DRM Anahtarı Sayısı (tümü oturum) 6
İleti Boyutu 16 KiB
Saniyedeki Şifresi Çözülmüş Kare Sayısı 60 fps
  • [5.1/H-1-17] AVIF destekleyen en az 1 donanım resmi kod çözücüsü OLMALIDIR Temel Profil.
  • [5.1/H-1-18] 480p'ye kadar kodlayabilen AV1 kodlayıcıyı desteklemektedir. 30 fps ve 1 Mb/sn'de çözünürlük.
  • [5.12/H-1-1] ŞUNU DENEMELİDİR [5.12/H-SR] Feature_HdrEditing özelliğini kullanmanızı öneririz.
  • [5.12/H-1-2] Tüm donanım AV1 ve cihazda bulunan HEVC kodlayıcılar.
  • [5.12/H-1-3] EXT_YUV_target uzantısına yönelik desteğin reklamını örnek olarak verilmiştir.
  • [7.1.4/H-1-1] Ekran işlemede en az 6 donanım yer paylaşımı OLMALIDIR en az 2'si 10 bit video içeriği görüntüleyebilen bir birim (DPU) kullanın.

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.U döndürürse: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS ve bunlar şunları içerir: donanım AVC veya HEVC kodlayıcı desteğine sahip değilse:

Yeni şartları sonlandırma

2.2.7.2. Kamera

Avuç içi cihaz uygulamaları android.os.Build.VERSION_CODES.T sonucunu döndürürse android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS için:

Yeni koşullarla başlayın

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.U döndürürse: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS kullanıcısıysanız:

  • [7.5/H-1-1] Çözünürlüğünde bir birincil arka kamera olması ZORUNLUDUR 4k'lık, 30 fps'de video yakalamayı destekleyen en az 12 megapiksel. Birincil Arka kamera, en düşük kamera kimliğine sahip arka kameradır.
  • [7.5/H-1-2] Çözünürlüğünde bir birincil ön kamera olması ZORUNLUDUR En az 6 megapiksel ve 30 fps'de 1080p video yakalama desteği. Birincil ön kamera, en düşük kamera kimliğine sahip ön kameradır.
  • [7.5/H-1-3], android.info.supportedHardwareLevel mülkünün Arka ilköğretim için FULL veya daha iyi, ön birincil için ise LIMITED veya daha iyisi bulun.
  • [7.5/H-1-4] DESTEKLEMELİDİR Hem birincil hem de CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME kameralar.
  • [7.5/H-1-5] kamera2 JPEG yakalama gecikmesinin < 1.000 900 Aşağıdaki CTS kamera Performans Testi tarafından ölçülen 1080p çözünürlük için ms Her iki birincil kamera için ITS ışıklandırma koşulları (3000K).
  • [7.5/H-1-6] kamera2 başlatma gecikmesinin olması ZORUNLUDUR (ilk önizleme için kamerayı açın) çerçeve) < ITS kapsamındaki CTS kamera Performans Testi ile ölçülmüş 500 ms ışık koşulları (3000 K) sağlaması gerekir.
  • [7.5/H-1-8], CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW'yi DESTEKLEMELİDİR ve birincil arka kamera için android.graphics.ImageFormat.RAW_SENSOR.
  • [7.5/H-1-9] 720p veya 1080p'yi destekleyen bir arka yüz birincil kamerası olması ZORUNLUDUR 240 fps'de.
  • [7.5/H-1-10] için en az ZOOM_RATIO OLMALIDIR < Birincil kameralar için 1.0 aynı yöne bakan ultra geniş RGB kamera.
  • [7.5/H-1-11] birincil cihazda eşzamanlı ön arka akış uygulanması ZORUNLUDUR kameralar.
  • [7.5/H-1-12] DESTEKLEMELİDİR Hem birincil hem de CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION ön ve birincil arka kamera.
  • [7.5/H-1-13], LOGICAL_MULTI_CAMERA özelliğini DESTEKLEMELİDİR 1'den fazla RGB varsa birincil arka kamera için arka kameralara sahip.
  • [7.5/H-1-14] hem birincil uygulama için STREAM_USE_CASE özelliğini DESTEKLEMELİDİR ön ve birincil arka kamera.
  • [7.5/H-1-15] modelinde Bokeh ve desteğinin olması ZORUNLUDUR Birincil kamera için hem CameraX hem de Camera2 uzantıları aracılığıyla gece modu uzantıları kameralar.
  • [7.5/H-1-16] birincil ağ için DYNAMIC_RANGE_TEN_BIT özelliğini DESTEKLEMELİDİR kameralar.
  • [7.5/H-1-17] Şunu DESTEKLEMELİDİR: CONTROL_SCENE_MODE_FACE_PRIORITY ve yüz algılama (STATISTICS_FACE_DETECT_MODE_SIMPLE) veya STATISTICS_FACE_DETECT_MODE_FULL) birincil kameralar için de tercih edilir.

Yeni şartları sonlandırma

2.2.7.3. Donanım

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.T döndürürse: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS kullanıcısıysanız:

Yeni koşullarla başlayın

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.U döndürürse: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS kullanıcısıysanız:

  • [7.1.1.1/H-2-1] En az 1080p ekran çözünürlüğü ZORUNLUDUR.
  • [7.1.1.3/H-2-1] En az 400 dpi ekran yoğunluğuna sahip olması ZORUNLUDUR.
  • [7.1.1.3/H-3-1] En az 1000 nit'i destekleyen bir HDR ekrana sahip OLMALIDIR ortalaması.
  • [7.6.1/H-2-1] en az 8 GB fiziksel belleğe sahip OLMALIDIR.

Yeni şartları sonlandırma

2.2.7.4. Performans

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.T döndürürse: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS kullanıcısıysanız:

Yeni koşullarla başlayın

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.U döndürürse: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS kullanıcısıysanız:

  • [8.2/H-1-1] En az 150 MB/sn'lik sıralı yazma performansı sağlaması ZORUNLUDUR.
  • [8.2/H-1-2] En az 10 MB/sn'lik rastgele bir yazma performansının sağlanması ZORUNLUDUR.
  • [8.2/H-1-3] En az 250 MB/sn'lik sıralı okuma performansı sağlaması ZORUNLUDUR.
  • [8.2/H-1-4] En az 100 MB/sn'lik rastgele bir okuma performansı sağlanması ZORUNLUDUR.
  • [8.2/H-1-5] Paralel sıralı okuma ve yazma performansı ZORUNLUDUR 2 kat okuma ve 1 kat yazma performansıyla en az 50 MB/sn.

Yeni şartları sonlandırma

2.3. Televizyon Gereksinimleri

Android Televizyon cihazı, Google Arama ve Google Haritalar gibi Dijital medya, film, oyun, uygulama ve oyun tüketen ve/veya canlı TV yayını yapan kullanıcılara, kullanıcı arayüzü").

Android cihaz uygulamaları, aşağıdaki koşulları karşılıyorsa Televizyon olarak sınıflandırılır: şu kriterlere uygun olmalıdır:

  • Oluşturulan kullanıcı arayüzünü 10 metre uzakta durabilecek ekran.
  • Çapraz uzunluğu 24'ten büyük olan yerleşik bir ekran ekrana sahip olmalıdır. inç VEYA VGA, HDMI, DisplayPort veya VGA, HDMI, DisplayPort gibi bir video çıkış bağlantı noktası ekleyin ekran için kablosuz bağlantı noktası.

Bu bölümün geri kalanındaki ek şartlar Android'e özeldir. Televizyon cihazı uygulamaları.

2.3.1. Donanım

Televizyon cihazı uygulamaları:

  • [7.2.2/T-0-1] D-pad'i DESTEKLEMELİDİR.
  • [7.2.3/T-0-1], Ana Ekran ve Geri Dönmesini ZORUNLUDUR işlevlerine dahildir.
  • [7.2.3/T-0-2] hem normal hem de uzun basmanın ZORUNLUDUR Geri işlevinin etkinliği (KEYCODE_BACK) geçiş yapabilirsiniz.
  • [7.2.6.1/T-0-1] Oyun için destek İÇERMELİDİR denetleyicileri ve android.hardware.gamepad özellik bayrağını beyan edin.
  • [7.2.7/T] Hangi uzaktan kumandanın kullanılacağını Kullanıcılar dokunmatik olmayan gezinmeye ve temel gezinme tuşları girişleridir.

Televizyon cihazı uygulamaları 3 eksenli bir jiroskop içeriyorsa:

  • [7.3.4/T-1-1] E-posta mesajına en az 100 Hz'lik bir frekans.
  • [7.3.4/T-1-2] Yön değişikliklerini ölçebilmesi ZORUNLUDUR saniyede 1000 dereceye kadar.

Televizyon cihazı uygulamaları:

  • [7.4.3/T-0-1] Bluetooth ve Bluetooth LE.
  • [7.6.1/T-0-1] en az 4 GB uygulama özel verileri için kullanılabilen kalıcı depolama alanı ("/veri" bölümü olarak da bilinir.)

Televizyon cihazı uygulamaları, ana makine modunu destekleyen bir USB bağlantı noktası içeriyorsa onlar:

  • [7.5.3/T-1-1] Harici kamera desteği İÇERMELİDİR bağlantı noktası oluşturabilirsiniz. Ancak bu bağlantı her zaman bağlı olmayabilir.

TV cihazı uygulamaları 32 bitse:

  • [7.6.1/T-1-1] Çekirdek tarafından kullanılabilen bellek ve aşağıdaki yoğunluklardan herhangi biri kullanılırsa kullanıcı alanının en az 896 MB olması ZORUNLUDUR:

    • Küçük/normal ekranlarda 400 dpi veya daha yüksek
    • Büyük ekranlarda xhdpi veya üstü
    • ekstra büyük ekranlarda tvdpi veya daha yüksek

TV cihazı uygulamaları 64 bitse:

  • [7.6.1/T-2-1] Çekirdek tarafından kullanılabilen bellek ve aşağıdaki yoğunluklardan herhangi biri geçerliyse kullanıcı alanının en az 1280 MB olması ZORUNLUDUR kullanılıyor:

    • Küçük/normal ekranlarda 400 dpi veya daha yüksek
    • Büyük ekranlarda xhdpi veya üstü
    • ekstra büyük ekranlarda tvdpi veya daha yüksek

"Çekirdek ve kullanıcı alanı tarafından kullanılabilen bellek" yukarıdaki durum, halihazırdaki belleğe ek olarak sağlanan bellek alanı diğer donanım bileşenlerinin yanı sıra radyo, video ve benzeri kontrol edebilirsiniz.

Televizyon cihazı uygulamaları:

  • [7.8.1/T] Mikrofon İÇERMELİDİR.
  • [7.8.2/T-0-1] bir ses çıkışının olması ve android.hardware.audio.output.

2.3.2. Multimedya

Televizyon cihazı uygulamalarının aşağıdaki ses kodlamasını DESTEKLEMELİDİR üçüncü taraf uygulamalarının kullanımına sunmak için kullanabileceğiniz bir araç paketidir.

  • [5.1/T-0-1] MPEG-4 AAC profili (AAC LC)
  • [5.1/T-0-2] MPEG-4 HE AAC profili (AAC+)
  • [5.1/T-0-3] AAC ELD (geliştirilmiş düşük gecikmeli AAC)

Televizyon cihazı uygulamalarının aşağıdaki video kodlamasını DESTEKLEMELİDİR ve bunların üçüncü taraf uygulamalarının kullanımına sunulmasını sağlayabilirsiniz:

  • [5.2/T-0-1] H.264
  • [5.2/T-0-2] VK8

Yeni koşullarla başlayın

  • [5,2/T-0-3] AV1

Yeni şartları sonlandırma

Televizyon cihazı uygulamaları:

  • [5.2.2/T-SR-1] Desteklenmesi ÖNEMLE ÖNERİLİR Saniyede 30 kare hızında 720p ve 1080p çözünürlüklü videoların H.264 kodlaması.

Televizyon cihazı uygulamalarında aşağıdaki video kod çözme özelliğinin desteklenmesi ZORUNLUDUR ve bunların üçüncü taraf uygulamalarının kullanımına sunulmasını sağlayabilirsiniz:

Yeni koşullarla başlayın

Yeni şartları sonlandırma

Televizyon cihazı uygulamalarının, aşağıda açıklandığı gibi MPEG-2 kod çözmeyi desteklemesi ZORUNLUDUR Bölüm 5.3.1, maksimum video kare hızlarında ve şunları içerir:

  • [5.3.1/T-1-1] Saniyede 29,97 kare hızında HD 1080p ile.
  • [5.3.1/T-1-2] Saniyede 59,94 kare hızında HD 1080i ile. Aralıklı MPEG-2 videonun görüntülerini ayrıştırmaları ZORUNLUDUR üçüncü taraf uygulamalarının kullanımına sunmaktır.

Televizyon cihazı uygulamalarının, aşağıda açıklandığı gibi H.264 kod çözmeyi desteklemesi GEREKİR Bölüm 5.3.4, maksimum video kare hızlarında ve şunları içerir:

  • [5.3.4/T-1-1] Saniyede 60 kare hızında HD 1080p Temel Profil
  • [5.3.4/T-1-2] Saniyede 60 kare hızında HD 1080p Ana Profil
  • [5.3.4/T-1-3] Saniyede 60 kare hızında HD 1080p Yüksek Profil Düzeyi 4.2

H.265 donanım kod çözücülere sahip televizyon cihazı uygulamalarının DESTEKLENMELİDİR Bölüm 5.3.5'te ayrıntılı bir şekilde açıklandığı üzere, standart video kare hızlarında H.265 kod çözme ve aşağıdakiler de dahil olmak üzere farklı çözünürlükler ile destek sunulur:

  • [5.3.5/T-1-1] Saniyede 60 kare hızında HD 1080p Ana Profil Düzeyi 4.1

H.265 donanım kod çözücüleri içeren televizyon cihazı uygulamaları destekleniyorsa H.265 kod çözme ve UHD kod çözme profili.

  • [5.3.5/T-2-1] UHD kod çözme profilini DESTEKLEMELİDİR Main10 Seviye 5 Ana Katman profiliyle saniyede 60 kare hızında

Televizyon cihazı uygulamalarının, aşağıda açıklandığı gibi VP8 kod çözmeyi desteklemesi GEREKİR Bölüm 5.3.6, maksimum video kare hızlarında ve şunları içerir:

  • [5.3.6/T-1-1] Saniyede 60 kare kod çözme profilinde HD 1080p

VP9 donanım kod çözücülere sahip televizyon cihazı uygulamaları VP9'u DESTEKLEMELİDİR Bölüm 5.3.7'de açıklandığı şekilde standart video kare hızlarında ve şunları içerir:

  • [5.3.7/T-1-1] Saniyede 60 kare hızında HD 1080p profil 0 (8 bit renk derinliği)

VP9 donanım kod çözücüler içeren televizyon cihazı uygulamaları VP9'u destekliyorsa ve UHD kod çözme profiline erişirseniz:

  • [5.3.7/T-2-1] UHD kod çözme profilini DESTEKLEMELİDİR 0 profiliyle (8 bit renk derinliği) saniyede 60 kare hızında.
  • [5.3.7/T-SR1] 2. profil (10 bit renk derinliği) ile saniyede 60 kare hızında UHD kod çözme profili.

Televizyon cihazı uygulamaları:

  • [5.5/T-0-1] System Master için destek İÇERMELİDİR Desteklenen çıkışlarda ses seviyesi ve dijital ses çıkışı ses azaltma, (ses kodu çözmenin tamamlanmadığı sıkıştırılmış ses geçişi çıkışı hariç) ) görürsünüz.

Televizyon cihazı uygulamalarının yerleşik bir ekranı yoksa Bunun yerine HDMI üzerinden bağlanan harici bir ekranı desteklerler:

  • [5.8/T-0-1] HDMI'nin ayarlanması ZORUNLUDUR çıkış modunu, seçilen piksel biçimi için en yüksek çözünürlüğe yükseltmeniz gerekir. Videoya bağlı olarak harici ekran için 50 Hz veya 60 Hz yenileme hızıyla yenileme hızına göre belirlenir. HDMI çıkış modunun 50 Hz veya 60 Hz ile desteklenebilen maksimum çözünürlüğü seçin. yenileme hızı.
  • [5.8/T-SR-1] Bir kullanıcıya bilgi vermesi ÖNEMLE ÖNERİLİR HDMI yenileme hızı seçici yapılandırılabilir.
  • [5.8] HDMI çıkış modu yenileme hızını AYARLAMALIDIR Videonun bulunduğu bölgeye göre video yenileme hızına bağlı olarak 50 Hz veya 60 Hz olarak ayarlayabilirsiniz. bir ülkedir.

Televizyon cihazı uygulamalarının yerleşik bir ekranı yoksa Bunun yerine HDMI üzerinden bağlanan harici bir ekranı desteklerler:

  • [5.8/T-1-1] HDCP 2.2'yi DESTEKLEMELİDİR.

Televizyon cihazı uygulamaları, UHD kod çözmeyi desteklemiyorsa ancak yerine HDMI üzerinden bağlı harici bir ekranı desteklerler. Bu cihazlar:

  • [5.8/T-2-1] HDCP 1.4'ü DESTEKLEMELİDİR

2.3.3. Yazılım

Televizyon cihazı uygulamaları:

  • [3/T-0-1], özellikleri tanımlaması ZORUNLUDUR android.software.leanback ve android.hardware.type.television.
  • [3.2.3.1/T-0-1] Bir veya daha fazla Amaç işleyici içeren daha fazla uygulama veya hizmet bileşeni Aşağıdaki uygulama amaçları tarafından tanımlanan genel amaç filtre kalıpları burada listelenmiştir.
  • [3.4.1/T-0-1]; eksiksiz bir android.webkit.Webview API uygulanması.

Android Televizyon cihaz uygulamaları kilit ekranını destekliyorsa:

  • [3.8.10/T-1-1] için Kilit GEREKLİDİR Bildirim Şablonu'nu içeren bildirimlere dokunun.

Televizyon cihazı uygulamaları:

  • [3.8.14/T-SR-1] Şiddetle ÖNERİLİR pencere içinde pencere (PIP) modunu desteklemek üzere çoklu pencere özelliğini destekler.
  • [3.10/T-0-1] üçüncü taraf erişilebilirliğini DESTEKLEMELİDİR kullanıma sunuyoruz.
  • [3.10/T-SR-1] Şiddetle ÖNERİLİR: Erişilebilirlik hizmetlerini cihaza önceden yükleme ile karşılaştırılabilir şekilde Anahtar Erişimi ve TalkBack işlevlerinin (ChromeOS'in desteklediği diller için) (Önceden yüklenmiş Metin-konuşma motoru) erişilebilirlik hizmetlerini kullanabilirsiniz. görüşme açık kaynak projesi.

Televizyon cihazı uygulamaları bu özelliği bildiriyorsa android.hardware.audio.output, onlar:

  • [3.11/T-SR-1] Bir Cihazda kullanılabilen dilleri destekleyen TTS motoru.
  • [3.11/T-1-1] şunların yüklenmesini DESTEKLEMELİDİR: üçüncü taraf TTS motorları

Televizyon cihazı uygulamaları:

  • [3.12/T-0-1] TV Giriş Çerçevesi'ni DESTEKLEMELİDİR.

2.3.4. Performans ve Güç

  • [8.1/T-0-1] Tutarlı kare gecikmesi. Tutarsız kare gecikmesi veya karelerin oluşturulmasında gecikme daha fazla OLMAMALIDIR. genellikle saniyede 5 kareden fazladır ve saniyede 1 karenin altında OLMALIDIR.
  • [8.2/T-0-1] Sıralı en az 5MB/sn'lik yazma performansı.
  • [8.2/T-0-2] Rastgele bir yazma işleminin sağlanması ZORUNLUDUR en az 0,5 MB/sn'lik performans.
  • [8.2/T-0-3] Sıralı okuma performansı gösterilir.
  • [8.2/T-0-4] Rastgele bir okumanın sağlanması ZORUNLUDUR en az 3,5 MB/sn'lik performans.

Televizyon cihazı uygulamaları, cihaz gücünü iyileştirecek özellikler içeriyorsa AOSP'ye dahil olan ya da Google Play Store'a dahil olan özelliklerin AOSP'de:

  • [8.3/T-1-1] aşağıdakileri etkinleştirebilmek için kullanıcıya ödeme yapılması ZORUNLUDUR ve pil tasarrufu özelliğini devre dışı bırakın.

Televizyon cihazı uygulamalarının pili yoksa:

Televizyon cihazı uygulamalarında pil varsa:

  • [8.3/T-1-3] Görüntüleme için kullanıcıya ödeme imkanı SUNMALIDIR Uygulama Bekleme ve Doz Güç Tasarrufu modlarından muaf olan tüm uygulamalar

Televizyon cihazı uygulamaları:

  • [8.4/T-0-1] ZORUNLUDUR mevcut tüketim değerini tanımlayan bileşen başına güç profili her bir donanım bileşenine ve bu bileşenin neden olduğu bileşenlerine örnek olarak verebiliriz.
  • [8.4/T-0-2] tüm gücü bildirmesi ZORUNLUDUR Miliamper saat (mAh) cinsinden tüketim değerleri.
  • [8.4/T-0-3] CPU gücü GEREKLİ tüketim değerini belirlemenize yardımcı olur. Android Açık Kaynak Projesi, uid_cputime çekirdek modülü uygulaması aracılığıyla sağlamanız gerekiyor.
  • [8.4/T] donanım bileşeninin güç kullanımını ilişkilendiremezse donanım bileşeninin kendisi bir şekilde tanımlar.
  • [8.4/T-0-4] bu güç kullanımının zorunlu olması ZORUNLUDUR adb shell dumpsys batterystats üzerinden kullanılabilir kabuk komutunu kullanabilirsiniz.

2.3.5. Güvenlik Modeli

Televizyon cihazı uygulamaları:

  • [9/T-0-1] android.hardware.security.model.compatible ZORUNLUDUR özelliğini kullanabilirsiniz.
  • [9.11/T-0-1], anahtar deposu uygulamasını YEDEKLEMELİDİR yürütmeliyiz.
  • [9.11/T-0-2] RSA, AES, ECDSA ve HMAC şifreleme algoritmaları ile MD5, SHA1 ve SHA-2 ailesi Android KeyStore sisteminin desteklediğini doğru bir şekilde desteklemek için karma işlevleri çalışan koddan güvenli bir şekilde izole edilmiş bir alanda kullanılabilir. üst tarafında yer alır. Güvenli yalıtım, tüm olası mekanizmaları Engelleme GEREKİR bir veri kümesindeki çekirdek veya kullanıcı alanı kodunun, DMA dahil, izole bir ortamdan izole edilmiş olmalıdır. Yukarı akış Android Açık Kaynağı Proje (AOSP), bu şartı Trusty uygulamasını kullanarak karşılar, ancak başka bir ARM TrustZone tabanlı bir çözüm veya üçüncü bir tarafça incelenmiş güvenli bir çözüm uygun bir hipervizör tabanlı yalıtımının uygulanması, seçenekleri vardır.
  • [9.11/T-0-3], kilit ekranı YAPILMALIDIR kimlik doğrulama işlemini izole yürütme ortamında ve yalnızca başarılı olursa kimlik doğrulamaya bağlı anahtarların kullanılmasına izin verin. Kilit ekranı kimlik bilgilerinin, yalnızca izole çalıştırmaya izin verecek şekilde saklanabilmesi ZORUNLUDUR kilit ekranı kimlik doğrulaması gerçekleştirmesine yardımcı olur. Yukarı akış Android Açık Kaynak Projesi, Gatekeeper Donanım Soyutlama Katmanı (HAL) ve Trusty gibi araçlar mevcuttur.
  • [9.11/T-0-4], onay imzalama anahtarı güvenli bir donanımla korunur ve imzalama anahtarı güvenli donanımda yürütülür. Onay imzalama anahtarlarının paylaşılması ZORUNLUDUR anahtarların kullanılmasını engelleyecek kadar fazla sayıda cihazda kullanılabilir. . Bu şartı karşılamanın bir yolu da belirli bir SKU'nun en az 100.000 birimi yoksa aynı onay anahtarı üretilir. 100.000'den fazla SKU üretildiyse farklı bir anahtarı her 100.000 birim için kullanılabilir.

Önceki Android sürümünde cihaz uygulaması zaten kullanıma sunulmuşsa bu tür bir cihaz, bir anahtar deposuna sahip olma zorunluluğundan muaf izole bir yürütme ortamıyla desteklenir ve anahtar onayını destekler. gerektiren android.hardware.fingerprint özelliğini bildirmez. yalıtılmış bir yürütme ortamıyla desteklenen anahtar deposudur.

Televizyon cihazı uygulamaları güvenli kilit ekranını destekliyorsa, bunlar:

  • [9.11/T-1-1], kullanıcının Uyku'yu seçmesine İZİN VERMELİDİR kilitli durumdan kilitli duruma geçiş için zaman aşımı 15 saniye veya daha kısa bir süreye kadar izin verilen minimum zaman aşımı

Televizyon cihazı uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirmezler:

  • [9.5/T-2-1] kısıtlı profilleri DESTEKLEMELİDİR, Cihaz sahiplerinin ek kullanıcıları ve diğer kullanıcıları yönetmesine olanak tanıyan bir özellik cihazdaki özellikleri kontrol edebilirsiniz. Kısıtlanmış profiller sayesinde cihaz sahipleri şunları yapabilir: ek kullanıcıların çalışabileceği ayrı ortamlar oluşturmayı ve daha ayrıntılı kısıtlamaları yönetme olanağı sayesinde bu ortamlarda kullanılabilir.

Televizyon cihazı uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirdiğinde:

  • [9.5/T-3-1] Kısıtlanmış ama kontrollerin AOSP uygulamasıyla uyumlu olması ZORUNLUDUR diğer kullanıcıların sesli aramalara ve SMS'lere erişmesini etkinleştirme /devre dışı bırakma.

Televizyon cihazı uygulamalarında android.hardware.microphone bildiriliyorsa:

  • [9.8.2/T-4-1] şu işlem sırasında mikrofon göstergesini GÖRÜNTÜLEMELİDİR: bir uygulama mikrofondan ses verilerine erişiyor ancak mikrofona yalnızca HotwordDetectionService, SOURCE_HOTWORD, ContentCaptureService veya Bölüm 9.1'de açıklanan rollere sahip uygulamalar CDD tanımlayıcısı C-3-X olan izinler].
  • [9.8.2/T-4-2] için mikrofon göstergesini gizlenmemelidir görünür kullanıcı arayüzleri veya doğrudan kullanıcı etkileşimi olan sistem uygulamaları.

Televizyon cihazı uygulamalarında android.hardware.camera.any bildiriliyorsa:

  • [9.8.2/T-5-1] aşağıdaki durumlarda kamera göstergesini görüntülemelidir: Uygulama canlı kamera verilerine erişiyor, ancak kamera yalnızca açık Bölüm 9.1'de açıklanan rollere sahip uygulamaların bunlara erişmesi CDD tanımlayıcısı [C-3-X] olan izinler.
  • [9.8.2/T-5-2] için kamera göstergesi gizlenmemelidir. görünür kullanıcı arayüzleri veya doğrudan kullanıcı etkileşimi olan sistem uygulamaları.

2.3.6. Geliştirici Araçları ve Seçenek Uyumluluğu

Televizyon cihazı uygulamaları:

  • Perfetto
    • [6.1/T-0-1] için bir /system/bin/perfetto GEREKLİDİR cmdline'ın uyumlu olduğu kabuk kullanıcısına ikili program perfetto dokümanlarını inceleyin.
    • [6.1/T-0-2] Perfetto ikilisi Şurada tanımlanan şemayla uyumlu bir protobuf yapılandırması girin: perfetto belgelerini inceleyin.
    • [6.1/T-0-3] Perfetto ikilisi Şurada tanımlanan şemaya uygun bir protobuf izi çıktısı verir perfetto belgelerini inceleyin.
    • [6.1/T-0-4] Perfetto üzerinden en azından perfetto belgelerinde açıklanan veri kaynakları olmalıdır.

2.4. İzleme Koşulları

Android Watch cihazı, bir cihazın ekran görüntüsünde olduğu gibi vücuda, belki bileğe takılması gerekir.

Android cihaz uygulamaları, aşağıdaki tüm gereksinimleri karşılıyorsa izleme olarak sınıflandırılır: şu ölçütleri dikkate alın:

  • Fiziksel köşegen uzunluğu 1,1 ile 2,5 arasında olan bir ekrana sahip olmalıdır inç.
  • Vücuda takılmak üzere tasarlanmış bir mekanizmaya sahip olmalıdır.

Bu bölümün geri kalanındaki ek şartlar Android'e özeldir. Cihaz uygulamalarını izleyin.

2.4.1. Donanım

Cihaz uygulamalarını izleyin:

  • [7.1.1.1/W-0-1] şunu içeren bir ekran OLMALIDIR: fiziksel diyagonal boyut 1,1 ile 2,5 inç arasında olmalıdır.

  • [7.2.3/W-0-1] Ana Ekran işlevinin kullanılabilmesi ZORUNLUDUR kullanıcıya ve Geri işlevine (UI_MODE_TYPE_WATCH içinde olması dışında) ayarlayın.

  • [7.2.4/W-0-1] Dokunmatik ekran girişini DESTEKLEMELİDİR.

  • [7.3.1/W-SR-1] 3 eksenli olması ÖNEMLE ÖNERİLİR ivme ölçer.

Yeni koşullarla başlayın

Watch cihazı uygulamaları Vulkan desteği içeriyorsa bunlar:

Yeni şartları sonlandırma

Saat cihazı uygulamalarında GPS/GNSS alıcısı varsa ve android.hardware.location.gps özelliği aracılığıyla uygulamalara veri gönderme onlar:

  • [7.3.3/W-1-1] GNSS ölçümlerini, etkinleştikten hemen sonra GPS/GNSS üzerinden hesaplanan bir konum henüz bildirilmemiş olsa bile bulunur.
  • [7.3.3/W-1-2] GNSS gerçek olmayan aralıklarını ve sözde aralıklarını Bildirmelisiniz. konumu belirlendikten sonra açık gökyüzü koşullarında, arama sonuçlarının hareket halinde veya saniyede 0,2 metreden daha az kareyle 20 metre içindeki konumu ve hızı hesaplamak için yeterlidir. 0, 2 metre (saniyede en az% 95'inde)

Watch cihazı uygulamaları 3 eksenli bir jiroskop içeriyorsa:

  • [7.3.4/W-2-1] Yön değişikliklerini ölçebilmesi ZORUNLUDUR saniyede 1000 dereceye kadar.

Cihaz uygulamalarını izleyin:

  • [7.4.3/W-0-1] Bluetooth'u desteklemektedir.

  • [7.6.1/W-0-1] en az 1 GB uygulamanın özel verileri için kullanılabilen kalıcı depolama alanı ("/veri" bölümü olarak da bilinir).

  • [7.6.1/W-0-2] en az 416 MB belleği OLMALIDIR tarafından kullanılabilir.

  • [7.8.1/W-0-1] bir mikrofon İÇERMELİDİR.

  • [7,8,2/W] ses çıkışı OLABİLİR.

2.4.2. Multimedya

Ek şart yoktur.

2.4.3. Yazılım

Cihaz uygulamalarını izleyin:

  • [3/W-0-1] Özelliğin bildirilmesi ZORUNLUDUR android.hardware.type.watch.
  • [3/W-0-2] uiMode = UI_MODE_TYPE_Watch.
  • [3.2.3.1/W-0-1] Birinin önceden yüklenmesi ZORUNLUDUR intent işleyicisi olan daha fazla uygulama ya da hizmet bileşenine aşağıdaki uygulama tarafından tanımlanan tüm genel amaç filtre kalıpları amaçları burada bulabilirsiniz.

Cihaz uygulamalarını izleyin:

  • [3.8.4/W-SR-1] Şiddetle ÖNERİLİR Destek işlemini gerçekleştirmek için cihaza bir asistan eklemek.

android.hardware.audio.output bildiriminde bulunan cihaz uygulamalarını izleyin özellik bayrağı:

  • [3.10/W-1-1] üçüncü taraf erişilebilirliğini DESTEKLEMELİDİR kullanıma sunuyoruz.
  • [3.10/W-SR-1] Önceden yükleme işlemi ÖNEMLE ÖNERİLİR cihazdaki erişilebilirlik hizmetleri, işlevlerle karşılaştırılabilir veya aşan işlevler ve TalkBack'in (önceden yüklenmiş (metin okuma motoru) erişilebilirlik hizmetlerine (ör. TalkBack açık kaynak projesi.

Saat cihazı uygulamaları, android.hardware.audio.çıkış özelliğini bildiriyorsa onlar:

  • [3.11/W-SR-1] Bir Cihazda kullanılabilen dilleri destekleyen TTS motoru.

  • [3.11/W-0-1] şunların yüklenmesini DESTEKLEMELİDİR: üçüncü taraf TTS motorları

2.4.4. Performans ve Güç

Saat cihazı uygulamaları, cihaz gücünü iyileştirecek özellikler içeriyorsa AOSP'ye dahil olan ya da Google Play Store'a dahil olan özelliklerin AOSP'de:

  • [8.3/W-SR-1] Aşağıdaki bilgileri sağlaması ÖNEMLE ÖNERİLİR: Uygulama Bekleme Modu'ndan muaf olan tüm uygulamaları görüntüleme ve Güç tasarrufu modlarında doz yapın.
  • [8.3/W-SR-2] Aşağıdaki bilgileri sağlaması ÖNEMLE ÖNERİLİR: kullanıcının pil tasarrufu özelliğini etkinleştirmesi ve devre dışı bırakması gerekir.

Cihaz uygulamalarını izleyin:

  • [8.4/W-0-1] ZORUNLUDUR mevcut tüketim değerini tanımlayan bileşen başına güç profili her bir donanım bileşenine ve bu bileşenin neden olduğu bileşenlerine örnek olarak verebiliriz.
  • [8.4/W-0-2] tüm gücü bildirmelidir Miliamper saat (mAh) cinsinden tüketim değerleri.
  • [8.4/W-0-3] CPU gücü GEREKLİ tüketim değerini belirlemenize yardımcı olur. Android Açık Kaynak Projesi, uid_cputime çekirdek modülü uygulaması aracılığıyla sağlamanız gerekiyor.
  • [8.4/W-0-4] bu güç kullanımının zorunlu olması ZORUNLUDUR adb shell dumpsys batterystats üzerinden kullanılabilir kabuk komutunu kullanabilirsiniz.
  • [8.4/W], donanım bileşeninin güç kullanımını ilişkilendiremezse donanım bileşeninin kendisi bir şekilde tanımlar.

2.4.5. Güvenlik Modeli

Cihaz uygulamalarını izleyin:

  • [9/W-0-1], android.hardware.security.model.compatible kimliğini beyan etmelidir özelliğini kullanabilirsiniz.

Watch cihazı uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirmezler:

  • [9.5/W-1-1] kısıtlı profilleri DESTEKLEMELİDİR, Cihaz sahiplerinin ek kullanıcıları ve diğer kullanıcıları yönetmesine olanak tanıyan bir özellik cihazdaki özellikleri kontrol edebilirsiniz. Kısıtlanmış profiller sayesinde cihaz sahipleri şunları yapabilir: ek kullanıcıların çalışabileceği ayrı ortamlar oluşturmayı ve daha ayrıntılı kısıtlamaları yönetme olanağı sayesinde bu ortamlarda kullanılabilir.

Watch cihazı uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirdiğinde:

  • [9.5/W-2-1] Kısıtlı özelliği DESTEKLEMEMELİDİR ama kontrollerin AOSP uygulamasıyla uyumlu olması ZORUNLUDUR diğer kullanıcıların sesli aramalara ve SMS'lere erişmesini etkinleştirme /devre dışı bırakma.

Yeni koşullarla başlayın

Cihaz uygulamalarında güvenli bir kilit ekranı varsa ve TrustAgentService System API'yi uygulayan bir veya daha fazla güven aracısı varsa bunlar:

  • [9.11.1/W-1-1], önerilen birincil kimlik doğrulama yöntemlerinden biri (ör. PIN, desen, şifre) için kullanıcıyı 72 saatte bir kezden daha sık sınaması ZORUNLUDUR.

Yeni şartları sonlandırma

2.5. Otomotiv Gereksinimleri

Android Automotive uygulaması, çalışan bir araç ana birimini belirtir. Sistemin bir kısmı veya tamamı için işletim sistemi olarak Android ve/veya bilgi-eğlence işlevi sunuyor.

Android cihaz uygulamaları aşağıdaki durumlarda Automotive olarak sınıflandırılır. android.hardware.type.automotive özelliğini kullanın veya aşağıdaki şartların tümünü karşılayın ölçütlerine bağlıdır.

  • Bir otomotiv aracının parçası olarak yerleştirilmiş veya takılabilir.
  • Sürücü koltuğu sırasında birincil ekran olarak bir ekran kullanıyorsanız.

Bu bölümün geri kalanındaki ek şartlar Android'e özeldir. Otomotiv cihaz uygulamaları.

2.5.1. Donanım

Otomotiv cihaz uygulamaları:

  • [7.1.1.1/A-0-1] Ekran en az 6 olmalıdır inç olarak ayarlayın.
  • [7.1.1.1/A-0-2] Ekran boyutu düzeninin olması ZORUNLUDUR en az 750 dp x 480 dp olmalıdır.
  • [7.2.3/A-0-1], Ana Sayfa işlevini ve Geri ve Son işlevlerini sağlayabilir.
  • [7.2.3/A-0-2] hem normal hem de uzun basmanın ZORUNLUDUR Geri işlevinin etkinliği (KEYCODE_BACK) geçiş yapabilirsiniz.
  • [7.3/A-0-1] Uygulanması ve bildirilmesi ZORUNLUDUR GEAR_SELECTION, NIGHT_MODE, PERF_VEHICLE_SPEED ve PARKING_BRAKE_ON.
  • [7.3/A-0-2] The value of NIGHT_MODE işareti, kontrol panelinin gün/gece moduyla tutarlı OLMALI ve ortam ışığı sensörü girişi. Temel ortam ışığı sensörü aynı OLABİLİR Fotometre olarak kullanılır.
  • [7.3/A-0-3] Sensör ek bilgi alanı ZORUNLUDUR TYPE_SENSOR_PLACEMENT olarak sağlanan her sensör için SensorAdditionalInfo'nun bir parçası olarak sunulur.
  • [7.3/A-SR1] Ölü kabul EDİLEBİLİR Konum GPS/GNSS'yi ek sensörlerle birleştirerek. Konum gerçek olmadığı düşünülürse, bu verileri uygulamak ve ilgili Sensör türler ve/veya Araç Mülk Kimlikleri kullanılır.
  • [7.3/A-0-4] Konum LocationManager#requestLocationUpdates() aracılığıyla istendi Harita EŞLEŞMEMELİDİR.

  • [7.3.1/A-0-4] Android'e UYMALIDIR araba sensörü koordinat sistemi.

  • [7.3/A-SR-1] 3 eksenli içermek için STRONGLY_RECOMMENDED ivme ölçer ve 3 eksenli jiroskop.

  • [7.3/A-SR-2] Uygulanması ve bildirilmesi benzeri TYPE_HEADING sensörü.

Otomotiv cihaz uygulamaları OpenGL ES 3.1'i destekliyorsa bunlar:

  • [7.1.4.1/A-0-1] şunu bildirmeli: OpenGL ES 3.1 veya sonraki sürümleri.
  • [7.1.4.1/A-0-2] Vulkan 1.1'i DESTEKLEMELİDİR.
  • [7.1.4.1/A-0-3] Vulkan yükleyicisini İÇERMELİDİR ve tüm simgeleri dışa aktarabilirsiniz.

Yeni koşullarla başlayın

Otomotiv cihaz uygulamaları Vulkan desteği içeriyorsa bunlar:

Yeni şartları sonlandırma

Otomotiv cihaz uygulamaları ivme ölçer içeriyorsa:

  • [7.3.1/A-1-1] Etkinlikleri belirli bir sıklıkta raporlayabilmesi ZORUNLUDUR en az 100 Hz hızda.

Cihaz uygulamaları 3 eksenli ivme ölçer içeriyorsa:

  • [7.3.1/A-SR-1] sınırlı eksenli ivme ölçer için kompozit sensör.

Otomotiv cihaz uygulamaları, Bunlar:

  • [7.3.1/A-1-3] Uygulanması ve bildirilmesi ZORUNLUDUR TYPE_ACCELEROMETER_LIMITED_AXES sensörü.
  • [7.3.1/A-1-4] Uygulanması ve bildirilmesi ZORUNLUDUR TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED sensörü.

Otomotiv cihaz uygulamalarında jiroskop varsa:

  • [7.3.4/A-2-1] Etkinlikleri belirli bir sıklıkta raporlayabilmesi ZORUNLUDUR en az 100 Hz hızda.
  • [7.3.4/A-2-3] Yön değişikliklerini ölçebilmesi ZORUNLUDUR saniyede 250 dereceye kadar.
  • [7.3.4/A-SR-1] jiroskopun ölçüm aralığı, çözünürlüğü en üst düzeye çıkarmak için +/-250 dps olarak ayarlandı yapmasını sağlar.

Otomotiv cihaz uygulamaları 3 eksenli bir jiroskop içeriyorsa:

  • [7.3.4/A-SR-2] sınırlı eksenli jiroskop için kompozit sensör.

Otomotiv cihaz uygulamalarında 3 eksenden kısa bir jiroskop varsa:

  • [7.3.4/A-4-1] Uygulanması ve bildirilmesi ZORUNLUDUR TYPE_GYROSCOPE_LIMITED_AXES sensörü.
  • [7.3.4/A-4-2] Uygulanması ve bildirilmesi ZORUNLUDUR TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED sensörü.

Otomotiv cihaz uygulamaları bir GPS/GNSS alıcısı içeriyor ancak bunu içermiyorsa hücresel ağ tabanlı veri bağlantısını içerir:

  • [7.3.3/A-3-1] ilk kez konumu TAKİP ETMELİDİR GPS/GNSS alıcısı açıldığında veya 60 saniye içinde 4 günden uzun süre geçtikten sonra.
  • [7.3.3/A-3-2] İlk düzeltmeye kadar geçen süre kriterlerini 7.3.3/C-1-2 ve 7.3.3/C-1-6'da açıklanmıştır için tüm diğer konum istekleri (ör.ilk kez olmayan istekler) (en az 4 gün sonra) için geçerlidir. 7.3.3/C-1-2 şartı genellikle hücresel ağ tabanlı veri bağlantısı olmayan araçlarda karşılanır alıcı üzerinde hesaplanan GNSS yörünge tahminlerini veya bilinen son aracın konumu ve uygun bir konum doğruluğu ile en az 60 saniye 7.3.3/C-1-3 ya da her ikisinin kombinasyonu

Otomotiv cihazı uygulamaları bir TYPE_HEADING sensörü içeriyorsa:

  • [7.3.4/A-4-3] Etkinlikleri belirli bir sıklıkta raporlayabilmesi ZORUNLUDUR bir hıza sahip olmalıdır.
  • [7.3.4/A-SR-3] Belirli bir zamana kadarki etkinlikleri raporlamak için en az 10 Hz'lik bir frekans.
  • Gerçek kuzeyle ilgili olmalıdır.
  • Araç hareketsiz olsa bile kullanılabilmelidir.
  • Çözünürlüğü en az 1 derece olmalıdır.

Otomotiv cihaz uygulamaları:

  • [7.4.3/A-0-1] Bluetooth'u desteklemektedir ve Bluetooth LE'yi destekler.
  • [7.4.3/A-0-2] Android Automotive uygulamaları Aşağıdaki Bluetooth profillerini DESTEKLEMELİDİR:
    • Eller Serbest Profili (HFP) üzerinden telefon araması.
    • Ses Dağıtım Profili (A2DP) üzerinden medya oynatma.
    • Uzaktan Kumanda Profili (AVRCP) üzerinden medya oynatma kontrolü.
    • Telefon Rehberi Erişim Profili'ni (PBAP) kullanarak kişi paylaşma.
  • [7.4.3/A-SR-1] Desteklenmesi ÖNEMLE ÖNERİLİR Mesaj erişim profili (MAP)

  • [7.4.5/A] Hücresel ağ desteği İÇERMELİDİR ağ tabanlı veri bağlantısı.

  • [7.4.5/A] System API'Yİ KULLANABİLİR Şunun için NetworkCapabilities#NET_CAPABILITY_OEM_PAID sabiti: belirli ağların kullanılmasıdır.

Yeni koşullarla başlayın

Cihaz uygulamaları, AM/FM radyo yayını desteği içeriyorsa ve özellikler:

  • [7,4,10/A-0-1] FEATURE_BROADCAST_RADIO için destek beyanı ZORUNLUDUR.

Yeni şartları sonlandırma

Dış görüş kamerası, cihazın dışındaki sahneleri gösteren bir kameradır Örneğin, dikiz kamerası gibi.

Otomotiv cihaz uygulamaları:

  • Bir veya daha fazla dış görünüm kamerası İÇERMELİDİR.

Otomotiv cihaz uygulamalarında bir dış görünüm kamerası varsa, kullanıyorlardı:

  • [7.5/A-1-1] Dış görünüm kameralarına erişilebilir OLMAMALIDIR Android Kamera API'leri üzerinden temel kamera gereksinimleri ile.
  • [7.5/A-SR-1] Döndürülmemesi Şiddetle ÖNERİLİR veya kamera önizlemesini yatay olarak yansıtmalıdır.

  • [7.5/A-SR-2] Bir çözüme sahip olması Şiddetle ÖNERİLİR en az 1,3 megapiksel olmalıdır.

  • Sabit odaklı veya EDOF (genişletilmiş alan derinliği) donanıma sahip olması gerekir.

  • Donanım otomatik odaklama veya yazılımda otomatik odaklama uygulanmış olabilir. çok kolaylaşır.

Otomotiv cihazı uygulamalarında bir veya daha fazla dış görüş kamerası varsa ve Dış Görüş Sistemi (EVS) hizmetini yüklerse, böyle bir kamera için:

  • [7.5/A-2-1] Döndürülemez veya yatay olarak yansıtılamaz kamera önizlemesi.

Otomotiv cihaz uygulamaları:

  • Üçüncü tarafların kullanabileceği bir veya daha fazla kamera içerebilir izin verir.

Otomotiv cihazı uygulamalarında en az bir kamera varsa ve kullanımına açık olduğu zaman:

  • [7.5/A-3-1] özellik bayrağının Bildirilmesi ZORUNLUDUR android.hardware.camera.any.
  • [7.5/A-3-2] kameranın sistem kamerası.
  • Bölüm 7.5.3'te açıklanan harici kameraları destekleyebilir.
  • Arkaya bakan özellikler (otomatik odaklama vb.) içerebilir bölüm 7.5.1'de gösterildiği gibi.

Yeni koşullarla başlayın

Arka kamera, herhangi bir konuma yerleştirilebilecek dünyaya bakan kamera anlamına gelir araç kabininin dışına dönük olmalıdır; yani arka görüş kamerası gibi, araç gövdesinin uzak tarafındaki görüntülerin yer aldığı sahneler.

Ön kamera, herhangi bir konuma yerleştirilebilecek, kullanıcıya bakan bir kamera anlamına gelir. aracın üzerine yerleştirin ve kabinin içine bakıyor; bu kadar Örneğin, video konferans ve benzer uygulamalar için kullanılacak görüntüler.

Otomotiv cihaz uygulamaları:

  • [7.5/A-SR-1] Dünyaya bakan bir veya daha fazla öğe eklemeniz ÖNEMLE ÖNERİLİR kameralar.
  • Bir veya daha fazla kullanıcıya yönelik kamera içerebilir.
  • [7.5/A-SR-2] Eşzamanlı yayınını desteklemek üzere ÖNEMLE ÖNERİLİR: birden fazla kamera kullanın.

Otomotiv cihaz uygulamalarında, YouTube'da otomatik olarak şöyle bir kamera için:

  • [7.5/A-1-1] Kameranın uzun boyutunun aynı hizaya gelmesi gerekir. X-Y düzleminde Android otomotiv sensör eksenleri yer alıyor.
  • [7.5/A-SR-3] Sabit odaklı veya EDOF'nin olması ÖNEMLE ÖNERİLİR (Genişletilmiş Alan Derinliği) donanımını kullanmanıza olanak tanır.
  • [7.5/A-1-2] Dünyaya bakan birincil kamera ZORUNLUDUR en düşük kamera kimliğine sahip fotoğraf makinesi.

Otomotiv cihaz uygulamalarında, YouTube'da otomatik olarak (ör. böyle bir kamera için):

  • [7.5/A-2-1] Kullanıcıya bakan birincil kamera ZORUNLUDUR en düşük kamera kimliğiyle çekim yapın.
  • Kameranın uzun boyutu X-Y ile aynı hizada olabilir. Android otomotiv sensör eksenleri düzlemi.

Automotive cihaz uygulamalarında ya android.hardware.Camera ya da android.hardware.camera2 API olursa:

  • [7.5/A-3-1] Bölüm 7.5'teki temel kamera şartlarına UYMALIDIR.

Otomotiv cihaz uygulamalarında erişilebilir olmayan bir kamera varsa android.hardware.Camera ya da android.hardware.camera2 API üzerinden, ardından onlar:

  • [7.5/A-4-1] Genişletilmiş Görünüm Sistemi hizmeti aracılığıyla erişilebilir ZORUNLUDUR.

Otomotiv cihaz uygulamalarında, telefon üzerinden erişilebilen bir veya daha fazla kamera varsa Genişletilmiş Görünüm Sistemi Hizmeti'ni kullananlar:

  • [7.5/A-5-1] Kamera önizlemesini DÖNMEMELİ veya yatay olarak YAZMAMALIDIR.
  • [7.5/A-SR-4] En az 1,3 çözünürlüğe sahip olmaları ÖNEMLE ÖNERİLİR megapiksel.

Otomotiv cihazı uygulamalarında, kamyonu sürekli olarak kullanan Hem Genişletilmiş Görünüm Sistem Hizmeti hem de android.hardware.Camera yoluyla erişilebilir ya da android.hardware.Camera2 API'sini kullanarak, böyle bir kamera için:

  • [7.5/A-6-1] aynı kamera kimliğini bildirmelidir.

Otomotiv cihaz uygulamaları özel bir kamera API'si sağlıyorsa bunlar:

Yeni şartları sonlandırma

Otomotiv cihaz uygulamaları:

  • [7.6.1/A-0-1] en az 4 GB uygulama özel verileri için kullanılabilen kalıcı depolama alanı ("/veri" bölümü olarak da bilinir.)

  • [7.6.1/A] Veri bölümü biçimlendirilmelidir Örneğin, flaş depolama alanında performans ve dayanıklılık f2fs dosya sistemi kullanılıyor.

Automotive cihaz uygulamaları, bir bölümünde aşağıdakileri yapar:

  • [7.6.1/A-SR-1] Daha düşük olması ÖNERİLİR Harici depolamada gerçekleştirilen işlemlerde (örneğin, SDCardFS kullanılıyor.

Otomotiv cihaz uygulamaları 64 bitse:

  • [7.6.1/A-2-1] Çekirdek tarafından kullanılabilen bellek ve aşağıdaki yoğunluklardan herhangi biri kullanılırsa kullanıcı alanının en az 816 MB olması ZORUNLUDUR:

    • Küçük/normal ekranlarda 280 dpi veya daha düşük
    • Ekstra büyük ekranlarda ldpi veya daha düşük
    • Büyük ekranlarda mdpi veya daha düşük
  • [7.6.1/A-2-2] Çekirdek tarafından kullanılabilen bellek ve aşağıdaki yoğunluklardan herhangi biri kullanılırsa kullanıcı alanının en az 944 MB olması ZORUNLUDUR:

    • Küçük/normal ekranlarda xhdpi veya üstü
    • Büyük ekranlarda hdpi veya üstü
    • ekstra büyük ekranlarda mdpi veya daha yüksek
  • [7.6.1/A-2-3] Çekirdek tarafından kullanılabilen bellek ve aşağıdaki yoğunluklardan herhangi biri kullanılırsa kullanıcı alanının en az 1280 MB olması ZORUNLUDUR:

    • Küçük/normal ekranlarda 400 dpi veya daha yüksek
    • Büyük ekranlarda xhdpi veya üstü
    • ekstra büyük ekranlarda tvdpi veya daha yüksek
  • [7.6.1/A-2-4] Çekirdek tarafından kullanılabilen bellek ve aşağıdaki yoğunluklardan herhangi biri kullanılırsa kullanıcı alanının en az 1824 MB olması ZORUNLUDUR:

    • Küçük/normal ekranlarda 560 dpi veya daha yüksek
    • Büyük ekranlarda 400 dpi veya daha yüksek
    • Ekstra büyük ekranlarda xhdpi veya daha yüksek

"Çekirdek ve kullanıcı alanı tarafından kullanılabilen bellek" yukarıdaki durum, halihazırda donanıma ayrılmış belleğe ek olarak sağlanan bellek alanı radyo, video vb. gibi bileşenler çekirdeğin altında yer almaz. cihaz uygulamalarını kontrol etme.

Otomotiv cihaz uygulamaları:

  • [7.7.1/A] Çevre birimi modunu destekleyen bir USB bağlantı noktası İÇERMELİDİR.

Otomotiv cihaz uygulamaları:

  • [7.8.1/A-0-1] bir mikrofon İÇERMELİDİR.

Otomotiv cihaz uygulamaları:

  • [7.8.2/A-0-1] Bir ses çıkışının olması ve android.hardware.audio.output.

2.5.2. Multimedya

Otomotiv cihaz uygulamalarının aşağıdaki ses kodlamasını DESTEKLEMELİDİR üçüncü taraf uygulamalarının kullanımına sunmak için kullanabileceğiniz bir araç paketidir.

  • [5.1/A-0-1] MPEG-4 AAC profili (AAC LC)
  • [5.1/A-0-2] MPEG-4 HE AAC Profili (AAC+)
  • [5.1/A-0-3] AAC ELD (geliştirilmiş düşük gecikmeli AAC)

Otomotiv cihaz uygulamalarının aşağıdaki video kodlamasını DESTEKLEMELİDİR ve bunların üçüncü taraf uygulamalarının kullanımına sunulmasını sağlayabilirsiniz:

  • [5.2/A-0-1] H.264 AVC
  • [5.2/A-0-2] VK8

Otomotiv cihaz uygulamalarının aşağıdaki video kod çözme özelliğini desteklemesi ZORUNLUDUR ve bunların üçüncü taraf uygulamalarının kullanımına sunulmasını sağlayabilirsiniz:

  • [5,3/A-0-1] H.264 AVC
  • [5.3/A-0-2] MPEG-4 SP
  • [5.3/A-0-3] VK8
  • [5,3/A-0-4] VK9

Otomotiv cihaz uygulamalarının, aşağıdaki video kodu çözmeyi deneyin:

  • [5.3/A-SR-1] H.265 HEVC

2.5.3. Yazılım

Otomotiv cihaz uygulamaları:

  • [3/A-0-1] Özelliğin bildirilmesi ZORUNLUDUR android.hardware.type.automotive.

  • [3/A-0-2] uiMode = UI_MODE_TYPE_CAR uzantısını DESTEKLEMELİDİR.

  • [3/A-0-3] android.car.* tıklayın.

Automotive cihaz uygulamaları aşağıdakileri kullanarak özel bir API sağlıyorsa android.car.CarPropertyManager - android.car.VehiclePropertyIds, onlar:

  • [3/A-1-1] Sisteme özel ayrıcalıklar EKLEMEMELİDİR kullanılmasını veya üçüncü taraf uygulamalarının engellenmesine engellenebilir.
  • [3/A-1-2] Şu anda SDK'da mevcut.

Otomotiv cihaz uygulamaları:

  • [3.2.1/A-0-1] Tümünü desteklemeli ve uygulamalıdır Otomotiv İzni referans sayfasında belirtildiği şekilde izin sabitleri için geçerlidir.

  • [3.2.3.1/A-0-1] Bir veya daha fazla Amaç işleyici içeren daha fazla uygulama veya hizmet bileşeni Aşağıdaki uygulama amaçları tarafından tanımlanan genel amaç filtre kalıpları burada listelenmiştir.

  • [3.4.1/A-0-1]; eksiksiz bir android.webkit.Webview API uygulanması.

Yeni koşullarla başlayın

  • [3.8/A-0-1] Mevcut ön plan kullanıcısı olmayan tam ikincil kullanıcıların etkinlik başlatmasına ve tüm ekranlarda kullanıcı arayüzüne erişmesine İZİN VERİLMEMELİDİR.

Yeni şartları sonlandırma

  • [3.8.3/A-0-1] GÖRÜNTÜLENMELİDİR Notification.CarExtender kullanan bildirimler Üçüncü taraf uygulamalar tarafından istendiğinde API.

  • [3.8.4/A-SR-1] Kesinlikle Önerilir Destek işlemini gerçekleştirmek için cihaza bir asistan eklemek.

Otomotiv cihaz uygulamalarında bas ve konuş düğmesi varsa bunlar:

  • [3.8.4/A-1-1] ŞUNU kısa bir şekilde basmanız ZORUNLUDUR: konuşmak için bas ve konuş düğmesini, kullanıcı tarafından seçilen destek uygulaması, diğer bir deyişle VoiceInteractionService.

Otomotiv cihaz uygulamaları:

  • [3.8.3.1/A-0-1] doğru şekilde ZORUNLUDUR Kaynakları Notifications on Automotive OS içinde açıklandığı şekilde oluşturun SDK belgeleri.
  • [3.8.3.1/A-0-2] GÖRÜNTÜLENMELİDİR Bildirim işlemleri için, Notification.Builder.addAction()
  • [3.8.3.1/A] bildirim kanalı başına denetimler gibi zengin yönetim görevlerinin kullanımı. Denetimleri azaltmak için her uygulama için kullanıcı arayüzü uygunluğu KULLANILABİLİR.

Otomotiv cihaz uygulamaları, Kullanıcı HAL özelliklerini destekliyorsa:

Otomotiv cihaz uygulamaları:

Automotive cihaz uygulamaları bir varsayılan başlatıcı uygulaması içeriyorsa:

Otomotiv cihaz uygulamaları:

  • [3.8/A] Uygulamayı kısıtlayabilir immersive documentation bölümünde açıklandığı gibi tam ekran moduna girme isteğinde bulunur.
  • [3.8/A] Durum çubuğunu koruyabilir ve gezinme çubuğu her zaman görünür durumda olmalıdır.
  • [3.8/A] Uygulamayı kısıtlayabilir renk değiştirme isteğinde bulunmak için bu öğeler her zaman net bir şekilde görünür olmalıdır.

2.5.4. Performans ve Güç

Otomotiv cihaz uygulamaları:

  • [8.2/A-0-1] her işlemin UID'si başına değişken olmayan depolama alanına okunup yazılan bayttır. Böylece geliştiricilerin System API üzerinden kullanıma sunulması android.car.storagemonitoring.CarStorageMonitoringManager. Android Açık Kaynak proje, uid_sys_stats çekirdek modülü aracılığıyla bu gereksinimi karşılar.
  • [8.3/A-1-3], Garaj Modu'nu DESTEKLEMELİDİR.
  • [8.3/A] En az süreyle Garaj Modu'nda olması GEREKİR Aşağıdaki durumlar haricinde her sürüşten 15 dakika sonra:
    • Pil tükenmiş.
    • Planlanmış boşta iş yok.
    • Sürücü, Garaj Modu'ndan çıkar.
  • [8.4/A-0-1] İÇERİĞE SAHİP bir mevcut tüketim değerini tanımlayan bileşen başına güç profili her bir donanım bileşenine ve bu bileşenin neden olduğu bileşenlerine örnek olarak verebiliriz.
  • [8.4/A-0-2] Tüm gücü bildirmelidir Miliamper saat (mAh) cinsinden tüketim değerleri.
  • [8.4/A-0-3] CPU gücü GEREKLİ tüketim değerini belirlemenize yardımcı olur. Android Açık Kaynak Projesi, uid_cputime çekirdek modülü uygulaması aracılığıyla sağlamanız gerekiyor.
  • [8.4/A] donanım bileşeninin güç kullanımını ilişkilendiremezse donanım bileşeninin kendisi bir şekilde tanımlar.
  • [8.4/A-0-4] bu güç kullanımının zorunlu olması ZORUNLUDUR adb shell dumpsys batterystats üzerinden kullanılabilir kabuk komutunu kullanabilirsiniz.

2.5.5. Güvenlik Modeli

Otomotiv cihaz uygulamaları birden fazla kullanıcıyı destekliyorsa:

Yeni koşullarla başlayın

Otomotiv cihaz uygulamalarında android.hardware.microphone bildiriliyorsa onlar:

  • [9.8.2/A-1-1] şu işlem sırasında mikrofon göstergesini GÖRÜNTÜLEMELİDİR: bir uygulama mikrofondan ses verilerine erişiyor ancak Mikrofona yalnızca HotwordDetectionService, SOURCE_HOTWORD ve Şurada belirtilen rolleri içeren ContentCaptureService veya uygulamalar: bölüm 9.1'de CDD tanımlayıcısına [C-4-X] bakın.
  • [9.8.2/A-1-2] için mikrofon göstergesini gizlenmemelidir görünür kullanıcı arayüzleri veya doğrudan kullanıcı etkileşimi olan sistem uygulamaları.
  • [9.8.2/A-1-3] mikrofon simgesine dokunun.

Yeni şartları sonlandırma

Otomotiv cihaz uygulamalarında android.hardware.camera.any bildiriliyorsa onlar:

  • [9.8.2/A-2-1] aşağıdaki durumlarda kamera göstergesini görüntülemelidir: Uygulama, canlı kamera verilerine erişiyor, ancak kamera yalnızca açık durumdayken erişim sağlamıyor. belirtilen rollere sahip uygulamalar tarafından erişilir. Bölüm 9.1 İzinler CDD tanımlayıcısı [C-4-X][C-3-X] ile değiştirildi.
  • [9.8.2/A-2-2] için kamera göstergesinin gizlenmemesi ZORUNLUDUR görünür kullanıcı arayüzleri veya doğrudan kullanıcı etkileşimi olan sistem uygulamaları.

Yeni koşullarla başlayın

  • [9.8.2/A-2-3]; kullanıcıya, Ayarlar uygulamasında kamerayı açıp kapatma imkanı ZORUNLUDUR.
  • [9.8.2/A-2-4] Son kullanılan ve etkin uygulamaların kamera kullanılarak döndürülmesi ZORUNLUDUR PermissionManager.getIndicatorAppOpUsageData() ile başlayan fiyatlarla ilişkilendirme mesajları için de kullanabilirsiniz.

Yeni şartları sonlandırma

Otomotiv cihaz uygulamaları:

  • [9/A-0-1] android.hardware.security.model.compatible ZORUNLUDUR özelliğini kullanabilirsiniz.
  • [9.11/A-0-1], anahtar deposu uygulamasını YEDEKLEMELİDİR yürütmeliyiz.
  • [9.11/A-0-2] RSA, AES, ECDSA ve HMAC şifreleme algoritmaları ile MD5, SHA1 ve SHA-2 ailesi Android KeyStore sisteminin desteklediğini doğru bir şekilde desteklemek için karma işlevleri çalışan koddan güvenli bir şekilde izole edilmiş bir alanda kullanılabilir. üst tarafında yer alır. Güvenli yalıtım, tüm olası mekanizmaları Engelleme GEREKİR bir veri kümesindeki çekirdek veya kullanıcı alanı kodunun, DMA dahil, izole bir ortamdan izole edilmiş olmalıdır. Yukarı akış Android Açık Kaynağı Proje (AOSP), bu şartı Trusty uygulamasını kullanarak karşılar, ancak başka bir ARM TrustZone tabanlı bir çözüm veya üçüncü bir tarafça incelenmiş güvenli bir çözüm uygun bir hipervizör tabanlı yalıtımının uygulanması, seçenekleri vardır.
  • [9.11/A-0-3], kilit ekranı YAPILMALIDIR kimlik doğrulama işlemini izole yürütme ortamında ve yalnızca başarılı olursa kimlik doğrulamaya bağlı anahtarların kullanılmasına izin verin. Kilit ekranı kimlik bilgilerinin, yalnızca izole çalıştırmaya izin verecek şekilde saklanabilmesi ZORUNLUDUR kilit ekranı kimlik doğrulaması gerçekleştirmesine yardımcı olur. Yukarı akış Android Açık Kaynak Projesi, Gatekeeper Donanım Soyutlama Katmanı (HAL) ve Trusty gibi araçlar mevcuttur.
  • [9.11/A-0-4], onay imzalama anahtarı güvenli bir donanımla korunur ve imzalama anahtarı güvenli donanımda yürütülür. Onay imzalama anahtarlarının paylaşılması ZORUNLUDUR anahtarların kullanılmasını engelleyecek kadar fazla sayıda cihazda kullanılabilir. . Bu şartı karşılamanın bir yolu da belirli bir SKU'nun en az 100.000 birimi yoksa aynı onay anahtarı üretilir. 100.000'den fazla SKU üretildiyse farklı bir anahtarı her 100.000 birim için kullanılabilir.

Önceki Android sürümünde cihaz uygulaması zaten kullanıma sunulmuşsa bu tür bir cihaz, bir anahtar deposuna sahip olma zorunluluğundan muaf izole bir yürütme ortamıyla desteklenir ve anahtar onayını destekler. gerektiren android.hardware.fingerprint özelliğini bildirmez. yalıtılmış bir yürütme ortamıyla desteklenen anahtar deposudur.

Otomotiv cihaz uygulamaları:

  • [9.14/A-0-1] ağ geçidi mesajları ZORUNLUDUR Android çerçevesi araç alt sistemlerinden gelen veriler (ör. izin verilen mesajları izin verilenler listesine ekleme) ve mesaj kaynakları hakkında bilgi edinin.
  • [9.14/A-0-2] güvenlik zamanlayıcısı karşılanmalıdır Android çerçevesinden veya üçüncü taraf uygulamalarından gelen hizmet reddi saldırıları. Bu araç ağını trafikle boğan kötü amaçlı yazılımlara karşı korur, Bu da araç alt sistemlerinin arıza yaşamasına yol açabilir.

2.5.6. Geliştirici Araçları ve Seçenek Uyumluluğu

Otomotiv cihaz uygulamaları:

  • Perfetto
    • [6.1/A-0-1] için bir /system/bin/perfetto GEREKLİDİR cmdline'ın uyumlu olduğu kabuk kullanıcısına ikili program perfetto dokümanlarını inceleyin.
    • [6.1/A-0-2] Perfetto ikilisi Şurada tanımlanan şemayla uyumlu bir protobuf yapılandırması girin: perfetto belgelerini inceleyin.
    • [6.1/A-0-3] Perfetto ikilisi Şurada tanımlanan şemaya uygun bir protobuf izi çıktısı verir perfetto belgelerini inceleyin.
    • [6.1/A-0-4] Perfetto üzerinden en azından perfetto belgelerinde açıklanan veri kaynakları olmalıdır.

2.6. Tablet Gereksinimleri

Android Tablet cihaz, bir cihazda çalışan bir uygulama veya genellikle aşağıdaki kriterlerin tümünü karşılar:

  • İki elinizle basılı tutarak kullanılır.
  • Kapaklı veya dönüştürülebilir yapılandırmaya sahip değil.
  • Cihazla kullanılan fiziksel klavye uygulamaları standart bir bağlantıdır (ör. USB, Bluetooth).
  • Pil gibi hareket sağlayan bir güç kaynağına sahip olmalıdır.

  • Çapraz olarak ölçülen 7 inçten büyük ve 18 inçten küçük ekran boyutuna sahip olmalıdır.

Tablet cihaz uygulamalarının, avuç içi cihazlarla benzer gereksinimleri vardır hakkında bilgi edindiniz. İstisnalar bu bölümde * ile belirtilmiştir ve bu bölümde referans olarak belirtilmiştir.

2.6.1. Donanım

Jiroskop

Tablet cihaz uygulamaları 3 eksenli bir jiroskop içeriyorsa:

  • [7.3.4/Tab-1-1] Yönü ölçebilmesi ZORUNLUDUR saniyede 1000 dereceye kadar değişir.

Minimum Bellek ve Depolama Alanı (Bölüm 7.6.1)

Avuç içi cihazdaki küçük/normal ekranlar için listelenen ekran yoğunlukları tabletler için geçerli değildir.

USB çevre birimi modu (Bölüm 7.7.1)

Tablet cihaz uygulamalarında çevre birimini destekleyen bir USB bağlantı noktası varsa kullanıyorlarsa:

  • [7.7.1/Sekme] Android Open Accessory (AOA) API'yi UYGULAMAYABİLİR.

Sanal Gerçeklik Modu (Bölüm 7.9.1)

Sanal Gerçeklik Yüksek Performans (Bölüm 7.9.2)

Sanal gerçeklik gereksinimleri tabletler için geçerli değildir.

2.6.2. Güvenlik Modeli

Anahtarlar ve Kimlik Bilgileri (Bölüm 9.11)

Bölüm [9.11]'e bakın.

Tablet cihaz uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirmezler:

  • [9.5/T-1-1] kısıtlı profilleri DESTEKLEMELİDİR, Cihaz sahiplerinin ek kullanıcıları ve diğer kullanıcıları yönetmesine olanak tanıyan bir özellik cihazdaki özellikleri kontrol edebilirsiniz. Kısıtlanmış profiller sayesinde cihaz sahipleri şunları yapabilir: ek kullanıcıların çalışabileceği ayrı ortamlar oluşturmayı ve daha ayrıntılı kısıtlamaları yönetme olanağı sayesinde bu ortamlarda kullanılabilir.

Tablet cihaz uygulamaları birden fazla kullanıcı içeriyorsa ve android.hardware.telephony özellik bayrağını bildirdiğinde:

  • [9.5/T-2-1] Kısıtlanmış ama kontrollerin AOSP uygulamasıyla uyumlu olması ZORUNLUDUR diğer kullanıcıların sesli aramalara ve SMS'lere erişmesini etkinleştirme /devre dışı bırakma.

2.6.2. Yazılım

  • [3.2.3.1/Tab-0-1] Birinin önceden yüklenmesi ZORUNLUDUR veya daha fazla uygulama ya da hizmet bileşenine sahip olan Aşağıdaki uygulama amaçları tarafından tanımlanan genel amaç filtre kalıpları burada listelenmiştir.

3. Yazılım

3.1. Yönetilen API Uyumluluğu

Yönetilen Dalvik bayt kodu yürütme ortamı, bulut tabanlı bir çözüm için Android uygulamaları. Android Uygulama Programlama Arayüzü (API) Android platformu arayüzlerinde çalışan yönetilen çalışma zamanı ortamı.

Cihaz uygulamaları:

  • [C-0-1] Belgelenen tüm uygulamalar dahil olmak üzere eksiksiz uygulamalar sunmak ZORUNLUDUR Android SDK tarafından kullanıma sunulan, belgelenmiş tüm API'lerin davranışları veya yukarı akış Android'de "@SystemApi" işaretçisiyle dekore edilmiş herhangi bir API kaynak kodudur.

  • [C-0-2] Tüm sınıfları, yöntemleri ve ilişkili öğeleri DESTEKLEMELİ/KORUMALIDIR (@TestApi) testApi ek açıklamasıyla işaretlenmiştir.

  • [C-0-3] Yönetilen API'leri atlamamalı, API arayüzlerini veya imzalarını değiştirmemelidir. veya herhangi bir işlem yapılmaması durumunda, bu Uyumluluk Tanımı tarafından özel olarak izin verilir.

  • [C-0-4] API'lerin mevcut durumda kalması ve davranması ZORUNLUDUR şekilde sunmasa da, Android'in sunduğu bazı donanım içerir. 7. bölüme bakın özel şartları inceleyin.

  • [C-0-5] Üçüncü taraf uygulamalarının SDK dışı arayüzler kullanmasına İZİN VERİLMEMELİDİR. Java dil paketlerinde bulunan yöntemler ve (AOSP'deki boot sınıf yolunda) ve herkese açık olmayan SDK'dır. Buna, @hide ek açıklamasıyla süslenmiş ancak etiketlenmemiş API'ler dahildir SDK dokümanlarında açıklandığı gibi bir @SystemAPI özel ve paket-özel sınıf üyeleri de dahil.

  • [C-0-6] SDK olmayan arayüzlerin her biriyle aynı kısıtlanmış arayüzde gönderilmesi ZORUNLUDUR geçici ve ret listesi işaretleriyle sağlandığı şekilde prebuilts/runtime/appcompat/hiddenapi-flags.csv yolunu izleyin.

  • [C-0-7] imzalı yapılandırmayı DESTEKLEMELİDİR SDK olmayan arayüzleri kısıtlanmış bir listeden kaldırmak için dinamik güncelleme mekanizması Mevcut ortak anahtarları kullanarak imzalı yapılandırmayı herhangi bir APK'ya yerleştirerek AOSP'de bulunur.

    Ancak:

    • Gizli bir API yoksa veya cihazda farklı bir şekilde uygulanmışsa OLABİLİR gizli API'yi ret listesine taşıyın veya tüm kısıtlanmış listelerde geçerlidir.
    • AOSP'de halihazırda gizli bir API yoksa gizli API'yi API'yi kullanabilirsiniz.

Yeni koşullarla başlayın

  • [C-0-8] API düzeyini hedefleyen uygulamaların yüklenmesini DESTEKLEMEMELİDİR 23'ten az.

Yeni şartları sonlandırma

3.1.1. Android Uzantıları

Android, belirli bir API düzeyinin yönetilen API yüzeyini söz konusu API düzeyi için uzantı sürümünü güncellemelidir. İlgili içeriği oluşturmak için kullanılan android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel) API, sağlanan apiLevel öğesinin uzantı sürümü (bunun için uzantılar varsa) API düzeyi.

Android cihaz uygulamaları:

  • [C-0-1] Her iki paylaşılan kitaplığın AOSP uygulamasının önceden yüklenmesi ZORUNLUDUR ExtShared ve ExtServices ya da daha büyük sürümlere sahip hizmetler Her API düzeyi için izin verilen minimum sürüm sayısı Örneğin, Android 7.0 API düzeyi 24'ün yüklü olduğu cihazlar için en az bir sürüm 1'e gidin.

  • [C-0-2] yalnızca AOSP tarafından tanımlanmıştır.

  • [C-0-3] Uzantı sürümleri tarafından tanımlanan tüm API'leri DESTEKLEMELİDİR android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel) tarafından iade edildi Desteklenen diğer yönetilen API'lerle aynı şekilde aşağıdaki adımları uygulayın: bölüm 3.1'de belirtilen şartları yerine getirin.

3.1.2. Android Kitaplığı

Apache HTTP istemcisinin kullanımdan kaldırılması nedeniyle, cihaz uygulamaları:

  • [C-0-1] org.apache.http.legacy kitaplığını bootclasspath ile değiştirin.
  • [C-0-2] org.apache.http.legacy kitaplığını uygulamaya EKLEMELİDİR classpath yalnızca uygulama aşağıdaki koşullardan birini karşıladığında:
    • API düzeyi 28 veya altını hedefler.
    • Manifest dosyasında <uses-library> özelliğinin android:name özelliği org.apache.http.legacy olarak değiştirildi.

AOSP uygulaması bu şartları karşılar.

3.2. Esnek API Uyumluluğu

Bölüm 3.1'deki yönetilen API'lere ek olarak, Android ayrıca, çalışma zamanına özel önemli bir "yumuşak" API'yi de Android uygulamalarının kullanım amaçları, izinleri ve benzer yönleri gibi uygulama derleme zamanında zorunlu kılınamaz.

3.2.1. İzinler

  • [C-0-1] Cihaz uygulayıcılarının tüm izinleri desteklemesi ve zorunlu kılması ZORUNLUDUR sabit değerlerini İzin referans sayfasında gösterin. Bölüm 9'da belirtilen ek şartların Google'ın Android güvenlik modeliyle ilgili gereksinimleri.

3.2.2. Derleme Parametreleri

Android API'leri android.os.Build sınıfı mevcut cihazı tanımlamayı amaçlıyor.

  • [C-0-1] Cihazlar arasında tutarlı ve anlamlı değerler sağlamak için aşağıdaki tabloda biçimlerle ilgili ek kısıtlamalar yer almaktadır. cihaz uygulamalarının uyması gerekir.
Parametre Ayrıntılar
SÜRÜM.YAYIN Yürütülen Android sisteminin insan tarafından okunabilen sürümü biçimindedir. Bu alanda, Android 14 için İzin Verilen Sürüm Dizeleri.
VERSION.SDK Yürütülen Android sisteminin biçimindeki sürümü tarafından erişilebilir. Android 14'te bu alan, 14_INT tam sayı değerine sahip olmalıdır.
VERSION.SDK_INT Yürütülen Android sisteminin biçimindeki sürümü tarafından erişilebilir. Android 14'te bu alan, 14_INT tam sayı değerine sahip olmalıdır.
SÜRÜM.EK Belirli derlemeyi belirleyen cihaz uygulayıcısı tarafından seçilen bir değer çalıştırılan Android sisteminin tamamını görebiliriz. Bu değeri, son kullanıcılara sunulan farklı derlemeler için yeniden KULLANILMAMALIDIR. CEVAP genellikle bir kod parçasının hangi derleme numarasını derlemeyi oluşturmak için kaynak denetimi değişiklik kimliği kullanıldı. Değer Bu alanın, yazdırılabilir 7 bit ASCII olarak kodlanabilmesi ve "^[^ :\/~]+$” normal ifadesi.
MASA Aracı uygulayıcısı tarafından seçilen belirli bir değer, cihaz tarafından kullanılan dahili donanım (kullanıcılar tarafından okunabilir biçimde). Olası Bu alanın kullanımı, güç yönetimi panosunun özel revizyonunu belirtmek için için geçerlidir. Bu alanın değerinin 7 bit ASCII olarak kodlanabilir ve "^[a-zA-Z0-9_-]+$" normal ifadesiyle eşleşir.
MARKA Cihazla ilişkilendirilmiş marka adını yansıtan, son kullanıcılara odaklanmasına yardımcı olur. İnsanlar tarafından okunabilecek biçimde olması ve cihazın üreticisi veya bağlı olduğu şirket markası gerekiyor. Bu alanın değerinin 7 bit ASCII olarak kodlanabilir ve eşleşmesi ZORUNLUDUR "^[a-zA-Z0-9_-]+$" normal ifadesi.
DESTEKLENMİŞ_ABIS Yerel komut grubunun adı (CPU türü + ABI kuralı) girin. Bkz. bölüm 3.3. Yerel API Uyumluluk.
SUPPORTED_32_BİT_ABIS Yerel komut grubunun adı (CPU türü + ABI kuralı) girin. Bkz. bölüm 3.3. Yerel API Uyumluluk.
SUPPORTED_64_BİT_ABIS İkinci talimat grubunun adı (CPU türü + ABI kuralı) yerel koda karşılık gelir. Bkz. bölüm 3.3. Yerel API Uyumluluğu.
CPU_ABI Yerel komut grubunun adı (CPU türü + ABI kuralı) girin. Bkz. bölüm 3.3. Yerel API Uyumluluk.
CPU_ABI2 İkinci talimat grubunun adı (CPU türü + ABI kuralı) yerel koda karşılık gelir. Bkz. bölüm 3.3. Yerel API Uyumluluğu.
CİHAZ Cihaz uygulayıcısı tarafından seçilen, geliştirme adını içeren bir değer veya donanım özelliklerinin yapılandırmasını tanımlayan kod adı ve cihazın tasarımını yapabiliriz. Bu alanın değeri kodlanabilir olmalıdır 7 bit ASCII olarak olmalı ve normal ifadeyle eşleşmelidir. "^[a-zA-Z0-9_-]+$". Bu cihaz adının kullanım ömrü boyunca kullanabilirsiniz.
PARÇA YAZILIMI Bu derlemeyi benzersiz şekilde tanımlayan bir dize. 14.000'in üzerinde emin olmanız gerekir. Aşağıdaki şablona uygun olması ZORUNLUDUR:

$(MARKA)/$(ÇARPIM)/
$(CİHAZ):$(VERSION.RELEASE)/$(Kimlik)/$(SÜRÜM.EK ):$(TYPE)/$(ETİKETLER)

Örnek:

acme/ürünüm/
mydevice:14/LMYXX/3359:kullanıcıhata ayıklama/test anahtarları

Parmak izi boşluk karakterleri İÇERMEMELİDİR. The value of bu alanın 7 bit ASCII olarak kodlanması ZORUNLUDUR.

DONANIM Donanımın adı (çekirdek komut satırından veya /proc'dan). Google İnsanlar tarafından makul ölçüde okunabilir olmalıdır. Bu alanın değeri ŞU ZORUNLUDUR 7 bit ASCII olarak kodlanabilir ve normal ifadeyle eşleşir "^[a-zA-Z0-9_-]+$".
BARINDIRMA Derlemenin temelini oluşturan ana makineyi benzersiz şekilde tanımlayan bir dize biçimi de vardır. ancak bu alan, null veya boş dize ("") OLMAMALIDIR.
Kimlik Cihaz uygulayıcısı tarafından belirli bir uygulamaya referans vermek için seçilen bir tanımlayıcı yayınlanacaktır. Bu alan android.os.Build.VERSION.INCREMENTAL, ancak yeterli bir değer OLMALIDIR ve yazılım derlemelerini birbirinden ayırt edebilmek için anlamlı bir çözüm sunar. Değer alanının 7 bit ASCII olarak kodlanması ve normal "^[a-zA-Z0-9._-]+$" ifadesi kullanılır.
ÜRETİCİ Özgün Donanım Üreticisi'nin (OEM) ticari adı olan belirler. Bu alanın biçimiyle ilgili herhangi bir şart yoktur. ancak, null veya boş dize ("") OLMAMALIDIR. Bu alan Ürünün kullanım ömrü boyunca DEĞİŞMEMELİDİR.
SOSYAL MEDYA ÜRETİCİSİ Birincil sistem üreticisinin adının çipin (SOC) kullanılması gerekir. Aynı SOC üreticisine sahip cihazlar aynı sabit değeri kullanmalıdır. Lütfen SOC üreticisinden aşağıdaki bilgileri isteyin: sabit değer belirleyin. Bu alanın değeri kodlanabilir olmalıdır 7 bit ASCII olarak, normal ifadeyle eşleşmesi ZORUNLUDUR “^([0-9A-Za-z ]+)”, boşlukla BAŞLAMAMALIDIR veya ve "unknown" değerine eşit OLMAMALIDIR. kullanım ömrü boyunca kullanabilirsiniz.
SOC_MODEL Bir çipteki (SOC) birincil sistemin model adı: gerekiyor. Aynı SOC modeline sahip cihazlarda aynı sabit değer kullanılmalıdır. değer. Lütfen kullanılacak doğru sabit değeri SOC üreticisinden isteyin. Bu alanın değerinin 7 bit ASCII olarak kodlanabilir olması ve "^([0-9A-Za-z ._/+-]+)$" normal ifadesi, boşlukla bitmelidir ve "unknown" değerine eşit OLMAMALIDIR. Bu alan Ürünün kullanım ömrü boyunca DEĞİŞMEMELİDİR.
MODEL Cihaz uygulayıcısı tarafından seçilen ve kullanıcı tarafından verilen bilgidir. Bu ad, web sitesinde Cihaz pazarlanıp son kullanıcılara satılır. Ürün İş Listesi’nde dışında, bu alanın kendine özgü biçimi null OLMAMALIDIR veya boş dize ("") kullanım ömrü boyunca kullanabilirsiniz.
ÜRÜN Cihaz uygulayıcısı tarafından seçilen, geliştirme adını içeren bir değer ürünün kendi kodu içinde benzersiz olması ZORUNLUDUR, birlikte çalışır. İnsanlar tarafından okunabilir olması ZORUNLUDUR, ancak görüntülenmesi amaçlanmamıştır son kullanıcılara göre. Bu alanın değerinin 7 bit ASCII olarak kodlanabilir ve "^[a-zA-Z0-9_-]+$" normal ifadesiyle eşleşir. Bu ürün ürünün kullanım ömrü boyunca DEĞİŞMEMELİDİR.
ODM_SKU Cihaz uygulayıcısı tarafından seçilen, isteğe bağlı olarak SKU (Stok Tutma Birimi), Cihaza (ör. satıldığında cihazla birlikte verilen çevre birimleri) dahil edilebilir. Bu alanın değerinin 7 bit ASCII olarak kodlanabilir olması ve ^([0-9A-Za-z.,_-]+)$ normal ifadesi.
SERİ "UNKNOWN" değerini döndürülmesi ZORUNLUDUR.
ETİKETLER Cihaz uygulayıcısı tarafından seçilen ve yapın. Etiketler 7 bit ASCII olarak kodlanabilir olmalıdır. "^[a-zA-Z0-9._-]+" normal ifadesiyle eşleşir ve üç tipik Android platformuna karşılık gelen değerlerden birine sahip imzalama yapılandırmaları: sürüm anahtarları, geliştirme anahtarları ve test anahtarları.
SÜRE Derlemenin gerçekleştiği zaman damgasını temsil eden değer.
TÜR Cihaz uygulayıcısı tarafından seçilen ve çalışma zamanını belirten bir değer yapılandırmanın üç yolu vardır. Bu alanda üç tipik Android çalışma zamanı yapılandırmasına karşılık gelir: kullanıcı, userdebug veya eng.
KULLANICI Oluşturan kullanıcının (veya otomatik kullanıcının) adı seçeceğiz. Bu alanın biçimiyle ilgili herhangi bir şart yoktur. ancak, null veya boş dize ("") OLMAMALIDIR.
SECURITY_PATCH Bir derlemenin güvenlik yaması seviyesini gösteren değer. Şuna işaret etmesi gerekir: sorunların hiçbirine karşı savunmasız olmadığını Android Kamu Güvenliği Bülteni ile duyurulacaktır. İçinde [YYYY-AA-GG] biçimini kullanabilirsiniz. Android Kamu Güvenliği Bültenden veya Android Security Advisory (örneğin, "01-11-2015").
TABAN_İşletim Sistemi Yapının FINGERPrint parametresini temsil eden bir değer: Android Kamu Güvenliği Bülteni. Doğru değeri BİLDİRMELİDİR ve böyle bir derleme mevcut değilse boş bir dize ("") bildirin.
TAKİPÇİ Aracı uygulayıcısı tarafından seçilen belirli bir değer, cihazda kullanılan dahili bootloader sürümü (kullanıcılar tarafından okunabilir biçimde). Bu alanın değerinin 7 bit ASCII olarak kodlanabilir olması ve normal ifade “^[a-zA-Z0-9._-]+$”.
getRadioVersion() Cihaz uygulayıcısı tarafından seçilen bir değer (olması veya döndürülmesi) ZORUNLUDUR cihazda kullanılan dahili radyo/modem sürümünü tanımlama, bir dosya yükleyin. Bir cihazda dahili radyo/modem NULL döndürür. Bu alanın değeri ŞU ZORUNLUDUR 7 bit ASCII olarak kodlanabilir ve normal ifadeyle eşleşir "^[a-zA-Z0-9._-,]+$".
getSerial() Bir donanım seri numarası OLMALI veya iade edilmelidir. Bu numaranın bulunması ZORUNLUDUR aynı MODEL ve ÜRETİCİYE sahip cihazlar arasında benzersizdir. The value of bu alanın 7 bit ASCII olarak kodlanabilir olması ve normal ifadeyle eşleşmesi ZORUNLUDUR "^[a-zA-Z0-9]+$".

3.2.3. Amaç Uyumluluğu

3.2.3.1. Genel Uygulama Amaçları

Android amaçları, uygulama bileşenlerinin diğer Android bileşenlerini kullanabilirsiniz. Android yukarı akış projesi şunları içerir: yaygın olarak kullanılan işlemleri gerçekleştirmek için çeşitli intent kalıpları uygulayan uygulamalardır.

Cihaz uygulamaları:

  • [C-SR-1] Bir veya daha fazla uygulamanın önceden yüklenmesi ya da tüm genel amaç filtreleri için intent işleyicili hizmet bileşenleri burada listelenen aşağıdaki uygulama amaçları tarafından tanımlanan kalıplar ve müşterinin beklentilerini karşılamak (ör. bu yaygın uygulamalar için geliştiricilerin SDK'da açıklandığı şekilde uygulama amaçları.

Zorunlu uygulama amaçları için lütfen Bölüm 2'ye bakın tıklayın.

3.2.3.2. Amaç Çözümü
  • [C-0-1] Android genişletilebilir bir platform olduğundan, cihaz uygulamalarının zorunlu kılınması ZORUNLUDUR bölüm 3.2.3.1'de başvurulan her bir intent kalıbına izin verin üçüncü taraf uygulamaları tarafından geçersiz kılınmasına neden olur. İlgili içeriği oluşturmak için kullanılan yukarı akış Android açık kaynak uygulaması varsayılan olarak buna izin verir.

  • [C-0-2] Cihaz uygulayıcıları sisteme özel ayrıcalıklar EKLEMEMELİDİR uygulamaların veya üçüncü taraf uygulamalarını engelleyerek üstlenilmesini de kolaylaştırıyor. Bu yasak "Seçici" kullanıcının devre dışı bırakılmasını içerir ancak bununla sınırlı değildir birden çok uygulama arasından seçim yapmasına olanak tanıyan bir arayüz aynı intent kalıbını ele alacağız.

  • [C-0-3] Cihaz uygulamalarında, kullanıcılara bir kullanıcı arayüzü sağlanmalıdır. intent'ler için varsayılan etkinliği değiştirin.

  • Ancak cihaz uygulamaları, belli bir Varsayılan etkinlik bir veri URI'si için daha spesifik bir özellik kullanabilirsiniz. Örneğin, bir intent filtre kalıbı "http://www.android.com" veri URI'sini belirtmek, Tarayıcının "http://" için temel intent kalıbı.

Android, üçüncü taraf uygulamalarının yasal izinleri yetkili varsayılan uygulama bağlama davranışı belirli web URI amaçları için kullanılır. Bu tür yetkili beyanlar uygulamanın intent filtresi kalıplarında, cihaz uygulamalarında tanımlanmıştır:

  • [C-0-4] Dijital Öğe Bağlantıları spesifikasyonunda tanımlanan doğrulama adımları Yukarı akış Android Açık Kaynağında Paket Yöneticisi tarafından uygulandığı şekliyle Proje.
  • [C-0-5] kurulumu sırasında intent filtrelerinin doğrulanması ZORUNLUDUR ve başarıyla doğrulanan tüm URI intent filtrelerini URI'ları için varsayılan uygulama işleyicileri.
  • Belirli URI intent filtrelerini, URI'ları için varsayılan uygulama işleyici olarak AYARLAYABİLİR, başarılı bir şekilde doğrulanır ancak diğer aday URI filtreleri başarısız olursa doğrulama. Bir cihaz uygulaması bunu yapıyorsa kullanıcı için uygun olan her URI'ya özel kalıp geçersiz kılma işlemlerini ayarlar.
  • Kullanıcıya Ayarlar'da uygulama bazında Uygulama Bağlantıları denetimlerinin sağlanması ZORUNLUDUR: şöyle olur:
    • [C-0-6] Kullanıcının, varsayılan uygulamayı bütün olarak geçersiz kılması ZORUNLUDUR bir uygulamanın her zaman açık olması, her zaman sorma veya hiçbir zaman açılmaması için bağlantı davranışının .
    • [C-0-7] Kullanıcının aday URI amacının bir listesini görebilmesi ZORUNLUDUR filtrelerine dokunun.
    • Cihaz uygulaması, kullanıcının şunları yapmasını sağlayabilir: Başarılı bir şekilde uygulanan belirli aday URI amaç filtrelerini geçersiz kıl oranında doğrulandığından emin olun.
    • [C-0-8] Cihaz uygulamasının, kullanıcılara cihaz kullanılıyorsa belirli aday URI amaç filtrelerini görüntüle ve geçersiz kıl uygulaması bazı aday URI amaç filtrelerinin başarılı olmasını sağlar bazıları başarısız olabilir.
3.2.3.3. Niyet Ad Alanları
  • [C-0-1] Cihaz uygulamaları, aşağıdaki özelliklere sahip herhangi bir Android bileşeni İÇERMEMELİDİR: bir ACTION, CATEGORY veya android.* veya com.android.* ad alanındaki diğer anahtar dizelerini kullanabilirsiniz.
  • [C-0-2] Cihaz uygulamaları bir ACTION, CATEGORY veya başka bir kuruluşa ait paket alanında bulunan başka bir anahtar dizesi olmalıdır.
  • [C-0-3] Cihaz uygulamaları, amaçlanan herhangi bir şeyi DEĞİŞTİRMEMELİ veya genişletmemelidir bölüm 3.2.3.1'de listelenen tüm kalıplar için geçerlidir.
  • Cihaz uygulamaları, ad alanlarını açıkça kullanan intent kalıpları İÇEREBİLİR ve açık bir şekilde kendi kuruluşlarıyla ilişkilidir. Bu yasak bölüm 3.6'da Java dili sınıfları için belirtilenlere benzerdir.
3.2.3.4. Yayın Amaçları

Üçüncü taraf uygulamalar, belli amaçları bildirmek için platformdan yararlanır onları donanım veya yazılım ortamındaki değişikliklerle ilgili bilgilendirme.

Cihaz uygulamaları:

  • [C-0-1] burada listelenen herkese açık yayın amaçlarını YAYINLAMALIDIR uygun sistem etkinliklerine yanıt olarak devreye sokmanız gerekir. Bu gereksinimin, arka plan uygulamalarıyla ilgili sınırlama, SDK'da da açıklanmıştır belgelerinden faydalanabilirsiniz. Ayrıca belirli yayın amaçları, donanıma göre koşullu olur desteği, cihaz gerekli donanımı destekliyorsa amaç ve davranışı SDK belgelerine göre sağlayın.
3.2.3.5. Koşullu Uygulama Amaçları

Android'de, kullanıcıların istedikleri öğeleri kolayca seçebilmelerini sağlayan ayarlar bulunur. (ör. Ana ekran veya SMS) varsayılan uygulamaları kullanır.

Mantıklı olduğu durumlarda, cihaz uygulamalarının benzer ayarlar sağlaması ZORUNLUDUR ve açıklanan intent filtresi kalıbı ve API yöntemleriyle uyumlu olmalıdır lütfen aşağıdaki gibi SDK dokümanlarına göz atın.

Cihaz uygulamaları android.software.home_screen bildiriminde bulunursa:

  • [C-1-1], android.settings.HOME_SETTINGS'na uygun hareket etmelidir ve Ana Ekran için varsayılan bir uygulama ayarları menüsü göstermek istiyor.

Cihaz uygulamaları android.hardware.telephony.calling bildiriminde bulunursa:

Cihaz uygulamaları android.hardware.nfc.hce bildiriminde bulunursa:

Cihaz uygulamaları android.hardware.nfc bildiriminde bulunursa:

Cihaz uygulamaları android.hardware.bluetooth bildiriminde bulunursa:

Cihaz uygulamaları DND özelliğini destekliyorsa:

  • [C-6-1] amaca yanıt verecek bir etkinlik uygulama ZORUNLUDUR ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS UI_MODE_TYPE_NORMAL uygulamaları için bunun, Kullanıcı, uygulamanın DND politika yapılandırmalarına erişmesine izin verebilir veya uygulamayı reddedebilir.

Cihaz uygulamaları, kullanıcıların Google Görüntülü Reklam Ağı'nda üçüncü taraf giriş yöntemlerini kullanmasına kullandığında:

  • [C-7-1] ekleme ve yapılandırma için kullanıcı tarafından erişilebilen bir mekanizma SAĞLAMALIDIR yanıt olarak üçüncü taraf giriş yöntemleri android.settings.INPUT_METHOD_SETTINGS isteyebilirsiniz.

Cihaz uygulamaları, üçüncü taraf erişilebilirlik hizmetlerini destekliyorsa:

  • [C-8-1], android.settings.ACCESSIBILITY_SETTINGS şartlarına uygun hareket etmelidir etkinleştirmek ve devre dışı bırakmak için kullanıcı tarafından erişilebilen bir mekanizma Önceden yüklenmiş erişilebilirlik özelliklerinin yanı sıra üçüncü taraf erişilebilirlik hizmetleri kullanıma sunuyoruz.

Cihaz uygulamaları Wi-Fi Easy Connect desteği içeriyorsa ve üçüncü taraf uygulamalarına yönelik olarak:

Cihaz uygulamaları veri tasarrufu modunu sağlıyorsa:

Cihaz uygulamaları veri tasarrufu modunu sağlamıyorsa:

Cihaz uygulamaları, android.hardware.camera.any, onlar:

Cihaz uygulamaları android.software.device_admin bildiriminde bulunursa:

Cihaz uygulamaları için android.software.autofill için şu özellikleri taşıdığını unutmayın:

Cihaz uygulamaları önceden yüklenmiş bir uygulama içeriyorsa veya izin vermek istiyorsa üçüncü taraf uygulamalarının kullanım istatistiklerine erişmesi için:

  • [C-SR-2]'nin kullanıcının erişimine açık bir mekanizma sağlaması ÖNEMLE ÖNERİLİR veya verilen e-postalara yanıt olarak kullanım istatistiklerine android.settings.ACTION_USAGE_ACCESS_SETTINGS amacı android.permission.PACKAGE_USAGE_STATS izni gerekir.

Cihaz uygulamaları, önceden yüklenmiş uygulamalar da dahil olmak üzere hiçbir uygulamaya izin vermemeyi amaçlıyorsa kullanım istatistiklerine erişemeyen uygulamalar:

  • [C-15-1] Yine de android.settings.ACTION_USAGE_ACCESS_SETTINGS intent kalıbının aynı olması gerekir ancak bunu işlem yok olarak uygulaması GEREKİR. Bu davranış, kullanıcının erişimi reddedildiğinde ortaya çıkar.

Cihaz uygulamaları, AutofillService_passwordsActivity kullanıcı şifrelerine benzer bir mekanizmaya yönlendiren bağlantılar kullanıyorsanız:

  • [C-16-1] Yüklü tüm otomatik doldurma hizmetleri için bu tür bağlantıları görüntülemesi ZORUNLUDUR.

Cihaz uygulamaları VoiceInteractionService özelliğini destekliyorsa ve daha fazla bu API'yi kullanan birden fazla uygulamayı tararsa:

Cihaz uygulamaları android.hardware.audio.output özelliğini bildiriyorsa onlar:

  • [C-SR-3] android.intent.action.TTS_SERVICE hizmetini dikkate alması ÖNEMLE ÖNERİLİR, android.speech.tts.engine.INSTALL_TTS_DATA ve android.speech.tts.engine.GET_ornek_TEXT amaçlarının sağlayabileceği bir etkinlik var buradaki SDK bölümünde açıklandığı şekilde bu amaçların yerine getirilmesini sağlayın.

Android'de, daha önce bahsedildiği üzere etkileşimli ekran koruyucular için destek sunulur. hayal eder. Ekran Koruyucular, bir cihaz kullanılırken kullanıcıların uygulamalarla etkileşimde bulunmasına olanak tanır boşta veya masa yuvasına takılı bir güç kaynağına bağlı olduğundan emin olun. Cihaz Uygulamaları:

  • Ekran koruyucular için destek içermeli ve uyarlayarak ekran koruyucu yapılandırmasına her zaman android.settings.DREAM_SETTINGS intent.

Yeni koşullarla başlayın

Cihaz uygulamaları android.hardware.nfc.uicc veya android.hardware.nfc.ese bildiriminde bulunursa onlar:

Yeni şartları sonlandırma

3.2.4. İkincil/birden çok ekrandaki etkinlikler

Cihaz uygulamaları, normal Android Etkinliklerinin :

  • [C-1-1], android.software.activities_on_secondary_displays ayarını YAPMALIDIR özellik bayrağı.
  • [C-1-2] birincil ekran.
  • [C-1-3] Yeni etkinliğin, etkinliğin bulunduğu ekranla aynı ekrana yeni etkinlik bir hedef belirtilmeden başlatıldığında başlatıldığını ActivityOptions.setLaunchDisplayId() üzerinden görüntüleyin API'ye gidin.
  • [C-1-4] Display.FLAG_PRIVATE bayrak kaldırılır.
  • [C-1-5] Cihaz kilitliyken içeriğin tüm ekranlarda güvenli bir şekilde gizlenmesi ZORUNLUDUR Uygulama, kilidin üzerinde göstermeyi etkinleştirmediği sürece güvenli bir kilit ekranıyla Activity#setShowWhenLocked() ile ekran API'ye gidin.
  • android.content.res.Configuration OLMALIDIR o ekrana karşılık gelen metin, resim ve metin ve Google Dokümanlar ile uyumlu bir şekilde çalışır ve ikincil görüntülü reklam.

Cihaz uygulamaları, ikincil cihazlarda normal Android Etkinliklerinin başlatılmasına izin veriyorsa ikinci ekranda da android.view.Display.FLAG_PRIVATE bulunuyor işaretle:

  • [C-3-1] Yalnızca o ekranın, sistemin ve etkinliklerin sahibi o ekranda başlatılabilmesi gerekir. Herkes tarafından başlatılma android.view.Display.FLAG_PUBLIC öğesine sahip bir ekran tıklayın.

3.3. Yerel API Uyumluluğu

Yerel kod uyumluluğu zordur. İşte bu nedenle cihazlar şunlardır:

  • [C-SR-1] Kitaplıkların uygulamalarının kullanılması ÖNEMLE ÖNERİLİR Android Açık Kaynak Projesi'nde görebilirsiniz.

3.3.1. Uygulama İkili Arabirimleri

Yönetilen Dalvik bayt kodu, uygulamada sağlanan yerel kodu çağırabilir .apk dosyasını, uygun cihaz donanımı için derlenmiş bir ELF .so dosyası olarak bahsedeceğim. Yerel kod, temel işlemciye büyük ölçüde bağlı olduğundan teknolojisinin kullanıldığı bir ortamda, Android bir dizi Uygulama İkili Arabirimi'ni (ABI'ler) Android NDK.

Cihaz uygulamaları:

  • [C-0-1], tanımlı bir veya daha fazla Android NDK ABI'si ile uyumlu OLMALIDIR.
  • [C-0-2] Aşağıdaki işlemler için yönetilen ortamda çalışan kod desteği içermesi ZORUNLUDUR: standart Java Yerel Arayüzü (JNI) kullanarak yerel koda çağrı yapma anlambilim.
  • [C-0-3] kaynak uyumlu (ör. başlıkla uyumlu) ve listedeki her gerekli kitaplıkla ikili uyumlu (ABI için) bölümüne göz atın.
  • [C-0-5] Yerel Uygulama İkili Arabirimi'ni doğru şekilde BİLDİRMELİDİR (ABI), android.os.Build.SUPPORTED_ABIS aracılığıyla cihaz tarafından destekleniyor android.os.Build.SUPPORTED_32_BIT_ABIS ve android.os.Build.SUPPORTED_64_BIT_ABIS parametre, her biri virgülle ayrılmış ABI'lerin listesi, en çok tercih edilenden en az tercih edilene doğru sıralanır.
  • [C-0-6] Yukarıdaki parametreler aracılığıyla aşağıdaki ABI'lerin listesini oluşturmalı ve listede olmayan ABI'leri BİLDİRMEMELİDİR.

  • [C-0-7] yerel API'ler sağlayarak aşağıdaki tüm kitaplıkları YAPMALIDIR. yerel kod içeren uygulamalarda kullanılabilir:

    • libaaudio.so (AAudio yerel ses desteği)
    • libamidi.so (yerel MIDI desteği, özellik android.software.midi ise Bölüm 5.9'da açıklandığı şekilde hak talebinde bulunulduğunda)
    • libandroid.so (yerel Android etkinlik desteği)
    • libc (C kitaplığı)
    • libkamera2ndk.so
    • libdl (dinamik bağlayıcı)
    • libEGL.so (yerel OpenGL yüzey yönetimi)
    • libGLESv1_CM.so (OpenGL ES 1.x)
    • libGLESv2.so (OpenGL ES 2.0)
    • libGLESv3.so (OpenGL ES 3.x)
    • libicui18n.so
    • libicuuc.so
    • libjnigraphics.so
    • liblog (Android günlük kaydı)
    • libmediandk.so (yerel medya API'leri desteği)
    • libm (matematik kitaplığı)
    • libneuralnetworks.so (Neural Networks API)
    • libOpenMAXAL.so (OpenMAX AL 1.0.1 desteği)
    • libOpenSLES.so (OpenSL ES 1.0.1 ses desteği)
    • libRS.so
    • libstdc++ (C++ için minimum destek)
    • libvulkan.so (Vulkan)
    • libz (Zlib sıkıştırma)
    • JNI arayüzü
  • [C-0-8] yerel kütüphaneler için herkese açık işlevler EKLEMEMELİ veya KALDIRILMAMALIDIR listelenenler gibi.

  • [C-0-9] Doğrudan etkilenen AOSP olmayan ek kitaplıkların listelenmesi ZORUNLUDUR /vendor/etc/public.libraries.txt içindeki üçüncü taraf uygulamaları.

  • [C-0-10] diğer yerel kitaplıkları KULLANMAMALIDIR. AOSP'de, API'yi hedefleyen üçüncü taraf uygulamalarına sistem kitaplıkları olarak sağlanır 24. seviye veya üst seviyeler yer alıyor.

  • [C-0-11] Tüm OpenGL ES 3.1 ve Android Uzantı Paketi'ni dışa aktarması ZORUNLUDUR işlev simgelerini libGLESv3.so kitaplığıyla değiştirin. Tüm simgelerin mevcut olması ZORUNLU olmakla birlikte, bölüm 7.1.4.1'de uygulama sürecinin tam olarak ne zaman ilgili işlevlerin olması beklenir.

  • [C-0-12] Temel Vulkan 1.0'ın işlev simgelerini dışa aktarması ZORUNLUDUR Vulkan 1.1 işlevi ve VK_KHR_surface, VK_KHR_android_surface, VK_KHR_swapchain, VK_KHR_maintenance1 ve VK_KHR_get_physical_device_properties2 libvulkan.so kitaplığını destekler. Tüm simgelerin mevcut olması ZORUNLUDUR bölüm 7.1.4.2 tam olarak açıklanması zorunlu olan şartları, ilgili işlevlerin her birinin uygulanması beklenmektedir.

  • yukarı akış Android Açık Kaynak Projesi.

Android'in gelecekteki sürümlerinde ek ABI'ler.

3.3.2. 32 bit ARM Yerel Kod Uyumluluğu

Cihaz uygulamaları, armeabi ABI'yi desteklediğini bildiriyorsa:

  • [C-3-1] armeabi-v7a markasını da desteklemeli ve desteğini bildirmelidir. armeabi yalnızca eski uygulamalarla geriye dönük uyumluluk içindir.

Cihaz uygulamaları, uygulamalar için armeabi-v7a ABI desteğini bildiriyorsa kullanıcı aşağıdaki işlemleri gerçekleştirir:

  • [C-2-1], /proc/cpuinfo içinde aşağıdaki satırları İÇERMELİ ve OLMAMALIDIR. aynı cihazdaki değerleri değiştirmelidir (başka ABI'ler tarafından okunsalar bile).

    • Features: ve ardından isteğe bağlı ARMv7 CPU özelliklerinin listesi cihaz tarafından desteklendiğini unutmayın.
    • CPU architecture: ve ardından cihazın özelliklerini açıklayan bir tam sayı Desteklenen en yüksek ARM mimarisi (ör. "8" (ARMv8 cihazlar için).
  • [C-2-2] ABI'nin ARMv8 mimarisinde uygulandığı durumlarda: yerel CPU desteği veya yazılım emülasyonu aracılığıyla:

    • SWP ve SWPB talimatları.
    • CP15ISB, CP15DSB ve CP15DMB bariyer işlemleri.
  • [C-2-3] Gelişmiş SIMD desteğinin olması ZORUNLUDUR (diğer adıyla NEON) uzantısı.

3.4. Web Uyumluluğu

3.4.1. Web Görünümü Uyumluluğu

Cihaz uygulamaları, android.webkit.Webview API:

  • [C-1-1] android.software.webview adlı yeri bildirmeli.
  • [C-1-2] Chromium Projesi derlemesini KULLANMALIDIR Android'de yukarı akış Android Açık Kaynak Projesi'nden 14 şubesinden oluşan android.webkit.WebView API'ye gidin.
  • [C-1-3] WebView tarafından bildirilen kullanıcı aracısı dizesinin şu biçimde olması ZORUNLUDUR:

    Mozilla/5.0 (Linux; Android $(VERSION); [$(MODEL)] [Build/$(BUILD)]; wv) AppleWebKit/537.36 (KHTML, Gecko gibi) Sürüm/4.0 $(CHROMIUM_VER) Mobil Safari/537.36

    • $(VERSION) dizesinin değerinin android.os.Derleme.SÜRÜM.SÜRÜM.
    • $(MODEL) dizesi boş OLABİLİR, ancak boş değilse android.os.Build.MODEL ile aynı değere sahiptir.
    • "Derleme/$(BUILD)" Atlanabilir, ancak varsa $(BUILD) dizesinin, android.os.Build.ID değeriyle aynı olması ZORUNLUDUR.
    • $(CHROMIUM_VER) dizesinin değeri Chromium'un sürümü ZORUNLUDUR ürün geliştirme sürecinde
    • Cihaz uygulamaları için kullanıcı aracısı dizesinde Mobil kelimesi ATLANABİLİR.
  • WebView bileşeninin, mümkün olduğu kadar çok HTML5 özelliği için DESTEKLEMELİDİR mümkün olmalıdır ve özelliği destekliyorsa HTML5 spesifikasyonu.

  • [C-1-4], sağlanan içeriği veya uzak URL içeriğini bir işlemde OLUŞTURMALIDIR Web Görünümü'nü örnekleyen uygulamadan farklı bir uygulamadır. Özellikle: ayrı oluşturucu işleminin daha düşük ayrıcalık sahibi olması ZORUNLUDUR, uygulamanın veri dizinine erişimi yoksa, doğrudan ağ erişimi yoktur ve yalnızca gereken minimum ayarlara erişebilirler. sistem hizmetlerini Bağlayıcı'dan bildirir. WebView'un AOSP uygulaması gereksinimleri karşılar şart koşuyor.

Cihaz uygulamaları 32 bitse veya cihaz kullanımının 32 bit olduğunu ya da android.hardware.ram.low için C-1-3 muafiyetine tabidir.

3.4.2. Tarayıcı Uyumluluğu

Cihaz uygulamaları, genel kullanım için bağımsız bir Tarayıcı uygulaması içeriyorsa için:

  • [C-1-1] HTML5:
  • [C-1-2] HTML5/W3C'Yİ DESTEKLEMELİDİR webstorage API'yi etkinleştirmeli ve HTML5/W3C'yi DESTEKLEMELİDİR IndexedDB API. Web olarak geliştirme standartları kuruluşları, IndexedDB'nin IndexedDB'nin, web depolama alanında gerekli bir bileşen olması, yeni bir sürüm satın alabilirsiniz.
  • Bağımsız Tarayıcı uygulamasında özel bir kullanıcı aracısı dizesi gönderilebilir.
  • Mümkün olduğu kadar çok cihaz için destek Bağımsız sürümde mümkün olduğunca HTML5 Tarayıcı uygulaması (yukarı akış WebKit Tarayıcı'ya dayalı olsun) tarafından kullanılabilir.

Ancak, cihaz uygulamaları bağımsız bir Tarayıcı içermiyorsa onlar:

3.5. API Davranış Uyumluluğu

Cihaz uygulamaları:

  • [C-0-9] API davranış uyumluluğunun açıklandığı şekilde kısıtlanmadığı sürece, yüklü uygulamaları Bölüm 3.5.1.
  • [C-0-10] API'nin kullanılmasını sağlayan izin verilenler listesine ekleme yaklaşımını UYGULAMAMALIDIR davranış uyumluluğu yalnızca cihaz tarafından seçilen uygulamalar için ele alacağız.

Her bir API türünün (yönetilen, yazılımlı, yerel ve web) davranışları aşağıdaki gibi olmalıdır: yukarı akış öğesinin tercih edilen uygulamasıyla Android Açık Kaynak Projesi. Bazı belirli alanlar şunlardır:

  • [C-0-1] Cihazlar, bir dokümanın davranışını veya anlamını DEĞİŞTİRMEMELİDİR. standart intent.
  • [C-0-2] Cihazların yaşam döngüsünü veya yaşam döngüsü anlamlarını DEĞİŞTİRMEMELİDİR Belirli bir sistem bileşeni türü (Hizmet, Etkinlik, ContentProvider vb.)
  • [C-0-3] Cihazlar, standart bir iznin anlamını DEĞİŞTİRMEMELİDİR.
  • Cihazlar, arka plan uygulamalarında uygulanan sınırlamaları DEĞİŞTİRMEMELİDİR. Daha açık şekilde belirtmek gerekirse arka plan uygulamaları için:
    • [C-0-4] uygulamasından çıkışları almak için GnssMeasurement uygulamasını kullanın. ve GnssNavigationMessage.
    • [C-0-5] olan güncellemelerin sıklığını sınırlandırmaları ZORUNLUDUR kullanıcıya sağlanan içeriği LocationManager API sınıfı veya WifiManager.startScan() yöntemidir.
    • [C-0-6] Uygulama, API düzeyi 25 veya üstünü hedefliyorsa KULLANMAMALIDIR. yayınların gizli yayınları için yayın alıcılarının kaydedilmesini sağlar. uygulamanın manifest dosyasındaki standart Android amaçları intent için "signature" veya "signatureOrSystem" gerekir protectionLevel veya muafiyet listesine gidin.
    • [C-0-7] Uygulama, API düzeyi 25 veya üstünü hedefliyorsa durması GEREKİR uygulamanın arka plan hizmetlerini kullanabilir, sanki uygulama hizmetlerin stopSelf() Örneğin, uygulama, belirli bir e-posta adresini yönetmek için görünür olan bir görevdir.
    • [C-0-8] Uygulama, API düzeyi 25 veya üstünü hedefliyorsa uygulamanın barındırdığı uyanık kalma kilitlerini serbest bırakır.
  • [C-0-11] Cihazların ilk olarak aşağıdaki güvenlik sağlayıcılarını döndürmesi ZORUNLUDUR şuradan yedi dizi değeri: Security.getProviders() yöntemini, verilen sırada ve verilen adlarla ( Provider.getName()) ve sınıflar (uygulama, listeyi insertProviderAt() veya removeProvider(). Cihazlar Belirtilen sağlayıcı listesinden sonra ek sağlayıcılar döndürülebilir bölümüne göz atın.
    1. AndroidNSSP - android.security.net.config.NetworkSecurityConfigProvider
    2. AndroidOpenSSL: com.android.org.conscrypt.OpenSSLProvider
    3. CertPathProvider - sun.security.provider.CertPathProvider
    4. AndroidKeyStoreBCWorkaround - android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
    5. BC - com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
    6. HarmonyJSSE - com.android.org.conscrypt.JSSEProvider
    7. AndroidKeyStore - android.security.keystore.AndroidKeyStoreProvider

Yukarıdaki liste tam kapsamlı değildir. Uyumluluk Test Paketi (CTS) testleri davranış uyumluluğuna yönelik platformun önemli bir bölümü olsa da. Davranışsal uyumluluğu sağlamak uygulayıcının sorumluluğundadır . Bu nedenle, cihaz uygulamaları Android Açık Kaynak Projesi aracılığıyla edinilen kaynak kodu yeniden uygulamak yerine mümkün olan en yüksek değeri teslim eder.

3.5.1. Uygulama Kısıtlaması

Cihaz uygulamaları, uygulamaları kısıtlamak için özel bir mekanizma uyguluyorsa (ör. şuna uyan API davranışlarının değiştirilmesi veya kısıtlanması: SDK'da açıklandığı şekilde) ve Kısıtlanmış Uygulama Bekleme Paketi'nden daha kısıtlayıcı olduğunu düşünürsek:

  • [C-1-1] Kullanıcının kısıtlanmış uygulamaların listesini görmesine İZİN VERMELİDİR.
  • [C-1-2] Tüm bunları etkinleştirmek veya devre dışı bırakmak için kullanıcıya ödeme yapması GEREKİR kısıtlamalara sahip olması gerekir.
  • [C-1-3] Bu tescilli kısıtlamaların sistem sağlığı davranışının zayıf olduğunu gösteren kanıtlar var, ancak bu kısıtlamalar uygulamalara uygulansın mı? takılı kalan uyanık kalma kilitleri, uzun süreli çalışma gibi sistem sağlığının kötü davranışlarının ve diğer kriterlere göre belirlenir. Ölçütler cihaza göre belirlenebilir ancak uygulamanın sistem sağlığı üzerindeki etkisiyle alakalı olması ZORUNLUDUR. Diğer yalnızca sistem sağlığıyla ilgili olmayan ölçütler (ör. uygulamanın daha az popülerlik olduğunu ve söz konusu kriter olarak KULLANILMAMALIDIR.

  • [C-1-4] Uygulamalar için bu tescilli kısıtlamaların otomatik olarak uygulanmaması ZORUNLUDUR Kullanıcı uygulama kısıtlamalarını manuel olarak devre dışı bıraktığında ve kullanıcıya öneride bulunmayabilir geçerli olması gerekir.

  • [C-1-5] Bu tescilli kısıtlamaların otomatik olarak yükleyebilirsiniz. Bu tür bilgilerin 24 saatlik süre içinde sağlanması ZORUNLUDUR uygulanmadan önce işleme koyulmuş olmalıdır.

  • [C-1-6], ActivityManager.isBackgroundRestricted() için doğru değerinin döndürülmesi ZORUNLUDUR yöntemini çağırın.

  • [C-1-7] tarafından açıkça kullanılan üst ön plan uygulamasını KISITLAMAMALIDIR gösterir.

  • [C-1-8] Kullanıcı uygulamayı açıkça kullanmaya başladığında en üst ön plandır bir uygulamadır.

  • [C-1-10] Aşağıdakilerin açıklandığı, herkese açık ve net bir belge veya web sitesi OLMALIDIR: nasıl uygulandığı konusunda bilgilendirilmesi gerekir. Bu belgenin veya web sitesinin Android SDK dokümanlarından bağlantı kurulabilir ve şunları İÇERMELİDİR:

    • Özel kısıtlamalar için tetikleme koşulları.
    • Bir uygulama hangi içerikler ve nasıl kısıtlanabilir?
    • Bir uygulamanın bu tür kısıtlamalardan nasıl muaf tutulabileceği
    • Bir uygulama, özel kısıtlamalardan muaf olmak için nasıl istekte bulunabilir? kullanıcının yükleyebileceği uygulamalar için böyle bir muafiyeti desteklemesi gerekir.

Uygulama cihaza önceden yüklenmişse ve daha önce herhangi bir kullanıcı tarafından bir kullanıcı 30 günden uzun süre kullanıyorsa [C-1-3] [C-1-5] hariç tutulur.

Cihaz uygulamaları, uygulanan uygulama kısıtlamalarının kapsamını genişletirse AOSP'de:

  • [C-2-1]Bu dokümanda açıklanan uygulamanın uygulanması ZORUNLUDUR.

3.5.2. Uygulamayı hazırda bekleme

Cihaz uygulamaları, AOSP'ye dahil olan Uygulamayı Hazırda Bekletme özelliğini içeriyorsa veya AOSP'ye dahil olan özelliğin kapsamını genişletirse:

  • [C-1-1] [C-1-6] ve [C-1-3].
  • [C-1-2] Kullanıcı için uygulamada kısıtlamanın yalnızca aşağıdaki durumlarda uygulanması ZORUNLUDUR Kullanıcının uygulamayı bir süredir kullanmadığına dair kanıt. Bu süresinin bir ay veya daha uzun olması ÖNEMLE ÖNERİLİR. Kullanım açıkça kullanıcı etkileşimiyle tanımlanır. KullanımStats#getLastTimevisible() API veya bir uygulamanın zorla durdurulmuş durumundan çıkmasına neden olacak herhangi bir şey, hizmet bağlamaları, içerik sağlayıcı bağlamaları, uygunsuz yayınlar vb. Bu API, yeni bir UsageStats#getLastTimeAnyComponentUsed() API ile izlenir.
  • [C-1-3] Yalnızca söz konusu olduğunda, tüm cihaz kullanıcılarını etkileyen kısıtlamaların uygulanması ZORUNLUDUR paketin HİÇBİR kullanıcı tarafından belirli bir süre boyunca kullanılmadığının gerekir. Bu sürenin bir ay veya daha uzun olması ÖNEMLE ÖNERİLİR.
  • [C-1-4] uygulamanın, aktivite amaçlarına yanıt verememesine neden OLMAMALIDIR. hizmet bağlamaları, içerik sağlayıcı istekleri veya uygunsuz yayınlar.

AOSP'de uygulamayı hazırda bekletme, yukarıdaki şartları karşılar.

3.6. API Ad Alanları

Android, Java tarafından tanımlanan paket ve sınıf ad alanı kurallarına uyar programlama dili. Üçüncü taraf uygulamalarıyla uyumluluğu sağlamak için kullananların, izin modunu değiştirmemeye ve şu paket ad alanları:

  • java.*
  • javax.*
  • sun.*
  • android.*
  • androidx.*
  • com.android.*

Yani:

  • [C-0-1] Android platformunda herkese açık olarak kullanıma açık API'leri DEĞİŞTİRMEMELİDİR herhangi bir yöntemi veya sınıf imzasını değiştirerek ya da sınıfları veya sınıfları kaldırarak alanları.
  • [C-0-2] Herkes tarafından görülebilecek herhangi bir öğe (sınıflar veya mevcut sınıflara ya da arayüzlere yönelik alanlar veya yöntemler) ya da test amaçlıdır veya System API'lerini kullanabilirsiniz. "Kamuya açık öğe" "@hide" ile süslenmemiş herhangi bir yapı mı? şu şekilde işaretle: uygulama içi satın alma işlemi gerçekleştirmemizi sağlar.

Cihaz uygulamaları, API'lerin temel uygulamasını değiştirebilir ancak söz konusu değişiklikler:

  • [C-0-3] herkese açık olarak sunulan API'lerin tamamı.
  • [C-0-4] REKLAMI veya başka bir şekilde geliştiricilere İLİŞKİLENDİRMEMELİDİR.

Ancak cihaz uygulayıcıları standart Android dışında özel API'ler ekleyebilir. ad alanına sahip olmasına rağmen özel API'ler:

  • [C-0-5] kurum içinde tutmaktır. Örneğin, cihaz uygulayıcıları com.google.* veya benzer ad alanı: Bunu yalnızca Google yapabilir. Aynı şekilde, Google, diğer şirketlerin reklamlarına API EKLEMEMELİDİR ad alanları.
  • [C-0-6] Yalnızca uygulamaların Android paylaşılan bir kitaplıkta paketlenmesi ZORUNLUDUR bunları açıkça kullanan (<uses-library> mekanizmasıyla) yüksek bellek kullanımından etkilenir.

Cihaz uygulayıcıları NDK'nın dışında ana dillerde özel API'ler ekleyebilirler API'ler, ancak özel API'ler:

  • [C-1-1] NDK kitaplığında veya başka birine ait bir kitaplıkta OLMAMALIDIR açıklandığı şekilde burada bulabilirsiniz.

Bir cihaz uygulayıcısı yukarıdaki paket ad alanlarından birini iyileştirmeyi önerirse (örneğin mevcut bir API'ye yararlı yeni işlevler ekleyerek veya yeni bir API) kullanıyorsanız uygulayıcı source.android.com adresini ziyaret etmelidir. ve değişikliklere katkıda bulunma sürecini sitenizdeki bilgilere göre uyumlu olacaktır.

Yukarıdaki kısıtlamaların standart adlandırma kurallarına karşılık geldiğini unutmayın Java programlama dilinde API'ler; bu bölüm yalnızca bu Uyumluluğa dahil ederek onları bağlayıcı kılmasını sağlayabilirsiniz. Tanım.

3.7. Çalışma Zamanı Uyumluluğu

Cihaz uygulamaları:

  • [C-0-1], tam Dalvik Yürütülebilir (DEX) biçimini DESTEKLEMELİDİR ve Dalvik bayt kodu spesifikasyonu ve anlamı.

  • [C-0-2] yukarı akış Android platformuna uygun şekilde ve aşağıdaki tabloda bulabilirsiniz. (Ayrıntılı bilgi için bölüm 7.1.1'e ekran boyutu ve ekran yoğunluğu tanımları.)

  • Referans yukarı akış olan Android Çalışma Zamanı'nı (ART) kullanmalıdır. bir referans noktası kodu gelecek ve paket yönetim sistemini gözden geçireceğiz.

  • Çeşitli yürütme modlarında fuzz testleri KULLANILMALIDIR ve hedef mimarileri hedefleyerek çalışma zamanının kararlılığını garanti altına alın. Referans JFuzz ve DexFuzz inceleyebilirsiniz.

Aşağıda belirtilen bellek değerlerinin, minimum değerler olarak kabul edildiğini ve cihaz uygulamaları, uygulama başına daha fazla bellek ayırabilir.

Ekran Düzeni Ekran Yoğunluğu Minimum Uygulama Belleği
Android Saat 120 dpi (ldpi) 32MB
140 dpi (140dpi)
160 dpi (mdpi)
180 dpi (180dpi)
200 dpi (200dpi)
213 dpi (tvdpi)
220 dpi (220dpi) 36MB
240 dpi (hdpi)
280 dpi (280dpi)
320 dpi (xhdpi) 48MB
360 dpi (360dpi)
400 dpi (400dpi) 56MB
420 dpi (420dpi) 64MB
480 dpi (xxhdpi) 88MB
560 dpi (560dpi) 112MB
640 dpi (xxxhdpi) 154MB
küçük/normal 120 dpi (ldpi) 32MB
140 dpi (140dpi)
160 dpi (mdpi)
180 dpi (180dpi) 48MB
200 dpi (200dpi)
213 dpi (tvdpi)
220 dpi (220dpi)
240 dpi (hdpi)
280 dpi (280dpi)
320 dpi (xhdpi) 80MB
360 dpi (360dpi)
400 dpi (400dpi) 96MB
420 dpi (420dpi) 112MB
480 dpi (xxhdpi) 128MB
560 dpi (560dpi) 192MB
640 dpi (xxxhdpi) 256MB
büyük 120 dpi (ldpi) 32MB
140 dpi (140dpi) 48MB
160 dpi (mdpi)
180 dpi (180dpi) 80MB
200 dpi (200dpi)
213 dpi (tvdpi)
220 dpi (220dpi)
240 dpi (hdpi)
280 dpi (280dpi) 96MB
320 dpi (xhdpi) 128MB
360 dpi (360dpi) 160MB
400 dpi (400dpi) 192MB
420 dpi (420dpi) 228MB
480 dpi (xxhdpi) 256MB
560 dpi (560dpi) 384MB
640 dpi (xxxhdpi) 512MB
xlarge 120 dpi (ldpi) 48MB
140 dpi (140dpi) 80MB
160 dpi (mdpi)
180 dpi (180dpi) 96MB
200 dpi (200dpi)
213 dpi (tvdpi)
220 dpi (220dpi)
240 dpi (hdpi)
280 dpi (280dpi) 144MB
320 dpi (xhdpi) 192MB
360 dpi (360dpi) 240MB
400 dpi (400dpi) 288MB
420 dpi (420dpi) 336MB
480 dpi (xxhdpi) 384MB
560 dpi (560dpi) 576MB
640 dpi (xxxhdpi) 768MB

3.8. Kullanıcı Arayüzü Uyumluluğu

3.8.1. Başlatıcı (Ana Ekran)

Android bir başlatıcı uygulaması (ana ekran) ve cihaz başlatıcının (ana ekran) yerini alacak üçüncü taraf uygulamaları.

Cihaz uygulamaları, üçüncü taraf uygulamalarının cihazı değiştirmesine izin veriyorsa kullandığında:

  • [C-1-1], android.software.home_screen adlı platform özelliğini beyan ZORUNLUDUR.
  • [C-1-2], AdaptiveIconDrawable DEĞERLENDİRMESİNİ ZORUNLUDUR üçüncü taraf uygulaması, sağlamak için <adaptive-icon> etiketi kullandığında ve PackageManager yöntemleri çağrılır.

Cihaz uygulamaları, uygulama içi öğeleri destekleyen bir varsayılan başlatıcı içeriyorsa sabitlendiğinde:

Buna karşılık, cihaz uygulamaları bunlar:

Cihaz uygulamaları, hızlı erişim sağlayan bir varsayılan başlatıcı kullanırsa Üçüncü taraf uygulamalar tarafından sağlanan ek kısayollara Kısayol Yöneticisi API ile:

  • [C-4-1], belgelenen tüm kısayol özelliklerini DESTEKLEMELİDİR (ör. statik ve dinamik kısayolları, sabitleme kısayollarını) ve önceki ShortcutManager API sınıfı.

Cihaz uygulamaları, Android cihazlarda rozetler gösteren bir varsayılan başlatıcı pek çok işlevi vardır:

  • [C-5-1], NotificationChannel.setShowBadge()'na UYMALIDIR API yöntemi. Başka bir deyişle, değeri true olarak ayarlanırsa ve yalnızca uygulamanın bildirim kanalları arasında değer false olarak ayarlanmış.
  • Aşağıdaki durumlarda uygulama simgesi rozetlerini kendi özel rozet şemalarıyla geçersiz kılabilirsiniz. üçüncü taraf uygulamalar, özel rozet şemasını desteklediğini gösterir kullanmamalı, ancak gerekli kaynakları ve değerleri KULLANMALI SDK'da açıklanan bildirim rozetleri API'leri aracılığıyla sağlanır (ör. Notification.Builder.setNumber()) ve Notification.Builder.setBadgeIconType() API'ye gidin.

Cihaz uygulamaları, tek renkli şu simgeleri kullanın:

  • [C-6-1] yalnızca kullanıcı açıkça etkinleştirdiğinde (ör. Ayarlar veya duvar kağıdı seçici menüsü).

3.8.2. Widget'lar

Android, üçüncü taraf uygulama widget'larını bir bileşen türü tanımlayarak ve ilgili API ve yaşam döngüsünü, her bir müşterinin "AppWidget" anlamaya başladım.

Cihaz uygulamaları, üçüncü taraf uygulama widget'larını destekliyorsa:

  • [C-1-1] Platform özelliği için destek beyanı GEREKLİDİR android.software.app_widgets
  • [C-1-2] AppWidget'lar için yerleşik destek içermeli ve AppWidget'ları ekleme, yapılandırma, görüntüleme ve kaldırma kullanıcı arayüzü fırsatları

  • [C-1-3] 4 x 4 boyutlu widget'ları oluşturabilmesi ZORUNLUDUR %50'lik bir orana sahip. Uygulama Widget'ı Tasarım Yönergeleri'ne bakın. Android SDK dokümanlarında bulabilirsiniz.

  • Kilit ekranında uygulama widget'ları DESTEKLENEBİLİR.

Cihaz uygulamaları, üçüncü taraf uygulama widget'larını ve uygulama içi sabitlendiğinde:

3.8.3. Bildirimler

Android, Notification ve NotificationManager Üçüncü taraf uygulama geliştiricilerin, kullanıcıları önemli etkinlikler hakkında bilgilendirmesini ve daha çok kullanıcının donanım bileşenleri (ör. ses, titreşim ) ve yazılım özelliklerini (örneğin, bildirim gölgesi, sistem çubuğu) olanak tanır.

3.8.3.1. Bildirimlerin Sunumu

Cihaz uygulamaları, üçüncü taraf uygulamalarının kullanıcıları önemli etkinliklerden haberdar etmesine olanak tanıyorsa:

  • [C-1-1], şu sayfada belirtildiği şekilde donanım özelliklerini kullanan bildirimleri DESTEKLEMELİDİR: SDK dokümanları ve cihaz uygulamasında mümkün olduğu ölçüde donanım. Örneğin, bir cihaz uygulaması titreşim içeriyorsa doğru şekilde uygulamamız gerekir. Cihaz uygulamasında ilgili API'lerin işlemsiz olarak uygulanması ZORUNLUDUR. Bu davranış, 7. bölümde daha ayrıntılı olarak açıklanmıştır.
  • [C-1-2] Tüm kaynakların doğru şekilde OLUŞTURULMASI ZORUNLUDUR (simgeler, animasyon dosyaları vb.) sağlamalarına, Durum/Sistem Çubuğu simge stil kılavuzu, Bildirimler için alternatif bir kullanıcı deneyimi sunabilseler de referans Android Açık Kaynak uygulaması tarafından sağlanandan daha fazladır.
  • [C-1-3] Z kuşağıyla ilgili olarak açıklanan davranışlara API'ler seçeneğini tıklayın.
  • [C-1-4], DescriptionChannel öğesinin tam davranışını sağlamalıdır. API'de bulabilirsiniz.
  • [C-1-5] Kullanıcıya, belirli bir öğeyi engelleme ve değiştirme için fırsat sunmak GEREKİR Her kanal ve uygulama paketi düzeyi için üçüncü taraf uygulamasının bildirimi.
  • [C-1-6] Silinen bildirimi görüntülemek için kullanıcıya satın alma olanağının da sağlanması ZORUNLUDUR kanallar.
  • [C-1-7] Tüm kaynakları (resimler, çıkartmalar, simgeler vb.) doğru şekilde OLUŞTURMALIDIR Description.MessagingStyle aracılığıyla sağlanır. ek kullanıcı etkileşimi olmadan bildirim metninin yanında gösterilir. Örneğin, ; android.app.Person bir grup görüşmesinde setGroupConversation.

  • [C-SR-1] Kullanıcıya mali yardım sağlaması ÖNEMLE ÖNERİLİR izin verilen uygulamalarla ilişkili bildirimleri kontrol edebilir, Bildirim Dinleyici izni. Kullanıcının ayrıntılı içeriği açıklayabilmesi için bu tür her bir bildirim dinleyicisi için hangi bildirim türlerinin olduğunu kontrol edin bu işleyici ile bağlantı kurmalısınız. Türler arasında "ileti dizileri", "uyarılar", "sessiz" ve "devam eden önemli" bildirimleri etkinleştirebilirsiniz.

  • [C-SR-2] Kesinlikle ÖNERİLİR, kullanıcıların özellikle bildirim dinleyicilerine bildirim göndermemenizi sağlar.

  • [C-SR-3] Kullanıcıya yönelik fırsatları otomatik olarak göstermeleri için ÖNEMLE ÖNERİLİR Her kanal ve uygulama için belirli bir üçüncü taraf uygulamasının bildirimini engelleme paket düzeyine geri yüklenir.

  • Zengin bildirimler DESTEKLENMELİDİR.

  • Uyarı bildirimleri olarak daha yüksek öncelikli bazı bildirimler SUNULMALIDIR.

  • Bir kullanıcının bildirimleri ertelemeye uygun olması GEREKİR.

  • Yalnızca üçüncü taraf uygulamalarının ne zaman bildirimde bulunabileceğinin görünürlüğünü ve zamanlamasını yönetebilir sürücünün dikkatinin dağılması gibi güvenlik sorunlarını azaltmak için önemli etkinliklerin kullanıcıları.

Android 11'de, görüşme bildirimleri desteği eklendi. MessagingStyle'ı kullanan bildirimler ve yayınlanmış bir Kişiler kısayol kimliği sağlar.

Cihaz uygulamaları:

  • [C-SR-4] Gruplandırma ve görüntüleme için ÖNEMLE ÖNERİLİR conversation notifications şunlar hariç olmak üzere, görüşme dışı bildirimlerden önce devam eden ön plan hizmeti bildirimleri ve importance:high bildirimleri etkinleştirebilirsiniz.

Cihaz uygulamaları conversation notifications'i destekliyorsa ve uygulama, hem web sitesi üzerinden bubbles:

  • [C-SR-5] Bu görüşmeyi balon olarak göstermesi ÖNEMLE ÖNERİLİR. AOSP uygulaması, varsayılan sistem kullanıcı arayüzüyle bu gereksinimleri karşılar. Ayarlar ve Başlatıcı.

Cihaz uygulamaları zengin bildirimleri destekliyorsa:

  • [C-2-1] kaynakları tam olarak Notification.Style üzerinden sağlanır Sunulan kaynak öğeleri için API sınıfı ve alt sınıfları.
  • Her bir kaynak öğesini (ör. simgesi, başlık ve özet metni) Notification.Style içinde tanımlanmıştır API sınıfı ve alt sınıfları.

Uyarı bildirimleri, kullanıcının bulunduğu yüzeyden bağımsız olarak kullanıcıya sunulduğu sırada, beklemeye gerek yoktur. Cihaz uygulamaları uyarı özelliğini destekliyorsa o zaman:

  • [C-3-1] Uyarı bildirimi görünümünü ve kaynaklarını kullanmak ZORUNLUDUR (Notification.Builder bölümünde açıklandığı şekilde) Uyarı bildirimleri sunulduğunda kullanılan API sınıfı.
  • [C-3-2] Notification.Builder.addAction() ek kullanıcı etkileşimi olmadan bildirim içeriğiyle birlikte SDK'da gösterildiği gibi.
3.8.3.2. Bildirim Dinleyici Hizmeti

Android, NotificationListenerService içerir Uygulamaların (kullanıcı tarafından açık bir şekilde etkinleştirildiğinde) bir kopyasını almasına izin veren API'ler gönderilen veya güncellenen tüm bildirimlere göre işlem yapar.

Cihaz uygulamaları:

  • [C-0-1] Bildirimlerin eksiksiz ve hızlı bir şekilde güncellenmesi ZORUNLUDUR dahil olmak üzere bu tür yüklü ve kullanıcı tarafından etkinleştirilmiş tüm dinleyici hizmetlerine Bildirim nesnesine ekli tüm meta veriler.
  • [C-0-2], snoozeNotification()'na UYMALIDIR API çağrısı yapabilir, bildirimi kapatıp ertelemenin ardından geri arama yapabilirsiniz API çağrısında ayarlanan süreyi belirtir.

Cihaz uygulamalarının, bildirimleri erteleyebileceği bir kullanıcı varsa:

  • [C-1-1], ertelenen bildirim durumunu doğru şekilde yansıtması ZORUNLUDUR gibi standart API'ler üzerinden NotificationListenerService.getSnoozedNotifications().
  • [C-1-2] Bu kullanıcının, bildirimleri ertelemek için gerekli fırsattan yararlanmasını ZORUNLUDUR kalıcı/ön plan hizmetleridir.
3.8.3.3. DND (Rahatsız Etmeyin) / Öncelik Modu

Cihaz uygulamaları, DND özelliğini destekliyorsa (Öncelik Modu olarak da adlandırılır)

  • Cihaz uygulaması kullanıcıya bir araç sağladığında [C-1-1] ZORUNLUDUR üçüncü taraf uygulamalarının DND politika yapılandırmasına erişmesine izin verme veya verme, Otomatik DND kuralları'nı görüntüle uygulama tarafından oluşturulan kodu ve kullanıcı tarafından oluşturulan önceden tanımlanmış kuralları içerir.
  • [C-1-3], suppressedVisualEffects'na uygun hareket etmelidir NotificationManager.Policy boyunca aktarılan değerler Ayrıca bir uygulama, supPRESSED_EF_SCREEN_ON işaretleriyle birlikte, kullanıcıya görsel efektler, DND ayarları menüsünde gösterilmez.

3.8.4. Assist API'ler

Android'de Destek API'leri bulunur uygulamaların mevcut bağlamla ilgili ne kadar bilgi cihazdaki asistanla paylaşıldı.

Cihaz uygulamaları, Destek işlemini destekliyorsa:

  • [C-2-1], bağlamın ne zaman paylaşıldığını son kullanıcıya açıkça şunlardan birini yapın:
    • Asistan uygulaması bağlama her eriştiğinde, beyaz bir ekranın kenarlarında süreye uyan veya daha uzun olan ışıklar ve uygulamanın parlaklığı.
    • Önceden yüklenmiş asistan uygulaması için, kullanıcıya daha az iki navigasyondan daha uzakta varsayılan ses girişi ve asistan uygulaması ayarlar menüsü, ve yalnızca asistan uygulaması, Google tarafından açıkça çağrıldığında kullanıcıya özel bir kelime veya yardım gezinme tuşu girişiyle.
  • [C-2-2] Yardım uygulamasını açıklandığı şekilde başlatmak için belirlenmiş etkileşim bölüm 7.2.3'te belirtilen kullanıcı tarafından seçilen URL'nin BAŞLATILMASI GEREKİR destek uygulaması, diğer bir deyişle VoiceInteractionService kodunu uygulayan uygulama, veya ACTION_ASSIST amacını işleyen bir etkinlik.

3.8.5. Uyarılar ve Kısa Mesajlar

Uygulamalar şunları kullanabilir: Toast API'nin, kısa bir süre devam edin ve TYPE_APPLICATION_OVERLAY Pencere türü API'sini kullanarak uyarı pencerelerini diğer uygulamaların üzerinde yer paylaşımlı olarak görüntüleyebilirsiniz.

Cihaz uygulamaları ekran veya video çıkışı içeriyorsa:

  • [C-1-1] Kullanıcıya, bir uygulamanın uyarı görüntülemesini engelleme imkanı OLMALIDIR TYPE_APPLICATION_OVERLAY etiketini kullanan pencereler , AOSP uygulaması, bildirim gölgesinde denetimler bulundurarak bu koşulu karşılar.

  • [C-1-2] Toast API'yi dikkate almalı ve uygulamalardan son kullanıcılara Toasts'ı görüntülemelidir. şekilde görünür.

3.8.6. Temalar

Android, uygulamaların farklı cihazlarda stiller uygulayabileceği bir mekanizma olarak "temaları" sağlar veya uygulamanın tamamı için geçerli olur.

Android'de bir "Holo" ve "Material" bulunuyor tanımlı stiller kümesi olarak tema ailesi oluşturmak isterlerse uygulama geliştiricilerin Holo temasının görünümü ve tarzı Android SDK tarafından tanımlandığı şekilde.

Cihaz uygulamaları ekran veya video çıkışı içeriyorsa:

  • [C-1-1], gösterildiği Holo teması özelliklerinden hiçbirini DEĞİŞTİRMEMELİDİR izin verir.
  • [C-1-2] "Materyal" tema ailesini DESTEKLEMELİ ve bunlardan herhangi birini DEĞİŞTİRMEMELİDİR Materyal teması özellikleri veya öğeleri hakkında bilgi edindiniz.
  • [C-1-3] "sans-serif" yazı tipi ailesi Diller için Roboto sürüm 2.x veya kullanılan yazı tipini değiştirmesi için bir kullanıcıya "sans-serif" için Roboto sürüm 2.x'e yazı tipi ailesi desteği vardır.

  • [C-1-4] AOSP'de belirtildiği gibi dinamik renk ton paletleri OLUŞTURMALIDIR Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES belgeleri (bkz. android.theme.customization.system_palette ve android.theme.customization.theme_style).

  • [C-1-5] Renk teması stilleri kullanarak dinamik renk tonları paletleri OLUŞTURMALIDIR Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES içinde numaralandırılmış (bkz. android.theme.customization.theme_styles), adı TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW, FRUIT_SALAD, veMONOCHROMATIC.

    "Kaynak rengi" ile gönderildiğinde dinamik renk tonal paletleri oluşturmak için kullanılır. android.theme.customization.system_palette (şurada açıklandığı gibi: Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES) tıklayın.

  • [C-1-6] CAM16 renk değerinin 5 veya daha büyük olması ZORUNLUDUR.

    • Şeklinde duvar kağıdından türetilmelidir: sağlayan com.android.systemui.monet.ColorScheme#getSeedColors arasından seçim yapabileceğiniz birden çok geçerli kaynak rengi.

    • Sağlanan renklerden hiçbiri uyuşmuyorsa 0xFF1B6EF3 değeri KULLANILMALIDIR. yukarıdaki kaynak rengi gereksinimini karşılayın.

Android ayrıca tanımlı bir dizi stil olarak "Cihaz Varsayılanı" tema ailesini de içerir kullanmak istediklerinde, uygulama geliştiricilerin kullandıkları cihaz uygulayıcısı tarafından tanımlandığı şekliyle cihaz temasını girin.

Android, yarı saydam sistem çubuklarına sahip bir varyant temasını destekler. Bu özellik, uygulama geliştiricilerin, durumun ve gezinme çubuğunun arkasındaki alanı doldurmasını sağlayın test edebilirsiniz. Bu uygulamada tutarlı bir geliştirici deneyimi sunmak için emin olmak için, durum çubuğu simge stilinin farklı cihaz uygulamaları.

Cihaz uygulamaları bir sistem durum çubuğu içeriyorsa, bunlar:

  • [C-2-1] Sistem durumu simgeleri (sinyal gücü ve pil seviyesi) ve sistem tarafından verilen bildirimleri (simge, simge veya bir uygulama, WindowInsetsController#APPEARANCE_LIGHT_STATUS_BARS tıklayın.
  • [C-2-2] Android cihaz uygulamalarının sistemin rengini DEĞİŞTİRMELİDİR Bir uygulama kullanılırken durum simgeleri siyaha döner (ayrıntılar için R.style'a bakın) ışık bir durum çubuğu ister.

3.8.7. Animasyonlu Duvar Kağıtları

Android, bir bileşen türü ve ilgili API ile yaşam döngüsünü tanımlar: uygulamaların bir veya daha fazla "Animasyonlu duvar kağıtları" anlamaya başladım. Animasyonlu duvar kağıtları animasyon, desen veya benzer resimlerdir duvar kağıdı olarak görüntülenen sınırlı giriş özelliklerine sahip, izin verir.

Donanım, çalışabiliyorsa animasyonlu duvar kağıtlarını güvenilir bir şekilde çalıştırabileceği kabul edilir tüm animasyonlu duvar kağıtları, işlevsellik kısıtlaması olmadan makul bir çerçevede oranını ve diğer uygulamaları olumsuz etkilemeyecek şekilde ayarlayın. Sınırlamalar donanımlarının, duvar kağıtlarının ve/veya uygulamaların kilitlenmesine, bozulmasına, tüketilmesine CPU veya pil gücü fazla ya da kabul edilemeyecek kadar düşük kare hızlarında donanımı animasyonlu duvar kağıdını çalıştıramaz. Örneğin, bazı animasyonlu duvar kağıtları, içeriklerini oluşturmak için bir OpenGL 2.0 veya 3.x bağlamı kullanabilir. Animasyonlu duvar kağıdı, birden fazla cihazı desteklemeyen donanımlarda güvenilir bir şekilde çalışmaz. OpenGL bağlamının canlı duvar kağıdı kullanımı çakışabileceği için OpenGL bağlamları kullanan diğer uygulamalarla birlikte daha iyi performans göstermenizi sağlar.

  • Canlı duvar kağıtlarını açıklandığı gibi güvenilir bir şekilde çalıştırabilen cihaz uygulamaları yukarıdaki animasyonlu duvar kağıtları KULLANILMALIDIR.

Cihaz uygulamaları animasyonlu duvar kağıtları uyguluyorsa:

  • [C-1-1] Platform özellik bayrağı android.software.live_wallpaper'ı BİLDİRMELİDİR.

3.8.8. Etkinlik Değiştirme

Yukarı akış Android kaynak kodu şunları içerir: genel bakış ekranı, Görev değiştirmek ve yakın zamanda erişilenleri görüntülemek için sistem düzeyi kullanıcı arayüzü uygulamanın grafik görsellerinin küçük bir resmini kullanarak uygulamadan ayrıldığı andaki durumu

Cihaz uygulamaları aşağıda açıklandığı gibi son kullanılanlar işlevi gezinme tuşu dahil bölüm 7.2.3 arayüzü değiştirebilir.

Son kullanılanlar işlevi gezinme tuşunu içeren cihaz uygulamaları bölüm 7.2.3'ün arayüzü değiştirdiğini düşünüyorsanız:

  • [C-1-1] görüntülenen en az 7 etkinliği DESTEKLEMELİDİR.
  • Aynı anda en az 4 etkinliğin başlığı görüntülenmelidir.

  • Son kullanılan öğelerde vurgu rengi, simge, ekran başlığı GÖRÜNTÜLEMELİDİR.
  • Kapanış mesajı ("x") GÖRÜNTÜLEMELİDİR, ancak kullanıcı ekranlarla etkileşime geçene kadar bu işlem ertelenebilir.
  • Önceki etkinliğe kolayca geçiş yapmak için bir kısayol uygulanmalıdır.
  • En son kullanılan iki ayar arasındaki hızlı geçiş işlemini TEŞVİK ETMELİDİR son kullanılanlar işlev tuşuna iki kez dokunulduğunda
  • Destekleniyorsa, bölünmüş ekran çoklu pencere modunun son kullanılanlar işlevleri tuşuna uzun basarsınız.
  • İlişkili sonları birlikte hareket eden bir grup olarak GÖRÜNTÜLENEBİLİR.
  • [C-SR-1] Yukarı akış Android kullanıcısının kullanması ÖNEMLE ÖNERİLİR arayüzü (veya küçük resim tabanlı benzer bir arayüzü) kullanabilirsiniz.

3.8.9. Giriş Yönetimi

Android, aşağıdakileri destekler: Giriş Yönetimi ve üçüncü taraf giriş yöntemi düzenleyicileri desteği.

Cihaz uygulamaları, kullanıcıların Google Görüntülü Reklam Ağı'nda üçüncü taraf giriş yöntemlerini kullanmasına kullandığında:

  • [C-1-1], android.software.input_methods ve destekleyici IME API'leri tanımlanmıştır.

3.8.10. Kilit Ekranı Medya Kontrolü

Remote Control Client API, Android 5.0'dan itibaren kullanımdan kaldırıldı ve Medya Bildirim Şablonu uyumlu olan oynatma kontrolleriyle entegre olmasını sağlayan ve kilit ekranında görebilirsiniz.

3.8.11. Ekran koruyucular (eski adıyla İlham Sahneleri)

Ayarlar için bölüm 3.2.3.5'e bakın yapılandırma amacı güder.

3.8.12. Konum

Cihaz uygulamaları, gerekli yeteneklere sahip bir donanım sensörü (ör. GPS) içeriyorsa yer koordinatlarını verdiği için,

3.8.13. Unicode ve Yazı Tipi

Android, Unicode 10.0.

Cihaz uygulamaları ekran veya video çıkışı içeriyorsa:

  • [C-1-1] bu emoji karakterlerini renk glifiyle işleyebilmesi ZORUNLUDUR.
  • [C-1-2] Aşağıdakiler için destek İÇERMELİDİR:
    • Farklı ağırlıklara sahip Roboto 2 yazı tipi: sans-serif-thin, sans-serif-light, sans-serif-medium, sans-serif-siyah, sans-serif-yoğunlu, sans-serif-condensed-light'ı kullanmaya devam edebilirsiniz.
    • Latin, Yunan ve Kiril, Unicode 7.0, Latin alfabesinde genişletilmiş A, B, C ve D aralıkları ve para birimindeki tüm karakterler Unicode 7.0'ın simge bloku.
  • [C-1-3] Sistem görüntüsündeki NotoColorEmoji.tff dosyası KALDIRILMAMALIDIR veya DEĞİŞTİRİLMEMELİDİR. (Emoji'nin geçersiz kılınması için yeni bir emoji yazı tipi eklenebilir. NotoColorEmoji.tff)
  • İçerikte belirtilen ten rengine ve çeşitli aile emojilerine uygun Unicode Teknik Rapor #51.

Cihaz uygulamaları bir IME içeriyorsa:

  • Kullanıcıya bu emoji karakterleri için bir giriş yöntemi SAĞLANMALIDIR.

Android, Myanmar yazı tiplerini oluşturma desteği içerir. Myanmar'da Myanmar'ı oluşturmak için yaygın olarak “Zawgyi” olarak bilinen, Unicode olmayan yazı tipleri dil.

Cihaz uygulamaları Burmaca desteği içeriyorsa:

  • [C-2-1] Metnin varsayılan olarak Unicode ile uyumlu bir yazı tipiyle OLUŞTURULMASI GEREKİR; kullanıcı tarafından kabul edilmediği sürece, Unicode olmayan yazı tipinin varsayılan yazı tipi olarak AYARLANMAMALIDIR. dil seçicide de değiştirir.
  • [C-2-2] Bir Unicode yazı tipini ve Unicode olmayan bir yazı tipini desteklemektedir. Unicode uyumlu olmayan yazı tipi cihazda destekleniyor. Unicode Olmayan uygun yazı tipinin Unicode yazı tipini KALDIRILMAMALIDIR veya Üzerine YAZMAMALIDIR.
  • [C-2-3] YALNIZCA bir şununla dil kodu: komut dosyası kodu Qaag belirtildiği (ör. my-Qaag). Başka hiçbir ISO dil veya bölge kodu ( atanmış, atanmamış veya ayrılmış) Unicode olmayan kodları uyumlu bir yazı tipi kullandıysanız. Uygulama geliştiriciler ve web sayfası yazarları my-Qag'i tanımlanmış dil kodu olarak belirtin. Örneğin, başka bir dilde.

3.8.14. Çoklu Pencere

Cihaz uygulamaları aynı saatte birden fazla etkinlik gösterebiliyorsa aynı zamanda şunları yaparlar:

  • [C-1-1] bu tür çoklu pencere modlarını Android SDK'da açıklanan uygulama davranışları ve API'ler çoklu pencere modu destek dokümanlarını ve şu koşulları karşılamanız gerekir:
  • [C-1-2], android:resizeableActivity'e uygun OLMALIDIR AndroidManifest.xml dosyasındaki bir uygulama tarafından aşağıdaki şekilde ayarlanan bu SDK'yı kullanın.
  • [C-1-3] Aşağıdaki durumlarda bölünmüş ekran veya serbest biçim modu SUNMAMALIDIR. ekran yüksekliği 440 dp'den, ekran genişliği ise 440'tan az olmalıdır. dp.
  • [C-1-4] Bir etkinliğin 220 dp'den küçük bir boyuta YÜKLENMEMELİDİR pencere içinde pencere modu dışındaki seçenekleri kullanabilirsiniz.
  • Ekran boyutu xlarge olan cihaz uygulamaları serbest biçimi DESTEKLEMELİDİR yatırım yapmanız önemlidir.

Cihaz uygulamaları, çoklu pencere modlarını ve bölünmüş ekranı destekliyorsa kullanıyorlarsa:

  • [C-2-2] Bölünmüş ekranlı bir çoklu pencerenin yerleştirilmiş etkinliğini kırpmalıdır ancak Başlatıcı uygulaması odaklanılmış pencereyse, içeriğin bir kısmını göstermeniz GEREKİR.
  • [C-2-3], beyan edilen AndroidManifestLayout_minWidth şartlarına uymalıdır ve AndroidManifestLayout_minHeight ve üçüncü taraf başlatıcı uygulamasının değerlerini geçersiz kılmayın gösteren bir e-posta alırsınız.

Cihaz uygulamaları, çoklu pencere modlarını ve Pencere İçinde Pencere özelliğini destekliyorsa kullandığında:

  • [C-3-1] Etkinliklerin pencere içinde pencere çoklu pencere modunda başlatılması ZORUNLUDUR Uygulama: * API düzeyi 26 veya üstünü hedefler ve aşağıdakileri belirtir android:supportsPictureInPicture * API düzeyi 25 veya altı hedefleniyor ve android:resizeableActivity her ikisi de tanımlanıyor ve android:supportsPictureInPicture.
  • [C-3-2], SystemUI'deki işlemleri setActions() üzerinden geçerli PIP etkinliğiyle belirtilir API'ye gidin.
  • [C-3-3] şuna eşit veya daha büyük en boy oranlarını DESTEKLEMELİDİR: PIP etkinliği tarafından belirtildiği şekliyle 1:2.39 ve 2,39:1'den küçük veya 2,39:1'e eşit setAspectRatio() API'ye gidin.
  • [C-3-4] KeyEvent.KEYCODE_WINDOW KULLANILMALIDIR PIP penceresini kontrol etmek için; PIP modu uygulanmazsa tuş, kullanılabilir hale getirebilirsiniz.
  • [C-3-5] Kullanıcıya bir uygulamanın şurada görüntülenmesini engelleme fırsatı SAĞLAMALIDIR: PIP modu AOSP uygulamasının bu gereksinimi karşılaması için bildirim gölgesindeki kontrol düğmelerine dokunun.
  • [C-3-6] PIP için aşağıdaki minimum genişlik ve yüksekliği ayırmalıdır: penceresi AndroidManifestLayout_minWidth ve AndroidManifestLayout_minHeight:

    • Şundan farklı şekilde ayarlanmış Configuration.uiMode'a sahip cihazlar: UI_MODE_TYPE_TELEVISION En az 108 dp genişlik ve yükseklik tahsis edilmesi ZORUNLUDUR.
    • Configuration.uiMode ayarı şu şekilde olan cihazlar: UI_MODE_TYPE_TELEVISION Minimum 240 dp genişlik ve 135 dp yükseklik tahsis edilmelidir.

3.8.15. Ekran Kesimi

Android, açıklandığı gibi bir ekran kesimini destekler belirtin. DisplayCutout API, ekranın kenarındaki, bir uygulama için çalışmayabilecek bir alan (kenarlarda ekran kesimi veya kavisli görüntü nedeniyle) ortaya çıkar.

Cihaz uygulamalarında ekran kesimleri varsa:

  • Cihazın en boy oranı 1,0(1:1) ise [C-1-5] üzerinde kesim BULUNMAMALIDIR.
  • [C-1-2] kenar başına birden fazla kesimi BULUNMAMALIDIR.
  • [C-1-3] WindowManager.LayoutParams API'yi kullanın.
  • [C-1-4] DisplayCutout API.

3.8.16. Cihaz Denetimleri

Android'e ControlsProviderService dahildir ve Control Üçüncü taraf uygulamalarının cihaz denetimlerini hızlı bir şekilde yayınlamasına olanak tanıyan API'ler durum ve işlem yapmanıza yardımcı olur.

Cihaza özel gereksinimler için Bölüm 2_2_3'e bakın.

3.8.17. Pano

Cihaz uygulamaları:

  • [C-0-1] pano verilerini herhangi bir bileşene, etkinliğe, hizmete veya herhangi bir ağ bağlantısında, açıkça kullanıcı işlemi olmadan (ör. düğmesi gösterilir), 9.8.6 İçerik Yakalama ve Uygulama Arama.

Cihaz uygulamaları, içerik kopyalandığında kullanıcının görebileceği bir önizleme oluşturuyorsa panoya kopyalayarak ClipData ClipData.getDescription().getExtras() şunu içerir: android.content.extra.IS_SENSITIVE kullanıcıları:

  • [C-1-1] Kullanıcı tarafından görülebilen önizlemenin çıkartılması ZORUNLUDUR

AOSP referansı uygulaması, bu pano gereksinimlerini karşılar.

3.9. Cihaz Yönetimi

Android, güvenliğe duyarlı uygulamaların çalışmasına olanak tanıyan özellikler içerir şifrenin zorunlu kılınması gibi sistem düzeyinde cihaz yönetimi işlevleri uzaktan silme işlemini gerçekleştirme Android Cihaz Yönetimi API'si.

Cihaz uygulamaları, cihaz yönetiminin tamamını uyguluyorsa politikaları için:

  • [C-1-1] android.software.device_admin ZORUNLUDUR.
  • [C-1-2], şurada açıklandığı gibi cihaz sahibi temel hazırlığının yapılmasını DESTEKLEMELİDİR: bölüm 3.9.1 ve bölüm 3.9.1.1'i tıklayın.

3.9.1 Cihaz Temel Hazırlığı

3.9.1.1 Cihaz sahibi temel hazırlığı

Cihaz uygulamaları android.software.device_admin bildiriyorsa:

  • [C-1-1] Cihaz Politikası İstemcisi'nin (DPC) Cihaz Sahibi uygulaması aşağıda açıklandığı gibi:
    • Cihaz uygulamasında ne kullanıcılar ne de yapılandırıldığında, bunlar:
      • [C-1-5] DPC uygulamasını Cihaz Sahibi uygulaması olarak kaydetmeniz GEREKİR veya DPC uygulamasını etkinleştirerek Cihaz Sahibi veya Profil Sahibi olma, cihaz, Yakın Alan İletişimi (NFC) desteğini bildirirse android.hardware.nfc özellik bayrağı ve bir NFC mesajı alıyor. MIME türünde bir kayıt içeriyor MIME_TYPE_PROVISIONING_NFC
      • [C-1-8] şunu göndermelidir: ACTION_GET_PROVISIONING_MODE niyetini test etmek için kullanılır. Böylece, DPC uygulaması, Cihaz Sahibi veya Profil olmayı seçebilir sahip, değerine bağlı olarak, android.app.extra.PROVISIONING_ALLOWED_PROVISIONING_MODES, başka bir ekip tarafından tek bir geçerli seçeneğin bulunduğuna dikkat edin.
      • [C-1-9] İŞLEM_YÖNETİCİ_POLICY_COMPLIANCE cihaz sahibi olduğu durumlarda, bu uygulama kullanıcı temel hazırlık yönteminden bağımsız olarak. İlgili içeriği oluşturmak için kullanılan kullanıcı, doğrulama işlemi tamamlanana kadar Kurulum Sihirbazı'nda devam edememelidir. Cihaz Sahibi uygulaması tamamlanır.
    • Cihaz uygulamasında veya söz konusu olabilir:
      • [C-1-7] Herhangi bir DPC uygulamasını Cihaz Sahibi Uygulaması olarak kaydetmemek ZORUNLUDUR daha fazla.
  • [C-1-2] uygun bir açıklama bildirimi gösterilmelidir (AOSP'de atıfta bulunulan şekilde) ve uygulamadan önce son kullanıcının onayını alın Cihaz, programlı bir şekilde yapılandırılmadığı sürece Cihaz Sahibi olarak ayarlanmaz Perakende Demo Modu için ekranda son kullanıcıyla etkileşime geçmeden önce Cihaz uygulamaları android.software.device_admin belirtiyorsa, ancak aynı zamanda tescilli bir sistem tasarlayıp kendi çözümlerinde yapılandırılmış bir uygulamayı "Cihaz Sahibi" olarak tanıtma eşdeğeri" yeni "Cihaz Sahibi"ne standart Android tarafından tanındığı şekilde CihazPolitikasıYöneticisi API'ler:

  • [C-2-1] Söz konusu uygulamanın tanıtımı yapılan kullanıcının, meşru bir kurumsal cihaz yönetimine ait olması ve ürünün kendi çözümü içinde yapılandırıldığı anlamına gelir. sahip olması gerekir.

  • [C-2-2] android.app.action.PROVISION_MANAGED_DEVICE tarafından başlatılan akış .

  • [C-2-3] izni sabit bir şekilde kodlamamalı veya diğer cihaz sahibi uygulamalarının kullanımı.

3.9.1.2 Yönetilen profil temel hazırlığı

Cihaz uygulamaları android.software.managed_users bildiriyorsa:

3.9.2 Yönetilen Profil Desteği

Cihaz uygulamaları android.software.managed_users bildiriyorsa:

  • [C-1-1], android.app.admin.DevicePolicyManager üzerinden yönetilen profilleri DESTEKLEMELİDİR API'ler.
  • [C-1-2] Bir veya yalnızca bir yönetilen profil oluşturulmasına izin verilmesi ZORUNLUDUR.
  • [C-1-3] aşağıdaki amaçlar doğrultusunda bir simge rozeti (AOSP yayın öncesi iş rozetine benzer) yönetilen uygulamaları, widget'ları ve diğer rozetli kullanıcı arayüzü öğelerini temsil eder gibi: Son aramalar ve Bildirimler.
  • [C-1-4] Bir bildirim simgesi GÖRÜNTÜLEMELİDİR (AOSP yukarı akış çalışmasına benzer) rozeti) kullanın.
  • [C-1-5], kullanıcının yönetilen kuruluş biriminde olduğunu belirten bir kısa mesaj GÖRÜNTÜLEMELİDİR cihaz uyandığında (ACTION_USER_PRESENT) ve yönetilen profil içinde olması gerekir.
  • [C-1-6] Yönetilen profilin mevcut olduğu durumlarda Amaç "Seçici" Böylece kullanıcının niyeti yönetilen Device Policy (Cihaz Politikası) tarafından etkinleştirildiyse birincil kullanıcıya profil (veya tam tersi) Kumanda.
  • [C-1-7] Yönetilen profil mevcut olduğunda, aşağıdaki kullanıcı GÖSTERİLMELİDİR hem birincil kullanıcı hem de yönetilen profil için olanaklar:
    • Pil, konum, mobil veri ve depolama alanı kullanımının ayrı ayrı hesaplaması birincil kullanıcı ve yönetilen profil için.
    • Birincil kullanıcı veya yönetilen profil.
    • Birincil kullanıcı içinde yüklü uygulamaların bağımsız yönetimi veya yönetilen profil.
    • Birincil kullanıcıda veya yönetilen hesapta hesapların bağımsız yönetimi seçin.
  • [C-1-8] Önceden yüklenmiş numara çeviricinin, kişilerin ve mesajlaşmanın sağlanması ZORUNLUDUR uygulamalar, yönetilen bir uygulama sağlayıcısından arayan bilgilerini arayabilir birincil profildekilerle birlikte (varsa) veya birincil profildeki profillerle birlikte Cihaz Politikası Denetleyicisi buna izin veriyorsa
  • [C-1-9] Tüm güvenlik şartlarını karşıladığından emin olmalıdır. birden fazla kullanıcının etkinleştirilmiş olduğu cihazlarda geçerlidir (Bölüm 9.5'e bakın); yönetilen profil , birincil kullanıcıya ek olarak başka bir kullanıcı olarak sayılmaz.

Yeni koşullarla başlayın

  • [C-1-10] Ekran görüntüsü verilerinin iş profiline kaydedildiğinden emin olunması ZORUNLUDUR topActivity odaklanan pencere (kullanıcının tüm etkinlikler arasında en son etkileşimde bulunduğu) ve ait olduğu iş profili uygulaması.
  • [C-1-11] Diğer ekran içeriklerini (sistem çubuğu, bildirimleri veya kişisel profil içerikleri (iş profili hariç) uygulama penceresi/pencereleri iş profiline bir ekran görüntüsü kaydederken (kullanıcının kişisel bilgilerinizi profil verileri iş profiline kaydedilmez).

Yeni şartları sonlandırma

Cihaz uygulamalarında android.software.managed_users ve android.software.secure_lock_screen:

  • [C-2-1] Ayrı bir kilit ekranı toplantısı belirtme özelliğini DESTEKLEMELİDİR çalışan uygulamalara erişim izni vermek için aşağıdaki gereksinimleri profil oluşturabilirsiniz.
  • Yönetilen profildeki kişiler gösterildiğinde çağrı kaydında, arama sırasında, devam eden ve cevapsız çağrıda Rozetlerine sahip olması GEREKEN, tüm bildirimleri, kişileri ve mesajlaşma uygulamalarını yönetilen profil uygulamalarını belirtmek için kullanılan rozetle aynı olmalıdır.

3.9.3 Yönetilen Kullanıcı Desteği

Cihaz uygulamaları android.software.managed_users bildiriyorsa:

  • [C-1-1] Bir kullanıcıya, mevcut kullanıcıdan çıkış yapma olanağı sağlamalı ve Çok kullanıcılı oturumda birincil kullanıcıya geri döndüğünde isLogoutEnabled true değerini döndürür. Kullanıcı özelliklerine kilit ekranından erişilebilmesi ZORUNLUDUR cihazın kilidini açın.

Cihaz uygulamalarında android.software.device_admin bildiriliyorsa ve Cihaz üzerinde kullanıcıya ek ikincil Kullanıcı ekleme yetkisi varsa:

  • [C-SR-1] Şiddetle ÖNERİLİR ifadesinde aynı AOSP Cihaz Sahibi izni gösterilir kullanıcılar tarafından başlatılan akışta gösterilen ifşaların android.app.action.PROVISION_MANAGED_DEVICE hesapların yeni ikincil kullanıcıya eklenmesine izin vermeden önce Böylece kullanıcılar cihazın yönetildiğini anlar.

3.9.4 Cihaz Politikası Yönetimi Rolü Şartları

Cihaz uygulamaları android.software.device_admin veya android.software.managed_users kullanıcısıysanız:

  • [C-1-1], bölüm 9.1'de verilmiştir. Cihaz politikası yönetimi rolüne sahip uygulama Paket adına config_devicePolicyManagement ayarlanarak tanımlanabilir. Uygulama önceden yüklenmediyse paket adının ardından : ve imzalama sertifikası gelmelidir.

config_devicePolicyManagement için paket adı aşağıda açıklandığı gibi:

config_devicePolicyManagement için paket adı tanımlandığı gibi yukarıda:

  • [C-3-1] Uygulamanın tüm profiller bir kullanıcı için geçerli.
  • [C-3-2] Cihaz uygulamaları, kullanıcı temel hazırlığından önce, cihaz politikası yönetimi config_devicePolicyManagementUpdater

Paket adı config_devicePolicyManagementUpdater için aşağıda açıklandığı gibi:

  • [C-4-1] Uygulamanın cihaza önceden yüklenmiş olması ZORUNLUDUR.
  • [C-4-2] Uygulamanın, şu sorunu çözen bir intent filtresi uygulaması GEREKİR: android.app.action.UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER

Yeni koşullarla başlayın

3.9.5 Cihaz Politikası Çözüm Çerçevesi

Cihaz uygulamaları android.software.device_admin veya android.software.managed_users kullanıcısıysanız:

Yeni şartları sonlandırma

3:10. Erişilebilirlik

Android, engelli kullanıcıların şu işlemleri yapmasına yardımcı olan bir erişilebilirlik katmanı sağlar: daha kolay gezinebilir. Android, buna ek olarak, platform API'leri de sağlar. erişilebilirlik hizmeti uygulamalarının kullanıcı için geri çağırma yapmasını sağlayan geri bildirim mekanizmaları oluşturabilirler; örneğin, metin okuma, dokunsal geribildirim ve iztopu/d-pad ile gezinme.

Cihaz uygulamaları, üçüncü taraf erişilebilirlik hizmetlerini destekliyorsa:

  • [C-1-1] Android erişilebilirliğinin bir şekilde uygulanması ZORUNLUDUR bu adımlarda açıklandığı şekilde erişilebilirlik API'leri SDK belgeleri.
  • [C-1-2] Erişilebilirlik etkinlikleri OLUŞTURMALI ve uygun Tüm kayıtlı kişilere AccessibilityEvent AccessibilityService uygulamalarını gerçekleştirmelisiniz.
  • [C-1-4] Erişilebilirliği kontrol etmek için kullanıcıya fırsat sunulması ZORUNLUDUR beyanda bulunan AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_button. Sistem gezinme çubuğu bulunan cihaz uygulamalarında, bu uygulamaların Kullanıcıya sistem ayarlarında bir düğme seçeneğine İZİN VERİLMELİ gezinme çubuğunu kullanın.

Cihaz uygulamaları, önceden yüklenmiş erişilebilirlik hizmetleri içeriyorsa:

  • [C-2-1] Önceden yüklenmiş erişilebilirlik hizmetlerinin Doğrudan Başlatmaya Duyarlı .
  • Kullanıma hazır kurulum akışında kullanıcıların etkinleştirebileceği bir mekanizma sağlanmalıdır. ve ilgili erişilebilirlik hizmetlerinin yanı sıra yazı tipi boyutunu ayarlama seçenekleri, ekran boyutu ve büyütme hareketleri.

3:11. Metin-Konuşma

Android, uygulamaların metin okuma özelliğini kullanmasına izin veren API'ler içerir. (TTS) hizmetlerini sunar ve servis sağlayıcılarının TTS uygulamalarını sağlamasına olanak tanır kullanıma sunuyoruz.

Cihaz uygulamaları android.hardware.audio.çıkış özelliğini bildiriyorsa onlar:

Cihaz uygulamaları, üçüncü taraf TTS motorlarının yüklenmesini destekliyorsa:

  • [C-2-1] Kullanıcının bir TTS seçmesine izin vermek için kullanıcıya uygun imkân sunması ZORUNLUDUR gereken bir araçtan bahsedeceğiz.

3:12. TV Girişi Çerçevesi

Android Televizyon Giriş Çerçevesi (TIF), canlı yayın içeriklerini Android Televizyon cihazlarına önceden yükleyebilirsiniz. TIF, raporlama için standart bir API kontrol eden giriş modülleri de kullanabilirsiniz.

Cihaz uygulamaları TIF'yi destekliyorsa:

  • [C-1-1], android.software.live_tv adlı platform özelliğini beyan ZORUNLUDUR.
  • [C-1-2] bu API'ler ve üçüncü taraf TIF tabanlı girişler hizmetinin yüklü olup olmadığını kontrol edin.

3:13. Hızlı Ayarlar

Android, şunlara hızlı erişim sağlayan bir Hızlı Ayarlar kullanıcı arayüzü bileşeni sağlar: sık kullanılan veya acilen yapılması gereken işlemler.

Cihaz uygulamaları bir Hızlı Ayarlar kullanıcı arayüzü bileşeni içeriyorsa ve üçüncü taraf Hızlı Ayarlar:

  • [C-1-1] Kullanıcının, quicksettings Üçüncü taraf uygulamasındaki API'ler.
  • [C-1-2] Doğrudan bir üçüncü taraf uygulamasından otomatik olarak kutu EKLEMEMELİDİR Hızlı Ayarlar'a gidin.
  • [C-1-3] Üçüncü taraf uygulamalarına ait tüm kullanıcılar tarafından eklenen karoların GÖRÜNTÜLENMELİDİR hızlı ayar kutularının kombinasyonunu bulun.

3:14. Medya kullanıcı arayüzü

Cihaz uygulamaları, ses etkinliği olmayan ve etkileşimde bulunan uygulamalar (Uygulamalar) MediaBrowser üzerinden üçüncü taraf uygulamaları veya MediaSession, Uygulamalar:

  • [C-1-2] getIconBitmap() veya getIconUri() aracılığıyla elde edilen simgelerin ve başlıkların açıkça görüntülenmesi ZORUNLUDUR MediaDescription içinde açıklandığı şekilde getTitle() aracılığıyla edinildi. Güvenlik düzenlemelerine (ör. sürücünün dikkatinin dağılması) uyacak şekilde başlıklar kısaltılabilir.

  • [C-1-3] bu üçüncü taraf uygulamasıdır.

  • [C-1-4] Kullanıcının tüm MediaBrowser ile etkileşim kurmasına izin vermelidir hiyerarşik olarak düzenlenmiştir. Güvenlik düzenlemelerine uymak için hiyerarşinin bir bölümüne erişimi Kısıtlayabilir (ör. sürücünün dikkatinin dağılması) ancak içeriğe göre veya içerik sağlayıcı.

  • [C-1-5] KEYCODE_HEADSETHOOK veya KEYCODE_MEDIA_PLAY_PAUSE KEYCODE_MEDIA_NEXT olarak MediaSession.Callback#onMediaButtonEvent için geçerli.

3:15. Hazır Uygulamalar

Cihaz uygulamaları Hazır Uygulamalar'ı destekliyorsa aşağıdaki şartları yerine getirmeleri GEREKİR koşullar:

  • [C-1-1] Hazır Uygulamalar'a yalnızca android:protectionLevel "instant" olarak ayarlandı.
  • [C-1-2] Hazır Uygulamalar, dolaylı amaçlar aracılığıyla yüklü uygulamalarla ETKİLEŞİME GEÇMEMELİDİR aşağıdaki durumlardan biri geçerli değilse:
    • Bileşenin intent kalıbı filtresi açığa çıktı ve CATEGORY_BROWSABLE öğesine sahip
    • İşlem şunlardan biri: ACTION_SEND, ACTION_SENDTO, ACTION_SEND_MULTIPLE
    • Hedef, android:visibleTo InstantApps ile açıkça gösteriliyor
  • [C-1-3] Hazır Uygulamalar, bileşeninin android:visibleTo InstantApps aracılığıyla sunulduğu anlamına gelir.
  • [C-1-4] Yüklü Uygulamalar, Hazır Uygulama, yüklü uygulama.
  • Cihaz uygulamalarının, hazır uygulamalar ile etkileşime geçiyor. AOSP, Varsayılan Sistem Arayüzü, Ayarlar ve Başlatıcı. Cihaz uygulamaları:

    • [C-1-5] Hazır Uygulamalar'ı görüntülemek ve silmek için bir kullanıcı erişimi SAĞLANMALIDIR yerel olarak önbelleğe alınmış verileri içerir.
    • [C-1-6] hazır uygulama ön planda çalışırken daraltıldı. Bu kullanıcı bildirimi, Hazır Uygulamalar'ın yükleme gerektirmediğini içermelidir ve kullanıcıyı uygulamaya yönlendiren bir olanak sağlamak bilgi ekranına gidin. Web amaçları üzerinden başlatılan Hazır Uygulamalar için Intent.ACTION_VIEW olarak ayarlanmış bir intent ve "http" düzeniyle veya "https" gibi, ek bir kullanıcı Kullanıcının Hazır Uygulamayı başlatmamasına ve yapılandırılmış web tarayıcısıyla ilişkilendirilmiş bağlantıyı başlatın (ör. tarayıcı cihazda kullanılabilir.
    • [C-1-7] Hazır Uygulamalar'a Son Kullanılanlar'dan erişilmesine İZİN VERİLMELİDİR işlevini kullanın.
  • [C-1-8] Bir veya daha fazla uygulama ya da hizmet bileşeninin önceden yüklenmesi ZORUNLUDUR SDK'da listelenen amaçlar için burada bir intent işleyici ile hazır uygulamalar için görünür hale getirebilirsiniz.

3:16. Tamamlayıcı Cihaz Eşleme

Android, cihazları daha etkili bir şekilde yönetmek için tamamlayıcı cihaz eşlemeyi destekler. ilişkilendirilir ve CompanionDeviceManager Uygulamaların bu özelliğe erişmesi için API.

Cihaz uygulamaları, tamamlayıcı cihaz eşleme özelliğini destekliyorsa:

3:17. Ağır Uygulamalar

Cihaz uygulamalarında FEATURE_CANT_SAVE_STATE özelliği bildiriliyorsa, şunu yaparlar:

  • [C-1-1] cantSaveState çalışması anlamına gelir. Kullanıcı açıkça çıkmadan bu tür bir uygulamadan ayrılır (örneğin, sistemde etkin bir etkinlikten çıkarken Geri düğmesine basmak yerine evde etkin etkinlik yoksa) diğer uygulamalarda olduğu gibi, RAM'da da uygulamaya öncelik verilmelidir. Ön plan hizmetleri gibi, çalışmaya devam etmesi beklenen özellikler. Bu tür bir uygulama arka plandayken sisteme güç uygulayabilir sınırlama gibi bazı yönetim özelliklerinden yararlanabilmelidir.
  • [C-1-2], çalışmayan uygulamayı seçmek için bir kullanıcı arayüzü fırsatı SAĞLAMALIDIR kullanıcı daha sonra normal durum kaydetme/geri yükleme mekanizmasına cantSaveState ile beyan edilen ikinci bir uygulamayı başlatır özelliğini gönderin.
  • [C-1-3] Politikadaki diğer değişiklikleri cantSaveState veya zaman çizelgesindeki önceliklendirmeyi değiştirmek gibi.

Cihaz uygulamaları özelliği bildirmezse FEATURE_CANT_SAVE_STATE şunu yaparlar:

  • [C-1-1], cantSaveState yapılandırmasını yok saymalıdır. ve bu özelliğe göre uygulama davranışını DEĞİŞTİRMEMELİDİR. özelliğini gönderin.

3:18. Kişiler

Android şunları içerir: Contacts Provider Uygulamaların cihazda depolanan kişi bilgilerini yönetmesine olanak tanıyan API'ler. Doğrudan cihaza girilen kişi verileri genellikle senkronize edilir. ancak veriler yalnızca yerel olarak cihazda saklanabilir. Yalnızca cihazda depolanan kişilere yerel kişiler.

Ham Kişiler "şununla ilişkili"dir: veya "depolanan" Hesap ACCOUNT_NAME, ve ACCOUNT_TYPE ham kişilere ait sütunlar, karşılık gelen Hesap.adı ve Account.type alanları oluşturabilirsiniz.

Varsayılan yerel hesap: Yalnızca şuralarda depolanan ham kişiler için bir hesaptır: Cihazda, bir Hesapla ilişkilendirilmediğinden ve Hesap Yöneticisi, için null ACCOUNT_NAME, ve ACCOUNT_TYPE, sütunlarından birini tıklayın.

Özel yerel hesap: Yalnızca şurada depolanan ham kişilerle ilgili bir hesaptır: olan ve Hesap Yöneticisi'ndeki bir Hesap ile ilişkilendirilmemiş için en az bir boş olmayan değerle oluşturulmuş ACCOUNT_NAME, ve ACCOUNT_TYPE sütunlarından birini tıklayın.

Cihaz uygulamaları:

  • [C-SR-1] Özel yerel hesaplar oluşturmamanız ÖNEMLE ÖNERİLİR.

Cihaz uygulamaları özel yerel hesap kullanıyorsa:

  • [C-1-1] ACCOUNT_NAME bir kullanıcının özel yerel hesabın sahibi tarafından döndürülmesi ZORUNLUDUR ContactsContract.RawContacts.getLocalAccountName
  • [C-1-2] ACCOUNT_TYPE bir kullanıcının özel yerel hesabın sahibi tarafından döndürülmesi ZORUNLUDUR ContactsContract.RawContacts.getLocalAccountType
  • [C-1-3] Üçüncü taraf uygulamalar tarafından eklenen ham kişiler varsayılan yerel hesap (yani ACCOUNT_NAME ve ACCOUNT_TYPE) özel yerel hesap.
  • [C-1-4] Özel yerel hesaba eklenen ham kişiler URL'nin aşağıda yer almaması ZORUNLUDUR hesap eklendiğinde veya kaldırıldığında kaldırılır.
  • [C-1-5] Özel yerel hesaba karşı gerçekleştirilen silme işlemleri Ham kişilerin hemen kalıcı olarak silinmesi ZORUNLUDUR ( CALLER_IS_SYNCADAPTER parametresi "doğru" olarak ayarlanmıştır) (CALLER\_IS\_SYNCADAPTER parametresi ayarlanmış olsa bile) değeri false (yanlış) olarak ayarlayın.

4. Uygulama Paketleme Uyumluluğu

Cihaz uygulamaları:

  • [C-0-1] Android ".apk" dosyasını yükleyip çalıştırabilmesi ZORUNLUDUR farklı dosyalar "aapt" tarafından oluşturulmuştur araç setinde yer alan resmi Android SDK'sını kullanarak oluşturun.

    • Yukarıdaki gereksinim zorlayıcı olabileceğinden, cihaz uygulamaları AOSP referans uygulamasının paket yönetiminin kullanılması ÖNERİLİR bahsedeceğim.
  • [C-0-2] ".apk" dosyasının doğrulanmasını DESTEKLEMELİDİR dosyalarını kullanarak APK İmza Şeması 3.1 sürümü, APK İmza Şeması v3, APK İmza Şeması v2 ve JAR imzalama özelliklerinden yararlanabilirsiniz.

  • [C-0-3] .apk Android Manifest'i, Dalvik bayt kodu veya RenderScript bayt kodu biçimlerini, bu dosyaların diğer uyumlu cihazlara doğru yüklü olduğundan emin olun.

  • [C-0-4] Mevcut "kayıt yükleyicisi" hiçbir ek ücret ödemeden uygulamayı sessizce kaldırmasını SDK'sında belirtildiği üzere, DELETE_PACKAGE izni gerekir. Tek istisna, sistem paketi doğrulayıcı uygulama işlemedir. PACKAGE_NEEDS_VERIFICATION intent ve depolama yöneticisi uygulama işleme İŞLEM_YÖNETİMİ_DEPOLAMA isteyebilirsiniz.

  • [C-0-5] android.settings.MANAGE_UNKNOWN_APP_SOURCES isteyebilirsiniz.

  • [C-0-6] Bilinmeyenlerden uygulama paketleri YÜKLEMEMELİDİR yükleme isteğinde bulunan uygulama haricindeki tüm kaynaklar aşağıdaki şartların tümünü karşılamalıdır:

    • REQUEST_INSTALL_PACKAGES beyan edilmelidir. veya android:targetSdkVersion değerini 24 ya da daha düşük bir değere ayarlayın.
    • Kullanıcı tarafından bilinmeyen kaynaklar.
  • Bir kullanıcıya bu izni vermesi/iptal etmesi için zaman tanımalı uygulama başına bilinmeyen kaynaklardan uygulama yüklen, ancak uygulamayı da seçebilir bunu işlemsiz olarak yapın ve şunun için RESULT_CANCELED döndürün: startActivityForResult(), Cihaz uygulaması, kullanıcıların bu seçeneğe sahip olmasına izin vermek istemiyorsa karar vermelidir. Ancak, bu gibi durumlarda bile kullanıcıya neden çok iyi olur.

  • [C-0-7] PackageManager.setHarmfulAppWarning sistem API'si üzerinden sağlanır işaretli bir uygulamada etkinlik başlatmadan önce kullanıcıya potansiyel olarak aynı sistem API'si (PackageManager.setHarmfulAppWarning) tarafından zararlıdır.

  • Kullanıcıya bir uygulamayı kaldırma veya çalıştırma seçeneği sunma uyarısı gösterilir.

  • [C-0-8] belgelendiği gibi artımlı dosya sistemi desteğinin uygulanması ZORUNLUDUR burada bulabilirsiniz.

  • [C-0-9], .apk dosyalarının APK İmza Şeması v4 kullanılarak doğrulanmasını desteklemektedir ve APK İmza Şeması 4.1 sürümü.

5. Multimedya Uyumluluğu

Cihaz uygulamaları:

  • [C-0-1]; medya biçimlerini, kodlayıcıları, kod çözücüleri, dosya türlerini, bölüm 5.1'de tanımlanan kapsayıcı biçimleri ile MediaCodecList tarafından tanımlanan her bir codec için.
  • [C-0-2] Mevcut kodlayıcıların ve kod çözücülerin desteğini bildirmeli ve bildirmeli üçüncü taraf uygulamalarına MediaCodecList.
  • [C-0-3] Kodu düzgün bir şekilde çözebilmesi ve üçüncü tarafların kullanımına sunabilmesi ZORUNLUDUR tüm biçimleri kullanabilirsiniz. Bu, son 30 güne ait oluşturulan profilleri ve bu profilde raporlanan profilleri CamcorderProfile.

Cihaz uygulamaları:

  • Minimum codec gecikmesini hedeflenmeli, diğer bir deyişle
    • Yalnızca giriş arabelleklerini ve döndürülen giriş arabelleklerini KULLANMAMALIDIR. yeniden işlendiğinde.
    • Kodu çözülmüş arabellekleri standart (örneğin, SPS).
    • Kodlanmış tamponları GOP'nin gerektirdiğinden daha uzun süre TUTUMAMALIDIR. inceleyeceğiz.

Aşağıdaki bölümde listelenen tüm codec'ler, yazılım olarak sunulur tercih edilen Android uygulamasındaki en iyi uygulamalar Kaynak Proje.

Google'ın da Open Handset Alliance'ın da ne yaptığını unutmayın. . Bu bu kaynak kodun donanım veya yazılım ürünlerinde kullanılmasını açık kaynak yazılımlar veya üçüncü taraf uygulamalar dahil olmak üzere ilgili patent sahiplerinden patent lisansları alınması gerekebilir.

5.1. Medya Codec'leri

5.1.1. Ses Kodlama

5.1.3. Ses Codec'leri Ayrıntıları.

Cihaz uygulamalarında android.hardware.microphone bildiriliyorsa, aşağıdaki ses biçimlerinin kodlanmasını desteklemeleri ve bu biçimleri kullanılabilir hale getirmeleri ZORUNLUDUR için:

  • [C-1-1] PCM/DALGA
  • [C-1-2] FLAC
  • [C-1-3] Opus

Tüm ses kodlayıcılarının şunları desteklemesi GEREKİR:

5.1.2. Ses Kodu Çözme

5.1.3. Ses Codec'leri Ayrıntıları.

Cihaz uygulamaları, android.hardware.audio.output özelliğini kullanıyorsanız şu ses biçimleri:

  • [C-1-1] MPEG-4 AAC Profili (AAC LC)
  • [C-1-2] MPEG-4 HE AAC Profili (AAC+)
  • [C-1-3] MPEG-4 HE AACv2 Profili (geliştirilmiş AAC+)
  • [C-1-4] AAC ELD (geliştirilmiş düşük gecikmeli AAC)
  • [C-1-11] xHE-AAC (ISO/IEC 23003-3 Genişletilmiş HE AAC profili, USAC Temel Profili ve ISO/IEC 23003-4 Dinamik Aralık Kontrol Profili)
  • [C-1-5] FLAC
  • [C-1-6] MP3
  • [C-1-7] MIDI
  • [C-1-8] Vorbis
  • [C-1-9] Yüksek çözünürlüklü ses dahil PCM/WAVE 24 bit, 192 kHz örnek hızı ve 8 kanal biçimlerine sahiptir. Bu şartın yalnızca kod çözmeyle ilgili olduğunu ve bir cihazın Oynatma aşamasında örnek sayısının azaltılmasına veya azaltılmasına izin verilir.
  • [C-1-10] Opus

Cihaz uygulamaları, varsayılan olarak PCM'ye çok kanallı akışlar (yani ikiden fazla kanal) android.media.MediaCodec API'sinde AAC ses kod çözücü. Aşağıdakiler ZORUNLUDUR desteklenir:

  • [C-2-1] Kod çözme işlemi aşağı karıştırılmadan yapılmalıdır (ör. 5.0 AAC akışın kodu beş PCM kanalına, 5.1 AAC akışının kodu çözülmelidir altı PCM kanalına gönderebilirsiniz.
  • [C-2-2] Dinamik aralık meta verileri, "Dinamik Aralık Kontrolü"nde tanımlandığı gibi ZORUNLUDUR (DKC)" ve android.media.MediaFormat DRC tuşlarını kullanın: ses kod çözücünün dinamik aralıkla ilgili davranışlarını yapılandırır. İlgili içeriği oluşturmak için kullanılan AAC DRC anahtarları API 21'de kullanıma sunulmuştur ve şunlardır: KEY_AAC_DRC_ATTENUATION_FACTOR, KEY_AAC_DRC_BOOST_FACTOR, KEY_AAC_DRC_HEAVY_COMPRESSION, KEY_AAC_DRC_TARGET_REFERENCE_LEVEL ve KEY_AAC_ENCODED_TARGET_LEVEL.
  • [C-SR-1] Yukarıdaki C-2-1 ve C-2-2 şartlarının şu şekilde olması ÖNEMLE ÖNERİLİR: tüm AAC ses kod çözücüler tarafından sorunsuz bir şekilde çalışır.

USAC sesin kodunu çözerken MPEG-D (ISO/IEC 23003-4):

  • [C-3-1] Ses düzeyi ve DRC meta verilerinin yorumlanması ve uygulanması ZORUNLUDUR MPEG-D DRC Dinamik Aralık Kontrol Profili Düzeyi 1'e göre.
  • [C-3-2] Kod çözücü, yapılandırmaya göre çalışmalıdır. şu android.media.MediaFormat tuşlarıyla ayarlandı: KEY_AAC_DRC_TARGET_REFERENCE_LEVEL ve KEY_AAC_DRC_EFFECT_TYPE.

MPEG-4 AAC, HE AAC ve HE AACv2 profili kod çözücüler:

  • ISO/IEC 23003-4 kullanarak gürültü ve dinamik aralık kontrolünü destekleyebilir Dinamik Aralık Kontrol Profili.

ISO/IEC 23003-4 destekleniyorsa ve hem ISO/IEC 23003-4 hem de ISO/IEC 23003-4 standardı destekleniyorsa Kodu çözülmüş bir bit akışında ISO/IEC 14496-3 meta verileri bulunur ve bu durumda:

  • ISO/IEC 23003-4 meta verileri önceliklidir.

Tüm ses kod çözücüler çıkışları DESTEKLEMELİDİR:

Cihaz uygulamaları, varsayılan olarak PCM'ye çok kanallı akışlar (yani ikiden fazla kanal) android.media.MediaCodec API'sinde AAC ses kod çözücü, aşağıdakilerin kullanılması ZORUNLUDUR desteklenmeli:

  • [C-7-1] kod çözme yöntemi kullanılarak uygulama tarafından yapılandırılabilmesi ZORUNLUDUR anahtarla KEY_MAX_OUTPUT_CHANNEL_COUNT içeriğin stereo sese azaltılıp azaltılmayacağını kontrol etmek için (2 değeri kullanılırken) veya yerel kanal sayısı kullanılarak çıktı alınır (şuna eşit: büyüktür). Örneğin 6 veya daha büyük bir değer, kod çözücü (5.1 içerik beslendiğinde 6 kanal çıkışı)
  • [C-7-2] Kod çözerken, kod çözücü kullanılan kanal maskesinin reklamını YAPMALIDIR. ve KEY_CHANNEL_MASK android.media.AudioFormat sabit değerlerini kullanın (örnek: CHANNEL_OUT_5POINT1).

Cihaz uygulamaları, varsayılan AAC dışındaki ses kod çözücüleri destekliyorsa ses kod çözücü ve çok kanallı ses (yani 2 kanal) kaldırın. Ardından:

  • [C-SR-2] Kod çözücünün kod çözme işlemini anahtarla KEY_MAX_OUTPUT_CHANNEL_COUNT içeriğin stereo sese azaltılıp azaltılmayacağını kontrol etmek için (2 değeri kullanılırken) veya yerel kanal sayısı kullanılarak çıktı alınır (şuna eşit: büyüktür). Örneğin 6 veya daha büyük bir değer, kod çözücü (5.1 içerik beslendiğinde 6 kanal çıkışı)
  • [C-SR-3] Kod çözücüye çıkış biçiminde kullanılan kanal maskesini KEY_CHANNEL_MASK tuşuna basarak, android.media.AudioFormat sabitlerini kullanabilirsiniz (örneğin: CHANNEL_OUT_5POINT1).

5.1.3. Ses Codec'leri Ayrıntıları

Biçim/Codec Ayrıntılar Desteklenecek dosya türleri/Kapsayıcı Biçimleri
MPEG-4 AAC profili
(AAC LC)
Standart sürümle mono/stereo/5.0/5.1 içerik için destek 8 - 48 kHz arasında örnekleme hızları.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
  • ADTS ham AAC (.aac, ADIF desteklenmez)
  • MPEG-TS (.ts, aranabilir değil, yalnızca kod çözme)
  • Matroska (.mkv, yalnızca kod çözme)
MPEG-4 HE AAC Profili (AAC+) Standart sürümle mono/stereo/5.0/5.1 içerik için destek 16 - 48 kHz arasında örnekleme hızları.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
MPEG-4 HE AACv2
Profil (geliştirilmiş AAC+)
Standart sürümle mono/stereo/5.0/5.1 içerik için destek 16 - 48 kHz arasında örnekleme hızları.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
AAC ELD (geliştirilmiş düşük gecikmeli AAC) 16'dan 16'ya kadar standart örnekleme hızlarıyla mono/stereo içerik desteği 48 kHz.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
USAC 7,35'ten standart örnekleme hızlarıyla mono/stereo içerik desteği 48 kHz'e getirilsin. MPEG-4 (.mp4, .m4a)
AMR ve NB 8 kHz'de örneklenmiş 4,75 - 12,2 kb/sn 3GPP (.3gp)
AMR-WB Aşağıdaki gibi 16 kHz'de örneklenen 6,60 kbit/sn ile 23,85 kbit/sn arasında 9 hız AMR-WB, Uyarlanabilir Çoklu Hız - Geniş Bant Konuşma Codec'i 3GPP (.3gp)
FLAC Hem kodlayıcı hem de kod çözücü için: En azından Mono ve Stereo modların desteklenir. 192 kHz'e kadar örnek hızlarının desteklenmesi ZORUNLUDUR; 16 bit ve 24 bit çözünürlüğün desteklenmesi ZORUNLUDUR. FLAC 24 bit ses verilerini işleme ZORUNLUDUR ses yapılandırmasıyla kullanılabilir.
  • FLAC (.flac)
  • MPEG-4 (.mp4, .m4a, yalnızca kod çözme)
  • Matroska (.mkv, yalnızca kod çözme)
MP3 Mono/Stereo 8-320 Kb/sn sabit (CBR) veya değişken bit hızı (VBR)
  • MP3 (.mp3)
  • MPEG-4 (.mp4, .m4a, yalnızca kod çözme)
  • Matroska (.mkv, yalnızca kod çözme)
MIDI MIDI Tür 0 ve 1. DLS Sürüm 1 ve 2. XMF ve Mobile XMF. Destek RTTTL/RTX, OTA ve iMelody zil sesi biçimleri
  • 0 ve 1 yazın (.mid, .xmf, .mxmf)
  • RTTTL/RTX (.rtttl, .rtx)
  • iMelody (.imy)
Vorbis Kod çözme: Örneklemeyle mono, stereo, 5.0 ve 5.1 içerik için destek 8.000, 12.000, 16.000, 24.000 ve 48.000 Hz.
Kodlama: Şu örnekleme hızlarıyla mono ve stereo içerik için destek: 8000, 12000, 16000, 24000 ve 48.000 Hz.
  • Ogg (.ogg)
  • MPEG-4 (.mp4, .m4a, yalnızca kod çözme)
  • Matroska (.mkv)
  • Webm (.webm)
PCM/DALGA PCM codec'inin 16 bit doğrusal PCM'yi ve 16 bit kayan noktalı desteği DESTEKLEMELİDİR. DALGA ayıklayıcı; 16 bit, 24 bit, 32 bit doğrusal PCM ve 32 bit kayan noktalı desteği desteklemelidir (donanım limitine kadar hızlar). Örnekleme hızlarının desteklenmemesi ZORUNLUDUR: 8 kHz - 192 kHz. DALGA (.wav)
Opus Kod çözme: Mono, stereo, 5.0 ve 5.1 içerik için destek 8000, 12000, 16000, 24000 ve 48000 Hz örnekleme hızlarıyla
Kodlama: Mono ve stereo içerik için destek 8000, 12000, 16000, 24000 ve 48000 Hz örnekleme hızlarıyla
  • Ogg (.ogg)
  • MPEG-4 (.mp4, .m4a, yalnızca kod çözme)
  • Matroska (.mkv)
  • Webm (.webm)

5.1.4. Resim Kodlama

Ayrıntılı bilgi için 5.1.6. Resim Codec'leri Ayrıntıları.

Cihaz uygulamalarında aşağıdaki resim kodlamasının kodlanması ZORUNLUDUR:

  • [C-0-1] JPEG
  • [C-0-2] PNG
  • [C-0-3] WebP

Yeni koşullarla başlayın

  • [C-0-4] AVIF
    • Cihazlar BITRATE_MODE_CQ ve Temel Profili desteklemelidir.

Yeni şartları sonlandırma

Cihaz uygulamaları, android.media.MediaCodec üzerinden HEIC kodlamasını destekliyorsa MIMETYPE_IMAGE_ANDROID_HEIC medya türü için onlar:

  • [C-1-1] Aşağıdaki özelliklere sahip bir donanım hızlandırmalı HEVC kodlayıcı codec'i SAĞLAMALIDIR: destekler BITRATE_MODE_CQ bit hızı kontrol modu, HEVCProfileMainStill profil ve 512 x 512 piksel çerçeve boyutu.

5.1.5. Resim Kodu Çözme

Ayrıntılı bilgi için 5.1.6. Resim Codec'leri Ayrıntıları.

Cihaz uygulamaları, aşağıdaki resim kodlamasının kodunu çözmeyi DESTEKLEMELİDİR:

  • [C-0-1] JPEG
  • [C-0-2] GIF
  • [C-0-3] PNG
  • [C-0-4] BMP
  • [C-0-5] WebP'si
  • [C-0-6] Ham
  • [C-0-7] AVIF (Temel Profil)

Cihaz uygulamaları, HEVC video kodu çözmeyi destekliyorsa: * [C-1-1], HEIF (HEIC) görüntü kodu çözmeyi DESTEKLEMELİDİR.

Yüksek bit derinliği biçimini (kanal başına 9'dan fazla bit) destekleyen resim kod çözücüler:

  • [C-2-1], (örneğin, ARGB_8888 üzerinden) android.graphics.Bitmap yapılandırması.

5.1.6. Resim Codec'leri Ayrıntıları

Biçim/Codec Ayrıntılar Desteklenen Dosya Türleri/Kapsayıcı Biçimleri
JPEG Temel+progresif JPEG (.jpg)
GIF GIF (.gif)
PNG PNG (.png)
BMP BMP (.bmp)
WebP WebP (.webp)
İşlenmemiş ARW (.arw), CR2 (.cr2), DNG (.dng), NEF (.nef), NRW (.nrw), ORF (.orf), PEF (.pef), RAF (.raf), RW2 (.rw2), SRW (.srw)
HeIF Resim, Resim toplama, Resim dizisi HEIF (.heif), HEIC (.heic)
AVIF (Temel Profil) Resim, resim toplama, Resim dizisi Temel Profil HEIF kapsayıcısı (.avif)

MediaCodec API üzerinden gösterilen resim kodlayıcı ve kod çözücüler

  • [C-1-1] YUV420 8:8:8 esnek rengi DESTEKLEMELİDİR biçimi (COLOR_FormatYUV420Flexible) ile CodecCapabilities arası

  • [C-SR-1] Giriş yüzeyinde RGB888 renk biçimini desteklemesi ÖNEMLE ÖNERİLİR yatırım yapmanız önemlidir.

  • [C-1-3] Düzlemsel veya yarı düzlemli bir uçaktan en az birini DESTEKLEMELİDİR YUV420 8:8:8 renk biçimi: COLOR_FormatYUV420PackedPlanar (eşdeğeri: COLOR_FormatYUV420Planar) veya COLOR_FormatYUV420PackedSemiPlanar (eşdeğeri) ile COLOR_FormatYUV420SemiPlanar arasında). Destek vermeleri ÖNEMLE ÖNERİLİR: her ikisini de seçebilirsiniz.

5.1.7. Video Codec'leri

  • Kabul edilebilir kalitede web video akışı ve video konferans için hizmetler, cihaz uygulamaları şartları inceleyin.

Cihaz uygulamaları bir video kod çözücü veya kodlayıcı içeriyorsa:

  • [C-1-1] Video codec'lerinin dikte edildiği şekilde, mümkün olan en büyük sıkıştırılmış ve sıkıştırılmamış çerçeveyi barındırabilirsiniz temel alınır.

  • [C-1-2] Video kodlayıcılar ve kod çözücüler YUV420 8:8:8 esnek rengini DESTEKLEMELİDİR biçimleri (COLOR_FormatYUV420Flexible) - CodecCapabilities.

  • [C-1-3] Video kodlayıcılar ve kod çözücüler, yarı düz YUV420 8:8:8 renk biçimi: COLOR_FormatYUV420PackedPlanar (COLOR_FormatYUV420Planar değerine eşdeğer) veya COLOR_FormatYUV420PackedSemiPlanar (COLOR_FormatYUV420SemiPlanar'ye eşdeğerdir). Her ikisini de desteklemeleri ÖNEMLE ÖNERİLİR.

  • [C-SR-1] Video kodlayıcıların ve kod çözücülerin desteklenmesi ÖNERİLİR donanım açısından optimize edilmiş düz veya yarı düzlem YUV420 8:8:8 renginden en az biri biçimi (YV12, NV12, NV21 veya tedarikçi firma tarafından optimize edilmiş eşdeğer biçim.)

  • [C-1-5] Yüksek bit derinliği biçimini destekleyen video kod çözücüler (Kanal başına 9+ bit) aşağıdaki durumlarda 8 bit eşdeğer biçimde çıkışı DESTEKLEMELİDİR talep etmesi gerekir. Bu durumun, android.media.MediaCodecInfo üzerinden YUV420 8:8:8 renk biçimi.

Cihaz uygulamaları, Display.HdrCapabilities onlar:

  • [C-2-1], HDR statik meta verilerin ayrıştırılmasını ve işlenmesini DESTEKLEMELİDİR.

Cihaz uygulamaları, MediaCodecInfo.CodecCapabilities içinde FEATURE_IntraRefresh onlar:

  • [C-3-1], 10 - 60 kare aralığındaki yenileme sürelerini desteklemelidir ve Yapılandırılmış yenileme süresinin% 20'sinde doğru şekilde çalışması gerekir.

Uygulama, KEY_COLOR_FORMAT kullanılarak aksini belirtmediği sürece biçim anahtarı, video kod çözücü uygulamaları:

  • [C-4-1] Varsayılan olarak, donanım ekranı için optimize edilmiş renk biçiminin kullanılması ZORUNLUDUR Yüzey çıkışı kullanılarak yapılandırıldıysa.
  • [C-4-2] Varsayılan olarak CPU için optimize edilmiş bir YUV420 8:8:8 renk biçiminin kullanılması ZORUNLUDUR Yüzey çıkışı kullanmayacak şekilde yapılandırıldıysa okuma.

5.1.8. Video Codec'leri Listesi

Biçim/Codec Ayrıntılar Desteklenecek dosya türleri/Kapsayıcı Biçimleri
H.263
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv, yalnızca kod çözme)
H.264 AVC Bkz. bölüm 5.2 ve Ayrıntılar için 5.3
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • MPEG-2 TS (.ts, aranabilir değil)
  • Matroska (.mkv, yalnızca kod çözme)
H.265 HEVC Ayrıntılar için bkz. bölüm 5.3
  • MPEG-4 (.mp4)
  • Matroska (.mkv, yalnızca kod çözme)
MPEG-2 Ana Profil
  • MPEG2-TS (.ts, aranabilir değil)
  • MPEG-4 (.mp4, yalnızca kod çözme)
  • Matroska (.mkv, yalnızca kod çözme)
MPEG-4 SP
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv, yalnızca kod çözme)
VP8 Bölüm 5.2 ve Ayrıntılar için 5.3
Başkan Yardımcısı Ayrıntılar için bkz. bölüm 5.3
AV1 Ayrıntılar için bölüm 5.2 ve bölüm 5.3'e bakın
  • MPEG-4 (.mp4)
  • Matroska (.mkv, yalnızca kod çözme)

5.1.9. Medya Codec Güvenliği

Cihaz uygulamalarının, medya codec'i güvenlik özellikleriyle uyumlu olması ZORUNLUDUR gerekir.

Android, platformlar arası multimedya hızlandırma API'si olan OMX ve ayrıca, düşük ek yük gerektiren bir multimedya hızlandırma API'si olan Codec 2.0'ı da sunuyoruz.

Cihaz uygulamaları multimedyayı destekliyorsa:

  • [C-1-1], OMX veya Codec 2.0 üzerinden medya codec'leri için destek sunmalıdır. Android Açık Kaynak Projesi'ndeki gibi API'ler (ya da her ikisi) gerekir ve güvenlik korumalarını atlatma. Bu, özellikle her ekip üyesinin codec'in, OMX veya Codec 2.0 API'sini kullanması ZORUNLUDUR; yalnızca, bu API'lerden birinin bulunması ZORUNLUDUR, mevcut API'ler için destek de ZORUNLUDUR mevcut güvenlik korumaları dahil.
  • [C-SR-1] Codec 2.0 API desteği içermesi ÖNEMLE ÖNERİLİR.

Cihaz uygulamaları Codec 2.0 API'yi desteklemiyorsa:

  • [C-2-1] Android'in ilgili OMX yazılım codec'ini İÇERMELİDİR Her medya biçimi ve türü için Açık Kaynak Projesi (varsa) (kodlayıcı veya kod çözücü) sunmanızı sağlar.
  • [C-2-2] "OMX.google" ile başlayan adlara sahip codec'ler. Referans olması ZORUNLUDUR kaynak koduna ekleyebilirsiniz.
  • [C-SR-2] OMX yazılım codec'lerinin bir codec'te çalışması ÖNEMLE ÖNERİLİR erişimi olmayan donanım sürücülerine erişimi olmayan işlem.

Cihaz uygulamaları Codec 2.0 API'yi destekliyorsa:

  • [C-3-1] Her medya biçimi ve türü için Android Açık Kaynak Projesi (varsa) (kodlayıcı veya kod çözücü) sunmanızı sağlar.
  • [C-3-2] Yazılım codec'inde Codec 2.0 yazılım codec'lerini İÇERMELİDİR Android Açık Kaynak Projesi'nde sağlandığı şekilde sürecin yazılım codec'lerine daha dar kapsamlı bir şekilde erişim izni vermelerini sağlar.
  • [C-3-3] "c2.android" ile başlayan adlara sahip codec'ler. Referans olması ZORUNLUDUR kaynak koduna ekleyebilirsiniz.

5.1.10. Medya Codec'i Karakterlendirmesi

Cihaz uygulamaları medya codec'lerini destekliyorsa, bunlar:

Özellikle:

  • [C-1-2] "OMX" ile başlayan adlara sahip codec'ler. OMX API'lerinin kullanılması ZORUNLUDUR ve OMX IL adlandırma yönergelerine uygun adlara sahip olmalıdır.
  • [C-1-3] Adları "c2" ile başlayan codec'ler. Codec 2.0 API ve Android için Codec 2.0 adlandırma yönergelerine uygun adlara sahip olmalıdır.
  • [C-1-4] "OMX.google" ile başlayan adlara sahip codec'ler. veya "c2.android" yazın. ZORUNLU Tedarikçi firma olarak veya donanım hızlandırmalı olarak nitelendirilmez.
  • [C-1-5] Aşağıdaki özelliklere sahip bir codec işleminde (sağlayıcı veya sistem) çalışan codec'lar: Bellek ayırıcılar ve haritacılar dışındaki donanım sürücülerine erişilmesi ZORUNLU DEĞİLDİR yalnızca yazılım olarak nitelendirilir.
  • [C-1-6] Android Açık Kaynak Projesi'nde bulunmayan veya tabanlı olmayan codec'ler o projedeki kaynak koduna tedarikçiyle nitelendirilmeniz GEREKİR.
  • [C-1-7] Donanım hızlandırmadan yararlanan codec'lerin karakter sınırlaması ZORUNLUDUR olarak da hızlandırıyor.
  • [C-1-8] Codec adları yanıltıcı OLMAMALIDIR. Örneğin, "kod çözücüler" Kod çözmeyi desteklemelidir ve "kodlayıcılar" olarak adlandırılanlar DESTEKLEMELİDİR kullanır. Medya biçimlerini içeren adlara sahip codec'ler biçimlerinden biridir.

Cihaz uygulamaları video codec'lerini destekliyorsa:

  • [C-2-1] Tüm video codec'lerinin, codec tarafından destekleniyorsa şu boyutları destekler:
SD (düşük kalite) SD (yüksek kalite) HD 720p HD 1080p UHD
Video çözünürlüğü
  • 176 x 144 piksel (H263, MPEG2, MPEG4)
  • 352 x 288 piksel (MPEG4 kodlayıcı, H263, MPEG2)
  • 320 x 180 piksel (VP8, VP8)
  • 320 x 240 piksel (diğer)
  • 704 x 576 piksel (H263)
  • 640 x 360 piksel (VP8, VP9)
  • 640 x 480 piksel (MPEG4 kodlayıcı)
  • 720 x 480 piksel (diğer, AV1)
  • 1.408 x 1152 piksel (H263)
  • 1280 x 720 piksel (diğer, AV1)
1920 x 1080 piksel (MPEG4, AV1 hariç) 3840 x 2160 piksel (HEVC, VP9, AV1)
  • [C-2-2] Donanım hızlandırmalı olarak nitelendirilen video codec'lerinin ZORUNLUDUR performans puanı bilgilerini yayınlayın. Her listenin desteklenmesi ZORUNLUDUR standart performans puanları (PerformancePoint'nda listelenmiştir) API (desteklenen başka bir standart performans noktası kapsamında değilse)
  • Ayrıca, aşağıdaki durumlarda genişletilmiş performans puanları YAYINLAMALIDIRLAR listelenen standartların dışında, sürekli video performansını desteklemelidir.

5.2. Video Kodlaması

Cihaz uygulamaları herhangi bir video kodlayıcıyı destekliyor mu ve yoksa kullanıma sunun mu? için:

  • İki kayan pencerenin üzerinde bit hızında% 15'in üzerinde bir değer OLMAMALIDIR. iki kare arası (I-çerçeve) aralıkları arasında olmalıdır.
  • Kayan pencerede bit hızının% 100'ün üzerinde OLMAMALIDIR. devam edebilir.

Yeni koşullarla başlayın

Cihaz uygulamaları herhangi bir video kodlayıcıyı destekliyorsa ve bu kodlayıcının üçüncü taraf uygulamalarını indirip
MediaFormat.KEY_BITRATE_MODE yerine BITRATE_MODE_VBR kodlayıcının Değişken bit hızı modunda çalışmasını sağlar. Böylece, minimum kalite tabanını etkilemediği sürece, kodlanmış bit hızı :

  • [C-5-1] ŞU ZORUNLUDUR birden fazla YAPILMAMALIDIR kayan pencere, çerçeve içi (I-kare) arasındaki bit hızında% 15'ten fazla sağlar.
  • [C-5-2] ŞU İSTEĞİNDE ŞUNU aşacak şekilde OLMAMALIDIR: 1 saniyelik kayan bir pencerede bit hızının% 100'ü.

Cihaz uygulamaları herhangi bir video kodlayıcıyı destekliyorsa ve bu kodlayıcının ayarlarını yapabilir ve MediaFormat.KEY_BITRATE_MODE - BITRATE_MODE_CBR Böylece kodlayıcı sabit bit hızı modunda çalışır. Ardından, kodlanmış bit hızında çalışır:

  • [C-6-1] ŞU ZORUNLUDUR [C-SR-2] ÖNEMLE ÖNERİLİR 1 saniyelik kayan bir pencerede hedef bit hızının% 15'inden fazla OLMAMALIDIR.

Yeni şartları sonlandırma

Cihaz uygulamaları, en az 2,5 inç diyagonal uzunluğunda olmalıdır veya video çıkış bağlantı noktası içermelidir. kamera desteğini android.hardware.camera.any üzerinden bildirmelidir için şu özellikleri taşıdığını unutmayın:

  • [C-1-1] VP8 veya H.264 videolarından en az birinin desteğini içermesi ZORUNLUDUR ve üçüncü taraf uygulamalarının kullanımına sunmaktır.
  • Hem VP8 hem de H.264 video kodlayıcıları desteklemeli ve bunları kullanılabilir hale getirmelidir Google Analytics 4'te tarama yapar.

Cihaz uygulamaları H.264, VP8, VP9 veya HEVC videolarından herhangi birini destekliyorsa üçüncü taraf uygulamalarının kullanımına sunmak için:

  • [C-2-1], dinamik olarak yapılandırılabilen bit hızlarını desteklemektedir.
  • Değişken kare hızlarını DESTEKLEMELİDİR. Bu durumda video kodlayıcının giriş arabelleklerinin zaman damgalarına göre belirlenen anlık kare süresi ve bit paketini bu kare süresine göre ayırmasını sağlar.

Cihaz uygulamaları, MPEG-4 SP video kodlayıcıyı destekliyorsa ve uyumlu bir şekilde üçüncü taraf uygulamalarında kullanılabiliyorsa:

  • Desteklenen kodlayıcı için dinamik olarak yapılandırılabilen bit hızlarını DESTEKLEMELİDİR.

Cihaz uygulamaları, donanım hızlandırmalı video veya resim kodlayıcılar sağlıyorsa ve tellerin açık olduğu bir veya daha fazla takılı ya da takılabilir donanım kamerasını android.camera API'leri:

  • [C-4-1] tüm donanım hızlandırmalı video ve görüntü kodlayıcıların DESTEKLEMELİDİR çerçeveleri kodlamak için kullanır.
  • Tüm videolarda donanım kameralarındaki kodlama kareleri DESTEKLENMELİDİR görüntü kodlayıcılar.

Cihaz uygulamaları HDR kodlaması sağlıyorsa bunlar:

  • [C-SR-1] eklentisinin sorunsuz kod dönüştürme API'si ile HDR biçiminden SDR biçimine dönüştürme.

5.2.1. H.263

Cihaz uygulamaları, H.263 kodlayıcıları destekliyorsa ve bunları kullanıma sunuyorsa için:

  • [C-1-1] QCIF çözünürlüğünü (176 x 144) DESTEKLEMELİDİR Temel Profil Düzeyi 45 kullanılır. SQCIF çözünürlüğü isteğe bağlıdır.
  • için dinamik olarak yapılandırılabilen bit hızlarını DESTEKLEMELİDİR desteklenen kodlayıcıyı seçin.

5.2.2. H.264

Cihaz uygulamaları H.264 codec'i destekliyorsa:

  • [C-1-1] Temel Profil Düzeyi 3'ü DESTEKLEMELİDİR. Ancak ASO (İsteğe Bağlı Dilim Siparişi), FMO (Esnek) için destek Macroblock Sırası) ve RS (Gereksiz Dilimler) İSTEĞE BAĞLIDIR. Ayrıca diğer Android cihazlarla uyumlu olduğundan, ASO, FMO ve RS, kodlayıcılar tarafından Temel Profil için kullanılmaz.
  • [C-1-2] SD (Standart Çözünürlüklü) video kodlama profillerini DESTEKLEMELİDİR bulunmaktadır.
  • Ana Profil Düzeyi 4'ü DESTEKLEMELİDİR.
  • HD (Yüksek Çözünürlüklü) video kodlama profillerini aşağıdaki tabloda belirtilmiştir.

Cihaz uygulamaları, 720p veya 1080p için H.264 kodlamasını desteklediğini bildiriyorsa medya API'ları aracılığıyla çözünürlük videolarını izliyorlar:

  • [C-2-1] aşağıdaki tabloda yer alan kodlama profillerini DESTEKLEMELİDİR.
SD (Düşük kalite) SD (Yüksek kalite) HD 720p HD 1080p
Video çözünürlüğü 320 x 240 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel
Video kare hızı Saniyede 20 fps 30 fps 30 fps 30 fps
Video bit hızı 384 Kb/sn 2 Mb/sn 4 Mb/sn 10 Mb/sn

5.2.3. VP8

Cihaz uygulamaları VP8 codec'i destekliyorsa:

  • [C-1-1] SD video kodlama profillerini DESTEKLEMELİDİR.
  • Aşağıdaki HD (Yüksek Çözünürlüklü) video kodlama profillerini DESTEKLEMELİDİR.
  • [C-1-2] Matroska WebM dosyalarının yazılmasını DESTEKLEMELİDİR.
  • WebM projesi RTC donanım kodlama gereksinimleri: Kabul edilebilir kalitede web video akışı ve video konferans hizmetleri.

Cihaz uygulamaları, 720p veya 1080p için VP8 kodlamasını desteklediğini bildiriyorsa medya API'ları aracılığıyla çözünürlük videolarını izliyorlar:

  • [C-2-1] aşağıdaki tabloda yer alan kodlama profillerini DESTEKLEMELİDİR.
SD (Düşük kalite) SD (Yüksek kalite) HD 720p HD 1080p
Video çözünürlüğü 320 x 180 piksel 640 x 360 piksel 1280 x 720 piksel 1920 x 1080 piksel
Video kare hızı 30 fps 30 fps 30 fps 30 fps
Video bit hızı 800 Kb/sn 2 Mb/sn 4 Mb/sn 10 Mb/sn

5.2.4. Başkan Yardımcısı

Cihaz uygulamaları VP9 codec'i destekliyorsa:

  • [C-1-2] Profil 0, Düzey 3'ü DESTEKLEMELİDİR.
  • [C-1-1] Matroska WebM dosyalarının yazılmasını DESTEKLEMELİDİR.
  • [C-1-3] CodecPrivate verileri OLUŞTURMALIDIR.
  • Aşağıdaki tabloda belirtildiği şekilde HD kod çözme profillerini DESTEKLEMELİDİR.
  • [C-SR-1] HD kod çözme profillerinin bilgi kodu "tanımlayıcı" veya "kullanılabilir" ibaresine sahip olur.
SD HD 720p HD 1080p UHD
Video çözünürlüğü 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel 3840 x 2160 piksel
Video kare hızı 30 fps 30 fps 30 fps 30 fps
Video bit hızı 1,6 Mb/sn 4 Mb/sn 5 Mb/sn 20 Mb/sn

Cihaz uygulamaları, Medya API'leri:

  • 12 bit biçimi desteği İSTEĞE BAĞLIDIR.

5.2.5. H.265

Cihaz uygulamaları H.265 codec'i destekliyorsa:

  • [C-1-1], Ana Profil 3. Seviyeyi desteklemelidir: 512 x 512 çözünürlük.
  • belirtilen şekilde HD kodlama profillerini DESTEKLEMELİDİR bakın.
  • [C-SR-1]'in 720 x 480 SD profili ve HD kodlama profilleri donanım kodlayıcı.
SD HD 720p HD 1080p UHD
Video çözünürlüğü 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel 3840 x 2160 piksel
Video kare hızı 30 fps 30 fps 30 fps 30 fps
Video bit hızı 1,6 Mb/sn 4 Mb/sn 5 Mb/sn 20 Mb/sn

Yeni koşullarla başlayın

5.2.6. AV1

Cihaz uygulamaları AV1 codec'i destekliyorsa:

  • [C-1-1], 8 bit ve 10 bit içerik de dahil olmak üzere Ana Profili DESTEKLEMELİDİR.
  • [C-1-2] Performans verilerini, yani performans verilerini getSupportedFrameRatesFor() veya getSupportedPerformancePoints() Desteklenen çözünürlükler için API'ler aşağıdaki tabloda verilmiştir.

  • [C-1-3] HDR meta verilerini kabul etmeli ve bit akışına çıkartmalıdır

AV1 kodlayıcı donanım hızlandırmalıysa:

  • [C-2-1] aşağıdaki tabloya bakın:
SD HD 720p HD 1080p UHD
Video çözünürlüğü 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel 3840 x 2160 piksel
Video kare hızı 30 fps 30 fps 30 fps 30 fps
Video bit hızı 5 Mb/sn 8 Mb/sn 16 Mb/sn 50 Mb/sn

Yeni şartları sonlandırma

5.3. Video Kodu Çözme

Cihaz uygulamaları VP8, VP9, H.264 veya H.265 codec'lerini destekliyorsa:

  • [C-1-1] Dinamik video çözünürlüğünü ve kare hızı geçişini DESTEKLEMELİDİR VP8, VP9 ve VP8, VP9’lar için aynı akıştaki standart Android API'leriyle Gerçek zamanlı olarak ve desteklenen maksimum çözünürlüğe kadar H.264 ve H.265 codec'leri her codec tarafından gerçekleştirilir.

5.3.1. MPEG-2

Cihaz uygulamaları, MPEG-2 kod çözücüleri destekliyorsa:

  • [C-1-1], ana profil üst düzeyini DESTEKLEMELİDİR.

5.3.2. H.263

Cihaz uygulamaları, H.263 kod çözücüleri destekliyorsa:

  • [C-1-1] Temel Profil Düzeyi 30'u DESTEKLEMELİDİR (30 fps'de CIF, QCIF ve SQCIF çözünürlükleri) 384 kb/sn) ve 45. Seviye (30 fps'de QCIF ve SQCIF çözünürlükleri) 128 kb/sn).

5.3.3. MPEG-4

MPEG-4 kod çözücülere sahip cihaz uygulamaları için:

  • [C-1-1] Basit Profil Düzeyi 3'ü DESTEKLEMELİDİR.

5.3.4. H.264

Cihaz uygulamaları, H.264 kod çözücüleri destekliyorsa:

  • [C-1-1] Ana Profil Düzeyi 3.1'i ve Temel Profil'i DESTEKLEMELİDİR. Destekleyin ASO (İsteğe Bağlı Dilim Siparişi), FMO (Esnek Macroblock Sıralama) ve RS için (Gereksiz Dilimler) İSTEĞE BAĞLIDIR.
  • [C-1-2] SD ile videoların kodunu çözebilmesi ZORUNLUDUR (Standart Çözünürlüklü) aşağıdaki tabloda listelenen ve Temel Profil ile kodlanan profiller ve Ana Profil Düzeyi 3.1 (720p30 dahil).
  • HD (Yüksek Çözünürlüklü) profillere sahip videoların kodunu çözebilmelidir aşağıda gösterildiği gibidir.

Display.getSupportedModes() yöntemi tarafından bildirilen yükseklik video çözünürlüğüne eşit veya daha yüksek çözünürlüğe sahip cihazlarda, cihaz uygulamalarında:

  • [C-2-1] aşağıdaki özelliklerde HD 720p video kod çözme profillerini DESTEKLEMELİDİR tablosunu oluşturalım.
  • [C-2-2] aşağıdaki özelliklerde HD 1080p video kod çözme profillerini DESTEKLEMELİDİR tablosunu oluşturalım.
SD (Düşük kalite) SD (Yüksek kalite) HD 720p HD 1080p
Video çözünürlüğü 320 x 240 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel
Video kare hızı 30 fps 30 fps 60 fps 30 fps (60 fpsTelevizyon)
Video bit hızı 800 Kb/sn 2 Mb/sn 8 Mb/sn 20 Mb/sn

5.3.5. H.265 (HEVC)

Cihaz uygulamaları H.265 codec'i destekliyorsa:

  • [C-1-1], ana profil düzeyi 3 ana katmanını ve SD videoyu DESTEKLEMELİDİR aşağıdaki tabloda belirtildiği şekilde profillerin kodunu çözebilmelisiniz.
  • Aşağıdaki tabloda belirtildiği şekilde HD kod çözme profillerini DESTEKLEMELİDİR.
  • [C-1-2] aşağıdaki resimlerde belirtildiği gibi HD kod çözme profillerini DESTEKLEMELİDİR tablosunu kullanın.

Display.getSupportedModes() yöntemi tarafından bildirilen yükseklik eşit veya daha yüksek çözünürlüğe eşit olduğunda:

  • [C-2-1] Cihaz uygulamalarının H.265 veya VP9'lardan en az birini desteklemesi ZORUNLUDUR 720, 1080 ve UHD profillerinin kodunu çözmeyi deneyin.
SD (Düşük kalite) SD (Yüksek kalite) HD 720p HD 1080p UHD
Video çözünürlüğü 352 x 288 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel 3840 x 2160 piksel
Video kare hızı 30 fps 30 fps 30 fps 30/60 fps (60 fpsH.265 donanım kod çözme özelliğine sahip televizyon) 60 fps
Video bit hızı 600 Kb/sn 1,6 Mb/sn 4 Mb/sn 5 Mb/sn 20 Mb/sn

Cihaz uygulamaları, medya içeriği üzerinden bir HDR profilini desteklediğini iddia ediyorsa API'ler:

  • [C-3-1] Cihaz uygulamalarının, şu kaynaktaki gerekli HDR meta verilerini kabul etmesi ZORUNLUDUR: ve gerekli HDR'nin ayıklanıp çıkışını da meta verileri içerir.
  • [C-3-2] Cihaz uygulamalarının, HDR içeriğini cihazın ekranında veya standart bir video çıkış bağlantı noktasında (ör. HDMI).

5.3.6. VP8

Cihaz uygulamaları VP8 codec'i destekliyorsa:

  • [C-1-1] aşağıdaki tabloda yer alan SD kod çözme profillerini DESTEKLEMELİDİR.
  • Şu şartlara uyan bir donanım VP8 codec’i kullanmalısınız: şartları inceleyin.
  • Aşağıdaki tabloda yer alan HD kod çözme profillerini DESTEKLEMELİDİR.

Display.getSupportedModes() yönteminin bildirdiği yükseklik değerine eşitse daha yüksek çözünürlüğe sahipse:

  • [C-2-1] Cihaz uygulamalarının aşağıdaki tabloda bulabilirsiniz.
  • [C-2-2] Cihaz uygulamalarının aşağıdaki tabloda bulabilirsiniz.
SD (Düşük kalite) SD (Yüksek kalite) HD 720p HD 1080p
Video çözünürlüğü 320 x 180 piksel 640 x 360 piksel 1280 x 720 piksel 1920 x 1080 piksel
Video kare hızı 30 fps 30 fps 30 fps (60 fpsTelevizyon) 30 (60 fpsTelevizyon)
Video bit hızı 800 Kb/sn 2 Mb/sn 8 Mb/sn 20 Mb/sn

5.3.7. Başkan Yardımcısı

Cihaz uygulamaları VP9 codec'i destekliyorsa:

  • [C-1-1] aşağıdaki tabloda bulabilirsiniz.
  • Aşağıdaki tabloda belirtildiği şekilde HD kod çözme profillerini DESTEKLEMELİDİR.

Cihaz uygulamaları VP9 codec'i ve donanım kod çözücüyü destekliyorsa:

  • [C-2-1] aşağıdaki şekilde belirtildiği gibi HD kod çözme profillerini DESTEKLEMELİDİR tablosunu oluşturalım.

Display.getSupportedModes() yöntemi tarafından bildirilen yükseklik eşit veya daha yüksek çözünürlüğe eşit olduğunda:

  • [C-3-1] Cihaz uygulamalarının VP9 veya H.265'lerden en az birini desteklemesi ZORUNLUDUR 720, 1080 ve UHD profillerinin kodunu çözmeyi başardı.
SD (Düşük kalite) SD (Yüksek kalite) HD 720p HD 1080p UHD
Video çözünürlüğü 320 x 180 piksel 640 x 360 piksel 1280 x 720 piksel 1920 x 1080 piksel 3840 x 2160 piksel
Video kare hızı 30 fps 30 fps 30 fps 30 fps (60 fpsVP9 donanım kod çözme özellikli televizyon) 60 fps
Video bit hızı 600 Kb/sn 1,6 Mb/sn 4 Mb/sn 5 Mb/sn 20 Mb/sn

Cihaz uygulamaları VP9Profile2 veya VP9Profile3 desteklediğini iddia ediyorsa 'CodecProfileLevel' üzerinden medya API'leri:

  • 12 bit biçimi desteği İSTEĞE BAĞLIDIR.

Cihaz uygulamaları bir HDR profilini (VP9Profile2HDR) desteklediğini iddia ediyorsa VP9Profile2HDR10Plus, VP9Profile3HDR, VP9Profile3HDR10Plus) - medya API'ları:

  • [C-4-1] Cihaz uygulamalarının, gerekli HDR meta verilerini kabul etmesi ZORUNLUDUR (KEY_HDR_STATIC_INFO) Ayrıca tüm HDR profilleri için "KEY_HDR10_PLUS_INFO" için) kaldırıyor. Aynı zamanda bit akışından ve/veya kapsayıcıdan gereken HDR meta verilerini içerir.
  • [C-4-2] Cihaz uygulamalarının, HDR içeriğini cihazın ekranında veya standart bir video çıkış bağlantı noktasında (ör. HDMI).

5.3.8. Dolby Vision

Cihaz uygulamaları, HDR_TYPE_DOLBY_VISION için:

  • [C-1-1] Dolby Vision özellikli bir ayıklayıcı SAĞLANMALIDIR.
  • [C-1-2] Dolby Vision içeriğini cihaz ekranında düzgün bir şekilde görüntülemelidir veya üzerinde standart video çıkış bağlantı noktasına (ör. HDMI).
  • [C-1-3] kanal kimliğini AYARLAMALIDIR öncekiyle aynı olacak şekilde, geriye dönük uyumlu Dolby Vision katmanının izleme kimliğini birleştirin.

5.3.9. AV1

Cihaz uygulamaları AV1 codec'i destekliyorsa:

  • [C-1-1], 10 bit içerik dahil olmak üzere Profil 0'ı DESTEKLEMELİDİR.

Yeni koşullarla başlayın

Cihaz uygulamaları, AV1 codec'i destekliyor ve üçüncü taraf uygulamalarının kullanımına sunuyorsa:

  • [C-1-1], 8 bit ve 10 bit içerik de dahil olmak üzere Ana Profili DESTEKLEMELİDİR.

Cihaz uygulamaları, bir donanımla AV1 codec'i için destek sağlıyorsa hızlandırılmış kod çözücü,

  • [C-2-1] En az HD 720p video kod çözme profillerinin kodunu çözebilmesi ZORUNLUDUR Display.getSupportedModes() tarafından bildirilen yükseklik aşağıdaki tabloya bakın yöntemindeki değer 720p'ye eşit veya 720p'den daha yüksek olur.
  • [C-2-2] En az HD 1080p video kod çözme profillerinin kodunu çözebilmesi ZORUNLUDUR Display.getSupportedModes() tarafından bildirilen yükseklik aşağıdaki tablodan yöntem 1080p'ye eşit veya daha yüksek.
SD HD 720p HD 1080p UHD
Video çözünürlüğü 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel 3840 x 2160 piksel
Video kare hızı 30 fps 30 fps 30 fps 30 fps
Video bit hızı 5 Mb/sn 8 Mb/sn 16 Mb/sn 50 Mb/sn

Cihaz uygulamaları, Medya API'leri aracılığıyla HDR Profili'ni destekliyorsa onlar:

  • [C-3-1], bit akışı ve/veya kapsayıcıyı oluşturur.
  • [C-3-2] HDR içeriğini cihaz ekranında veya bir cihazda düzgün şekilde GÖRÜNTÜLEMELİDİR standart video çıkış bağlantı noktası (örneğin, HDMI).

Yeni şartları sonlandırma

5.4. Ses Kaydetme

Bu bölümde açıklanan şartlardan bazıları GEREKLİ Android 4.3'ten itibaren ise gelecekteki sürümler için Uyumluluk Tanımı'nın kullanılması planlanmaktadır. seçeneğini ZORUNLU olarak değiştirin. Mevcut ve yeni Android cihazlar GÜÇLÜ ÖNERİLİR veya GEREKLİ olarak listelenen bu koşulları , sürümünü değil.

5.4.1. Ham Ses Yakalama ve Mikrofon Bilgileri

Cihaz uygulamaları android.hardware.microphone bildiriyorsa:

  • [C-1-1] Video için ham ses içeriğinin yakalanmasına İZİN VERİLMELİDİR Açık herhangi bir AudioRecord veya AAudio INPUT akışı bahsettik. En azından aşağıdaki özelliklerin desteklenmesi ZORUNLUDUR:

  • Aşağıdakilerle ham ses içeriğinin yakalanmasına İZİN VERİLMELİDİR özellikler:

    • Biçim: Doğrusal PCM, 16 bit ve 24 bit
    • Örnekleme ücretleri: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48.000 Hz
    • Kanallar: Mikrofon sayısı kadar kanal cihaz
  • [C-1-2] yukarı örnekleme yapmadan yukarıdaki örnek hızlarında yakalama GEREKİR.

  • [C-1-3] yukarıda verilen örnek hızları aşağı örneklemeyle yakalanır.

  • Ham ses içeriğinin AM radyo ve DVD kalitesinde yakalanmasına İZİN VERİLMELİDİR. şu özellikleri ifade eder:

    • Biçim: Doğrusal PCM, 16 bit
    • Örnekleme hızları: 22.050, 48.000 Hz
    • Kanallar: Stereo
  • [C-1-4] MicrophoneInfo API'sini dikkate almalıdır Ayrıca, cihazdaki mevcut mikrofonlara ait bilgileri doğru şekilde girin. tarafından erişilebilir hale getirilecek olan AudioManager.getMicrophones() etkin AudioRecord API için MediaRecorder.AudioSources DEFAULT, MIC, CAMCORDER, VOICE_RECOGNITION, VOICE_COMMUNICATION, UNPROCESSED veya VOICE_PERFORMANCE. Cihaz uygulamaları, ham sesin AM radyo ve DVD kalitesinde yakalanmasına izin veriyorsa için:

  • [C-2-1] Şundan daha yüksek herhangi bir oranda yukarı örnekleme yapmadan yakalama GEREKİR: 16000:22050 veya 44100:48000.

  • [C-2-2] Yukarı örnekleme için uygun bir kenar yumuşatma filtresi İÇERMELİDİR veya aşağı örnekleme yapar.

5.4.2. Ses Tanıma için Ekran Kaydı

Cihaz uygulamaları android.hardware.microphone bildiriyorsa:

  • [C-1-1] KABUL ETMELİDİR android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION ses kaynağı: 44100 ve 48000’dir.
  • [C-1-2] Bu ayar için varsayılan olarak gürültü azaltma özellikli ses işlemenin devre dışı bırakılması ZORUNLUDUR. AudioSource.VOICE_RECOGNITION ses yayınından ses yayını kaydediyor kaynak.
  • [C-1-3] Kayıt sırasında varsayılan olarak otomatik kazanç kontrolünün devre dışı bırakılması ZORUNLUDUR AudioSource.VOICE_RECOGNITION ses kaynağından ses yayını.

  • Yaklaşık düz genlik-frekans özellikleri sergilemelidir orta frekans aralığında: Özellikle her biri için 100 Hz - 4000 Hz arasında ±3 dB ve ses tanıma ses kaynağını kaydetmek için kullanılan her mikrofon.

  • [C-SR-1]'nin düşük sıcaklıklarda genlik seviyeleri sergilemesi ÖNEMLE ÖNERİLİR: aralığı: özellikle ±20 dB ile 30 Hz arasında, sesi kaydetmek için kullanılan her mikrofonun orta frekans aralığı tanıma ses kaynağı.

  • [C-SR-2]'nin, yüksek sıcaklıklarda genlik seviyeleri sergilemesi ÖNEMLE ÖNERİLİR frekans aralığı: özellikle sesi kaydetmek için kullanılan her mikrofonun orta frekans aralığı tanıma ses kaynağı.

  • Ses giriş hassasiyetini, 1000 Hz sinüsoidal ton kaynağı gibi AYARLANMALIDIR 90 dB Ses Basıncı Düzeyinde (SPL) çalınır (ölçülmüştür) şundan 30 cm uzakta mikrofonun yanında ) 16 kampanya için 1770 ve 3530 aralığında 2500 RMS'lik ideal bir yanıt verir. bit örnekleri (veya kayan nokta/çift hassasiyet için -22,35 db ±3 dB Tam Ölçekli) örnekler) - ses tanımayı kaydetmek için kullanılan her mikrofon için ses kaynağı.

  • Ses tanıma ses akışını, PCM genliğinin kaydedileceği şekilde KAYDETMELİDİR seviyeler, -18'den en az 30 dB'lik bir aralıkta giriş SPL değişikliklerini doğrusal olarak izler Mikrofonda 90 dB SPL ile +12 dB ile +12 dB arasında.

  • Ses tanıma ses akışını toplam harmonikle KAYDETMELİDİR 90 dB SPL giriş düzeyinde 1 kHz için% 1'den düşük bozulma (THD) mikrofon.

Cihaz uygulamalarında android.hardware.microphone ve gürültü bildiriliyorsa ses tanıma için ayarlanmış bastırma (azaltma) teknolojileri:

  • [C-2-1] Bu ses efektinin android.media.audiofx.NoiseSuppressor API.
  • [C-2-2] Her bir gürültü azaltma teknolojisini benzersiz olarak tanımlamalıdır. AudioEffect.Descriptor.uuid alanı aracılığıyla kontrol edebiliriz.

5.4.3. Oynatmanın Yeniden Yönünün Belirlenmesi için Fotoğraf Çek

android.media.MediaRecorder.AudioSource sınıfı REMOTE_SUBMIX içeriyor ses kaynağı.

Cihaz uygulamaları hem android.hardware.audio.output hem de android.hardware.microphone:

  • [C-1-1] özelliğinin, REMOTE_SUBMIX ses kaynağını doğru bir şekilde uygulaması GEREKİR. Bir uygulama bu kayıttan kayıt yapmak için android.media.AudioRecord API'sını kullandığında ses kaynağı, aşağıdakiler hariç tüm ses akışlarının bir karışımını yakalar:

    • AudioManager.STREAM_RING
    • AudioManager.STREAM_ALARM
    • AudioManager.STREAM_NOTIFICATION

5.4.4. Akustik Yankı Önleyici

Cihaz uygulamaları android.hardware.microphone bildiriyorsa:

  • Akustik Yankı Önleyici UYGULAMANIN ÖNEMLİDİR. Sesli iletişim için ayarlanmış ve yakalama yoluna uygulanan (AEC) teknolojisi AudioSource.VOICE_COMMUNICATION kullanarak çekim yaparken.

Cihaz uygulamaları, akustik yankı giderme aracı için AudioSource.VOICE_COMMUNICATION olduğunda kayıt ses yoluna eklendi seçildiğinde:

5.4.5. Eşzamanlı Yakalama

Cihaz uygulamalarında android.hardware.microphone bildiriliyorsa bu belgede açıklandığı şekilde eşzamanlı yakalama uygulayın. Özellikle:

  • [C-1-1] Bir erişilebilirlik tarafından mikrofona eşzamanlı olarak erişilmesine İZİN VERİLMELİDİR AudioSource.VOICE_RECOGNITION ve en az bir cihazla yakalama hizmeti herhangi bir AudioSource ile yakalama yapabilirsiniz.
  • [C-1-2] Önceden yüklü bir cihazın mikrofona eşzamanlı olarak erişmesine İZİN VERMELİDİR Asistan rolüne ve en az bir uygulamaya sahip uygulama hariç olmak üzere herhangi bir AudioSource ile çekim yapma AudioSource.VOICE_COMMUNICATION veya AudioSource.CAMCORDER.
  • [C-1-3] bir erişilebilirlik hizmeti, bir uygulama AudioSource.VOICE_COMMUNICATION veya AudioSource.CAMCORDER. Ancak, bir uygulama AudioSource.VOICE_COMMUNICATION ve ardından başka bir uygulama üzerinden görüntü çekiyor özel (önceden yüklenmiş) bir uygulama ise CAPTURE_AUDIO_OUTPUT izni.
  • [C-1-4] İki veya daha fazla uygulama aynı anda yakalanıyorsa ve iki uygulamanın da üst kısmında kullanıcı arayüzü yoktur. Başlayan en son yakalamayı ses alır.

5.5. Ses Çalma

Android'de, uygulamaların ses aracılığıyla ses çalmasına izin veren destek bulunur. çıkış çevre biriminin kullanılması gerekir.

5.5.1. Ham Ses Oynatma

Cihaz uygulamaları android.hardware.audio.output bildiriyorsa:

  • [C-1-1] Ham ses içeriğinin aşağıdakilerle çalınmasına İZİN VERİLMELİDİR özellikler:

    • Kaynak biçimler: Doğrusal PCM, 16-bit, 8-bit, kayan
    • Kanallar: Mono, Stereo, geçerli çok kanallı yapılandırmalar 8 adede kadar kanal ile
    • Örnekleme hızları (Hz olarak):
      • Kanalda 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48.000 yukarıda listelenen yapılandırmalar
      • 96.000 mono ve stereo

5.5.2. Ses Efektleri

Android, ses efektleri için bir API sağlar bazı en iyi uygulamalardan bahsedeceğiz.

Cihaz uygulamalarında android.hardware.audio.output özelliği belirtilmişse, onlar:

  • [C-1-1] EFFECT_TYPE_EQUALIZER ve aracılığıyla kontrol edilebilen EFFECT_TYPE_LOUDNESS_ENHANCER uygulamaları AudioEffect alt sınıfları Equalizer ve LoudnessEnhancer.
  • [C-1-2]; Visualizer sınıfı.
  • [C-1-3], EFFECT_TYPE_DYNAMICS_PROCESSING uygulamasını DESTEKLEMELİDİR AudioEffect alt sınıfı DynamicsProcessing ile kontrol edilebilir.

Yeni koşullarla başlayın

  • [C-1-4] kayan nokta girişi ve çıkışıdır.
  • [C-1-5] Ses efektlerinin FCC_LIMIT olarak da bilinen mikser kanalı sayısı.

Yeni şartları sonlandırma

  • EFFECT_TYPE_BASS_BOOST, EFFECT_TYPE_ENV_REVERB, EFFECT_TYPE_PRESET_REVERB ve EFFECT_TYPE_VIRTUALIZER uygulamaları AudioEffect alt sınıfı BassBoost aracılığıyla kontrol edilebilir. EnvironmentalReverb, PresetReverb ve Virtualizer.
  • [C-SR-1] Kayan noktadaki efektleri desteklemesi için ÖNEMLE ÖNERİLİR ve Çok kanallı.

5.5.3. Ses Çıkışı Ses Seviyesi

Otomotiv cihaz uygulamaları:

  • Ses düzeyinin ayarlanmasına İZİN VERİLMELİ tanımlandığı şekilde içerik türü veya kullanımı kullanılarak her ses akışı başına ayrı ayrı Yükleyen: AudioAttributes ve araç ses kullanımı android.car.CarAudioManager içinde herkese açık olarak tanımlanmıştır.

5.5.4. Ses Aktarımı

Ses boşaltma oynatmayı destekleyen cihaz uygulamaları:

  • [C-SR-1] Oynatılan boşluksuz ses içeriğini kırpmak ÖNEMLE ÖNERİLİR aynı formata sahip iki klip arasında tarafından belirtildiğinde AudioTrack gapless API ve MediaPlayer için medya kapsayıcısı içerir.

5.6. Ses Gecikmesi

Ses gecikmesi, ses sinyalinin bir sistemden geçmesi nedeniyle oluşan gecikmedir. Pek çok uygulama sınıfı, gerçek zamanlı analiz yapabilmek için kısa gecikmelere ihtiyaç duyar. ses efektleri.

Bu bölümün amaçları doğrultusunda, aşağıdaki tanımları kullanın:

  • çıkış gecikmesi. Bir uygulamanın çerçeve yazması arasındaki aralık ve ilgili ses cihaza sunulduğunda veya sinyalin cihaz üzerindeki bir transkripsiyon cihazına bağlanması ya da sinyalin harici olarak gözlemlenebilir.
  • soğuk çıkış gecikmesi. Çıkış akışının başlatılması ile zaman damgalarına göre ilk karenin sunulma zamanını (ses çıkışının sistemin istekten önce boşta olduğu ve kapatılmış olduğu.
  • Sürekli çıkış gecikmesi. Sonraki kareler için çıkış gecikmesi devam edebilirsiniz.
  • giriş gecikmesi. Bir sesin sunulduğu zaman arasındaki aralık veya sinyal, cihaza algoritmik bağlantıyla devreye giren sinyal, bir bağlantı noktası olmalı ve uygulamanın PCM kodlu verilerin karşılık gelen çerçevesini okuması gerekir.
  • kayıp giriş. Giriş sinyalinin henüz kullanılamayan ilk kısmı kullanılamıyor.
  • soğuk giriş gecikmesi. Akışın başlatılması ve İlk geçerli kare alındığında, ses giriş sistemi boştayken ve istek öncesinde kapatıldı.
  • sürekli giriş gecikmesi. Sonraki kareler için giriş gecikmesi gerçekleşebilir.

  • sürekli gidiş dönüş gecikmesi. Sürekli giriş gecikmesi toplamı artı sürekli çıkış gecikmesi ve bir arabellek süresi. Tampon süresi, uygulamanın sinyal işleme süresi ve aşamayı azaltması için gereken süre giriş ve çıkış akışları arasındaki farkları belirtir.

  • OpenSL ES PCM arabellek sırası API'si. PCM ile ilgili küme OpenSL ES Android NDK içindeki API'ler.

  • AAudio yerel ses API'si. AAudio API'leri Android NDK içinde

  • Zaman damgası. Bir karedeki göreli kare konumundan oluşan bir çift akışı ve bu karenin görüntüye girmesi veya videodan ayrılması ile ilgili tahmini ses işleme ardışık düzeni, ilişkilendirilen uç noktadır. Şu kaynakları da inceleyin AudioTimestamp (Ses Zaman Damgası).

  • aksaklık olarak tanımladığından emin olun. Ses sinyalinde geçici bir kesinti veya yanlış örnek değer, genellikle neden olduğu arabellekte kesinti, giriş veya başka herhangi bir dijital ya da analog gürültü kaynağı için arabellek aşımı.

  • ortalama mutlak sapma. Mutlak değerin ortalaması bir değer kümesinin ortalamasından sapmaları

  • Tonla dokunma gecikmesi. Ekrana dokunulduğu zaman ile ekran arasındaki süre sesin hoparlörde duyulması halinde bir ton sesi oluşturulur.

Cihaz uygulamaları android.hardware.audio.output tanımlıyorsa, Aşağıdaki şartların karşılanması ZORUNLUDUR:

  • [C-1-1] Şu kod tarafından döndürülen çıkış zaman damgası: AudioTrack.getTimestamp ve AAudioStream_getTimestamp değerinin +/- 2 ms aralığında doğru olması gerekir.
  • [C-1-2] 500 milisaniyelik soğuk çıkış gecikmesi veya daha az olmalıdır.

  • [C-1-3] AAudioStreamBuilder_openStream() kullanarak bir çıkış akışı açmak ZORUNLUDUR daha kısa sürede gerçekleştirilir.

Cihaz uygulamaları android.hardware.audio.output belirtiyorsa Aşağıdaki gereksinimleri karşılamanız veya aşmanız ÖNEMLE ÖNERİLİR:

  • [C-SR-1] Hoparlör verilerinde 100 milisaniye veya daha az soğuk çıkış gecikmesi yol'a dokunun.
  • [C-SR-2] Dokunma tonla ilgili gecikme süresi 80 milisaniye veya daha az.

Yeni koşullarla başlayın

  • [C-SR-4] Giriş ve çıkışa göre hesaplanan gidiş dönüş gecikmeleri AAudioStream_getTimestamp tarafından döndürülen zaman damgaları ÖNEMLE ÖNERİLİR için ölçülen gidiş dönüş gecikmesine olan 30 msn. içinde AAUDIO_PERFORMANCE_MODE_NONE AAUDIO_PERFORMANCE_MODE_LOW_LATENCY kulaklık, kablolu ve kablosuz kulaklık için geçerlidir.

Yeni şartları sonlandırma

Cihaz uygulamaları yukarıdaki gereksinimleri karşılıyorsa sürekli çıkış için AAudio yerel ses API'si kullanılırken kalibrasyon desteklenen en az bir ses üzerinde gecikme ve soğuk çıkış gecikmesi şunlardır:

Cihaz uygulamaları, düşük gecikmeli ses gereksinimlerini karşılamıyorsa AAudio yerel ses API'si aracılığıyla şunları yapar:

  • [C-2-1] Düşük gecikmeli ses desteği için BİLDİRMEMELİDİR.

Cihaz uygulamaları android.hardware.microphone içeriyorsa Giriş sesleriyle ilgili şu şartları karşılamalıdır:

  • [C-3-1] Giriş zaman damgalarındaki hatayı şunun döndürdüğü gibi sınırlayın: AudioRecord.getTimestamp (Ses Kaydı.getZaman Damgası) veya AAudioStream_getTimestamp, +/- 2 ms. "Hata" doğru değerden sapma anlamına gelir.
  • [C-3-2] 500 milisaniyelik soğuk giriş gecikmesi veya daha az olmalıdır.
  • [C-3-3] AAudioStreamBuilder_openStream() kullanarak bir giriş akışı açmak ZORUNLUDUR daha kısa sürede gerçekleştirilir.

Cihaz uygulamaları android.hardware.microphone içeriyorsa bunlar Aşağıdaki ses girişi gereksinimlerini karşılamak için ÖNEMLE ÖNERİLİR:

  • [C-SR-8] Mikrofon üzerinde 100 milisaniye veya daha az soğuk giriş gecikmesi veri yolunu izleyin.

  • [C-SR-11] Giriş zaman damgalarındaki hatayı şunun döndürdüğü gibi sınırlandırır: AudioRecord.getTimestamp (Ses Kaydı.getZaman Damgası) veya AAudioStream_getTimestamp, +/- 1 ms.ye

Cihaz uygulamalarında android.hardware.audio.output ve android.hardware.microphone:

  • [C-SR-12] Ortalama Sürekli Gidiş Dönüş Gecikmesi Kesinlikle ÖNERİLİR Ortalama Mutlak Sapma ile 5 ölçümde 50 milisaniye veya daha az 10 milisaniyeden kısa, desteklenen en az bir yolda

5.7. Ağ Protokolleri

Cihaz uygulamalarının medya ağı protokolleri (Android SDK dokümanlarında belirtildiği gibi ses ve video oynatma için)

Bir cihaz uygulamasının doğru çalışması için gereken her codec ve kapsayıcı biçimi destek, cihaz uygulaması:

Medya Segmenti Biçimleri

Segment biçimleri Referanslar Gerekli codec desteği
MPEG-2 Taşıma Akışı ISO 13818 Video codec'leri:
  • H264 AVC
  • MPEG-4 SP
  • MPEG-2
H264 AVC, MPEG2-4 SP,
ile ilgili ayrıntılar için bkz. bölüm 5.1.8 ve MPEG-2.

Ses codec'leri:

  • AAC
AAC ve varyantları hakkında ayrıntılar için bölüm 5.1.3'e bakın.
ADTS kadrajı ve ID3 etiketleri içeren AAC ISO 13818-7 Bölüm 5.1.1 'e bakın. sayfasına göz atın.
WebVTT WebVTT

RTSP (RTP, SDP)

Profil adı Referanslar Gerekli codec desteği
H264 AVC RFC 6184 Bölüm 5.1.8'e bakın. H264 AVC ile ilgili ayrıntılar için
MP4A-LATM RFC 6416 Bölüm 5.1.3'e bakın. sayfasına göz atın.
H263-1998 RFC 3551
RFC 4629
RFC 2190
Bölüm 5.1.8'e bakın. H263 ile ilgili ayrıntılar için
H263-2.000 RFC 4629 Bölüm 5.1.8'e bakın. H263 ile ilgili ayrıntılar için
AMR RFC 4867 Bölüm 5.1.3'e bakın. AMR-NB ile ilgili ayrıntılı bilgi için
AMR-WB RFC 4867 Bölüm 5.1.3'e bakın. AMR-WB ile ilgili ayrıntılı bilgi için
MP4V-ES RFC 6416 Bölüm 5.1.8'e bakın. MPEG-4 SP ile ilgili ayrıntılar için
mpeg4-genel RFC 3640 Bölüm 5.1.3'e bakın. sayfasına göz atın.
MP2T RFC 2250 Ayrıntılar için HTTP Canlı Akışı altındaki MPEG-2 Taşıma Akışı bölümüne bakın

5.8. Güvenli Medya

Cihaz uygulamaları, güvenli video çıkışını destekliyor ve güvenli yüzeylerin kullanımını destekleyen bir fonksiyonla

  • [C-1-1], Display.FLAG_SECURE için destek bildirmeli.

Cihaz uygulamaları Display.FLAG_SECURE ve destek için desteklendiğini beyan ederse özellikleri:

  • [C-2-1] bağlantıyı, Kablosuz protokollerle bağlı ekranlar için HDCP 2.x veya üzeri örneğin Miracast gibi.

Cihaz uygulamaları, Display.FLAG_SECURE ve kablolu harici ekranı desteklediğinde, bunlar:

  • [C-3-1] Bağlı tüm harici ekranlarda HDCP 1.2 veya sonraki sürümleri DESTEKLEMELİDİR bağlantı noktası üzerinden kontrol edin.

5.9. Müzik Aleti Dijital Arayüzü (MIDI)

Cihaz uygulamaları, android.software.midi özelliğinin desteklendiğini bildiriyorsa ile android.content.pm.PackageManager onlar:

  • [C-1-1], MIDI özellikli tüm donanım aktarımlarında MIDI'yı DESTEKLEMELİDİR. Bunlar, MIDI olmayan genel bağlantı sağlar. Bu tür aktarımlar şunlardır:

  • [C-1-2] uygulamalar arası MIDI yazılım aktarımını DESTEKLEMELİDİR (sanal MIDI cihazları)

  • [C-1-3] libamidi.so'yu (yerel MIDI desteği) içermelidir

  • USB çevre birimi modu üzerinden MIDI'yı DESTEKLEMELİDİR, bölüm 7.7

5.10. Profesyonel Ses

Cihaz uygulamaları, ilgili özelliğin desteklendiğini bildiriyorsa Şu yolla android.hardware.audio.pro: android.content.pm.PackageManager onlar:

  • [C-1-1] Özellik desteğinin BİLDİRİLMESİ GEREKİR android.hardware.audio.low_latency
  • [C-1-2], aşağıda açıklandığı gibi, kesintisiz gidiş dönüş ses gecikmesinin olması ZORUNLUDUR bölüm 5.6 Ses Gecikmesi 25 milisaniye veya daha kısa en az bir desteklenen yola ekleyin.
  • [C-1-3] USB ana makine modunu ve USB'yi destekleyen USB bağlantı noktaları İÇERMELİDİR çevre birimi modu.
  • [C-1-4], android.software.midi özelliği için desteği BİLDİRMELİDİR.
  • [C-1-5] Ses yerel ses API ve AAUDIO_PERFORMANCE_MODE_LOW_LATENCY.
  • [C-1-6] Soğuk çıkış gecikmesinin 200 milisaniye veya daha kısa olması ZORUNLUDUR.
  • [C-1-7] Soğuk giriş gecikmesinin 200 milisaniye veya daha kısa olması ZORUNLUDUR.
  • [C-1-8] Dokunma tonlama süresinin ortalama 80 milisaniye veya daha kısa olması ZORUNLUDUR hoparlörden mikrofona veri yolunda en az 5 ölçüm yapılmalıdır.

  • [C-SR-1] Bölümde tanımlanan gecikmeleri karşılaması ÖNEMLE ÖNERİLİR 5.6 Ses Gecikmesi, 20 milisaniye veya Ortalama Mutlak Sapma 5'ten az olan 5'ten fazla ölçüm milisaniye cinsinden belirtir.

  • [C-SR-2] Aşağıdakiler için Pro Ses gereksinimlerini karşılamak üzere ÖNERİLİR: sürekli gidiş dönüş ses gecikmesi, soğuk giriş gecikmesi ve soğuk çıkış AAudio yerel ses API'si kullanıldığında gecikme ve USB ses gereksinimleri MMAP yolunun üzerinde.

  • [C-SR-3] Tutarlı bir CPU seviyesi sağlamak için ÖNEMLE ÖNERİLİR ve CPU yükü değişiklik gösterirken performansı en üst düzeye çıkarın. Bu, SynthMark'ı kullanın. SynthMark, simüle edilmiş ses çerçevesi üzerinde çalışan bir yazılım sentezleyici kullanır ölçmenizi sağlayacak bir test yöntemidir. Bkz. SynthMark belgeleri bir açıklamasına yer verilebilir. SynthMark çalıştırılması gerekir. "Otomatik Test" seçeneğini belirleyip aşağıdaki sonuçları elde edebilirsiniz:

    • voicemark.90 >= 32 ses
    • lagmark.fixed.little <= 15 msn
    • lagmark.dynamic.little <= 50 msn
  • Ses saatinin doğruluğunu ve standart saate göre kayması en aza indirilmelidir.

  • CLOCK_MONOTONIC CPU'ya göre ses saati kaymasını en aza indirmeli her ikisi de etkin olduğunda.

  • Cihaz üzerindeki transdüserlerde ses gecikmesini en aza indirmelidir.

  • USB dijital ses üzerinden ses gecikmesini en aza indirmelidir.

  • Ses gecikmesi ölçümleri tüm yollar için belgelenmelidir.

  • Ses arabelleği tamamlama geri çağırma giriş sürelerinde titremeyi en aza indirmeli geri çağırma tarafından tam CPU bant genişliğinin kullanılabilir yüzdesini etkiler.

  • Normal kullanım altında bildirilen gecikme süresinde sıfır ses arızası SAĞLANMALIDIR.

  • Kanallar arası gecikme farkının sıfır olması GEREKİR.

  • MIDI, tüm aktarımlarda ortalama gecikmeyi en aza indirmelidir.

  • Tüm aktarımlarda yük altındaki MIDI gecikmesi değişkenliğini (ses dalgalanması) en aza indirmelidir.

  • Tüm aktarımlar üzerinde doğru MIDI zaman damgaları SAĞLANMALIDIR.

  • baştan başlatmadan hemen sonra geçen süre.

  • Ses sisteminin giriş ve çıkış tarafları arasında sıfır ses saat farkı SAĞLANMALIDIR. her ikisi de etkin olduğunda karşılık gelen uç noktaları gösterilir. İlgili örnekler cihazın mikrofonu ve hoparlörü veya ses jakı girişi vardır. ve çıktıları daha iyi hale getirir.

  • Giriş ve çıkış tarafları için ses arabelleği tamamlama geri çağırmalarını İŞLEMELİDİR etkin olduğunda aynı ileti dizisinde karşılık gelen bitiş noktalarının sayısını ve girdi geri çağırmasından hemen sonra çıkış geri çağırmasını kullanın. Alternatif olarak: geri çağırmaların aynı ileti dizisinde işlenmesi uygun değilse giriş geri çağırmasına izin verildikten kısa bir süre sonra geri çağırma çıkışı uygulamanın giriş ve çıkış tarafları için tutarlı bir zamanlamaya sahip olması gerekir.

  • Giriş için HAL ses arabelleğe alma arasındaki faz farkı en aza indirilmelidir. karşılık gelen bitiş noktalarının çıktı taraflarını görmenizi sağlar.

  • Dokunma gecikmesini en aza indirmeli.

  • Yükleme sırasında dokunma gecikmesi değişkenliğini (ses dalgalanması) en aza indirmelidir.

Cihaz uygulamaları yukarıdaki gereksinimlerin tümünü karşılıyorsa:

  • [C-SR-4] Özellikle ilgili desteğin bildirilmesi için ÖNEMLE ÖNERİLİR android.content.pm.PackageManager üzerinden android.hardware.audio.pro sınıfını kullanır.

Cihaz uygulamaları 4 iletkenli 3, 5 mm ses jakı içeriyorsa bunlar:

Cihaz uygulamalarında 4 iletkenli 3,5 mm ses jakı ve USB ana makine modunu destekleyen bir USB bağlantı noktası içerirse:

  • [C-3-1] USB ses sınıfının uygulanması ZORUNLUDUR.
  • [C-3-2] Kesintisiz Gidiş-dönüş Ses Gecikmesi için ortalama değer OLMALIDIR: 25 milisaniye veya daha kısa; Ortalama Mutlak Sapma ile 5 ölçümden fazla USB ses sınıfı kullanılarak USB ana makine modu bağlantı noktası üzerinden 5 milisaniyeden kısa süre. (Bu, USB-3,5 mm'lik bir adaptör ve Ses Geri Dönüşü kullanılarak ölçülebilir girişlere çıkışlara da neden olabilir.)
  • [C-SR-6] 8 kanala kadar eş zamanlı G/Ç desteklemesi için ÖNEMLE ÖNERİLİR her yön, 96 kHz örnek hızı ve 24 bit veya 32 bit derinlik (kullanıldığında bu gereksinimleri de destekleyen USB ses çevre birimleriyle çalışır.
  • [C-SR-7] Bu gereksinim grubunu karşılamak için ÖNEMLE MMAP yolu üzerinden AAudio yerel ses API'si.

Cihaz uygulamaları bir HDMI bağlantı noktası içeriyorsa:

  • Stereo olarak çıkışı ve sekiz kanalda 20 bit veya Bit derinliği kaybı veya yeniden örnekleme olmadan 24 bit derinlik ve 192 kHz, en az bir yapılandırmada.

5:11. İşlenmemiş İçerikleri Yakalama

Android, işlenmemiş seslerin android.media.MediaRecorder.AudioSource.UNPROCESSED ses kaynağı. İçinde OpenSL ES, kayıt hazır ayarıyla erişilebilir SL_ANDROID_RECORDING_PRESET_UNPROCESSED

Cihaz uygulamalarının amacı işlenmemiş ses kaynağını desteklemek ve ses üçüncü taraf uygulamalarında kullanılabiliyorsa:

  • [C-1-1], desteği android.media.AudioManager üzerinden bildirmelidir. mülkü: PROPERTY_SUPPORT_AUDIO_SOURCE_UNİŞLEMED.

  • [C-1-2] Yaklaşık olarak düz genlik-frekans sergilemesi ZORUNLUDUR diğer özellikler: özellikle ±10 dB İşlenmemiş kaydı kaydetmek için kullanılan her mikrofon için 100 Hz - 7.000 Hz ses kaynağı.

  • [C-1-3] Düşük frekansta genlik düzeyleri sergilemelidir aralık: özellikle de ±20 dB ile 5 z arasında sesi kaydetmek için kullanılan her bir mikrofonun orta frekans aralığı işlenmemiş ses kaynağı.

  • [C-1-4] yüksek frekansta genlik düzeyleri sergilemelidir aralığı: özellikle ±30 dB ile 7.000 Hz arasında sesi kaydetmek için kullanılan her bir mikrofonun orta frekans aralığı işlenmemiş ses kaynağı.

  • [C-1-5] ses girişi hassasiyetini, 1000 Hz sinüsoidal olacak şekilde ayarlamalıdır 94 dB Ses Basıncı Düzeyinde (SPL) çalınan ton kaynağı, 16 bit örnekler için 520 RMS (veya kayan nokta/çift için -36 dB Tam Ölçekli) hassas örnekler) ses kaynağı.

  • [C-1-6] için sinyal-gürültü oranı (SNR) 60 dB veya daha yüksek işlenmemiş ses kaynağını kaydetmek için kullanılan her mikrofon. (SNR, 94 dB SPL ile eşdeğeri arasındaki fark olarak ölçülür.) kendi kendine gürültünün SPL'si, A ağırlıklı).

  • [C-1-7] toplam harmonik bozulmanın (THD) değeri şundan daha az OLMALIDIR: Kullanılan her mikrofonda 90 dB SPL giriş düzeyinde 1 kHZ için% 1 işlenmemiş ses kaynağını kaydetmesini isteyin.

  • [C-1-8] Başka bir sinyal işleme (ör. Otomatik Kazanç) OLMAMALIDIR kontrol, yüksek geçiş filtresi veya yankı giderme) seviyeyi istenilen aralığa getirmek için seviye çarpanını seçin. Başka bir deyişle:

    • [C-1-9] Herhangi bir bu nedenle, devre dışı bırakılmalı ve etkin bir şekilde sıfır gecikme ya da sinyal yolunda fazladan gecikme.
    • [C-1-10] Seviye çarpanı, yolda olmasına izin verilmesine rağmen KULLANILMAMALIDIR. Sinyal yolunda gecikme veya gecikme yaşar.

Tüm SPL ölçümleri test edilen mikrofonun hemen yanında yapılır. Birden fazla mikrofon yapılandırmaları için bu gereksinimler her mikrofon için.

Cihaz uygulamaları android.hardware.microphone bildiriyor ancak belirtmiyorsa işlenmemiş ses kaynağını desteklemeleri durumunda:

  • [C-2-1], AudioManager.getProperty(PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED) için null değerini döndürmelidir. API yöntemini çağırın.
  • [C-SR-1] gereksinimlerinin birçoğunu karşılamak için yine ÖNEMLE ÖNERİLİR işlenmemiş kayıt kaynağının sinyal yoluna gidin.

5:12. HDR video

Android 13, yakında yayınlanacak olan bir dokümanda açıklanan HDR teknolojilerini destekler.

Piksel Biçimi

Bir video kod çözücü, COLOR_FormatYUVP010 desteği tanıtıyorsa:

  • [C-1-1] CPU-okuma için P010 biçimini (ImageReader, MediaImage, ByteBuffer). Android 13'te P010, Y için rastgele adıma izin verecek şekilde gevşetilmiştir ve ultraviyole uçakları.

  • [C-1-2] P010 çıkış arabelleğinin GPU tarafından örneklenebilmesi ZORUNLUDUR ( GPU_SAMPLING kullanımıyla ayrılmış olarak). Bu işlem, GPU bileşimini ve özelleştirilebilir ton eşleme ile ilgili daha fazla bilgi edinebilirsiniz.

Bir video kod çözücü, COLOR_Format32bitABGR2101010 desteğinin reklamını yapıyorsa:

  • [C-2-1] çıkış yüzeyi için RGBA_1010102 biçimini DESTEKLEMELİDİR ve CPU tarafından okunabilir (ByteBuffer çıkışı).

Bir video kodlayıcı, COLOR_FormatYUVP010 desteğini tanıtıyorsa:

  • [C-3-1] giriş yüzeyi ve CPU ile yazılabilir için P010 biçimini DESTEKLEMELİDİR (ImageWriter, MediaImage, ByteBuffer) girişi.

Bir video kodlayıcı COLOR_Format32bitABGR2101010 desteğini tanıtıyorsa:

  • [C-4-1] Giriş yüzeyi ve CPU ile yazılabilir için RGBA_1010102 biçimini DESTEKLEMELİDİR (ImageWriter, ByteBuffer) girişi. Not: Çeşitli aktarımlar arasında dönüştürme eğriler, kodlayıcılar için gerekli DEĞİLDİR.

HDR Çekim Gereksinimleri

HDR profillerini destekleyen tüm video kodlayıcılar için cihaz uygulamaları:

  • [C-5-1] HDR meta verilerinin kesin olduğunu ALMAMALIDIR. Örneğin, kodlanmış çerçevede en yüksek parlaklık düzeyinin üzerinde pikseller olabilir veya histogram kareyi temsil etmiyor olabilir.

  • Uygun HDR istikrarını oluşturmak için HDR dinamik meta verileri TOPLAM GEREKİR kodlanmış akışlar için meta verileri oluşturmalıdır ve bu verileri her oturum açın.

Cihaz uygulamaları, CamcorderProfile API'leri kullanılarak HDR yakalamayı destekliyorsa şunu yaparlar:

  • [C-6-1] Camera2 API'leri üzerinden HDR yakalamayı da DESTEKLEMELİDİR.

  • [C-6-2] Şunun için en az bir tane donanım ivmeli video kodlayıcının desteklenmesi ZORUNLUDUR: desteklenen tüm HDR teknolojisidir.

  • [C-6-3] HLG yakalamayı (en azından) DESTEKLEMELİDİR.

  • [C-6-4], HDR meta verilerinin yazmayı DESTEKLEMELİDİR (HDR için geçerliyse). teknolojisi) yakalamanız gerekir. AV1, HEVC ve DolbyVision için Bu, meta verilerin kodlanmış bit akışına eklenmesi anlamına gelir.

  • [C-6-5] P010 ve COLOR_FormatYUVP010’u DESTEKLEMELİDİR.

  • [C-6-6] varsayılan olarak HDR - SDR ton eşlemeyi DESTEKLEMELİDİR yakalanan profil için donanım hızlandırmalı kod çözücüdür. Başka bir deyişle, Bir cihaz HDR10+ HEVC yakalayabiliyorsa varsayılan HEVC kod çözücünün SDR olarak kaydedilen akışın kodunu çözmek için kullanılır.

HDR Düzenleme Gereksinimleri

Cihaz uygulamaları HDR düzenlemeyi destekleyen video kodlayıcılar içeriyorsa onlar:

  • Mevcut değilse HDR meta verilerini oluşturmak için minimum gecikme süresi KULLANILMALIDIR. Bazı kişiler için meta verilerin mevcut olduğu durumları çerçeveleri kullanabilirsiniz. Meta verinin kesin olması ZORUNLUDUR (örneğin, çerçevenin gerçek zirve parlaklığını ve histogramını temsil eder).

Cihaz uygulaması FEATURE_HdrEditing destekleyen codec'ler içeriyorsa şu codec'ler:

  • [C-7-1] en az bir HDR profilini DESTEKLEMELİDİR.

  • [C-7-2],FEATURE_HdrEditing gerekir. Başka bir deyişle, aşağıdaki durumlarda HDR meta verilerinin oluşturulmasını desteklemeleri ZORUNLUDUR: HDR meta verilerini kullanan desteklenen tüm HDR profillerinde mevcut değildir.

  • [C-7-3] aşağıdaki video kodlayıcı giriş biçimlerini DESTEKLEMELİDİR. kodu çözülmüş HDR sinyalini koruyun:

    • Her iki giriş için RGBA_1010102 (zaten hedef aktarım eğrisinde) yüzey ve ByteBuffer'ı desteklemeli ve COLOR_Biçim32 bitABGR2101010.

Cihaz uygulaması FEATURE_HdrEditing'i destekleyen codec'ler içeriyorsa, cihaz:

  • [C-7-4] EXT_YUV_target OpenGL uzantısı için destek tanıtımı YAPMALIDIR.

6. Geliştirici Araçları ve Seçenek Uyumluluğu

6.1. Geliştirici araçları

Cihaz uygulamaları:

  • [C-0-1], Android'de sağlanan Android Geliştirici Araçları'nı DESTEKLEMELİDİR SDK'dır.
  • Android Debug Bridge (adb)

    • [C-0-2], Android SDK'da ve kabukta belirtildiği gibi adb'yi DESTEKLEMELİDİR AOSP'de sağlanan ve uygulama geliştiricilerin kullanabileceği komutlar, dumpsys dahil cmd stats
    • [C-0-11], cmd testharness kabuk komutunu desteklemelidir. Yeni sürüme geçiliyor olmayan önceki bir Android sürümünden cihaz uygulamaları kalıcı veri bloğu C-0-11'den muaf tutulabilir.
    • [C-0-3] Cihaz sisteminin biçimini veya içeriğini DEĞİŞTİRMEMELİDİR etkinlikler (batterystats , diskstats, şifre, grafik istatistikleri, netstats, bildirimi, procstats) dumpsys komutuyla günlüğe kaydedilir.
    • [C-0-10] İhmal olmadan kaydetmeli ve aşağıdaki etkinlikleri yapmalıdır cmd stats kabuk komutu ve StatsManager System API sınıfı.
      • Etkinlik Ön Plan Durumu Değişti
      • Anormallik Algılandı
      • Uygulamaİçerik Haritası Raporlandı
      • AppCrash Gerçekleşti
      • UygulamaBaşlangıç Gerçekleşti
      • Pil Seviyesi Değişti
      • Pil TasarrufuModeDurumuDeğişti
      • BleScanResultAlındı
      • BleScanState Değiştirildi
      • Şarj Durumu Değişti
      • CihazIdleModeStateDeğişti
      • Ön Plan Hizmet Durumu Değiştirildi
      • GpsScanState Değişti
      • İş Durumu Değişti
      • Takılı Durum Değişti
      • Planlananİş Durumu Değiştirildi
      • Ekran Durumu Değiştirildi
      • SenkronizasyonDurumu Değişti
      • SistemEgeçen Gerçek Zamanlı
      • UidProcessState Değişti
      • Uyandırma Kilidi Durumu Değişti
      • Uyandırma Alarmı Gerçekleşti
      • WifiKilit Durumu Değişti
      • KablosuzÇoklu YayınKilit Durumu Değiştirildi
      • WifiTarama Durumu Değiştirildi
    • [C-0-4] cihaz tarafı adb arka plan programının varsayılan olarak devre dışı olması ZORUNLUDUR Android Hata Ayıklama özelliğini açmak için kullanıcı tarafından erişilebilen bir mekanizma OLMALIDIR. Köprü.
    • [C-0-5] güvenli adb'yi DESTEKLEMELİDİR. Android, güvenli iletişim desteği sunar. adb. Güvenli adb, kimliği doğrulanmış ana makinelerde adb'yi etkinleştirir.
    • [C-0-6] Adb'nin anlamına gelir. Özellikle:

    USB bağlantı noktası olmayan cihaz uygulamaları çevre birimi modunu destekliyorsa:

    • [C-3-1] adb'nin yerel alan ağı (örneğin, Ethernet) üzerinden uygulanması ZORUNLUDUR veya kablosuz bağlantı).
    • [C-3-2] Windows 7, 8 ve 10 için sürücüler sağlamalı ve geliştiricilerin adb protokolünü kullanarak cihaza bağlanmasını.

    Cihaz uygulamaları, Kablosuz veya Ethernet bağlantısı:

    • [C-4-1] AdbManager#isAdbWifiSupported() yöntemini ZORUNLUDUR iade true.

    Cihaz uygulamaları, Kablosuz ağ veya Ethernet ve en az bir kamera içeriyorsa, bunlar:

    • [C-5-1] AdbManager#isAdbWifiQrSupported() yöntemini ZORUNLUDUR iade true.
  • Dalvik Hata Ayıklama İzleme Hizmeti (ddms)

    • [C-0-7], Android SDK'sında belirtildiği şekilde tüm ddms özelliklerini DESTEKLEMELİDİR. ddms'de adb kullanıldığı için, ddms desteğinin varsayılan olarak etkin olmaması GEREKİR, ancak Kullanıcı, Android Debug Bridge'i her etkinleştirdiğinde desteklenmelidir. Yukarıdakiyle aynı.
  • SysTrace

    • [C-0-9], Android SDK'da belirtildiği şekilde systrace aracını DESTEKLEMELİDİR. Systrace varsayılan olarak etkin olmamalı ve kullanıcı tarafından erişilebilir olması ZORUNLUDUR Systrace'i açma mekanizması.
  • Perfetto

    • [C-SR-1] /system/bin/perfetto açığa çıkarması ÖNEMLE ÖNERİLİR cmdline'ın uyumlu olduğu kabuk kullanıcısına ikili program perfetto dokümanlarını inceleyin.
    • [C-SR-2] Perfetto ikili programının girdi olarak kabul edilmesi ÖNEMLE ÖNERİLİR aşağıdaki yönergelerde tanımlanan şemaya uyan protobuf yapılandırması perfetto belgelerini inceleyin.
    • [C-SR-3] Perfetto ikili programının çıktı olarak yazılması ÖNERİLİR Şurada tanımlanan şemaya uyan protobuf izlemesi perfetto belgelerini inceleyin.
    • [C-SR-4] Perfetto ikili programı aracılığıyla en azından perfetto belgelerinde açıklanan veri kaynakları.
  • Zayıf Bellek Açıcısı

    • [C-0-12] LMK_KILL_OCCURRED_FIELD_NUMBER Bir uygulama Low Memory Killer tarafından sonlandırıldığında istatistik günlüğü.
  • Test Bandı Modu Cihaz uygulamaları, cmd testharness kabuk komutunu ve cmd testharness enable çalışırsa:

    • [C-2-1] şunun için true değerinin döndürülmesi ZORUNLUDUR: ActivityManager.isRunningInUserTestHarness()
    • [C-2-2] aşağıda açıklandığı gibi Test Kayışı Modu'nu uygulaması GEREKİR Test Bandı Modu dokümanlarını.
  • GPU iş bilgileri

    Cihaz uygulamaları:

    • [C-0-13] şunları görüntülemek için dumpsys gpu --gpuwork kabuk komutunu uygulaması ZORUNLUDUR power/gpu_work_period çekirdeği tarafından döndürülen birleştirilmiş GPU iş verileri izleme noktası seçebilir veya izleme noktası desteklenmiyorsa hiçbir veri görüntülenmez. AOSP uygulama frameworks/native/services/gpuservice/gpuwork/.

Cihaz uygulamaları, android.hardware.vulkan.version özellik bayrağı:

  • [C-1-1] Uygulama geliştiricinin etkinleştirme/devre dışı bırakması için ek ücret SUNMALI GPU hata ayıklama katmanları.
  • [C-1-2] GPU hata ayıklama katmanları etkinleştirildiğinde, katmanların harici araçlar tarafından sağlanan kitaplıklar (ör. platformun veya uygulama paketi) : hata ayıklaması yapılabilir uygulamaların ana dizini vkEnumerateInstanceKatmanProperties() desteği ve vkCreateInstance() API yöntemlerinden birini seçin.

6.2. Geliştirici seçenekleri

Android'de, geliştiricilerin uygulamaları yapılandırmaları için destek sunulur ilgili ayarları değiştirebilirsiniz.

Cihaz uygulamaları, cihazlar için tutarlı bir deneyim Geliştirici Seçenekleri:

  • [C-0-1] android.settings.APPLICATION_DEVELOPMENT_SETTINGS ilgili ayarları göstermek istiyor. Yukarı akış Android uygulaması, Geliştirici Seçenekleri menüsünü varsayılan olarak gizler ve kullanıcıların Ayarlar'da yedi (7) kez bastıktan sonra Geliştirici Seçenekleri'ni başlatın > Cihaz Hakkında > Derleme Numarası menü öğesi.
  • [C-0-2] Geliştirici Seçenekleri'nin varsayılan olarak gizlenmesi ZORUNLUDUR.
  • [C-0-3] İmtiyazlı olmayan net bir mekanizma SUNMALIDIR bir üçüncü taraf uygulaması yerine diğer bir üçüncü taraf uygulamasına davranılmasını Seçenekler. Geliştirici Seçenekleri'ni etkinleştirin. Bu belgenin veya web sitesinin şuradan bağlanabilmesi ZORUNLUDUR: Android SDK dokümanları.
  • Geliştirici aşağıdaki işlemleri gerçekleştirdiğinde kullanıcıya sürekli bir görsel bildirim BİLDİRİMİ YAPILMALIDIR. Seçenekler etkinleştirildi ve kullanıcının güvenliği endişe verici.
  • Geliştirici Seçenekleri menüsüne erişimi görsel olarak geçici olarak sınırlandırabilir veya devre dışı bıraktığınız senaryolarda dikkatinin dağılmasını önlemek için kullanıcının güvenliği önemlidir.

7. Donanım Uyumluluğu

Bir cihaz, ona karşılık gelen bir donanım bileşeni içeriyorsa Üçüncü taraf geliştiriciler için API:

  • [C-0-1] Cihaz uygulamasının API'sini kullanmanız gerekir.

SDK'da bir API varsa kullanımı, isteğe bağlı olduğu belirtilen bir donanım bileşeniyle ve cihaz uygulamasında şu bileşen bulunmuyor:

  • [C-0-2] Bileşenin sınıf tanımlarını (SDK tarafından belirtildiği şekliyle) tamamlama API'lerin yine de sunulması ZORUNLUDUR.
  • [C-0-3] API'nin davranışlarının, makul bazı durumlarda işlem yok şeklinde uygulanması ZORUNLUDUR moda oluyor.
  • [C-0-4] API yöntemlerinin, SDK tarafından izin verilen yerlerde boş değerler döndürmesi ZORUNLUDUR belgelerinden faydalanabilirsiniz.
  • [C-0-5] API yöntemleri, null değerlerin olduğu sınıfların işlemsiz uygulamalarını döndürmesi ZORUNLUDUR SDK belgelerinde bunlara izin verilmez.
  • [C-0-6] API yöntemleri, SDK tarafından belgelenmeyen istisnalar KULLANMAMALIDIR belgelerinden faydalanabilirsiniz.
  • [C-0-7] Cihaz uygulamalarının tutarlı bir şekilde doğru donanım bildirmesi ZORUNLUDUR getSystemAvailableFeatures() ve aracılığıyla yapılandırma bilgilerini Bu cihazda hasSystemFeature(String) yöntem android.content.pm.PackageManager sınıfını kullanır.

Bu gereksinimlerin geçerli olduğu tipik bir senaryo örneği olarak telefon, API: Telefon olmayan cihazlarda bile bu API'ler makul şekilde uygulanmalıdır işlemsiz.

7.1. Ekran ve Grafikler

Android'de, uygulama öğelerini ve kullanıcı arayüzünü otomatik olarak ayarlayan olanaklar vardır. üçüncü taraf uygulamalarının düzgün şekilde çalışmasını çeşitli donanım yapılandırmalarında iyi performans gösterir. çeşitli donanım ekranları ve yapılandırmalar. Android uyumlu ekran, tüm bu özellikleri uygulayan bir ekrandır. davranışlar ve API'ler hakkında bilgi edinebilirsiniz. Android Geliştiricileri - Ekran uyumluluğu genel bakış, bölüm (7.1) ve alt bölümleri ile ek cihaz türleri bu belgenin 2. bölümünde belgelenen belirli davranışlara CDD'ye dokunun. Tüm üçüncü taraf Android uyumlu olan Android uyumlu ekranlarda çalıştırılabildiği takdirde, cihaz uygulamalarının bu API'leri doğru bir şekilde uygulaması GEREKİR özellikler hakkında daha fazla bilgi edinin.

Yeni koşullarla başlayın

Cihaz uygulamaları:

  • [C-0-1] Varsayılan olarak, üçüncü taraf uygulamalarının yalnızca Android uyumlu ekranlar.

Yeni şartları sonlandırma

Bu bölümdeki şartlarda belirtilen birimler aşağıdaki şekilde tanımlanmıştır:

  • fiziksel çapraz boyut olduğundan emin olun. İki karşıtlık arasındaki mesafe (inç cinsinden) köşelerini süslemiş olursunuz.
  • inç başına nokta (dpi)yoğunluk. Bir doğrusal çizginin kapsadığı piksel sayısı 1 inç yatay veya dikey aralık, piksel olarak ifade edilir (ppi veya dpi) girin. Burada dpi ppi ve dpi değerleri listelenir. Hem yatay hem de dikey dpi, listelenen aralığı.
  • en boy oranı. Daha uzun boyuttaki piksellerin daha kısa hale gelir. Örneğin, 480x854 piksellik bir ekran 854/480 = 1, 779 veya yaklaşık "16:9" olur.
  • yoğunluktan bağımsız piksel (dp). A sanal piksel birimi 160 dpi ekrana göre normalleştirilmiş ekran yoğunluğu 160. Belirli bir d yoğunluğu ve bir sayı için (yoğunluktan bağımsız piksel sayısı (dp)), şu şekilde hesaplanır: piksel = dps * (yoğunluk/160) dp = (160 / d) * p .

7.1.1. Ekran Yapılandırması

7.1.1.1. Ekran Boyutu ve Şekli

Android kullanıcı arayüzü çerçevesi çeşitli mantıksal ekran düzenlerini destekler ve uygulamaların, mevcut yapılandırmanın ekranını sorgulamasına olanak tanır. SCREENLAYOUT_SIZE_MASK ile Configuration.screenLayout aracılığıyla düzen boyutu ve Configuration.smallestScreenWidthDp.

Cihaz uygulamaları:

  • [C-0-1] Android SDK dokümanlarında tanımlandığı şekilde Configuration.screenLayout. Özellikle, cihaz uygulamalarının doğru mantıksal yoğunluktan bağımsız piksel (dp) ekran boyutları aşağıdaki gibidir:

    • Configuration.uiMode öğesinin UI_MODE_TYPE_Watch ve öğe için small boyutu bildiriyor Configuration.screenLayout için en az 426 dp x 320 dp olması ZORUNLUDUR.
    • Configuration.screenLayout için normal boyutu bildiren cihazlar, En az 480 dp x 320 dp olması ZORUNLUDUR.
    • Configuration.screenLayout için large boyutu bildiren cihazlar, En az 640 dp x 480 dp olması ZORUNLUDUR.
    • Configuration.screenLayout için xlarge boyutu bildiren cihazlar, En az 960 dp x 720 dp olması ZORUNLUDUR.
  • [C-0-2] Başvurulara doğru şekilde riayet edilmesi ZORUNLUDUR' belirtilmiş <supports-screens> özelliğini kullanmanızı öneririz. inceleyebilirsiniz.

  • Köşeleri yuvarlanmış Android ile uyumlu ekranlara sahip OLABİLİR.

Cihaz uygulamaları, şu işlemleri yapabilen ekranları destekliyorsa: UI_MODE_TYPE_NORMAL boyut yapılandırması ve Android uyumlu sürüm olmalıdır fiziksel ekranları bu ekranları işlemek için yuvarlatılmış köşeler, onlar:

  • [C-1-1] Aşağıdaki şartlardan en az birinin karşılanması ZORUNLUDUR bunların her biri için karşılanmalıdır:

    • Yuvarlatılmış köşelerin yarıçapı 38 dp'den az veya bu değere eşittir.
    • 15yaşında 18 olduğunda dp: 1518 dp kutusu, mantıksal ekranın her bir köşesine sabitlenir (en az bir ekranda görünür olduğundan emin olun.
  • dikdörtgen köşeler.

Yeni koşullarla başlayın

Cihaz uygulamaları yalnızca NO_KEYS klavye yapılandırması yapabiliyorsa ve UI_MODE_TYPE_NORMAL kullanıcı arayüzü modu için destek bildirmeyi amaçlıyoruz yapılandırdıktan sonra:

  • [C-4-1] Ekran kesimleri hariç olmak üzere en az şu boyutta bir düzen boyutu OLMALIDIR 596 dp x 384 dp veya daha büyük.

Yeni şartları sonlandırma

Cihaz uygulamaları Android uyumlu Android uyumlu ekranlar içeriyorsa katlanabilir veya birden fazla ekran paneli arasına katlanabilir menteşedir. üçüncü taraf uygulamalarını oluşturmak için kullanılabildiğinden:

Cihaz uygulamaları Android uyumlu Android uyumlu ekranlar içeriyorsa veya birden fazla ekran paneli arasında katlanabilir menteşe bulunuyorsa ve menteşe veya katlama bir tam ekran uygulama penceresinden geçiyorsa:

  • [C-3-1] menteşenin veya katlama işleminin konumunu, sınırlarını ve durumunu Bildirmelidir API'leri ekleyebilirsiniz.

Yardımcı dosya veya uzantı API'lerini doğru şekilde uygulama hakkında ayrıntılar için Window Manager Jetpack'in herkese açık dokümanlarına bakın.

Yeni koşullarla başlayın

Cihaz uygulamaları bir veya daha fazla Android uyumlu ekran alanı içeriyorsa katlanabilir cihazlar da dahil olmak üzere Android ile uyumlu ekran paneli alanlarını ve bu görüntüleme alanlarını, uygulamalar:

  • [C-4-1] Pencere Yöneticisi Uzantılarının doğru sürümünü uygulama ZORUNLUDUR WindowManager Uzantıları bölümünde açıklandığı şekilde API düzeyi.

Yeni şartları sonlandırma

7.1.1.2. Ekran En Boy Oranı

Görüntülü reklamlar için fiziksel ekranın en boy oranıyla ilgili bir kısıtlama Android uyumlu ekranlar, mantıksal ekranın en boy oranı Üçüncü taraf uygulamalarının oluşturulduğu yer. Bu boyut, yükseklik ve derinlikten view.Display aracılığıyla bildirilen genişlik değerleri API'ler ve Yapılandırma API'ler aşağıdaki şartları karşılamalıdır:

  • [C-0-1] Configuration.uiMode içeren cihaz uygulamaları UI_MODE_TYPE_NORMAL, şundan küçük veya buna eşit bir en boy oranı değerine sahip OLMALIDIR 1,86'ya (yaklaşık 16:9) kadar (örneğin, uygulama aşağıdakilerden birini karşılamıyorsa) koşullar:

    • Uygulama, daha büyük ekran en boy oranını desteklediğini beyan etti android.max_aspect üzerinden meta veri değeri
    • Uygulama, android:resizeableActivity aracılığıyla yeniden boyutlandırılabilir olduğunu beyan eder özelliğini gönderin.
    • Uygulama, API düzeyi 24 veya üstünü hedefliyor ve android:maxAspectRatio video izleme özelliğini kullanın.
  • [C-0-3] Configuration.uiMode ayarıyla cihaz uygulamaları UI_MODE_TYPE_WATCH için en boy oranı 1,0 (1:1) olarak ayarlanmalıdır.

7.1.1.3. Ekran Yoğunluğu

Android kullanıcı arayüzü çerçevesi, bir dizi standart mantıksal yoğunluğu tanımlar. uygulama kaynaklarını hedefler.

Cihaz Uygulamaları:

  • [C-0-1] Varsayılan olarak cihaz uygulamaları Aşağıdakilerden yalnızca birini BİLDİRMELİDİR Aşağıdaki Android çerçeve yoğunlukları DisplayMetrics DENSITY_DEVICE_STABLE API aracılığıyla ve bu değerin her fiziksel ekran için statik bir değer olması gerekir. Hiçbir zaman DEĞİŞTİRMEMELİDİR; ancak Ancak cihaz Farklı bir isteğe bağlı yoğunluğu bildirmek istiyorum DisplayMetrics.density kullanıcının yaptığı ekran yapılandırması değişikliklerine ( örnek olarak, görüntü boyutu) ayarlayın.

  • Cihaz uygulamalarında, standart Android çerçeve yoğunluğu TANIMLANMALIDIR. ekranın fiziksel yoğunluğuna göre sayısal olarak en yakın olan mantıksal yoğunluk, bildirilen ekran boyutunu desteklenen minimum değerin altına iter. Eğer değerine en yakın olan standart Android çerçeve yoğunluğuna fiziksel yoğunluk, en küçük ekran boyutundan daha küçük bir ekran boyutu ortaya çıkarır. desteklenen uyumlu ekran boyutu (320 dp genişlik), cihaz uygulamaları en düşük standart Android çerçevesi yoğunluğunu raporla.

Yeni koşullarla başlayın

  • Sayısal olarak standart Android çerçeve yoğunluğunu TANIMLAMAMALIDIR. ekranın fiziksel yoğunluğuna veya avuç içi cihazla aynı açısal görüş alanı ölçümleri

Yeni şartları sonlandırma

Cihaz uygulamaları, mevcut cihazın ekran boyutunu değiştirdiğinizde bunlar:

  • [C-1-1] Ekran boyutu, herhangi bir şekilde ölçeklendirilemez. ekranı ÖlçeklendirMEMELİDİR 1,5 kattan fazla DENSITY_DEVICE_STABLE doğal yoğunluk veya 320 dp'den (eşdeğer sw320dp kaynak niteleyicisine bağlayın.
  • [C-1-2] Görüntülü reklam boyutu herhangi bir şekilde Ölçeklendirilmemesi ZORUNLUDUR ekranı ÖlçeklendirMEMELİDİR DENSITY_DEVICE_STABLE yerel yoğunluğun 0,85 katından küçük olmalıdır.
  • İyi bir kullanılabilirlik ve tutarlı yazı tipi boyutları sağlamak için, Yerel Görüntülü Reklam Ağı seçeneklerinin yukarıda belirtildiği gibi)
    • Küçük: 0,85x
    • Varsayılan: 1x (Yerel görüntülü reklam ölçeği)
    • Büyük: 1,15x
    • Daha büyük: 1,3 kat
    • En büyük 1,45x

7.1.2. Görüntüleme Metrikleri

Cihaz uygulamaları Android uyumlu ekranlar içeriyorsa veya video çıkışını Android uyumlu ekranlara kopyalarsanız:

  • [C-1-1] Tüm Android uyumlu ekranlar için doğru değerleri BİLDİRMELİDİR burada tanımlanan metrikler android.util.DisplayMetrics API.

Cihaz uygulamaları yerleşik ekran veya video çıkışı içermiyorsa onlar:

  • [C-2-1] Android uyumlu ekranın doğru değerlerini BİLDİRMELİDİR android.util.DisplayMetrics API'sinde tanımlandığı şekilde view.Display için emülasyon

7.1.3. Ekran Yönlendirme

Cihaz uygulamaları:

  • [C-0-1] Hangi ekran yönlerini desteklediğini bildirmelidir (android.hardware.screen.portrait ve/veya android.hardware.screen.landscape) ve desteklenen en az bir öğenin raporlanması GEREKİR Yön. Örneğin, yatay yönde sabit bir cihaz bir TV veya dizüstü bilgisayar gibi bir ekranla sınırlı olmak üzere rapor android.hardware.screen.landscape.
  • [C-0-2] Cihazın mevcut değeri için doğru değeri Bildirin. android.content.res.Configuration.orientation, android.view.Display.getOrientation() veya diğer API'ler.

Cihaz uygulamaları her iki ekran yönünü de destekliyorsa:

  • [C-1-1] uygulamaların dikey veya yatay ekrana göre dinamik yönünü DESTEKLEMELİDİR Yön. Yani cihaz, uygulamanın belirli bir ekranla ilgili isteğini yerine getirmelidir. Yön.
  • [C-1-2] yön değiştirilirken bildirilen ekran boyutunu veya yoğunluğunu DEĞİŞTİRMEMELİDİR.
  • Varsayılan olarak dikey veya yatay yön seçilebilir.

7.1.4. 2D ve 3D Grafiklerde Hızlandırma

7.1.4.1 OpenGL ES

Cihaz uygulamaları:

  • [C-0-1], desteklenen OpenGL ES sürümlerini (1.1, 2.0, yönetilen API'ler aracılığıyla (örneğin, GLES10.getString() yöntemi) ve yerel API'ler için geçerlidir.
  • [C-0-2] İlgili tüm yönetilen API'lerin desteğini içermesi ZORUNLUDUR yerel API'lerin kullanılmasını gerektiriyor.

Cihaz uygulamaları ekran veya video çıkışı içeriyorsa:

  • [C-1-1], yerleşik ve ayrıntılı bir şekilde OpenGL ES 1.1 ve 2.0'ı desteklemektedir. Android SDK dokümanlarına bakın.
  • [C-SR-1] OpenGL ES 3.1'i desteklemesi için ÖNEMLE ÖNERİLİR.
  • OpenGL ES 3.2'yi DESTEKLEMELİDİR.

OpenGL ES dEQP testleri, her biri ilişkilendirilmiş bir tarih/sürüm numarası olmalıdır. Bunlar, external/deqp/android/cts/main/glesXX-main-YYYY-MM-DD.txt Şu anda OpenGL ES'yi kendi bildirdiği bir düzeyde desteklemesi, dEQP'yi geçebileceğini gösterir bu seviyedeki ve önceki tüm test listelerinde kullanılabilir.

Cihaz uygulamaları OpenGL ES sürümlerinden herhangi birini destekliyorsa, bunlar:

  • [C-2-1], OpenGL ES tarafından yönetilen API'ler ve yerel API'ler aracılığıyla uyguladıkları diğer OpenGL ES uzantılarını da rapor uzantısı dizeleri için DEĞİL.
  • [C-2-2] EGL_KHR_image, EGL_KHR_image_base ve EGL_ANDROID_image_native_buffer, EGL_ANDROID_get_native_client_buffer, EGL_KHR_wait_sync, EGL_KHR_get_all_proc_addresses, EGL_ANDROID_presentation_time, EGL_KHR_swap_buffers_with_damage, EGL_ANDROID_recordable ve EGL_ANDROID_GLES_layers uzantıları.
  • [C-2-3] OpenGL ES dEQP testlerinin maksimum sürümünü Bildirmelidir android.software.opengles.deqp.level özellik bayrağı ile desteklenir.
  • [C-2-4], şu nedenle en az 132383489 sürümünü (1 Mart 2020'den itibaren) desteklemelidir: android.software.opengles.deqp.level özellik bayrağında bildiriliyor.
  • [C-2-5] Sürümler arasında test listelerindeki tüm OpenGL ES dEQP Testlerini geçmelidir 132383489 ve Desteklenen her biri için android.software.opengles.deqp.level özellik bayrağı OpenGL ES sürümü.
  • [C-SR-2] EGL_KHR_partial_update ve OES_EGL_image_external uzantı.
  • getString() yöntemini ve tüm dokuları kullanarak doğru şekilde rapor ALINMALIDIR. standart bir sıkıştırma formatıdır. Bu genellikle satıcıya özgü bir durumdur.

  • EGL_IMG_context_priority ve EGL_EXT_protected_content uzantı.

Cihaz uygulamaları OpenGL ES 3.0, 3.1 veya 3.2'yi desteklediğini belirtiyorsa:

  • [C-3-1] Bu sürüme karşılık gelen işlev simgelerini ayrıca libGLESv2.so kitaplığındaki OpenGL ES 2.0 işlev sembollerine ek olarak.
  • [C-SR-3] OES_EGL_image_external_essl3 desteği için ÖNEMLE ÖNERİLİR uzantısına sahip olur.

Cihaz uygulamaları OpenGL ES 3.2'yi destekliyorsa, bunlar:

  • [C-4-1] OpenGL ES Android Uzantı Paketi'ni bütünüyle DESTEKLEMELİDİR.

Cihaz uygulamaları, şunları sağlar:

  • [C-5-1], desteği android.hardware.opengles.aep üzerinden tanımlamalıdır. özellik bayrağı.

Cihaz uygulamaları, EGL_KHR_mutable_render_buffer desteği sunuyorsa uzantılarında:

  • [C-6-1] EGL_ANDROID_front_buffer_auto_refresh öğesini de DESTEKLEMELİDİR uzantısına sahip olur.
7.1.4.2 Vulkan

Android'de Vulkan desteği mevcuttur , yüksek performanslı 3D grafikler için düşük maliyetli, platformlar arası bir API'dir.

Cihaz uygulamaları OpenGL ES 3.1'i destekliyorsa, bunlar:

  • [C-SR-1] Şu konuda destek içermesi ÖNEMLE ÖNERİLİR: Vulkan 1.3.
  • [C-4-1] bir Vulkan varyant sürümünü (ör. varyant bir kısmı sıfır OLMALIDIR).

Cihaz uygulamaları ekran veya video çıkışı içeriyorsa:

  • [C-SR-2] Vulkan 1.3.

Vulkan dEQP testleri, her biri bir test listesine sahip birkaç test listesine ayrılmıştır. ilişkili tarih/sürüm. Bunlar, external/deqp/android/cts/main/vk-main-YYYY-MM-DD.txt Şu anda Vulkan'ı kendi bildirdiği düzeyde desteklemesi, dEQP'yi geçebileceğini gösterir bu seviyedeki ve önceki tüm test listelerinde kullanılabilir.

Cihaz uygulamaları Vulkan desteği içeriyorsa 1.0 veya sonraki kullanıcılar:

  • [C-1-1] android.hardware.vulkan.level android.hardware.vulkan.version özellik bayrağı.
  • [C-1-2] Numaralandırılması ZORUNLUDUR, Vulkan için en az bir VkPhysicalDevice yerel API vkEnumeratePhysicalDevices().
  • [C-1-3] Vulkan 1.0'ı tam olarak uygulamalıdır. Numaralandırılmış her biri için Vulkan 1.1 API'leri VkPhysicalDevice.
  • [C-1-4] Şu ada sahip yerel kitaplıklarda bulunan katmanların numaralandırılması ZORUNLUDUR: libVkLayer*.so uygulama paketinin yerel kitaplık dizininde yer alır. Vulkan yerel API'leri aracılığıyla vkEnumerateInstanceLayerProperties() ve vkEnumerateDeviceLayerProperties().
  • [C-1-5] gözlemlemek veya müdahale etmek için başka yollar Uygulamada android:debuggable özelliği yoksa Vulkan API true veya com.android.graphics.injectLayers.enable meta verisi olarak ayarlayın true olarak ayarlandı.
  • [C-1-6] Vulkan yerel API'leri ve bunun tersine , uzantı dizelerini Bildirememesi GEREKİR bu tür durumlar yaşanır.
  • [C-1-7] VK_KHR_surface, VK_KHR_android_surface, VK_KHR_swapchain'i DESTEKLEMELİDİR, ve VK_KHR_incremental_ bulunabilir uzantıları.
  • [C-1-8], Vulkan dEQP Testlerinin maksimum sürümünü Bildirmelidir. android.software.vulkan.deqp.level özellik bayrağı ile desteklenir.
  • [C-1-9], şunun gibi en az 132317953 sürümünü (1 Mart 2019'dan itibaren) DESTEKLEMELİDİR: android.software.vulkan.deqp.level özellik bayrağında bildiriliyor.
  • [C-1-10] Aşağıdaki test listelerindeki tüm Vulkan dEQP Testlerini geçmelidir. 132317953 sürümü ve android.software.vulkan.deqp.level özellik bayrağı.
  • [C-1-11] VK_KHR_video_queue desteğinin NUMARALI OLMAMASI GEREKİR VK_KHR_video_decode_queue veya VK_KHR_video_encode_queue uzantıları.
  • [C-SR-3] VK_KHR_driver_properties desteği için ÖNEMLE ÖNERİLİR ve VK_GOOGLE_display_timing uzantı var.

  • VkPhysicalDeviceProtectedMemoryFeatures ve VK_EXT_global_priority.

  • [C-1-12] VK_KHR_performance_query uzantısına ilişkin desteği SAYFAMA ETMEMELİDİR.

Yeni koşullarla başlayın

  • [C-SR-5] VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory desteği için ÖNEMLE ÖNERİLİR ve VK_EXT_global_priority.

  • [C-SR-6] SkiaVk ürününün HWUI ile kullanılması ÖNEMLE ÖNERİLİR.

Yeni şartları sonlandırma

Cihaz uygulamaları Vulkan 1.0 desteği içermiyorsa:

  • [C-2-1], Vulkan özellik bayraklarından herhangi birini (ör. android.hardware.vulkan.level, android.hardware.vulkan.version).
  • [C-2-2], Vulkan yerel API'si için herhangi bir VkPhysicalDevice NUMARALI SAYILMAMALIDIR. vkEnumeratePhysicalDevices().

Cihaz uygulamaları Vulkan 1.1 desteği içeriyorsa ve Burada açıklanan Vulkan özellik bayrakları , onlar:

  • [C-3-1], SYNC_FD harici semaforu ve herkese açık kullanıcı adı için desteği kullanıma sunmalıdır türlerini ve VK_ANDROID_external_memory_android_hardware_buffer uzantısını ekleyin.

Yeni koşullarla başlayın

  • [C-SR-7] VK_KHR_external_fence_fd kullanması ÖNEMLE ÖNERİLİR uzantıyı üçüncü taraf uygulamalar için kullanılabilir hale getirebilir ve uygulamayı çit yükünü POSIX dosyasından dışa aktarmak ve çit yükünü içe aktarmak için açıklandığı gibi tanımlayıcılar burada bulabilirsiniz.

Yeni şartları sonlandırma

7.1.4.3 RenderScript
  • [C-0-1] Cihaz uygulamalarının, ayrıntılı bir şekilde açıklandığı gibi Android RenderScript'i desteklemesi ZORUNLUDUR inceleyebilirsiniz.
7.1.4.4 2D Grafik Hızlandırma

Android, uygulamaların aşağıdakileri yapmak istediğini beyan etmeleri için bir mekanizmaya sahiptir: Uygulama, Etkinlik ve altındaki 2D grafikler için donanım hızlandırmayı Pencere veya manifest etiketi aracılığıyla görünüm düzeyi android:hardwareAccelerated veya doğrudan API çağrıları.

Cihaz uygulamaları:

  • [C-0-1] Varsayılan olarak donanım hızlandırmanın ETKİNLEŞTİRİLMESİ GEREKİR ve Geliştirici, android:hardwareAccelerated="false" veya donanım hızlandırmayı devre dışı bırakma API'leri kullanabilirsiniz.
  • [C-0-2] Donanım hızlandırma ile ilgili Android SDK dokümanları.

Android, geliştiricilerin doğrudan entegre olmasını sağlayan bir TextureView nesnesi içerir donanım hızlandırmalı OpenGL ES dokularını kullanıcı arayüzü hiyerarşisinde oluşturma hedefleri olarak.

Cihaz uygulamaları:

  • [C-0-3], TextureView API'yi desteklemeli ve uygulama içi kullanımla tutarlı bir davranışa sahiptir.
7.1.4.5 Geniş Ekranlar

Cihaz uygulamaları, Configuration.isScreenWideColorGamut() için:

  • [C-1-1] Ekran rengi kalibre edilmiş olmalıdır.
  • [C-1-2] ürün gamı sRGB renk gamını kapsayan bir ekrana sahip olmalıdır. tamamen CIE 1931 xyY alanında.
  • [C-1-3] gamının en az% 90'ını kapsayan bir ekranın olması ZORUNLUDUR CIE 1931 xyY alanında DCI-P3.
  • [C-1-4] OpenGL ES 3.1 veya 3.2'yi desteklemeli ve düzgün bir şekilde rapor etmelidir.
  • [C-1-5] EGL_KHR_no_config_context için destek reklamı YAPMALIDIR. EGL_EXT_pixel_format_float EGL_KHR_gl_colorspace, EGL_EXT_gl_colorspace_scrgb, EGL_EXT_gl_colorspace_scrgb_linear, EGL_EXT_gl_colorspace_display_p3, EGL_EXT_gl_colorspace_display_p3_linear, ve EGL_EXT_gl_colorspace_display_p3_passthrough uzantılar.
  • [C-SR-1] GL_EXT_sRGB desteği için ÖNEMLE ÖNERİLİR.

Buna karşılık, cihaz uygulamaları geniş gamlı ekranları desteklemiyorsa:

  • [C-2-1] CIE 1931 xyY alanında sRGB'nin en az% 100'ünü kapsamalıdır ancak ekran renk gamı tanımsız.

7.1.5. Eski Uygulama Uyumluluğu Modu

Android, çerçevenin farklı bir modda çalıştığı bir "uyumluluk modu" belirtir "normal" [normal] Eski sürüm avantajı için ekran boyutu eşdeğeri (320 dp genişlik) modu Android'in sürümünden önceki eski sürümler için geliştirilmemiş uygulamalar bağımsızlığını sağlıyor.

7.1.6. Ekran Teknolojisi

Android platformu, uygulamaların zengin içerik oluşturmasına olanak tanıyan API'ler içerir. Android uyumlu bir ekrana kopyalamasını sağlayabilirsiniz. Cihazların aşağıdakilerin tümünü desteklemesi GEREKİR Bu dokümanda özellikle izin verilmediği sürece Android SDK'sı tarafından tanımlandığı şekliyle API'ler.

Bir cihaz uygulamasının Android uyumlu ekranlarının tümü:

  • [C-0-1] 16 bit renkli grafikleri işleyebilmesi ZORUNLUDUR.
  • 24 bit renkli grafiğe sahip ekranlar DESTEKLENMELİDİR.
  • [C-0-2] animasyonları oluşturabilmek ZORUNLUDUR.
  • [C-0-3] Piksel en boy oranına (PAR) sahip olması ZORUNLUDUR 0,9 ile 1,15 arasında değişir. Yani, piksel en boy oranı kareye yakın olması ZORUNLUDUR (1,0) değerini alır.

7.1.7. İkincil Ekranlar

Android, ikincil Android uyumlu ekranları destekler. medya paylaşım özellikleri ve harici ekranlara erişim için geliştirici API'leri.

Cihaz uygulamaları, kablolu, harici ekran ve uygulama veya yerleştirilmiş ek ekran bağlantısı varsa:

  • [C-1-1] DisplayManager'nı uygulaması ZORUNLUDUR Android SDK dokümanlarında açıklandığı şekilde sistem hizmetini ve API'yi kullanabilirsiniz.

7.2. Giriş Cihazları

Cihaz uygulamaları:

7.2.1. Klavye

Cihaz uygulamaları, üçüncü taraf Giriş Yöntemi Düzenleyici (IME) uygulamaları:

Cihaz uygulamaları:

7.2.2. Dokunmatik Olmayan Gezinme

Android'de d-pad, iztopu ve tekerlek gibi destek mekanizmaları dokunmatik olmayan gezinme.

Cihaz uygulamaları:

Cihaz uygulamalarında dokunmatik olmayan gezinme özelliği yoksa:

  • [C-1-1] Giriş Yönetim Motorlarıyla uyumlu metin seçimi ve düzenlemesi. İlgili içeriği oluşturmak için kullanılan yukarı akış Android açık kaynak uygulaması bir seçim mekanizması içerir Dokunmatik olmayan gezinme girişleri olmayan cihazlarla kullanım için uygundur.

7.2.3. Gezinme Tuşları

Ana Ekran, Son aramalar, ve Geri genellikle özel bir fiziksel düğmeyle etkileşim yoluyla sağlanan işlevler ekranın belirli bir bölümü Android cihazlarda cihaz uygulamaları hakkında daha fazla bilgi

  • [C-0-1] Yüklü uygulamaları başlatmak için kullanıcıya ücret ödenmesi GEREKİR Bu kampanyaların <intent-filter> ile ACTION=MAIN ve Televizyon cihazı için CATEGORY=LAUNCHER veya CATEGORY=LEANBACK_LAUNCHER hakkında bilgi edindiniz. Ana Sayfa işlevi, bu kullanıcı tarafından sağlanan mekanizma olmalıdır.
  • Son Kullanılanlar ve Geri işlevi için düğmeler SAĞLANMALIDIR.

Ana Ekran, Son Kullanılanlar veya Geri işlevleri sağlanırsa:

  • [C-1-1] Tek bir işlemle (ör. dokunma, çift tıklama veya hareketi) ekleyebilirsiniz.
  • [C-1-2] hangi tek işlemin tetikleneceğini gösteren net bir gösterge sunmalıdır ekleyebilirsiniz. Düğmenin üzerinde bir yazılımın göründüğü görünür bir simge simgesine dokunarak veya kullanıcıyı belirli bir ilk kullanım deneyimi sırasında gerçekleştirilen adım adım açıklamalı demo akışı gösteren örneklere göz atalım.

Cihaz uygulamaları:

  • [C-SR-1] için giriş mekanizması sağlamaması ÖNEMLE ÖNERİLİR Menü işlevi .

  • [C-SR-2] Tüm gezinme işlevlerinin iptal edilebilir. "İptal edilebilir" kullanıcının gezinme işlevinin yürütülmesini (ör. ana sayfaya gitme, geri gitme vb.) Kaydırma işlemi belirli bir eşiğin üzerine çıkarılmaz.

Cihaz uygulamaları Menü işlevini sağlıyorsa:

  • [C-2-1] İşlem her gerçekleştirildiğinde işlem taşma düğmesini GÖRÜNTÜLEMELİDİR taşma menüsü pop-up'ı boş değil ve işlem çubuğu görünür.
  • [C-2-2] İşlem taşma pop-up'ının konumunu DEĞİŞTİRMEMELİDİR işlem çubuğundaki taşma düğmesi seçildiğinde gösterilir, ancak OLUŞTURULABİLİR ekranda değiştirilmiş bir konumda işlem taşma pop-up'ı Menü işlevi seçilerek görüntülenir.

Cihaz uygulamalarında Menü işlevi sağlanmıyorsa, şu özelliklere sahip değiller:

  • [C-3-1] Aşağıdaki durumlarda, menü işlevinin uygulamalara targetSdkVersion, fiziksel bir düğme veya yazılım anahtarı nedeniyle 10'dan küçük anlamına gelir. Bu Menü işlevi, diğer gezinme işlevleri.

Cihaz uygulamaları Destek işlevini sağlıyorsa onlar:

  • [C-4-1] Asistan işlevini tek bir işlemle erişilebilir hale getirmelidir (ör. dokunma, çift tıklama veya hareket) diğer gezinme tuşları erişilebilir olduğunda.
  • [C-SR-3] ANA SAYFA işlevine bu şekilde uzun basmanız ÖNEMLE ÖNERİLİR tanımlanmış etkileşimdir.

Cihaz uygulamaları, cihazı görüntülemek için ekranın ayrı bir bölümünü içerirler:

  • [C-5-1] Gezinme tuşları ekranın ayrı bir bölümünü kullanmalı veya başka bir şekilde engellememeli ya da ekranın uygulamalara ayrılan kısmı.
  • [C-5-2] Ekranın bir bölümünü, bölüm 7.1.1'de belirtilen şartlara uygun olmalıdır.
  • [C-5-3], uygulama tarafından View.setSystemUiVisibility() aracılığıyla ayarlanan işaretleri dikkate almalı Ekranın bu farklı kısmı için (gezinme çubuğu olarak da bilinir), SDK'yı kullanabilirsiniz.

Gezinme işlevi ekranda gösterilen, harekete dayalı bir işlem olarak sağlanırsa:

Sol ve sağ kenarlardaki herhangi bir yerden gezinme işlevi sağlanırsa şu anki yönünü değiştirin:

  • [C-7-1] Gezinme işlevinin Geri olması ve mevcut yönünün hem sol hem de sağ kenarlarından kaydırın tıklayın.
  • [C-7-2] Sol tarafta özel kaydırılabilir sistem panelleri sağlanmışsa veya ekranın 1/3'ünün içine yerleştirilmeleri ZORUNLUDUR içine sürüklenmesinin doğrudan reklamı görüntülemeye reklam öğesi panelleri gösterir. Sistem paneli Kullanıcı tarafından, ekranın üst 1/3'ünün altına ulaşacak şekilde yapılandırılmıştır ancak sistem paneli kenarların 1/3'ünden daha uzun süre KULLANMAMALIDIR.
  • [C-7-3] Ön plan uygulamasında Görüntüle.SYSTEM_UI_FLAG_IMMERSIVE, Görünüm.SYSTEM_UI_FLAG_SANMERSIVE_STICKY, WindowInsetsController.BEHAVIOR_DEFAULT veya WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE işaretleri ayarlandı, Kenarlardan kaydırma AOSP'de uygulandığı gibi ZORUNLU OLMALIDIR. SDK'da belgelenmiştir.
  • [C-7-4] Ön plan uygulamasında Görüntüle.SYSTEM_UI_FLAG_IMMERSIVE, Görünüm.SYSTEM_UI_FLAG_SANMERSIVE_STICKY, WindowInsetsController.BEHAVIOR_DEFAULT veya WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE işaretleri ayarlandı, kullanıcı tarafından eklenene veya gelene kadar özel kaydırılabilir sistem panellerinin gizlenmesi ZORUNLUDUR sistem çubuklarının (gezinme ve durum çubuğu olarak da bilinir) uygulanmış halini açar AOSP'de.

Geri gezinme işlevi sağlanırsa ve kullanıcı Geri gitme işlemini iptal ederse hareket, ardından:

  • [C-8-1] OnBackInvokedCallback.onBackCancelled() çağrılması ZORUNLUDUR.
  • [C-8-2] OnBackInvokedCallback.onBackInvoked() ARAMAMALIDIR.
  • [C-8-3] KEYCODE_BACK etkinliği GÖNDERİLMEMELİDİR.

Geri gezinme işlevi sağlanmışsa ancak ön plan uygulaması sağlanıyorsa OnBackInvokedCallback KAYDEDİLMEMİŞSE:

  • Sistemin, ön plan uygulaması için arka plan üzerinde yer alan Bu da kullanıcının AOSP'de belirtildiği gibi geri döndüğünü gösterir.

Cihaz uygulamaları, setNavBarMode sistem API'sini destekleyip android.permission.STATUS_BAR izni olan tüm sistem uygulamalarının gezinme çubuğu moduna geçtiğinde:

  • [C-9-1] Çocuklara uygun simgeler veya düğmeye dayalı simgeler için destek SAĞLANMALIDIR AOSP kodunda belirtildiği şekilde gezinme.

7.2.4. Dokunmatik Ekranlı Giriş

Android'de çeşitli işaretçi giriş sistemleri için destek sunulur. Örneğin, Dokunmatik ekranlar, dokunmatik alanlar ve sahte dokunmatik giriş cihazları. Dokunmatik ekran tabanlı cihaz uygulamaları kullanıcının doğrudan manipüle edebilirsiniz. Kullanıcı ekrana doğrudan dokunduğu için Sistemin nesneleri göstermek için ek ücret ve manipüle ediliyor.

Cihaz uygulamaları:

  • Bir tür işaretçi giriş sistemine SAHİP OLMALIDIR (fare gibi veya dokunarak).
  • Tamamen bağımsız olarak izlenen işaretçileri DESTEKLEMELİDİR.

Cihaz uygulamalarında dokunmatik ekran (tek dokunma veya daha iyisi) varsa Android ile uyumlu birincil ekrana sahip olanlar:

  • [C-1-1] Configuration.touchscreen için TOUCHSCREEN_FINGER adlı kişiyi bildirmesi GEREKİR API alanına girin.
  • [C-1-2], android.hardware.touchscreen ve android.hardware.faketouch özellik bayrağı.

Cihaz uygulamalarında sizden daha fazlasını izleyebilen bir dokunmatik ekran birincil Android uyumlu ekrana bir kez dokunarak şunları yapabilirsiniz:

  • [C-2-1] uygun özellik bayraklarını android.hardware.touchscreen.multitouch BİLDİRMELİDİR. android.hardware.touchscreen.multitouch.distinct android.hardware.touchscreen.multitouch.jazzhand cihazdaki dokunmatik ekranın türüne karşılık gelir.

Cihaz uygulamaları fare veya birincil giriş için iztopu (yani ekrana doğrudan dokunmamak) Android uyumlu ekran ve sahte dokunma gereksinimlerini karşılayın: bölüm 7.2.5'te yer alıyorsa:

  • [C-3-1] android.hardware.touchscreen
  • [C-3-2] yalnızca android.hardware.faketouch adlı kullanıcıyı bildirmeli.
  • [C-3-3] TOUCHSCREEN_NOTOUCH Configuration.touchscreen API alanına girin.

7.2.5. Sahte Dokunmatik Giriş

Sahte dokunma arayüzü, kullanıcı girişlerinin bir alt kümesini tahmin eden bir kullanıcı giriş sistemi sağlar. dokunmatik ekran özellikleri. Örneğin, çalışan bir fare veya uzaktan kumanda Ekrandaki imleç dokunmaya yaklaşır, ancak kullanıcının öncelikle dokunmasını veya odaklanıp tıklayın. Fare, dokunmatik yüzey, jiroskop tabanlı gibi çok sayıda giriş cihazı hava faresi, jiroskop, kontrol çubuğu ve çoklu dokunma dokunmatik dokunmatik yüzey sahte dokunma etkileşimleridir. Android, özellik sabitini içerir android.hardware.faketouch, yüksek kaliteli, dokunmatik olmayan bir modele karşılık gelir (imleç tabanlı) giriş cihazı (fare veya dokunmatik yüzey gibi) emüle eder (temel hareket desteği dahil) ve Cihaz, dokunmatik ekran işlevlerinin emüle edilmiş bir alt kümesini destekler.

Cihaz uygulamaları dokunmatik ekran içermiyor, ancak başka bir dokunmatik ekran oluşturmak istedikleri işaretçi giriş sistemini kullanırlar.

  • android.hardware.faketouch özellik bayrağı için destek bildirilmelidir.

Cihaz uygulamaları android.hardware.faketouch için destek beyan ederse, onlar:

  • [C-1-1] mutlak X ve Y ekran konumlarını BİLDİRMELİDİR ve ekranda görsel bir işaretçi görüntüler.
  • [C-1-2] Dokunma etkinliğinin, işaretçide gerçekleşen durum değişikliği aşağıya veya yukarıya gidin.
  • [C-1-3], ekrandaki bir nesne üzerinde işaretçiyi aşağı ve yukarı DESTEKLEMELİDİR. Bu işlev, Kullanıcıların ekrandaki bir nesneye dokunma emülasyonunu kullanmasına olanak tanır.
  • [C-1-4] Aşağı işaretçi, yukarı işaretçi, aşağı işaretçi ve yukarı işaretçiyi DESTEKLEMELİDİR süre eşiğinde ekrandaki bir nesne üzerinde aynı yerde, Kullanıcıların iki kez dokunma emülasyonu kullanmasına olanak tanır ekrandaki bir nesnede görünür.
  • [C-1-5] İşaretçiyi ekranda rastgele bir noktada aşağı doğru DESTEKLEMELİDİR. ekranda rastgele bir noktaya hareket etme ve ardından bir işaretçi ekleme Bu, kullanıcıların dokunarak sürüklemeyi taklit etmesine olanak tanır.
  • [C-1-6] İşaretçi aşağı desteklenmeli ve ardından kullanıcıların sayfayı hızlıca hareket ettirmesine izin verilmelidir. ekranda farklı bir konuma götürdükten sonra, fareyi ekranda imleçle Bu düğme, kullanıcıların ekrandaki bir nesneyi hızla fırlatmasına olanak tanır.

Cihaz uygulamaları, android.hardware.faketouch.multitouch.distinct, onlar:

  • [C-2-1], android.hardware.faketouch için destek beyanı ZORUNLUDUR.
  • [C-2-2] iki veya daha fazla bağımsız işaretçinin ayrı ayrı izlenmesini DESTEKLEMELİDİR giriş değerleridir.

Cihaz uygulamaları, android.hardware.faketouch.multitouch.jazzhand, onlar:

  • [C-3-1], android.hardware.faketouch için destek beyanı ZORUNLUDUR.
  • [C-3-2] 5'in ayrı şekilde takip edilmesini desteklemektedir (parmakların bir eliyle takip edilmesi) veya daha fazla işaretçi girişini bağımsız olarak kullanabilirsiniz.

7.2.6. Oyun Kumandası Desteği

7.2.6.1. Düğme Eşlemeleri

Cihaz uygulamaları:

  • [C-1-1] HID etkinliklerini, aşağıdaki tablolarda listelendiği gibi karşılık gelen InputEvent sabitleriyle eşleştirebilmelidir. Yukarı akış Android uygulaması bu koşulu karşılar.

Cihaz uygulamalarında, aşağıdaki tablolarda listelenen tüm etkinliklerin girilmesi için araçlar sağlayan bir denetleyici yerleşik olarak veya ayrı bir denetleyici ile birlikte gönderilirse bunlar:

  • [C-2-1], android.hardware.gamepad özellik bayrağını beyan etmelidir.
Düğme HID Kullanımı2 Android Düğmesi
1. 0x09 0x0001 KEYCODE_Button_A (96)
B1 0x09 0x0002 KEYCODE_Button_B (97)
X1 0x09 0x0004 KEYCODE_Button_X (99)
E1 0x09 0x0005 KEYCODE_Button_Y (100)
D-pad yukarı1
D-pad aşağı1
0x01 0x00393 AXIS_HAT_Y4
D-pad sol1
D-pad sağ1
0x01 0x00393 AXIS_HAT_X4
Sol omuz düğmesi1 0x09 0x0007 KEYCODE_Button_L1 (102)
Sağ omuz düğmesi1 0x09 0x0008 KEYCODE_Button_R1 (103)
Sol çubuk tıklama1 0x09 0x000D KEYCODE_Button_THUMBL (106)
Sağ çubuk tıklama1 0x09 0x000F KEYCODE_Button_THUMBR (107)
Geri1 0x0c 0x0224 KEYCODE_BACK (4)

1 KeyEvent

2 Yukarıdaki HID kullanımları bir Oyun'da beyan edilmelidir. pad CA (0x01 0x0005).

3 Bu kullanım Mantıksal Minimum 0, Mantıksal Maksimum 7, Fiziksel Minimum 0, Fiziksel Maksimum 315, Birim ve 4’lük Rapor Boyutudur. Mantıksal değer dikey eksenden saat yönünde döndürme; örneğin, 0, döndürme olmadığını ve yukarı düğmesine basıldığını, mantıksal bir değeri temsil eder. 1 değeri 45 derecelik bir dönüşü temsil eder ve hem yukarı hem de sol tuşlar basıldı.

4 MotionEvent

Analog Kontroller1 HID Kullanımı Android Düğmesi
Sol Tetikleyici 0x02 0x00C5 AXIS_LTRIGGER
Sağ tetikleyici 0x02 0x00C4 AXIS_RTRIGGER
Sol kontrol çubuğu 0x01 0x0030
0x01 0x0031
EKS_X
Eksen_Y
Sağ kontrol çubuğu 0x01 0x0032
0x01 0x0035
EKST_Z
Eksen_RZ

1 MotionEvent

7.2.7. Uzaktan Kumanda

Cihaza özel gereksinimler için bkz. Bölüm 2.3.1.

7.3. Sensörler

Cihaz uygulamaları, RACI matrisine sahip belirli bir sensör üçüncü taraf geliştiriciler için ilgili API, cihaz uygulaması Android SDK dokümanlarında açıklandığı şekilde bu API'nin uygulanması ZORUNLUDUR sensörler hakkındaki Android Açık Kaynak dokümanlarına bakın.

Cihaz uygulamaları:

  • [C-0-1] android.content.pm.PackageManager sınıfını kullanır.
  • [C-0-2] Desteklenen sensörlerin doğru bir listesini SensorManager.getSensorList() ve benzer yöntemler.
  • [C-0-3] Diğer tüm sensör API'leri için makul davranışlar sergilemelidir (örneğin, Uygulamalar kaydolmaya çalıştığında uygun şekilde true veya false döndürülüyor dinleyiciler, karşılık gelen sensörler kapalıyken sensör dinleyicileri çağırmaz mevcut; vb.) bakın.

Cihaz uygulamaları, RACI matrisine sahip belirli bir sensör ilgili API'ye izin veriyorsa:

  • [C-1-1] tüm sensör ölçümlerini Bildirmelidir her birim için alakalı Uluslararası Birim Sistemi (metrik) değerleri kullanılarak Android SDK dokümanlarında tanımlandığı şekilde sensör türü.
  • [C-1-2] Sensör verilerini maksimum 100 gecikmeyle Bildirin. milisaniye + 2 * sample_time uygulama işlemcisi etkin olduğunda istenen maksimum gecikme süresi 0 ms. Bu gecikme, filtreleme gecikmelerini içermez.
  • [C-1-3] ilk sensör örneğini 400 milisaniye + 2 * içinde bildirmeli etkinleştirilmekte olan sensörün sample_time zamanı. Bu örneğin içeriğindeki doğruluk oranı 0'dır.
  • [C-1-4] Android SDK dokümanlarında belirtilen API'lerin sürekli sensör, cihaz uygulamalarının sürekli olarak değişimin %3'ün altında olması GEREKEN periyodik veri örneklerinde Bu örnekte ses dalgalanması, değer farkının standart sapması olarak tanımlanır. art arda etkinlikler arasında zaman damgası değerlerini raporladı.
  • [C-1-5] Sensör etkinlik akışının, Cihazın CPU'sunun askıya alma durumuna girmesini veya uyanmasını KABUL ETMEMELİDİR askıya alma durumundan.
  • [C-1-6] etkinlik zamanını bildirmesi ZORUNLUDUR Android SDK dokümanlarında tanımlandığı gibi nanosaniye cinsinden ve SystemClock.elapsedRealtimeNano() saati.
  • [C-SR-1] Zaman damgası senkronizasyon hatasının olması ÖNEMLE ÖNERİLİR 100 milisaniye altında ve zaman damgası senkronizasyon hatası 1'in altında OLMALIDIR milisaniye cinsinden ayarlanır.
  • Birden fazla sensör etkinleştiğinde, güç tüketimi AŞIRI OLMAMALIDIR. her bir sensörün bildirilen güç tüketiminin toplamı.

Yukarıdaki liste tam kapsamlı değildir; Android SDK'nın belirtilen davranışı ve Android Açık Kaynak Dokümanları'nda sensörlerin güvenilir.

Cihaz uygulamaları, RACI matrisine sahip belirli bir sensör ilgili API'ye izin veriyorsa:

  • [C-1-6] Tüm sensörler için sıfır dışında bir çözünürlük ayarlamalı ve değeri rapor etmelidir. Sensor.getResolution() üzerinden API yöntemi.

Bazı sensör türleri kompozittir, yani sağlanan verilerden türetilebilir. bir veya daha fazla sensör tarafından. (Örnek olarak yön sensörü ve doğrusal ivme sensörü olmalıdır.)

Cihaz uygulamaları:

  • Bu sensör türlerini, açıklandığı gibi ön koşul fiziksel sensörleri içermelidir sensör türlerine bakın.

Cihaz uygulamaları bir kompozit sensör içeriyorsa:

  • [C-2-1] sensörün Android Açık Kaynağında açıklandığı şekilde uygulanması ZORUNLUDUR kompozit sensörler ile ilgili belgelere göz atın.

Cihaz uygulamaları, RACI matrisine sahip belirli bir sensör üçüncü taraf geliştiriciler için karşılık gelen API, sensör ise yalnızca tek bir API bildirir değer, ardından cihaz uygulamaları:

  • [C-3-1] Sensör için çözünürlüğü 1 olarak ayarlamalı ve değeri bildirmeli Sensor.getResolution() üzerinden API yöntemi.

Cihaz uygulamaları, Sensör Ek Bilgileri#TYPE_VEC3_CALIBRATION Üçüncü taraf geliştiricilere maruz kalan sensör:

  • [C-4-1] Fabrika tarafından belirlenmiş sabit, herhangi bir kalibrasyon İÇERMEMELİDİR parametrelerini dahil eder.

Cihaz uygulamaları 3 eksenli ivme ölçer kombinasyonu içeriyorsa 3 eksenli jiroskop sensörü veya manyetometre sensörü bunlardır:

  • [C-SR-2] İvme ölçerin, jiroskopun ve manyetometre sabit bir göreceli konuma sahiptir. Örneğin, cihaz dönüştürülebilir (ör.katlanabilir) olduğunda, sensör eksenleri aynı hizada ve tutarlı kalır. tüm cihazlarda sensör koordinat sistemiyle dönüşüm durumlarını kontrol edin.

7.3.1. İvme ölçer

Cihaz uygulamaları:

  • [C-SR-1] 3 eksenli ivme ölçer içermesi ÖNEMLE ÖNERİLİR.

Cihaz uygulamaları bir ivme ölçer içeriyorsa:

  • [C-1-1] En az 50 Hz frekansına kadar olan etkinlikleri raporlayabilmesi ZORUNLUDUR.
  • [C-1-3] Android sensör koordinat sistemi bakın.
  • [C-1-4] Dört kata kadar serbest düşüş ölçümü yapabilmesi ZORUNLUDUR herhangi bir eksende yerçekimi(4 g) veya daha fazla olabilir.
  • [C-1-5] çözünürlüğü en az 12 bit olmalıdır.
  • [C-1-6] 0,05 m/sn^den büyük olmayan bir standart sapmaya sahip OLMALIDIR.Burada, standart sapma, örneklerde eksen başına hesaplanmalıdır en yüksek örnekleme hızıyla en az 3 saniyelik bir süre boyunca toplanır.
  • Maksimum 200 Hz'e kadar olan etkinlikler Bildirilmelidir.
  • Çözünürlüğü en az 16 bit olmalıdır.
  • Kullanım sırasındaki özelliklerin değişmesi halinde kalibre edilmelidir. yaşam döngüsünü ve ödeme yapılmasını sağlar ve ödeme parametrelerini korur arasında geçiş yapmaktır.
  • Sıcaklık dengelemenin yapılması GEREKİR.

Cihaz uygulamaları 3 eksenli ivme ölçer içeriyorsa:

  • [C-2-1] TYPE_ACCELEROMETER sensörünü uygulamalı ve bildirmelidir.
  • [C-SR-4] TYPE_SIGNIFICANT_MOTION özelliğinin uygulanması ÖNEMLE ÖNERİLİR olabilir.
  • [C-SR-5] Uygulanması ve bildirilmesi Şiddetle ÖNERİLİR TYPE_ACCELEROMETER_UNCALIBRATED sensör. Android cihazlar GÜÇLÜ {0/} sürümüne geçebilmeleri için bu koşulu yerine getirmeleri ÖNERİLİR gelecekteki platformların sürümlerinden birinde kullanıma sunulmalıdır.
  • TYPE_SIGNIFICANT_MOTION, TYPE_TILT_DETECTOR, TYPE_STEP_DETECTOR TYPE_STEP_COUNTER gibi kompozit sensörleri kullanabilirsiniz.

Cihaz uygulamaları, 3 eksenden daha kısa bir ivme ölçer içeriyorsa:

  • [C-3-1] TYPE_ACCELEROMETER_LIMITED_AXES sensörünü uygulamalı ve bildirmeli.
  • [C-SR-6] Uygulanması ve bildirilmesi için STRONGLY_RECOMMENDED TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED sensör.

Cihaz uygulamaları 3 eksenli bir ivme ölçer ve TYPE_SIGNIFICANT_MOTION, TYPE_TILT_DETECTOR, TYPE_STEP_DETECTOR, TYPE_STEP_COUNTER birleşik sensör uygulandı:

  • [C-4-1] Toplama güç tüketimi her zaman 4 mW'dan az OLMALIDIR.
  • Cihaz dinamik bir ya da başka bir dalda olduğunda her biri 2 mW ve 0,5 mW'nun altında OLMALIDIR. statik koşul olarak tanımlıyor.

Cihaz uygulamaları 3 eksenli ivme ölçer ve 3 eksenli jiroskop sensörü içeriyorsa onlar:

  • [C-5-1], TYPE_GRAVITY ve TYPE_LINEAR_ACCELERATION özelliklerini uygulamalıdır. olabilir.
  • [C-SR-7] TYPE_GAME_ROTATION_VECTOR kompozit sensör.

Cihaz uygulamaları 3 eksenli ivme ölçer, 3 eksenli jiroskop sensörü ve bir manyetometre sensörü varsa:

  • [C-6-1] bir TYPE_ROTATION_VECTOR kompozit sensör uygulaması ZORUNLUDUR.

7.3.2. Manyetometre

Cihaz uygulamaları:

  • [C-SR-1] 3 eksenli bir manyetometre (pusula) içermesi ÖNEMLE ÖNERİLİR.

Cihaz uygulamaları 3 eksenli bir manyetometre içeriyorsa, bunlar:

  • [C-1-1] TYPE_MAGNETIC_FIELD sensörünü uygulaması ZORUNLUDUR.
  • [C-1-2] En az 10 Hz frekansına kadar olan etkinlikleri raporlayabilmesi ZORUNLUDUR ve en az 50 Hz'e kadar olan etkinlikleri Bildirmelisiniz.
  • [C-1-3] Android sensör koordinat sistemine UYMALIDIR Android API'leri.
  • [C-1-4] Her bir cihazda -900 μT ile +900 μT arasında ölçüm yapabilmesi ZORUNLUDUR eksenini çizin.
  • [C-1-5] 700 μT'den düşük bir sert demir ofset değerine sahip OLMALIDIR ve manyetometreyi 200 μT'nin altında bir değere dinamik (akım kaynaklı) ve statik (mıknatıstan kaynaklanan) manyetik alanlar.
  • [C-1-6] 0,6 μT'ye eşit veya daha yoğun bir çözünürlüğe sahip olmalıdır.
  • [C-1-7] online kalibrasyonu ve sert demirin dengesini DESTEKLEMELİDİR önyargısını sağlamak ve cihazı yeniden başlatma işlemleri arasında dengeleme parametrelerini korumaktır.
  • [C-1-8] Yumuşak demir katkısının uygulanması ZORUNLUDUR. Kalibrasyon kullanılırken veya cihazın üretimi sırasında yapılmalıdır.
  • [C-1-9] için eksen bazında hesaplanan bir standart sapma OLMALIDIR. en hızlı örnekleme işlemiyle en az 3 saniyelik bir süre boyunca toplanan örnekler en fazla 1, 5 μT olmalıdır; en fazla standart sapmaya sahip olmalıdır: 0,5 μT.
  • [C-1-10] TYPE_MAGNETIC_FIELD_UNCALIBRATED görebilirsiniz.

Cihaz uygulamaları 3 eksenli bir manyetometre, ivme ölçer ve ve 3 eksenli jiroskop sensörü ile çalışıyorlar:

  • [C-2-1] bir TYPE_ROTATION_VECTOR kompozit sensör uygulaması ZORUNLUDUR.

Cihaz uygulamaları 3 eksenli bir manyetometre ve ivme ölçer içeriyorsa:

  • TYPE_GEOMAGNETIC_ROTATION_VECTOR sensörü uygulanabilir.

Cihaz uygulamaları; 3 eksenli manyetometre, ivme ölçer ve TYPE_GEOMAGNETIC_ROTATION_VECTOR sensörleri:

  • [C-3-1] 10 mW'dan az tüketmelidir.
  • Sensör toplu işlem moduna kaydedildiğinde 3 mW'dan az tüketmelidir 10 Hz'de

7.3.3. GPS

Cihaz uygulamaları:

  • [C-SR-1] GPS/GNSS alıcısı içermesi ÖNEMLE ÖNERİLİR.

Cihaz uygulamaları GPS/GNSS alıcısı içeriyorsa ve yeteneğin bildirilmesini sağlıyorsa uygulamalar için android.hardware.location.gps özellik bayrağı kullanırlar:

  • [C-1-1] aşağıdaki işlemlerde konum çıkışlarını en az 1 Hz hızında DESTEKLEMELİDİR LocationManager#requestLocationUpdate üzerinden istendi.
  • [C-1-2] açık hava koşullarında konumu belirleyebilmelidir (güçlü sinyaller, ihmal edilebilir çok yol, HDOP < 2) 10 saniye içinde (hızlı) ilk düzeltme süresi) 0,5 Mb/sn veya daha yüksek bir veri hızına bağlıyken internet bağlantısı. Bu koşul, genellikle, Desteklenen veya Tahmin Edilen GPS/GNSS tekniğinin biçimi GPS/GNSS kilitlenme süresini en aza indirmek için (Yardımcı veriler, Referans Süresi, Referans Konum ve Uydu Efeerileri/Saat).
    • [C-1-6] Böyle bir konum hesaplaması yaptıktan sonra, uygulamalar, açık hava koşullarında, açık havada, Konum istekleri yeniden başlatıldığında 5 saniye (en fazla bir saat sonra) ilk konum hesaplamasına dahil edilir; bu, sonraki istek veri bağlantısı olmadan ve/veya kapatma işleminden sonra yapılıyor.
  • Konum belirlendikten sonra açık havada, sabit veya saniyede 1 metreden kısa bir ivmenin karesiyle hareket etmek:

    • [C-1-3] 20 metre içinde konumu ve hızı belirleyebilmesi ZORUNLUDUR saniyede 0, 5 metre (en az% 95 oranında)
    • [C-1-4] Şu yolla aynı anda izleme ve raporlama GEREKLİDİR: GnssStatus.Callback bir takımyıldıza ait en az 8 uyduya sahip olması gerekiyor.
    • Dünyanın dört bir yanından gelen en az 24 uyduyu aynı anda birden fazla takımyıldız (ör. GPS + Glonass, Beidou, Galileo).
  • [C-SR-2] Normal GPS/GNSS sağlamaya devam etmek için ÖNEMLE ÖNERİLİR acil durum telefonu sırasında GNSS Konum Sağlayıcı API'leri üzerinden konum çıkışları çağrısına bir tıklama URL'si eklemeniz gerekir.

  • [C-SR-3] Tüm GNSS ölçümlerinin raporlanması ÖNEMLE ÖNERİLİR istisnai olarak, izlenen takım yıldızlar (GnssStatus mesajlarında bildirildiği gibi) SBAS.

  • [C-SR-4] AGC'yi ve GNSS sıklığını bildirmesi ÖNEMLE ÖNERİLİR bahsedeceğim.

  • [C-SR-5] Tüm doğruluk tahminlerini bildirmek için ÖNEMLE ÖNERİLİR (Rulman, Hız ve Dikey dahil) her GPS/GNSS konumunun bir parçası olarak.

  • [C-SR-6] GNSS ölçümlerini GPS/GNSS üzerinden hesaplanan bir konum henüz oluşturulmamış olsa bile bu URL'ler bulunur bildiriliyor.

  • [C-SR-7] GNSS gerçek olmayan aralıklarını bildirmek için ÖNEMLE ÖNERİLİR açık hava koşullarında konumun belirlenmesinden sonra, hareketsizken veya saniyede 0,2 metreden daha az kareyle hareket ederken 20 metre içindeki konumu ve hızı hesaplamak için yeterlidir. 0, 2 metre (saniyede en az% 95'inde)

7.3.4. Jiroskop

Cihaz uygulamaları:

  • [C-SR-1] Jiroskop sensörü içermesi ÖNEMLE ÖNERİLİR.

Cihaz uygulamaları bir jiroskop içeriyorsa:

  • [C-1-1] En az 50 Hz frekansına kadar olan etkinlikleri raporlayabilmesi ZORUNLUDUR.
  • [C-1-4] 12 bit veya daha yüksek bir çözünürlüğe sahip olması ZORUNLUDUR.
  • [C-1-5] için sıcaklık dengelemesi ZORUNLUDUR.
  • [C-1-6] kullanım sırasında kalibre edilmeli ve dengelenmelidir. Ayrıca, geri ödeme parametreleri kullanılır.
  • [C-1-7] Hz başına 1e-7 rad^2 / s^2'den büyük olmayan bir varyans OLMALIDIR (Hz başına varyans veya rad^2 / s). Varyansın örnekleme hızıdır, ancak bu değerle KISITLANMALIDIR. Başka bir deyişle, jiroskopun varyansını 1 Hz örnekleme hızında ölçün. Daha yüksek olmaması GEREKİR. daha fazla değere sahiptir.
  • [C-SR-2] Kalibrasyon hatasının 0,01 rad/sn'den küçük olması ÖNEMLE ÖNERİLİR Cihaz oda sıcaklığında sabit duruyorsa.
  • [C-SR-3] 16 bit veya daha yüksek çözünürlüğe sahip olmaları ÖNEMLE ÖNERİLİR.
  • Maksimum 200 Hz'e kadar olan etkinlikler Bildirilmelidir.

Cihaz uygulamaları 3 eksenli bir jiroskop içeriyorsa:

  • [C-2-1] TYPE_GYROSCOPE sensörünü uygulaması ZORUNLUDUR.
  • [C-SR-4] TYPE_GYROSCOPE_UNCALIBRATED'in uygulanması Kesinlikle Önerilir görebilirsiniz.

Cihaz uygulamaları 3'ten az ekseni olan bir jiroskop içeriyorsa:

  • [C-3-1] TYPE_GYROSCOPE_LIMITED_AXES sensörünü uygulamalı ve bildirmeli.
  • [C-SR-5] Uygulanması ve bildirilmesi için STRONGLY_RECOMMENDED TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED sensör.

Cihaz uygulamaları 3 eksenli bir jiroskop, ivme ölçer sensörü ve bir manyetometre sensörü varsa:

  • [C-4-1] bir TYPE_ROTATION_VECTOR kompozit sensör uygulaması ZORUNLUDUR.

Cihaz uygulamaları 3 eksenli ivme ölçer ve 3 eksenli jiroskop içeriyorsa onlar:

  • [C-5-1], TYPE_GRAVITY ve TYPE_LINEAR_ACCELERATION özelliklerini uygulamalıdır. olabilir.
  • [C-SR-6] TYPE_GAME_ROTATION_VECTOR olabilir.

7.3.5. Barometre

Cihaz uygulamaları:

  • [C-SR-1] Barometre (ortam hava basıncı) içermesi ÖNEMLE ÖNERİLİR sensör).

Cihaz uygulamaları barometre içeriyorsa:

  • [C-1-1] TYPE_PRESSURE sensörünü uygulamalı ve bildirmelidir.
  • [C-1-2] 5 Hz veya daha yüksek hızlarda etkinlik sunmak ZORUNLUDUR.
  • [C-1-3] için sıcaklık dengelemesi ZORUNLUDUR.
  • [C-SR-2] Basınç ölçümlerini rapor edebilmeniz için ÖNEMLE ÖNERİLİR: 300 hPa - 1100 hPa aralığındadır.
  • Mutlak doğruluk oranının 1hPa olması gerekir.
  • 20 hPa aralığında 0,12 hPa göreli doğruluğa sahip olması GEREKİR (deniz seviyesinde yaklaşık 200 metrelik değişimde ~1 metre doğruluk oranına denk).

7.3.6. Termometre

Cihaz uygulamaları bir ortam termometresi (sıcaklık sensörü) içeriyorsa onlar:

  • [C-1-1] SENSOR_TYPE_AMBIENT_TEMPERATURE TANITIMI ZORUNLUDUR ortam sıcaklığı sensörü için, sensörün ortam sıcaklığını ölçmesi GEREKİR (oda/araç kabini) cihazın doğrudan topladığı andan itibaren Celsius olarak ayarlanır.

Cihaz uygulamalarında, sıcaklığı ölçen bir termometre sensörü varsa CPU sıcaklığı gibi ortam sıcaklığından farklı bir sıcaklık değeri için şu değerleri ifade eder:

Cihaz uygulamalarında deri sıcaklığını izlemeye yönelik bir sensör varsa şunu yaparlar:

7.3.7. Fotometre

  • Cihaz uygulamaları bir fotometre (ortam ışığı sensörü) İÇEREBİLİR.

7.3.8. Yakınlık Sensörü

  • Cihaz uygulamaları yakınlık sensörü İÇEREBİLİR.

Cihaz uygulamaları bir yakınlık sensörü içeriyorsa ve yalnızca bir "yakın" ve "uzak" şeklinde ikilik

  • [C-1-1] tıklayın. Diğer bir deyişle, yakınlık sensörünün nesneleri algılayacak şekilde Yönde olması ZORUNLUDUR ekrana yakın olduğundan bu sensör türünün birincil amacı kullanıcı tarafından kullanılan bir telefonu algılayabilir. Cihaz uygulamaları başka yönlerde yakınlık sensörü varsa, bu sensör erişilebilir OLMAMALIDIR. kullanabilirsiniz.
  • [C-1-2] 1 bit veya daha yüksek doğrulukta olması ZORUNLUDUR.
  • [C-1-3] Yakın okuma boyutu olarak 0 santimetre, fark ettim.
  • [C-1-4] Maksimum aralık ve çözünürlük 5 olarak bildirilmelidir.

7.3.9. Yüksek Kaliteli Sensörler

Cihaz uygulamaları, tanımlandığı gibi daha yüksek kaliteli bir sensör grubu içeriyorsa üçüncü taraf uygulamalarında kullanılabilir hale getirmek için:

  • [C-1-1] kabiliyeti android.hardware.sensor.hifi_sensors özellik bayrağı.

Cihaz uygulamalarında android.hardware.sensor.hifi_sensors bildiriliyorsa, onlar:

  • [C-2-1] aşağıdaki şartları karşılayan bir TYPE_ACCELEROMETER sensörüne sahip olmalıdır:

    • En az -8 g ile +8 g arasında bir ölçüm aralığının olması ZORUNLUDUR En az -16 g arasında bir ölçüm aralığının olması ÖNEMLE ÖNERİLİR ve +16g.
    • Ölçüm çözünürlüğü en az 2048 LSB/g olmalıdır.
    • Minimum ölçüm frekansı 12,5 Hz veya daha düşük olmalıdır.
    • Maksimum ölçüm frekansının 400 Hz veya daha yüksek olması ZORUNLUDUR; YAPILMASI GEREKENLER SensorDirectChannel'ı destekler RATE_VERY_FAST.
    • Ölçüm gürültüsünün 400 μg/abilen Hz'in üzerinde olması ZORUNLUDUR.
    • Arabelleğe alma yoluyla bu sensörün uyandırılmayan bir halini uygulamalıdır en az 3.000 sensör olayı kapasitesine sahip olmalıdır.
    • Toplu işlem güç tüketiminin 3 mW'dan düşük olmaması ZORUNLUDUR.
    • [C-SR-1] 3 dB ölçüm bant genişliğinin bu aralıktaki Nyquist frekansının ve beyaz gürültü spektrumunun en az% 80'i bant genişliği.
    • 30 μg'den daha az rastgele ivmelanmayla rastgele yürüyüşe sahip olunması GEREKEN: oda sıcaklığında olmalıdır.
    • Sıcaklığa kıyasla ≤ +/- 1 mg/°C şeklinde bir sapma değişiminin olması GEREKİR.
    • En uygun çizginin doğrusal olmayan değeri ≤ %0,5 ve hassasiyet değişimi ≤ %0,5 olmalıdır %0,03/C°.
    • Eksenler arası hassasiyeti < %2,5 ve eksenler arası hassasiyet < Cihazın çalışma sıcaklığı aralığında% 0,2.
  • [C-2-2] AynıTYPE_ACCELEROMETER_UNCALIBRATED kalite koşullarını TYPE_ACCELEROMETER olarak tanımlar.

  • [C-2-3] aşağıdaki koşulları karşılayan bir TYPE_GYROSCOPE sensörüne sahip olmalıdır:

    • En az -1000 ila +1000 dps arasında bir ölçüm aralığının olması ZORUNLUDUR.
    • En az 16 LSB/d/sn ölçüm çözünürlüğüne sahip olması ZORUNLUDUR.
    • Minimum ölçüm frekansı 12,5 Hz veya daha düşük olmalıdır.
    • Maksimum ölçüm frekansının 400 Hz veya daha yüksek olması ZORUNLUDUR; YAPILMASI GEREKENLER SensorDirectChannel'ı destekler RATE_VERY_FAST.
    • 0,014°/s/çalışmasının ölçüm paraziti olması ZORUNLUDUR.
    • [C-SR-2] 3 dB ölçüm bant genişliğinin bu aralıktaki Nyquist frekansının ve beyaz gürültü spektrumunun en az% 80'i bant genişliği.
    • Odada test edilen rastgele yürüyüş hızının 0,001 °/sn'den az Vazgeçilmez olması gerekir değer.
    • Sıcaklığa kıyasla ≤ +/- 0,05 °/ s / °C şeklinde bir sapma değişimi olması GEREKİR.
    • Sıcaklığa kıyasla hassasiyetinde değişimin ≤ %0,02 / °C olması gerekir.
    • ≤ %0,2 doğrusal olmayan, en uygun çizgiye sahip olmalıdır.
    • Gürültü yoğunluğu 0,007 °/s/çekince ≤ olmalıdır.
    • 0,002 rad/sn'den az kalibrasyon hatası OLMALIDIR cihaz sabitken 10-40 °C sıcaklık aralığı kullanın.
    • g hassasiyeti 0,1°/s/g'den az olmalıdır.
    • Eksenler arası hassasiyeti < %4,0 ve eksenler arası hassasiyet varyasyon < Cihazın çalışma sıcaklığı aralığında% 0,3.
  • [C-2-4] aynı kalitede bir TYPE_GYROSCOPE_UNCALIBRATED OLMALIDIR gereksinimleri TYPE_GYROSCOPE olarak belirleyin.

  • [C-2-5] aşağıdaki koşulları karşılayan bir TYPE_GEOMAGNETIC_FIELD sensörüne sahip olmalıdır:

    • En az -900 ile +900 μT arasında bir ölçüm aralığının olması ZORUNLUDUR.
    • En az 5 LSB/uT ölçüm çözünürlüğüne sahip olması ZORUNLUDUR.
    • Minimum ölçüm frekansının 5 Hz veya daha düşük olması ZORUNLUDUR.
    • Maksimum ölçüm frekansının 50 Hz veya daha yüksek olması ZORUNLUDUR.
    • 0,5 uT'nin üzerinde olmayan bir ölçüm gürültüsü olması ZORUNLUDUR.
  • [C-2-6] aynı kalitede bir TYPE_MAGNETIC_FIELD_UNCALIBRATED OLMALIDIR TYPE_GEOMAGNETIC_FIELD ve bunlara ek olarak şartlar:

    • Arabelleğe alma yoluyla bu sensörün uyandırılmayan bir halini uygulamalıdır en az 600 sensör olayı kapasitesine sahip olmalıdır.
    • [C-SR-3] 1 Hz ile beyaz gürültü spektrumunun arasında olması ÖNEMLE ÖNERİLİR rapor hızı 50 Hz veya daha yüksek olduğunda en az 10 Hz.
  • [C-2-7] aşağıdaki koşulları karşılayan bir TYPE_PRESSURE sensörüne sahip olmalıdır:

    • En az 300 ila 1100 hPa arasında bir ölçüm aralığının olması ZORUNLUDUR.
    • En az 80 LSB/hPa ölçüm çözünürlüğüne sahip olmalıdır.
    • Minimum ölçüm frekansı 1 Hz veya daha düşük olmalıdır.
    • Maksimum ölçüm frekansının 10 Hz veya daha yüksek olması ZORUNLUDUR.
    • Ölçüm gürültüsünün 2 Pa/✓ Hz'den yüksek olması ZORUNLUDUR.
    • Arabelleğe alma yoluyla bu sensörün uyandırılmayan bir halini uygulamalıdır en az 300 sensör olayı kapasitesine sahip olmalıdır.
    • Toplu işlem güç tüketiminin 2 mW'dan düşük olmaması ZORUNLUDUR.
  • [C-2-8] sensörü TYPE_GAME_ROTATION_VECTOR OLMALIDIR.

  • [C-2-9] aşağıdaki koşulları karşılayan bir TYPE_SIGNIFICANT_MOTION sensörüne sahip olmalıdır:

    • Cihaz şu anda 0,5 mW'dan daha düşük bir güç tüketimine sahip OLMAMALIDIR. statik ve 1,5 mW gücünde çalışır.
  • [C-2-10] aşağıdaki koşulları karşılayan bir TYPE_STEP_DETECTOR sensörüne sahip olmalıdır:

    • Arabelleğe alma yoluyla bu sensörün uyandırılmayan bir halini uygulamalıdır en az 100 sensör olayı kapasitesine sahip olmalıdır.
    • Cihaz şu anda 0,5 mW'dan daha düşük bir güç tüketimine sahip OLMAMALIDIR. statik ve 1,5 mW gücünde çalışır.
    • Toplu işlem güç tüketiminin 4 mW'dan düşük olmaması ZORUNLUDUR.
  • [C-2-11] aşağıdaki koşulları karşılayan bir TYPE_STEP_COUNTER sensörüne sahip olmalıdır:

    • Cihaz şu anda 0,5 mW'dan daha düşük bir güç tüketimine sahip OLMAMALIDIR. statik ve 1,5 mW gücünde çalışır.
  • [C-2-12] aşağıdaki koşulları karşılayan bir TILT_DETECTOR sensörüne sahip olmalıdır:

    • Cihaz şu anda 0,5 mW'dan daha düşük bir güç tüketimine sahip OLMAMALIDIR. statik ve 1,5 mW gücünde çalışır.
  • [C-2-13] İvme ölçer, Jiroskop ve Manyetometrenin 2, 5 milisaniye içinde olması ZORUNLUDUR bir iletişim kurmaktır. Aynı fiziksel etkinliğin etkinlik zaman damgası İvme ölçer ve Jiroskop'un her birinden en fazla 0,25 milisaniye uzakta OLMALIDIR. diğer.

  • [C-2-14] Jiroskop sensörü etkinlik zaman damgalarının aynı zamanda olması ZORUNLUDUR kamera alt sistemi olarak kullanılacak ve hatadan 1 milisaniye sonra bunlara eklenecek.

  • [C-2-15], örneklerin uygulamalara şu tarihten itibaren 5 milisaniye içinde verilerin yukarıdaki fiziksel sensörlerin herhangi birinde bulunduğu zaman atfediliyor.

  • [C-2-16] 0,5 mW'dan daha yüksek bir güç tüketimine sahip OLMAMALIDIR. cihaz hareketsizken ve hareket ederken 2,0 mW aşağıdaki sensörlerin herhangi bir kombinasyonu etkinleştirildiğinde:

    • SENSOR_TYPE_SIGNIFICANT_MOTION
    • SENSOR_TYPE_STEP_DETECTOR
    • SENSOR_TYPE_STEP_COUNTER
    • SENSOR_TILT_DETECTORS
  • [C-2-17] TYPE_PROXIMITY sensörü OLABİLİR, ancak varsa sensörün olması ZORUNLUDUR en az 100 sensör etkinliğinden oluşan arabellek kapasitesine sahip olmalıdır.

Bu bölümdeki güç tüketimi gereksinimlerinin hiçbirinin güç tüketimini gösterir. Güç birliği tüm sensör zincirinin çizdiği (sensör, destek devreleri, özel sensör işleme sistemi vb.

Cihaz uygulamaları doğrudan sensör desteği içeriyorsa:

  • [C-3-1] Doğrudan kanal türleri desteğinin ve doğrudan isDirectChannelTypeSupported üzerinden oran düzeyinde rapor ve getHighestDirectReportRateLevel API'ye gidin.
  • [C-3-2] İki sensör doğrudan kanal türünden en az birini DESTEKLEMELİDİR doğrudan sensör kanalını desteklediğini belirten tüm sensörler için
  • Birincil için sensör doğrudan kanalı üzerinden etkinlik raporlamasının desteklenmesi GEREKİR Aşağıdaki türlerde sensör (uyandırma dışı varyant):
    • TYPE_ACCELEROMETER
    • TYPE_ACCELEROMETER_UNCALIBRATED
    • TYPE_GYROSCOPE
    • TYPE_GYROSCOPE_UNCALIBRATED
    • TYPE_MAGNETIC_FIELD
    • TYPE_MAGNETIC_FIELD_UNCALIBRATED

7.3.10. Biyometrik Sensörler

Biyometrik Kilit Açma Güvenliğini Ölçme hakkında ek bilgi için lütfen bkz. Biyometrik Güvenliği Ölçme belgeleri.

Cihaz uygulamaları güvenli bir kilit ekranı içeriyorsa:

  • Biyometrik sensör İÇERMELİDİR

Biyometrik sensörler Sınıf 3 (eski adıyla Güçlü) olarak sınıflandırılabilir. Sınıf 2 (eski adıyla Zayıf) veya Sınıf 1 (eski adıyla Kolay) kabul oranlarına, sahtekârlık ve güvenlik kurallarına biyometrik ardışık düzen. Bu sınıflandırma, reklamverenin Biyometrik sensörün platformla ve üçüncü tarafla arayüzleşmesi gerekir izin verir. Aşağıdaki durumlarda sensörlerin ek gereksinimleri karşılaması gerekir: Sınıf 1, Sınıf 2 veya Sınıf 3 olarak sınıflandırılmalarını istemeleri gerekir. Hem Sınıf 2 hem de Sınıf 3 biyometri verileri aşağıdaki gibi ek özelliklerden yararlanabilir: aşağıda ayrıntılı olarak açıklanmıştır.

Cihaz uygulamaları, bir biyometrik sensörü üçüncü tarafların kullanımına sunuyorsa android.hardware.biometrics.BiometricManager aracılığıyla uygulamalarda android.hardware.biometrics.BiometricPrompt, ve android.provider.Settings.ACTION_BIOMETRIC_ENROLL onlar:

  • [C-4-1] Sınıf 3 veya Sınıf 2 biyometri koşullarını karşılamalıdır. bu belgede tanımlandığı şekildedir.
  • [C-4-2] Sabit değer olarak tanımlanan her parametre adını tanımalı ve dikkate almalıdır Authenticators'da ve kombinasyonlarını kapsar. Öte yandan, canAuthenticate(int) ve setAllowedAuthenticators(int) herkese açık sabit değer olarak belgelenenlerin dışındaki yöntemleri Kimlik doğrulayıcılar ve bunların kombinasyonlarını sağlar.
  • [C-4-3] ACTION_BIOMETRIC_ENROLL işlevinin uygulanması ZORUNLUDUR Sınıf 3 veya Sınıf 2 biyometriye sahip cihazlarda yapılan işlemdir. Bu işlemde yalnızca Sınıf 3 için kayıt giriş noktaları SUNULMALIDIR. veya 2. Sınıf biyometri gibidir.

Cihaz uygulamaları pasif biyometriyi destekliyorsa:

  • [C-5-1] Varsayılan olarak ek bir onay adımının zorunlu kılınması ZORUNLUDUR (ör. düğmeye basma).
  • [C-SR-1] Kullanıcıların şunları yapmasına izin veren bir ayarın olması ÖNEMLE ÖNERİLİR: uygulama tercihini geçersiz kıl ve her zaman eşlik etmesi gerekir onay adımına geçelim.
  • [C-SR-2] Doğrulama işleminin güvenliğinin sağlanması ÖNERİLİR adresteki bir güvenlik açığını taklit edemez. Örneğin bu, fiziksel bir düğmeye dayalı onaylama işleminin şunun yalnızca giriş amaçlı genel amaçlı giriş/çıkış (GPIO) PIN'i üzerinden yönlendirilir: bir güvenli öğe (SE) fiziksel düğmeye basmak gibi.
  • [C-5-2] Buna ek olarak örtülü bir kimlik doğrulama akışı UYGULAMALIDIR (onay adımı olmadan) şuna karşılık gelir: setConfirmationRequired(boole), hangi uygulamaların oturum açma akışları için kullanabileceğini belirler.

Cihaz uygulamalarında birden fazla biyometrik sensör varsa:

Yeni koşullarla başlayın

  • [C-7-1] Bir biyometri kilitli değilken (ör. biyometri devre dışı bırakıldığında) ZORUNLUDUR Kullanıcı, birincil kimlik doğrulama ile kilidi açana kadar) veya zaman sınırlamalı kilitlenme (ör. kullanıcı bir süre bekleyene kadar biyometri geçici olarak devre dışı bırakılır çok sayıda başarısız deneme yapıldığından dolayı) diğer tüm daha düşük biyometri sınıfından biyometri verileri. Zaman sınırlamalı çilingirlik durumunda biyometrik doğrulama için geri yükleme süresinin maksimum geri çekilme süresi OLMALIDIR Biyometri verilerinin tamamından yararlanabiliyoruz.

  • [C-SR-12] Bir biyometri cihazı kilitlendiğinde (ör. kullanıcı birincil kimlik doğrulama ile kilidi açana kadar biyometri devre dışı bırakılır veya süre sınırlamalı erişim (ör. biyometri, kullanıcı belirli bir zaman aralığı bekler.) çok sayıda başarısız deneme nedeniyle aynı biyometrik sınıfa ait diğer tüm biyometrileri kilitleyebilir. Projede zaman sınırlamalı erişim, biyometrik doğrulama için geri yükleme süresi GÜÇLÜ Tüm biyometri verileri için zaman sınırlamalı olarak maksimum geri yükleme süresi ÖNERİLİR çilingirlik.

  • [C-7-2] Önerilen birincil kimlik doğrulama işlemi için kullanıcıyı ZORUNLAMALIDIR (ör. PIN, desen, şifre) kullanarak biyometri için kilitlenme sayacını sıfırlamak hesaba katılmaz. 3. Sınıf biyometri verilerinin kilitlenmeyi sıfırlamasına izin verilebilir aynı veya daha düşük sınıfa ait kilitli bir biyometri sayacını kullanın. Sınıf 2 veya 1. Sınıf biyometrik verilerin sıfırlama kilidinin tamamlanmasına izin VERİLMEMELİDİR hiçbir biyometri işlemidir.

Yeni şartları sonlandırma

  • [C-SR-3] Yalnızca bir biyometrinin onaylanmasını gerektirmesi ÖNEMLE ÖNERİLİR (ör. hem parmak izi hem de yüz sensörleri mevcutsa) Cihazda, onAuthenticationSucceeded gerekir).

Cihaz uygulamalarının anahtar deposu anahtarlarına erişime izin vermek için üçüncü taraf uygulamalarında:

  • [C-6-1], bu maddede tanımlanan Sınıf 3 şartlarını karşılamalıdır. bölümüne bakın.
  • Kimlik doğrulama sırasında [C-6-2] yalnızca 3. Sınıf biyometri verilerinin sunulması ZORUNLUDUR BIOMETRIC_STRONG gerektirir, veya kimlik doğrulama bir CryptoObject ile çağrılır.

Cihaz uygulamaları bir biyometrik sensörü 1. Sınıf olarak değerlendirmek istiyorsa (eski adıyla Kolay):

  • [C-1-1] %0,002'den az yanlış kabul oranı OLMALIDIR.
  • [C-1-2], bu modun güçlü bir PIN'den daha az güvenli olabileceğini AÇIKLAMALIDIR. şifre değiştirmeli ve etkinleştirmenin risklerini açıkça belirtmeli sahtekârlık ve sahtekârlık kabul oranlarının% 7'nin üzerinde olduğunu ve Android Biyometri Test Protokolleri.
  • [C-1-9] Önerilen birincil kimlik doğrulama işlemi için kullanıcıyı ZORUNLAMALIDIR (örneğin, PIN, desen, şifre) en fazla yirmi yanlış deneme ve Biyometrik doğrulama için geri yükleme süresinin doksan saniyeden daha az olması Yanlış deneme, yeterli yakalama kalitesine sahiptir. (BIOMETRIC_ACQUIRED_GOOD) veya kayıtlı bir biyometri ile eşleşmeyen veriler.
  • [C-SR-4] Toplam yanlış deneme sayısını azaltması için ÖNEMLE ÖNERİLİR [C-1-9] içinde belirtilen biyometrik doğrulama için Android Biometri'nin verilerine göre kabul oranları% 7'nin üzerinde. Test Protokolleri.
  • [C-1-3] Biyometrik doğrulama için hız sınırlaması denemeleri ZORUNLUDUR: Yanlış deneme, yeterli yakalama kalitesine sahiptir. (BIOMETRIC_ACQUIRED_GOOD) kayıtlı biyometriyle eşleşmiyor.
  • [C-SR-5] En az için beş yanlış denemeden sonra biyometrik doğrulamadan 30 saniye sonra başına maksimum yanlış deneme sayısı [C-1-9] başına maksimum yanlış deneme sayısı; aşağıdakilerle eşleşmeyen yeterli bir yakalama kalitesi (BIOMETRIC_ACQUIRED_GOOD) kayıtlı biyometri.
  • [C-SR-6] TEE'de tüm hız sınırlama mantığına sahip olması ÖNEMLE ÖNERİLİR.
  • [C-1-10] Birincil kimlik doğrulama geri yüklemesi olduğunda biyometrinin devre dışı bırakılması ZORUNLUDUR 9.11 numaralı bölümün [C-0-2] bölümünde açıklandığı gibi ilk olarak tetiklenir.

  • [C-1-11] Adres sahteciliği ve sahtecilik konulu kabul oranının %30'un üzerinde olmaması ZORUNLUDUR. (1) A Düzeyi sunumu için sahtekârlık ve sahte kabul oranı ile %30'un üzerinde olmayan saldırı enstrümanı (PAI) türleri ve (2) adres sahteciliği B Seviyesi PAI türlerinin sahte kabul oranı %40'ın üzerinde değildir, Android Biyometri Test Protokolleri tarafından ölçülmüştür.

  • [C-1-4] İlk önce bir kullanıcının mevcut cihazı onaylamasını veya yeni bir cihaz eklemesini sağlayarak güven zinciri TEE tarafından korunan kimlik bilgisi (PIN/desen/şifre) Android Open Kaynak Proje uygulaması, çerçevede öyle.

  • [C-1-5] Bir kullanıcının tanımlanabilir tüm biyometrik verilerinin tamamen kaldırılması ZORUNLUDUR Kullanıcının hesabı kaldırıldığında (fabrika ayarlarına sıfırlama işlemi dahil).

  • [C-1-6], söz konusu biyometrinin bağımsız bayrağına (ör. DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT DevicePolicymanager.KEYGUARD_DISABLE_FACE veya DevicePolicymanager.KEYGUARD_DISABLE_IRIS ) tabi olacaktır.

  • [C-1-7] Önerilen birincil kimlik doğrulama işlemi için kullanıcıyı ZORUNLAMALIDIR (ör. PIN, desen, şifre) en fazla 24 saatte bir. Not: Android 9 veya önceki sürümlerde kullanıma sunulan cihazların yeni sürüme geçirilmesi ZORUNLUDUR önerilen birincil kimlik doğrulaması için kullanıcıyı zorlayın (ör. PIN, desen, şifre) kullandığınızdan emin olun.

  • [C-1-8] Önerilen birincil ayar için kullanıcıyı ZORUNLAMALIDIR kimlik doğrulama (ör. PIN, desen, şifre) veya Sınıf 3 (GÜÇLÜ) biyometri aşağıdakilerden birinden sonra:

    • 4 saatlik boşta kalma zaman aşımı süresi VEYA
    • 3 başarısız biyometrik kimlik doğrulama denemesi.
    • Boşta kalma zaman aşımı süresi ve başarısız kimlik doğrulama sayısı sıfırlanır tüm kullanıcı doğrulama işleminden sonra. Not: Android 9 veya önceki sürümlerde kullanıma sunulan cihazların yeni sürüme geçirilmesi C-1-8'den muaf tutuldu.
  • [C-SR-7] Sağlanan çerçevedeki mantığı kullanması ÖNEMLE ÖNERİLİR [C-1-7] ve [C-1-8] olarak da adlandırabilirsiniz.

  • [C-SR-8] Yanlış ret oranının şundan düşük olması ÖNEMLE ÖNERİLİR: %10 (cihazda ölçüldüğü üzere)

  • [C-SR-9] 1 saniyenin altında gecikmenin olması ÖNEMLE ÖNERİLİR (ölçülmüştür) biyometrinin algılandığı andan itibaren ekranın kilidi açılana kadar, her cihaz için kayıtlı biyometri.

Yeni koşullarla başlayın

  • [C-1-12] Adres sahteciliği ve sahtecilik konulu kabul oranının %40'ın üzerinde olmaması ZORUNLUDUR sunum başına saldırı aracı (PAI) türü, Android Biyometri Test Protokolleri.

  • [C-SR-13] Adres sahteciliğini ve sahtekârlığı kabul etmeleri ÖNEMLE ÖNERİLİR sunum amaçlı saldırı aracı (PAI) türü başına oranı% 30'dan yüksek olmamalıdır, Android Biyometri Test Protokolleri tarafından ölçülmüştür.

  • [C-SR-14] Kişinin biyometrik sınıfını belirtmeniz Şiddetle ÖNERİLİR ve bunu etkinleştirmenin getirdiği riskler hakkında daha fazla bilgi sahibi olmanızı sağlar.

  • [C-SR-17] Yeni AIDL arayüzlerinin uygulanması ÖNEMLE ÖNERİLİR (IFace.aidl ve IFingerprint.aidl gibi).

Yeni şartları sonlandırma

Cihaz uygulamaları bir biyometrik sensörün 2. Sınıf olarak işlenmesini istiyorsa (eski adıyla Zayıf) olduğunda:

  • [C-2-1] yukarıdaki 1. Sınıf için tüm koşulları karşılamalıdır.

  • [C-2-2] Adres sahteciliği ve sahtecilik konulu kabul oranının %20'nin üzerinde olmaması ZORUNLUDUR. (1) sahtekârlık ve sahte kabul oranı A Düzeyinde sunum saldırı aracı (PAI) türleri %20'nin üzerinde olmamalıdır. ve (2) B Seviyesi PAI türlerinin sahtecilik ve taklit kabul oranı %30'un üzerinde, Android Biyometri Test Protokolleri.

Yeni koşullarla başlayın

  • [C-SR-15] Adres sahteciliğini ve sahtekârlığı kabul etmeleri Şiddetle ÖNERİLİR sunum saldırı aracı (PAI) başına% 20'den yüksek olmamalıdır türleri, Android Biyometri Test Protokolleri.

Yeni şartları sonlandırma

  • [C-2-3] Android dışında izole bir yürütme ortamında biyometrik eşleştirme kullanıcı veya çekirdek alanı (örneğin, Güvenilir Yürütme Ortamı (TEE)) veya izole yürütme ortamına güvenli kanalı olan bir çip üzerinde veya Bölüm 9.17'deki şartları karşılayan korumalı sanal makinede.
  • [C-2-4] Tüm tanımlayıcı verilerin şifrelenmesi ve kriptografik olarak bulunması ZORUNLUDUR bu alan dışında edinilemez, okunamayacak veya değiştirilemeyecek şekilde yalıtılmış yürütme ortamını veya güvenli kanalı olan bir çipi uygulamada belirtildiği gibi izole yürütme ortamı kuralları Android Açık Kaynak Projesi sitesinde veya hipervizör tarafından kontrol edilen ve Bölüm 9.17'deki şartları karşılayan bir Korumalı Sanal Makine
  • [C-2-5] Kamera tabanlı biyometri için, biyometrik kimlik doğrulama ise veya kayıt yapılıyorsa:
    • Kameranın, kamera çerçevelerinin çalışmasını önleyen bir modda çalıştırılması ZORUNLUDUR izole yürütme ortamının veya çipin dışında okunması veya değiştirilmesi izole yürütme ortamına güvenli bir kanalla veya hipervizör tarafından kontrol edilen ve Bölüm 9.17'de belirtilen gereksinimleri karşılayan bir Korumalı Sanal Makine.
    • RGB tek kameralı çözümlerinde kamera çerçeveleri işlemleri desteklemek için izole yürütme ortamının dışında okunabilir Örneğin, kayıt için önizleme gibi, ancak yine de DEĞİŞTİRİLMEMELİDİR.
  • [C-2-6] Üçüncü taraf uygulamalarının, birbirinden ayırt edici olarak bireysel biyometrik kayıtlar.
  • [C-2-7] Tanımlanabilir biyometrik verilere şifrelenmemiş erişime İZİN VERMEMELİDİR. Uygulama İşleyen'e bundan elde edilen tüm veriler (gömmeler gibi) TEE bağlamı dışında. veya Hipervizör tarafından kontrol edilen ve Bölüm 9.17'deki gereksinimleri karşılayan Korumalı Sanal Makine. Android 9 veya önceki sürümlerde kullanıma sunulan cihazların yeni sürüme geçirilmesinden muaf değildir C-2-7'den başlar.
  • [C-2-8] Bir makinenin güvenli bir şekilde işlemesini (ör. C-2-8) güvenlik ihlali, verilerin doğrudan cihaza yerleştirilmesine kullanıcı kimliği yanlış bir şekilde doğrulanabilir. Not: Cihaz uygulamaları, Android sürüm 9'da zaten kullanıma sunulduysa veya daha eski bir sürümün yüklü olduğu ve bir sistem yazılımı üzerinden C-2-8 şartlarını karşılayamayan bu zorunluluktan muaf tutulabilir.

  • [C-SR-10] Herkes için canlılık algılamayı içermesi ÖNEMLE ÖNERİLİR yüz biyometrisi için biyometrik modaliteler ve dikkat algılama.

  • [C-2-9] Biyometrik sensörü üçüncü tarafın kullanımına SUNMALIDIR izin verir.

Cihaz uygulamaları bir biyometrik sensörü 3. Sınıf olarak değerlendirmek istiyorsa (eski adıyla Güçlü):

  • [C-3-1] [C-1-7] ve [C-1-8].
  • [C-3-2] Donanım destekli bir anahtar deposu uygulaması ZORUNLUDUR.
  • [C-3-3] Adres sahteciliği ve sahtecilik konulu kabul oranının %7'nin üzerinde olmaması ZORUNLUDUR. (1) sahtekârlık ve sahte kabul oranı A Seviyesi sunum saldırı aracı (PAI) türleri %7'nin üzerinde olmamalıdır ve (2) B Seviyesi PAI türlerinin sahte ve sahte kabul oranı daha yüksek değil %20'nin üzerinde olabilir ve Android Biyometri Test Protokolleri.
  • [C-3-4] Önerilen birincil ayar için kullanıcıyı ZORUNLAMALIDIR 72 saatte bir kimlik doğrulama (ör. PIN, desen, şifre) veya daha az olmalıdır.
  • [C-3-5] Authenticator Kimliği'ni yeniden OLUŞTURMALIDIR Cihazda desteklenen tüm 3. Sınıf biyometri verileri için yeniden kaydedildi.
  • [C-3-6] Biyometrik destekli anahtar deposu anahtarlarının üçüncü taraflara etkinleştirilmesi gerekir izin verir.

Yeni koşullarla başlayın

  • [C-SR-16] Adres sahteciliğini ve sahtekârlığı kabul etmeleri Şiddetle ÖNERİLİR sunum aracı (PAI) türü başına gösterim oranı% 7'den yüksek olmamalıdır. Android Biyometri Test Protokolleri tarafından ölçülmüştür.

Yeni şartları sonlandırma

Cihaz uygulamaları, ekranın altı parmak izi sensörü (UDFPS) içeriyorsa onlar:

  • [C-SR-11] UDFPS'nin dokunulabilir alanını önlemek için ÖNEMLE ÖNERİLİR engellemesi önlenebilir( bazı kullanıcılar için nedeniyle).

7.3.11. Poz Sensörü

Cihaz uygulamaları:

  • 6 serbestlik derecesine sahip poz sensörünü destekleyebilir.

Cihaz uygulamaları, 6 serbestlik derecesine sahip poz sensörünü destekliyorsa:

  • [C-1-1] TYPE_POSE_6DOF uygulamasının uygulanması ve bildirilmesi GEREKİR görebilirsiniz.
  • [C-1-2], tek başına döndürme vektöründen daha doğru OLMALIDIR.

7.3.12. Menteşe Açısı Sensörü

Cihaz uygulamaları menteşe açısı sensörünü destekliyorsa:

7.3.13. IEEE 802.1.15.4 (UWB)

Cihaz uygulamaları 802.1.15.4 desteği içeriyorsa ve bir üçüncü taraf uygulamasına aktarıyorsa:

Yeni koşullarla başlayın

  • [C-1-2], donanım özelliği bayrağı android.hardware.uwb Bildirilmelidir.
  • [C-1-3] aşağıdaki yapılandırma gruplarının tümünü DESTEKLEMELİDİR (önceden tanımlanmış FIRA UCI parametrelerinin kombinasyonlarını içerir) AOSP uygulamasında tanımlanmıştır.
    • CONFIG_ID_1: FiRa tanımlı tek yayın STATIC STS DS-TWR aralığı, 240 ms aralıkla ertelenen mod.
    • CONFIG_ID_2: FiRa tanımlı bire-çok STATIC STS DS-TWR aralığı, 200 ms aralıkla ertelenen mod. Tipik kullanım alanı: akıllı telefon etkileşime girdiğini gördük.
    • CONFIG_ID_3: Varış Açısı (AoA) hariç CONFIG_ID_1 ile aynıdır raporlanmaz.
    • CONFIG_ID_4: P-STS güvenlik modu hariç CONFIG_ID_1 ile aynıdır, etkin.
    • CONFIG_ID_5: P-STS güvenlik modu hariç CONFIG_ID_2 ile aynıdır, etkin.
    • CONFIG_ID_6: P-STS güvenlik modu hariç CONFIG_ID_3 ile aynıdır, etkin.
    • CONFIG_ID_7: P-STS bağımsız kontrol kullanıcısı hariç CONFIG_ID_2 ile aynı tuş modu etkin.
  • [C-1-4] Kullanıcının ultra geniş bant seçeneğine geçiş yapmasına izin vermek için kullanıcıya uygun bir fırsat SUNMALIDIR durumu gösterir.
  • [C-1-5], ultra geniş bant radyo kullanan uygulamaların UWB_RANGING öğesini zorunlu kılması ZORUNLUDUR izni (NEARBY_DEVICES izin grubu altında).

Standartlar tarafından tanımlanan ilgili uygunluk ve sertifikasyon testlerini geçme FIRA da dahil olmak üzere CCC ve ÖAR, 802.1.15.4'ün doğru şekilde çalışmasına yardımcı olur.

Yeni şartları sonlandırma

7.4. Veri Bağlantısı

7.4.1. Telefon Hizmeti

Android API'leri tarafından kullanılan "Telefon" ve bu dokümanda özellikle sesli çağrı yapma ve SMS mesajı göndermeyle ilgili donanımla veya bir cep telefonu (örneğin, GSM, CDMA, LTE, NR)GSM ya da CDMA ağı aracılığıyla mobil veri kurma ile ilgili donanımla ilişkilidir. "Telefon"u destekleyen bir cihaz, arama, mesajlaşma ve veri hizmetlerinin bir kısmını veya tamamını ürüne uygun şekilde sunmayı tercih edebilir.

GSM veya CDMA ağı üzerinden. Bu sesli aramalar paket anahtarlı olabilir veya olmayabilir,ancak aynı ağ kullanılarak uygulanabilecek herhangi bir veri bağlantısından bağımsız olarak Android'in amaçları doğrultusunda kullanılır. Diğer bir deyişle,Android "telefon" işlevi ve API'leri özellikle sesli aramaları ve SMS'leri ifade eder. Örneğin, arama yapamayan veya SMS mesajı gönderip alamayan cihaz uygulamaları, veri bağlantısı için hücresel ağ kullanıp kullanmadıklarına bakılmaksızın telefon cihazı olarak kabul edilmez.

  • Android, telefon donanımı bulunmayan cihazlarda KULLANILABİLİR. O Android, telefon dışındaki cihazlarla uyumludur.

Cihaz uygulamaları GSM veya CDMA telefon özelliğini içeriyorsa:

  • [C-1-1], android.hardware.telephony özellik bayrağını beyan etmelidir ve alt özellik bayraklarını gösterebileceksiniz.
  • [C-1-2] bu teknolojiye yönelik API için tam destek uygulaması ZORUNLUDUR.
  • Mevcut tüm hücresel servis türlerine (2G, 3G, 4G, 5G vb.) İZİN VERİLMELİDİR (ayarları ile belirlediğiniz ağ türlerinden bağımsız olarak, SetAllowedNetworkTypeBitmap()) bilgileri gösterilir.

Cihaz uygulamaları telefon donanımı içermiyorsa:

  • [C-2-1], tüm API'leri işlemsiz olarak uygulaması ZORUNLUDUR.

Cihaz uygulamaları eUICC'leri veya eSIM'leri/yerleşik SIM'leri destekliyorsa ve üçüncü tarafların eSIM işlevini kullanmaya başlamasına en iyi uygulamaları paylaştık:

Cihaz uygulamaları, ro.telephony.iwlan\_operation\_mode sistem özelliğini "eski" olarak ayarlamazsa:

Cihaz uygulamaları tek bir IP Multimedya Alt Sistemini (IMS) destekliyorsa hem multimedya telefon hizmeti (MMTEL) hem de kayıt özellikleri ile uyumlu olmalarının yanı sıra bunların tek bir operatörün kullanılmasıyla ilgili olarak, Tüm IMS sinyal trafiği için IMS kaydı;

Cihaz uygulamaları android.hardware.telephony özelliğini bildiriyorsa:

Cihaz uygulamaları android.hardware.telephony özelliğini bildiriyorsa ve bir sistem durum çubuğu sağlarsanız:

  • [C-7-1] Belirli bir grup UUID'si SIM durumu sağlayan herhangi bir olanakta kullanıcıya gösterilir ekleyebilirsiniz. Bu tür olanaklara örnek olarak hücresel sinyal simgesi veya Hızlı Ayarlar kutusu.
  • [C-SR-1] Temsilcili aboneliğin bu etkin veri aboneliği cihaz bir seste değilse müşteri temsilcisinin, yetkili olmayan bir temsilcinin kim olduğunu ve abonelik, etkin Voice aboneliğidir.

Cihaz uygulamaları android.hardware.telephony özelliğini bildiriyorsa:

  • [C-6-7] [C-6-7] [C-6-7] Şunu açabilmeli ve eş zamanlı olarak maksimum ETSI TS 102 221 başına her UICC için mantıksal kanal sayısı (toplam 20).
  • [C-6-8] etkin operatör uygulamalarına aşağıdaki davranışlardan herhangi birini UYGULAMAMALIDIR (TelephonyManager#getCarrierServicePackageName tarafından belirlenen şekilde) otomatik olarak veya kullanıcının açıkça onayı olmadan:
    • Ağ erişimini iptal etme veya sınırlama
    • İzinleri iptal et
    • AOSP'deki mevcut güç yönetimi özelliklerinin ötesinde arka planda veya ön planda uygulama yürütmeye yönelik kısıtlama
    • Uygulamayı devre dışı bırakma veya kaldırma

Cihaz uygulamaları android.hardware.telephony özelliğini bildirirse ve tümü etkin, fırsat dışı abonelikler grup UUID'si paylaşanlar devre dışı bırakılır ve veya "fırsat" olarak işaretlenmişse cihazdan fiziksel olarak kaldırılırsa:

  • [C-8-1] Kalan tüm etkin olanlar otomatik olarak devre dışı ZORUNLUDUR fırsatsal aynı gruptaki aboneliklerdir.

Cihaz uygulamaları GSM telefonlarını içeriyor ancak CDMA telefon özelliğini içermiyorsa:

Cihaz uygulamaları, birden fazla bağlantı noktası ve profil içeren eUICC'leri destekliyorsa:

7.4.1.1. Numara Engelleme Uyumluluğu

Cihaz uygulamaları android.hardware.telephony.calling özelliğini bildirirse:

  • [C-1-1] Numara engelleme desteği İÇERMELİDİR
  • [C-1-2] BlockedNumberContract'nin tamamen uygulanması ZORUNLUDUR ve ilgili API, SDK belgelerinde açıklandığı gibidir.
  • [C-1-3] Bir telefon numarasından gelen tüm çağrıları ve mesajları "BlockNumberProvider" Google Trendler'i kullanabilirsiniz. Tek istisna SDK'da açıklandığı gibi numara engellemenin geçici olarak kaldırılmasıdır belgelerinden faydalanabilirsiniz.

  • [C-1-4] platform çağrı kaydı sağlayıcısına yazması GEREKİR için ve BLOCKED_TYPE varsayılan arama kaydı görünümünü kullanabilirsiniz.

  • [C-1-5] Telefon hizmeti sağlayıcısına YAZMAMALIDIR seçeneğini belirleyin.

  • [C-1-6]; engellenen sayılar yönetimi kullanıcı arayüzü, açık bir şekilde UYGULAMALIDIR. TelecomManager.createManageBlockedNumbersIntent() tarafından döndürülen amaç ile yöntemidir.

  • [C-1-7] İkincil kullanıcıların engellenen numaraları görüntülemesine veya düzenlemesine İZİN VERİLMEMELİDİR Android platformu, birincil kullanıcının cihazında tam donanıma sahip olduğunu tek bir örnek olarak, telefon hizmetlerinin cihazdaki tüm kontrolü sizdedir. Tümü ilgili kullanıcı arayüzünü engellemenin ikincil kullanıcılar için gizlenmesi ZORUNLUDUR ve engellenenler listesi ZORUNLUDUR saygılı olmaya devam edin.

  • Cihaz güncellendiğinde engellenen numaraları sağlayıcıya TAŞINMALIDIR Android 7.0'a.

  • Kullanıcıya, önceden yüklenmiş olan aramada engellenen aramaları göstermesi GEREKİR çevirici uygulaması.

7.4.1.2. Telekom API'sı

Cihaz uygulamaları android.hardware.telephony.calling bildiriminde bulunursa:

  • [C-1-1], SDK'da açıklanan ConnectionService API'lerini DESTEKLEMELİDİR.
  • [C-1-2] Yeni bir gelen aramayı görüntülemeli ve kullanıcıya ödeme yapması GEREKİR Kullanıcı devam eden bir görüşmedeyken gelen aramayı kabul et veya reddet muhafaza özelliğini desteklemeyen bir üçüncü taraf uygulaması tarafından oluşturulan belirtilen CAPABILITY_SUPPORT_HOLD.
  • [C-1-3] InCallService'i tıklayın.
  • [C-SR-1] Kullanıcının bir gelen arama devam eden aramayı bırakacak.

    AOSP uygulaması, bir uyarı bildirimiyle bu koşulları karşılar Bu mesaj, kullanıcıya gelen bir çağrıyı yanıtlamanın çağrıyı daha kısa sürede yapabilirsiniz.

  • [C-SR-2] Aşağıdaki özelliklere sahip varsayılan numara çevirici uygulamasının önceden yüklenmesi ÖNERİLİR: Bir arama kaydı girişi ve çağrı kaydındaki bir üçüncü taraf uygulamasının adını gösteriyor Üçüncü taraf uygulaması EXTRA_LOG_SELF_MANAGED_CALLS ekstra tuşu PhoneAccount'ten true'ye.

  • [C-SR-3] Mikrofonlu kulaklığın kullanımı için ÖNEMLE ÖNERİLİR Şu dönem için KEYCODE_MEDIA_PLAY_PAUSE ve KEYCODE_HEADSETHOOK etkinlikleri: android.telecom Aşağıdaki gibi API'ler:

    • Connection.onDisconnect() numaralı telefonu arayın Devam eden bir arama sırasında önemli etkinliğe kısa bir süre basıldığı algılandığında.
    • Connection.onAnswer() numaralı telefonu arayın Gelen bir arama sırasında önemli etkinliğe kısa bir basma algılandığında.
    • Connection.onReject() numaralı telefonu arayın Gelen bir arama sırasında önemli etkinliğe uzun bir süre basılması algılandığında.
    • CallAudioState için yoksayma durumunu değiştirin.
7.4.1.3. Hücresel NAT-T Keepalive Aktarımı

Cihaz uygulamaları:

  • Hücresel keepalive boşaltma desteği İÇERMELİDİR.

Cihaz uygulamaları, Hücresel keepalive boşaltma ve üçüncü taraf uygulamalarına sunduğu işlevler:

  • [C-1-1] SocketKeepAlive API'yi DESTEKLEMELİDİR.
  • [C-1-2] Hücresel ağ üzerinden en az bir eşzamanlı keepalive yuvasını DESTEKLEMELİDİR.
  • [C-1-3], mümkün olduğunca çok sayıda eş zamanlı hücresel keepalive yuvasını DESTEKLEMELİDİR Hücresel Radyo HAL tarafından desteklenir.
  • [C-SR-1] En az üç hücrenin canlı tutma özelliğini desteklemesi ÖNEMLE ÖNERİLİR slot sayısı.

Cihaz uygulamaları hücresel keepalive boşaltma desteğini içermiyorsa onlar:

  • [C-2-1] ERROR_UNSUPPORTED döndürmelidir.

7.4.2. IEEE 802.11 (Kablosuz)

Cihaz uygulamaları:

  • 802.11'in bir veya daha fazla biçimi için destek İÇERMELİDİR.

Cihaz uygulamaları 802.11 desteği içeriyorsa ve bir üçüncü taraf uygulamasına aktarıyorsa:

  • [C-1-1] İlgili Android API'sinin uygulanması ZORUNLUDUR.
  • [C-1-2], donanım özelliği bayrağı android.hardware.wifi Bildirilmelidir.
  • [C-1-3] multicast API'nin uygulanması ZORUNLUDUR SDK dokümanlarında açıklandığı gibi.
  • [C-1-4], çoklu yayın DNS'yi (mDNS) DESTEKLEMELİ ve mDNS paketlerini Filtrelemesi ZORUNLUDUR (224.0.0.251 veya ff02::fb) herhangi bir işlem sırasında, ekranın ne zaman etkin durumda değildir (bu paketlerin bırakılması veya filtrelenmesi yönetmeliklerin gerektirdiği güç tüketimi aralıklarında kalmak için gereklidir geçerli olmasını sağlayın. Android Televizyon cihazı uygulamaları için, güç durumlarıyla karşılaştırın.
  • [C-1-5], WifiManager.enableNetwork() etiketini KULLANMAMALIDIR. Mevcut durumda etkin olan yönteme geçmek için yeterli bir gösterge olarak API yöntemi çağrısı Uygulama trafiği için varsayılan olarak kullanılan ve döndürülen Network sanatçı: ConnectivityManager getActiveNetwork gibi API yöntemleri ve registerDefaultNetworkCallback. Başka bir deyişle, yalnızca herhangi bir kullanıcı tarafından sağlanan internet erişimini diğer ağ sağlayıcısını (ör. mobil veri) doğrulamaları halinde kablosuz ağın internet erişimi sağladığından emin olun.
  • [C-1-6] ConnectivityManager.reportNetworkConnectivity() API yöntemi çağrıldı, Network üzerinde internet erişimini yeniden değerlendirin ve mevcut Network metriğinin artık mevcut Network İnternet erişimi, mevcut başka bir ağa (ör. mobil) verileri) içeren bir web tarayıcısıdır.
  • [C-1-7] Kaynak MAC adresini ve yoklama sıra numarasını rastgele hale getirmesi ZORUNLUDUR her taramanın başında bir kez, STA ise bağlantı kesildi.
  • [C-1-8] tek bir tutarlı MAC adresi kullanmalı (MAC adresi rastgele KULLANILMAMALIDIR) henüz tarama aşamasının ortasındadır.
  • [C-1-9] yoklama isteği sıra numarasını normal şekilde (sırayla) yinelemesi GEREKİR iki talep arasındaki bir e-postadır.
  • [C-1-10] Son yoklama arasında Probe isteği sıra numarasını rastgele hale getirmesi GEREKİR ve bir sonraki taramanın ilk yoklama isteğini gönderin.
  • [C-SR-1] Kaynak MAC adresinin rastgele hale getirilmesi için ÖNEMLE ÖNERİLİR bir Erişim Noktası (AP) ile ilişkilendirerken ve ilişkilendirilmiş.
    • Cihazın her SSID için farklı rastgele bir MAC adresi kullanması ZORUNLUDUR (Passpoint için FQDN) kullanır.
    • Cihazın, kullanıcıya SSID (Passpoint için FQDN) başına rastgele hale getirme ve rastgele hale getirilmemiş seçenekler ve yeni kablosuz ağ için varsayılan modun ayarlanması ZORUNLUDUR yapılandırılacak.
  • [C-SR-2] Kullandıkları tüm erişim noktaları için rastgele bir BSSID kullanmaları ÖNEMLE ÖNERİLİR. oluştur.
    • MAC adresi, KAP.
    • CİHAZ, kullanıcıya bu özelliği devre dışı bırakma seçeneği sağlayabilir. Böyle bir seçenek sağlanırsa rastgele hale getirmenin varsayılan olarak etkinleştirilmiş olması ZORUNLUDUR.

Cihaz uygulamaları, tanımlandığı gibi kablosuz güç tasarrufu modu desteği içeriyorsa IEEE 802.11 standardında belirtildiği gibi:

  • Bir uygulama WIFI_MODE_FULL_HIGH_PERF kilit veya WIFI_MODE_FULL_LOW_LATENCY kilit WifiManager.createWifiLock() üzerinden ve WifiManager.WifiLock.acquire() API'ler ve kilit etkin.
  • [C-3-2] Cihaz arasındaki ortalama gidiş dönüş gecikmesi ve cihaz Kablosuz Düşük Gecikme Kilidi'ndeyken bir erişim noktası (WIFI_MODE_FULL_LOW_LATENCY) modundaki fiyatın şundan küçük olması ZORUNLUDUR: kablosuz bağlantı yüksek performans kilidi (WIFI_MODE_FULL_HIGH_PERF) modundayken gecikme süresi.
  • [C-SR-3] Kablosuz gidiş dönüş gecikmesini en aza indirmek için ÖNEMLE ÖNERİLİR Düşük Gecikme Kilidi (WIFI_MODE_FULL_LOW_LATENCY) alındığında yürürlüğe girer.

Cihaz uygulamaları kablosuz bağlantıyı destekliyorsa ve konum taraması için kablosuz ağı kullanıyorsa onlar:

  • [C-2-1], okuma değerinin etkinleştirilmesi/devre dışı bırakılması için bir kullanıcıya ödeme ZORUNLUDUR WifiManager.isScanAlwaysAvailable üzerinden API yöntemi.
7.4.2.1. Kablosuz Doğrudan Bağlantı

Cihaz uygulamaları:

  • Kablosuz Doğrudan Bağlantı (eşler arası kablosuz) desteği İÇERMELİDİR.

Kablosuz Doğrudan Bağlantı desteği içeren cihaz uygulamaları:

  • [C-1-1], ilgili Android API'yi uygulaması GEREKİR SDK dokümanlarında açıklandığı gibi.
  • [C-1-2] android.hardware.wifi.direct donanım özelliğini bildirmesi GEREKİR.
  • [C-1-3] normal kablosuz işlemini DESTEKLEMELİDİR.
  • [C-1-4] Kablosuz ve Doğrudan Kablosuz İşlemleri aynı anda DESTEKLEMELİDİR.
  • [C-SR-1] Tüm cihazların kaynak MAC adresini rastgele hale getirmesi ÖNEMLE ÖNERİLİR yeni oluşturulan Kablosuz Doğrudan bağlantılar.

Cihaz uygulamaları:

Cihaz uygulamaları, TDLS için destek içeriyorsa ve TDLS Wi-FiManager API'ye gidip:

  • [C-1-1], WifiManager.isTdlsSupported tarihine kadar TDLS'yi desteklediğini beyan etmelidir.
  • TDLS'yi yalnızca mümkün VE yararlı olduğunda kullanın.
  • Performansının yüksek olabileceği durumlarda, buluşsal bir yönteme sahip olmalı ve TDLS'yi KULLANMAMALIDIR. kablosuz erişim noktasından geçmekten daha kötü.
7.4.2.3. Kablosuz Ağ Uyumlu

Cihaz uygulamaları:

Cihaz uygulamaları Wi-Fi Aware desteği içeriyorsa ve üçüncü taraf uygulamalarına geri dönüyorsa:

  • [C-1-1], WifiAwareManager API'lerini SDK dokümanları.
  • [C-1-2], android.hardware.wifi.aware özellik bayrağını beyan etmelidir.
  • [C-1-3] Kablosuz ve Wi-Fi Aware işlemlerini aynı anda DESTEKLEMELİDİR.
  • [C-1-4] Wi-Fi Aware yönetim arayüzü adresini aralıklarla rastgele hale getirmesi ZORUNLUDUR en fazla 30 dakika ve bir Aware değeri olmadığı sürece Wi-Fi Aware özelliği etkin olduğunda aralık işlemi devam ediyor veya bir duyarlı veri yolu etkin (rastgele veri yolu etkin olduğu sürece olması gerekir).

Cihaz uygulamaları Wi-Fi Aware ve kablosuz ağ Bölüm 7.4.2.5'te açıklandığı şekilde Kablosuz Konumu ve üçüncü taraf uygulamalarına yönelik olarak kullanıma sunulduğunda:

7.4.2.4. Kablosuz Ağ Şifre Noktası

Cihaz uygulamaları 802.11 (Kablosuz) desteği içeriyorsa:

  • [C-1-1] Wi-Fi Passpoint desteği İÇERMELİDİR.
  • [C-1-2] Passpoint ile ilgili WifiManager API'lerini SDK dokümanlarında açıklanmıştır.
  • [C-1-3] IEEE 802.11u standardını, özellikle de ilgili olan Ağ Keşfi ve Seçimi'ne (ör. Genel Reklam) Hizmet (GAS) ve Erişim Ağı Sorgu Protokolü (ANQP).
  • [C-1-4] android.hardware.wifi.passpoint özellik bayrağı BELİRTMELİDİR.
  • [C-1-5] Keşif, eşleşme ve ilişkilendirme için AOSP uygulamasının uygulanması ZORUNLUDUR Passpoint ağlarına.
  • [C-1-6] Cihaz temel hazırlığının en azından aşağıdaki alt kümesini DESTEKLEMELİDİR Wi-Fi Alliance Passpoint R2: EAP-TTLS'de tanımlandığı şekilde protokoller kimlik doğrulama ve SOAP-XML için kullanılır.
  • [C-1-7] AAA sunucu sertifikasını şu sayfada açıklandığı gibi işlemelidir: Hotspot 2.0 R3 spesifikasyonu.
  • [C-1-8], kablosuz ağ seçici üzerinden sağlanan temel hazırlık işlemini kullanıcı kontrolünü DESTEKLEMELİDİR.
  • [C-1-9] Passpoint yapılandırmalarını yeniden başlatmalar arasında kalıcı KORUMALIDIR.
  • [C-SR-1] Hükümler ve koşulları desteklemesi için ÖNEMLE ÖNERİLİR gösterir.
  • [C-SR-2] Mekan bilgisi özelliğini desteklemesi için ÖNEMLE ÖNERİLİR.

Genel bir Passpoint devre dışı bırakma kullanıcı kontrolü anahtarı sağlanırsa uygulamalar:

  • [C-3-1] Passpoint'in varsayılan olarak etkinleştirilmesi ZORUNLUDUR.
7.4.2.5. Kablosuz Konum (Kablosuz Gidiş Dönüş Süresi - RTT)

Cihaz uygulamaları:

Cihaz uygulamaları Kablosuz Konum desteği içeriyorsa ve üçüncü taraf uygulamalarına geri dönüyorsa:

  • [C-1-1], WifiRttManager API'lerini SDK dokümanları.
  • [C-1-2], android.hardware.wifi.rtt özellik bayrağını beyan etmelidir.
  • [C-1-3] Her RTT seri işlemi için kaynak MAC adresini rastgele hale getirmesi ZORUNLUDUR RTT'nin çalıştırıldığı Kablosuz arayüzünde yürütülmekte olan bir erişim noktası bir Erişim Noktası ile ilişkilendirilmez.
  • [C-1-4] 68. saniyede 80 MHz bant genişliğinde 2 metreye kadar kesinliğe sahip olması ZORUNLUDUR yüzdelik dilim (Kümülatif Dağılım İşlevi ile hesaplandığı şekliyle).
  • [C-SR-1] 1,5 metre hata payıyla bildirmesi için ÖNEMLE ÖNERİLİR 68. yüzde birlik dilimde 80 MHz bant genişliğinde ( Kümülatif Dağılım İşlevi).
7.4.2.6. Kablosuz Keepalive Yükleme

Cihaz uygulamaları:

  • Wi-Fi keepalive boşaltma desteği İÇERMELİDİR.

Cihaz uygulamaları Wi-Fi keepalive boşaltma desteği içeriyorsa üçüncü taraf uygulamalarına sunduğu işlevler:

  • [C-1-1] SocketKeepAlive API'sini DESTEKLEMELİDİR.
  • [C-1-2] Kablosuz ağ üzerinden en az üç eşzamanlı keepalive yuvasını DESTEKLEMELİDİR

Cihaz uygulamaları Wi-Fi keepalive boşaltma desteğini içermiyorsa onlar:

7.4.2.7. Wi-Fi Easy Connect (Cihaz Temel Hazırlık Protokolü)

Cihaz uygulamaları:

Cihaz uygulamaları Wi-Fi Easy Connect desteği içeriyorsa ve üçüncü taraf uygulamalarına yönelik olarak:

7.4.2.8. Kurumsal Kablosuz Sunucu Sertifikası Doğrulama

Kablosuz sunucu sertifikası doğrulanmamışsa veya kablosuz ağ sunucusu alan adı ayarlanmadı, cihaz uygulamaları:

  • [C-SR-1] Kullanıcıya bir seçenek sunmaması ÖNEMLE ÖNERİLİR Kurumsal kablosuz ağı manuel olarak ekleme Ayarlar uygulamasında.
7.4.2.9. İlk Kullanımda Güven (TOFU)

Cihaz uygulamaları, İlk kullanıma güven seçeneğini (TOFU) ve kullanıcının WPA/WPA2/WPA3-Enterprise yapılandırmalarını tanımlamasına izin ver. şunu yaparlar:

  • [C-4-1], kullanıcıya Kullanım Şartları'nı kullanma seçeneği sunmalıdır.

7.4.3. Bluetooth

Cihaz uygulamaları Bluetooth Ses profilini destekliyorsa:

  • Gelişmiş Ses Codec'lerini ve Bluetooth Ses Codec'lerini DESTEKLEMELİDİR (ör. LDAC)

HFP, A2DP ve AVRCP'yi destekleyen cihaz uygulamaları:

  • Toplamda en az 5 bağlı cihazı DESTEKLEMELİDİR.

Cihaz uygulamalarında android.hardware.vr.high_performance bildiriliyorsa şu özelliklere sahiptir:

  • [C-1-1] Bluetooth 4.2 ve Bluetooth LE Veri Uzunluğu Uzantısı'nı DESTEKLEMELİDİR.

Android'de Bluetooth ve Bluetooth Düşük Enerji desteği vardır.

Cihaz uygulamaları Bluetooth ve Bluetooth desteği içeriyorsa Düşük Enerji ile:

  • [C-2-1] İlgili platform özelliklerini BELİRTMELİDİR (android.hardware.bluetooth ve android.hardware.bluetooth_le sırasıyla) ve platform API'lerini uygulamaya koymalıdır.
  • Cihaza uygun şekilde A2DP, AVRCP, OBEX, HFP vb..

Cihaz uygulamaları Bluetooth Düşük Enerji (BDE) desteği içeriyorsa:

  • [C-3-1] android.hardware.bluetooth_le donanım özelliğinin beyan edilmesi ZORUNLUDUR.
  • [C-3-2] GATT (genel özellik profili) tabanlı Bluetooth'un etkinleştirilmiş olması GEREKİR SDK dokümanlarında açıklandığı şekilde API'ler ve android.bluetooth özelliklerinden yararlanabilirsiniz.
  • [C-3-3] BluetoothAdapter.isOffloadedFilteringSupported() ScanFilter için filtreleme mantığı API sınıfları uygulanır.
  • [C-3-4] Belirtmek için BluetoothAdapter.isMultipleAdvertisementSupported() desteklenip desteklenmediğine bakmalısınız.
  • [C-3-5] artık bir Çözümlenebilir Özel Adres (RPA) zaman aşımının uygulanması ZORUNLUDUR 15 dakikadan fazla uzun süreli ve kullanıcı gizliliğini korumak için adresi zaman aşımı olduğunda döndürün Cihaz, tarama veya reklam için BDE'yi aktif olarak kullanıyorsa. Zamanlama saldırılarını önlemek için zaman aşımı aralıkları da rastgele belirlenmelidir 5-15 dakika arasında değişir.

  • Filtreleme mantığının Bluetooth yonga setine boşaltılmasını DESTEKLEMELİDİR ScanFilter API'yi uygularken.

  • Toplu taramanın Bluetooth yonga setine boşaltılmasını DESTEKLEMELİDİR.

  • En az 4 alanlı çoklu reklamı DESTEKLEMELİDİR.

Cihaz uygulamaları Bluetooth LE'yi destekliyorsa ve için:

  • [C-4-1], okuma değerinin etkinleştirilmesi/devre dışı bırakılması için bir kullanıcıya destek vermesi ZORUNLUDUR BluetoothAdapter.isBleScanAlwaysAvailable() System API üzerinden.

Cihaz uygulamaları Bluetooth LE ve İşitme Cihazları desteği içeriyorsa Profil, aşağıda açıklandığı gibi Bluetooth LE ile İşitme Cihazı Sesi Desteği:

Cihaz uygulamaları Bluetooth veya Bluetooth Düşük Enerji desteği içeriyorsa onlar:

  • [C-6-1], herhangi bir Bluetooth meta verisine (tarama gibi) erişimi KISITLAMALIDIR sonuçlar) yer almadığı sürece, istekte bulunan uygulama bir android.permission.ACCESS_FINE_LOCATION mevcut ön plan/arka plan durumuna göre izin kontrolü yapar.

Cihaz uygulamaları Bluetooth veya Bluetooth Düşük Enerji desteği içeriyorsa Ayrıca uygulama manifest'inde geliştiricinin, Bluetooth'tan konum türetmediklerini, şunları yaparlar:

Cihaz uygulamalarıtrue BluetoothAdapter.isLeAudioSupported() API'yi tercih ederse:

  • [C-7-1] unicast istemcisini DESTEKLEMELİDİR.
  • [C-7-2] 2M PHY'Yİ DESTEKLEMELİDİR.
  • [C-7-3] LE Genişletilmiş Reklamları DESTEKLEMELİDİR.
  • [C-7-4] bir CIG'de en az 2 CIS bağlantısını DESTEKLEMELİDİR.
  • [C-7-5] BAP tek yayın istemcisi, CSIP set koordinatörü, MCP sunucusu ve VCP denetleyicisi ve CCP sunucusu aynı anda.
  • [C-SR-1] HAP tek yayın istemcisini etkinleştirmek için ÖNEMLE ÖNERİLİR.

Cihaz uygulamalarıtrue BluetoothAdapter.isLeAudioBroadcastSourceSupported() API'yi tercih ederse:

  • [C-8-1] BÜYÜK bir alanda en az 2 BIS bağlantısını DESTEKLEMELİDİR.
  • [C-8-2] BAP yayın kaynağı, BAP yayın asistanının etkinleştirilmesi ZORUNLUDUR olanak tanır.
  • [C-8-3] LE Periodic reklamcılığını DESTEKLEMELİDİR.

Cihaz uygulamalarıtrue BluetoothAdapter.isLeAudioBroadcastAssistantSupported() API'yi tercih ederse:

  • [C-9-1] PAST'i (Periyodik Reklam Senkronizasyon Aktarımı) DESTEKLEMELİDİR.
  • [C-9-2] LE Periodic reklamcılığını DESTEKLEMELİDİR.

Cihaz uygulamaları FEATURE_BLUETOOTH_LE bildiriyorsa:

  • [C-10-1] için RSSI ölçümlerinin aktarım yapan bir referans cihazdan 1 m mesafedeki ölçümler Görüş alanında ADVERTISE_TX_POWER_HIGH.
  • [C-10-2] Kanal başına sapmaları azaltmak için Rx/Tx düzeltmeleri içermesi ZORUNLUDUR Böylece 3 kanalın her birindeki, antenin her birindeki ölçümler (birden fazla kullanılıyorsa), ölçümler.

  • [C-SR-2] Rx ofsetinin ölçülmesi ve telafi edilmesi ÖNERİLİR ortalama BLE RSSI'nin, ADVERTISE_TX_POWER_HIGH konumunda veri aktarmasına olanak tanıyan referans cihaz, "paralel düzlemlerde" olacak şekilde birbirine bakan ekranlarla girin.

  • [C-SR-3] Tx ofsetinin ölçülmesi ve telafi edilmesi ÖNERİLİR Bir referanstan tarama yaparken ortanca BLE RSSI'nin -60 dBm +/-10 dB olduğundan emin olun 1 m mesafeye yerleştirilmiş ve ADVERTISE_TX_POWER_HIGH, cihazların bulunduğu yöne odaklanıyor. "paralel uçaklar" aynı yöne bakan ekranlarla birleştirin.

    [C-10-3] ve [C-10-4] gereksinimleri 2.2.1'e taşındı. Donanım.

  • [C-10-3] Rx ofsetini ölçmeli ve ortanca BLE RSSI'nin, ADVERTISE_TX_POWER_HIGH hattında veri gönderen referans cihaz.
  • [C-10-4] Tx ofseti için ölçülmeli ve denkleştirme GEREKİR Bir referanstan tarama yaparken ortanca BLE RSSI'nin -55 dBm +/-10 dB olduğundan emin olun 1 m mesafeye yerleştirilmiş ve ADVERTISE_TX_POWER_HIGH

Bulunmayla İlgili Kalibrasyon Şartları.

Cihaz uygulamaları Bluetooth 5.0 sürümünü destekliyorsa:

  • [C-SR-4] Aşağıdakiler için destek sağlaması ÖNEMLE ÖNERİLİR:
    • LE 2M PHY
    • LE Codec PHY
    • LE Advertising Uzantısı
    • Periyodik reklamcılık
    • En az 10 reklam seti
    • En az 8 LE eşzamanlı bağlantı. Her bağlantı, bağlantı topolojisi rollerinden bahsedeceğiz.
    • LE Link Katmanı Gizliliği
    • Bir "çözüm listesi" en az 8 giriş olmalıdır

7.4.4. Near Field Communication

Cihaz uygulamaları:

  • Yakın Saha için bir alıcı-verici ve ilgili donanım İÇERMELİDİR İletişim (NFC).
  • [C-0-1] android.nfc.NdefMessage ve NFC desteği içermeseler bile veya android.nfc.NdefRecord API'leri sınıfları bir değeri temsil ettiğinden android.hardware.nfc özelliğini protokolden bağımsız veri temsili biçimindedir.

Cihaz uygulamaları NFC donanımı içeriyorsa ve bunları üçüncü taraf uygulamalarında:

  • [C-1-1], android.hardware.nfc özelliğini android.content.pm.PackageManager.hasSystemFeature() yöntemini kullanın.
  • NDEF mesajlarını aşağıdaki NFC aracılığıyla okuyup yazabilmesi ZORUNLUDUR aşağıdaki gibi düşünebilirsiniz:
  • [C-1-2] NFC Forumu okuyucusu/yazarı olarak hareket etme yeteneği OLMALIDIR (NFC Forum teknik spesifikasyonunda tanımlandığı şekilde) NFCForum-TS-DigitalProtocol-1.0) aşağıdaki NFC standartlarını kullanarak:
    • NfcA (ISO14443-3A)
    • NFCB (ISO14443-3B)
    • NfcF (JIS X 6319-4)
    • IsoDep (ISO 14443-4)
    • NFC Forum Etiketi Tür 1, 2, 3, 4, 5 (NFC Forumu tarafından tanımlanmıştır)
  • [C-SR-1] NDEF'yi okuma ve yazma özelliğine sahip olması ÖNEMLE ÖNERİLİR hem de ham veriler için aşağıdaki NFC standartlarını uygular. Lütfen NFC standartları Şiddetle ÖNERİLİR olarak belirtilirken, Gelecekteki bir sürüm için uyumluluk tanımının değiştirilmesi planlanıyor ZORUNLUDUR. Bu standartlar bu sürümde isteğe bağlıdır ancak zorunlu olacaktır kontrol edin. Şu uygulamanın bu sürümünü çalıştıran mevcut ve yeni cihazlar: Android'in bu gereksinimleri karşılaması artık teşvik ediliyor, gelecekteki platform sürümlerine geçiş yapabilirler.

  • [C-1-13] NFC keşfinde, desteklenen tüm teknolojilerin yoklanması ZORUNLUDUR yatırım yapmanız önemlidir.

  • Cihaz uyanıkken NFC keşif modunda OLMALIDIR. ve kilit ekranının kilidinin açık olması gerekir.

  • Belgenin barkodunu ve URL'sini (kodlanmışsa) okuyabilmesi gerekir. Thinfilm NFC Barkodu ürünler.

JIS, ISO ve NFC için herkese açık bağlantıların kullanılamadığını unutmayın Yukarıda belirtilen forum spesifikasyonları.

Android, NFC Ana Kart Emülasyonu (HCE) modunu destekler.

Cihaz uygulamaları HCE (HCE) özellikli bir NFC denetleyici yonga seti içeriyorsa ( NfcA ve/veya NfcB) ya da Uygulama Kimliği (AID) yönlendirmesini destekleyen,

  • [C-2-1], android.hardware.nfc.hce özellik sabitini BİLDİRMELİDİR.
  • [C-2-2] NFC HCE API'lerini Android SDK'da tanımlanmıştır.

Cihaz uygulamaları HCE özellikli bir NFC denetleyici yonga seti içeriyorsa ve üçüncü taraf uygulamalarda bu özelliği uyguluyorsanız:

Cihaz uygulamaları, bu makalede açıklandığı gibi genel NFC desteği içeriyorsa bölümü ve desteği MIFARE teknolojilerini (MIFARE Classic, MIFARE Ultralight, MIFARE Classic'teki NDEF) okuyucu/yazar rolüne göre:

  • [C-4-1] Android SDK'sı.
  • [C-4-2] com.nxp.mifare özelliğini android.content.pm.PackageManager.hasSystemFeature() yöntemidir. Bunun standart bir Android özelliği olmadığını ve bu nedenle android.content.pm.PackageManager sınıfında sabit olarak görünür.

7.4.5. Ağ iletişimi protokolleri ve API'ler

7.4.5.1. Minimum Ağ Yeteneği

Cihaz uygulamaları:

  • [C-0-1] Bir veya daha fazla veri ağı iletişimini kullanır. Cihaz uygulamalarının özellikle 200 Kbit/sn hızında veya daha yüksek hıza sahip en az bir veri standardı olmalıdır. Örnekler EDGE, HSPA, EV-DO, EV-DO ve 802.11g, Ethernet ve Bluetooth PAN.
  • Ayrıca en az bir yaygın kablosuz veri için destek İÇERMELİDİR standart olduğunda (ör. 802.11 (Kablosuz)) bir fiziksel ağ standardı (ör. Ethernet) birincil veri bağlantısıdır.
  • Birden fazla veri bağlantısı biçimi uygulayamaz.
7.4.5.2. IPv6

Cihaz uygulamaları:

  • [C-0-2] Bir IPv6 ağ yığını içermesi ve IPv6'yı desteklemesi ZORUNLUDUR yönetilen API'leri kullanarak iletişim kurma, örneğin java.net.Socket ve java.net.URLConnection ve AF_INET6 gibi yerel API'ler soketler.
  • [C-0-3] IPv6'nın varsayılan olarak ETKİNLEŞTİRİLMESİ GEREKİR.
    • IPv6 iletişiminin IPv4 kadar güvenilir olduğundan emin olunması ZORUNLUDUR. Örneğin:
      • [C-0-4] Doz modunda IPv6 bağlantısı ZORUNLUDUR.
      • [C-0-5] Hız sınırlama işlemi, cihazın IPv6'yı kaybetmesine neden OLMAMALIDIR RA ömür boyu kullanan IPv6 uyumlu bir ağda en az 180 saniye uzunluğunda olmalıdır.
  • [C-0-6] Üçüncü taraf uygulamalarına doğrudan IPv6 bağlantısı SAĞLANMALIDIR bağlıyken, IP adresi veya adres bilgileri olmadan bir IPv6 ağına cihazda yerel olarak yapılan bağlantı noktası çevirisidir. Her iki yönetilen API de (ör. Socket#getLocalAddress veya Socket#getLocalPort) ve getsockname() veya IPV6_PKTINFO gibi NDK API'lerinin IP'yi döndürmesi ZORUNLUDUR e-postada paket göndermek ve almak için kullanılan ağıdır ve internet (web) sunucuları için kaynak IP ve bağlantı noktası olarak görünür.

Gerekli IPv6 desteği düzeyi, aşağıda gösterildiği gibi ağ türüne bağlıdır: aşağıdaki şartlar karşılanmalıdır.

Cihaz uygulamaları kablosuz bağlantıyı destekliyorsa:

  • [C-1-1], kablosuz ağda çift yığınlı ve yalnızca IPv6 işlemini DESTEKLEMELİDİR.

Cihaz uygulamaları Ethernet'i destekliyorsa:

  • [C-2-1] aşağıdaki cihazlarda çift yığınlı ve yalnızca IPv6 işlemini DESTEKLEMELİDİR Ethernet'e dokunun.

Cihaz uygulamaları, hücresel veriyi destekliyorsa:

  • [C-3-1], Hücresel'i tıklayın.

Cihaz uygulamaları birden fazla ağ türünü (ör. Kablosuz ağ bağlantısı ve hücresel veri) kullandığında:

  • [C-4-1] Her ağda yukarıdaki koşulların aynı anda karşılanması GEREKİR Cihaz aynı anda birden fazla ağ türüne bağlandığında.
7.4.5.3. Giriş Portalları

Doğrulama amacıyla yönlendirme yapan portal, bir web sitesini ziyaret etmek için oturum açmayı internet erişimi edinin.

Cihaz uygulamaları, android.webkit.Webview API, onlar:

  • [C-1-1] amacı işlemek için giriş portalı uygulaması SAĞLAMALIDIR ACTION_CAPTIVE_PORTAL_SIGN_IN ve giriş portalı giriş sayfasını, bu niyeti göndererek System API çağrısı ConnectivityManager#startCaptivePortalApp(Network, Bundle).
  • [C-1-2] Doğrulama amacıyla doğrulama portallarını algılamak ve giriş yapmayı desteklemek ZORUNLUDUR cihaz bağlandığında giriş portalı uygulaması aracılığıyla hücresel/mobil ağ, Kablosuz, Ethernet dahil herhangi bir ağ türüne veya Bluetooth'u açın.
  • [C-1-3] cleartext DNS kullanarak giriş portallarına giriş yapmayı DESTEKLEMELİDİR ayarlanacak şekilde yapılandırıldığından emin olun.
  • [C-1-4] android.net.LinkProperties.getPrivateDnsServerName ve android.net.LinkProperties.isPrivateDnsActive açıkça iletişim kurmayan tüm ağ trafiği için doğrulama amacıyla yönlendirme yapan bir portala sahiptir.
  • [C-1-5] Kullanıcı bir girişe giriş yaparken portal, uygulamaların kullandığı varsayılan ağ (uygulamanın döndürdüğü ConnectivityManager.getActiveNetwork ConnectivityManager.registerDefaultNetworkCallback, ve Java.net.Socket gibi Java ağ iletişimi API'leri tarafından varsayılan olarak kullanılır Connect() gibi yerel API'ler) kullanılabilir internet erişimi sağlayan bir sağlayıcı kullanabilirsiniz.

7.4.6. Senkronizasyon Ayarları

Cihaz uygulamaları:

  • [C-0-1] özelliğinin ana otomatik senkronizasyon ayarının varsayılan olarak açık olması gerekir. getMasterSyncAutomatically() yöntemi “true” değerini döndürür.

7.4.7. Veri Tasarrufu

Cihaz uygulamaları sayaçlı bağlantı içeriyorsa:

  • [C-SR-1] Veri tasarrufu modunu sağlaması ÖNEMLE ÖNERİLİR.

Cihaz uygulamaları veri tasarrufu modunu sağlıyorsa:

  • [C-1-1] ConnectivityManager içindeki tüm API'leri DESTEKLEMELİDİR SDK dokümanlarında açıklandığı şekilde sınıflandırılması

Cihaz uygulamaları veri tasarrufu modunu sağlamıyorsa:

7.4.8. Güvenlik Unsurları

Cihaz uygulamaları, Open Mobile API özellikli uygulamayı destekliyorsa üçüncü taraf uygulamalarının kullanımına sunmak için:

7.4.9. ultra geniş bant

Cihaz uygulamaları, kullanıma sunması ve işlevselliği üçüncü taraf bir uygulamaya sunması, şunu yaparlar:

  • [C-1-1] android.uwb'de ilgili Android API'sini uygulaması ZORUNLUDUR.
  • [C-1-2] android.hardware.uwb donanım özelliği işaretini BİLDİRMELİDİR.
  • [C-1-3] Android'de tanımlanan ilgili tüm ultra geniş bant profillerini DESTEKLEMELİDİR hakkında bilgi edindiniz.
  • [C-1-4] Kullanıcının ultra geniş bant seçeneğine geçiş yapmasına izin vermek için kullanıcıya uygun bir fırsat SUNMALIDIR durumu gösterir.
  • [C-1-5] Ultra geniş bant radyo kullanan uygulamaların UWB_RANGING iznini barındırması ZORUNLUDUR (NEARBY_DEVICE izin grubunun altında).
  • [C-SR-1] İlgili uygunluğu geçmeleri ve standart kuruluşlar tarafından tanımlanan sertifika testleri FIRA ve CC ve ÖAR.
  • [C-1-6] Mesafe ölçümlerinin %95 için +/-15 cm dahilinde olması ZORUNLUDUR 1 metre uzaklıktaki görüş çizgisinde bulunan ölçümlerin yansıtmayan bir oda vardır.
  • [C-1-7] Mesafe ölçümlerinin ortanca değerinin 1 m'de olması ZORUNLUDUR [0,75 m, 1,25 m] dahilinde olduğundan, referans cihazdan mesafe, DUT'nin üst kenarından ölçülür. yukarı bakacak ve 45 derece eğik tutularak ölçülür.
  • [C-SR-2] Ölçüm ayarlama adımlarını uygulamanız ÖNEMLE ÖNERİLİR belirtilen Bulunmayla İlgili Kalibrasyon Şartları.

7.5. Kameralar

Cihaz uygulamaları en az bir kamera içeriyorsa:

  • [C-1-1], android.hardware.camera.any özellik bayrağını beyan etmelidir.
  • [C-1-2] Bir uygulamanın eş zamanlı olarak tahsis etmesi mümkün OLMALIDIR 3 RGBA_8888 bit eşlemi tarafından üretilen resimlerin boyutuna eşit kamera açık durumdayken cihazdaki en yüksek çözünürlüklü kamera sensörü temel önizleme ve görüntü yakalamanın amacıdır.
  • [C-1-3] Önceden yüklenmiş varsayılan kamera uygulamasının amaçları işleme MediaStore.ACTION_IMAGE_CAPTURE, MediaStore.ACTION_IMAGE_CAPTURE_SECURE, veya MediaStore.ACTION_VIDEO_CAPTURE, önce resim meta verisinde kullanıcının konumunu kaldırmak, alıcı uygulama bunu yapmazsa, alıcı uygulamaya göndererek ACCESS_FINE_LOCATION var.

Cihaz uygulamaları HDR 10 bit çıkış özelliğini destekliyorsa:

  • [C-2-1] her kamera cihazında en azından HLG HDR profilini DESTEKLEMELİDİR destekler.
  • [C-2-2] birincil arka yüz veya birincil ön kamera.
  • [C-SR-1] Hem birincil cihazlarda 10 bit çıkışı desteklemeleri ÖNERİLİR kameralar.
  • [C-2-3] tüm cihazlar için aynı HDR profillerini DESTEKLEMELİDİR Mantıksal bir kameranın BACKWARD_COMPATIBLE özellikli fiziksel alt kameraları ve mantıksal kameranın kendisini gösteriyor.

10 bit HDR'yi destekleyen ve android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO API:

  • [C-3-1] Geriye dönük uyumlu tüm fiziksel cihazlar arasında geçiş mantıksal kameradaki CONTROL_ZOOM_RATIO kontrolünü kullanarak kameralara geçin.

7.5.1. Arka Kamera

Arka kamera, arka yüzün yanında bulunan kameradır. ekranın karşısındaki cihaz; yani görselin uzak tarafındaki sahneleri geleneksel bir kamera gibi.

Yeni koşullarla başlayın

Arka kamera, sahnelerin uzak tarafındaki resimleri gösteren, dünyaya bakan bir kameradır. geleneksel bir kamera gibi; avuç içi cihazlarda kullanılan kamera, cihazın yan tarafında, ekranın karşısında bulunan bir alan adı görüntüler.

Yeni şartları sonlandırma

Cihaz uygulamaları:

  • Arka yüz kamerası KULLANILMALIDIR.

Cihaz uygulamaları en az bir arka kamera içeriyorsa:

  • [C-1-1] android.hardware.camera özellik bayrağını bildirmeli ve android.hardware.camera.any.
  • [C-1-2] en az 2 megapiksel çözünürlüğünde olması ZORUNLUDUR.
  • Donanım otomatik odaklama veya yazılımda otomatik odaklama özellikleri uygulanmalıdır. kamera sürücüsünde (uygulama yazılımına göre şeffaf) görürsünüz.
  • Sabit odaklı veya EDOF (genişletilmiş alan derinliği) donanıma sahip OLABİLİR.
  • Flaş İÇEREBİLİR.

Kamerada flaş varsa:

  • [C-2-1] çalışırken flaş lambası YATILMAMALIDIR. android.hardware.Camera.PreviewCallback örnek kaydedildi (Uygulama açık bir şekilde etkinleştirilmediyse, Kamera önizleme yüzeyinde FLASH_MODE_AUTO veya FLASH_MODE_ON özelliklerini etkinleştirerek flash'ı açın. bir Camera.Parameters nesnesinin tanımını yapabilirsiniz. Bu kısıtlamanın cihazın yerleşik sistem kamera uygulaması (yalnızca üçüncü taraf Camera.PreviewCallback kullanan uygulamalar.

7.5.2. Ön Yüz Kamera

Ön kamera, cihazın aynı tarafında bulunan bir kameradır. ekran olarak; yani genelde kullanıcıyı ima etmek için kullanılan bir kamera ve benzer uygulamalarda kullanılır.

Yeni koşullarla başlayın

Ön kamera, genellikle görüntü almak için kullanılan video konferans ve benzeri uygulamalar için kullanıcı; avuç içi cihazda Bu, cihazın ekranla aynı tarafında bulunan bir kameradır.

Yeni şartları sonlandırma

Cihaz uygulamaları:

  • Ön kamera içerebilir.

Cihaz uygulamaları en az bir ön kamera içeriyorsa:

  • [C-1-1] android.hardware.camera.any özellik bayrağını bildirmeli ve android.hardware.camera.front.
  • [C-1-2] Çözünürlüğü en az VGA (640x480 piksel) olmalıdır.
  • [C-1-3] için varsayılan olarak ön kamera KULLANILMAMALIDIR. Kamera API'si ve API'yi ön kamerayı farklı bir şekilde değerlendirecek şekilde YAPILANMAMALIDIR. Varsayılan arka kamera (cihazdaki tek kamera olsa bile)
  • [C-1-4] Kamera önizlemesinin, orijinal kameraya göre yatay olarak mevcut uygulama aşağıdaki yönlerden birinde Kameranın ekrana bir çağrıyla döndürülecektir. android.hardware.Camera.setDisplayOrientation() yöntemidir. Öte yandan, önizlemenin cihazın varsayılan değeri boyunca yansıtılması ZORUNLUDUR geçerli uygulama açıkça istekte bulunmadığında yatay eksen kameranın döndürülmesini sağlayan android.hardware.Camera.setDisplayOrientation() yöntemidir.
  • [C-1-5] Çekilen nihai hareketsiz resim veya video akışlarını YAZMAMALIDIR uygulama geri çağırmalarına döndürülür ya da medya depolama alanına bağlı olarak çalışır.
  • [C-1-6], postview tarafından gösterilen resmi aynı şekilde YAZMALIDIR içe aktarmanızı sağlar.
  • Şu özellikleri (ör. otomatik odaklama, flaş vb.) içerebilir arka yüz kameraları bölüm 7.5.1'de açıklandığı gibi.

Cihaz uygulamaları, kullanıcı tarafından döndürülebiliyorsa (örneğin, ivme ölçer aracılığıyla otomatik olarak veya kullanıcı girişi aracılığıyla manuel olarak):

  • [C-2-1] Kamera önizlemesinin cihazın geçerli yönünü görebilirsiniz.

7.5.3. Harici Kamera

Yeni koşullarla başlayın

Harici kamera, fiziksel olarak takılabilen veya kameradan çıkarılabilen bir kameradır. cihaz uygulamasını istediği zaman izleyebilecek ve USB gibi kameralar.

Yeni şartları sonlandırma

Cihaz uygulamaları:

  • Harici kamera desteği içerebilir her zaman bağlantılı.

Harici kamera desteği içeren cihaz uygulamaları:

  • [C-1-1] platform özelliği işaretinin bildirilmesi ZORUNLUDUR android.hardware.camera.external ve android.hardware camera.any.
  • [C-1-2] Harici kamera USB ana makine bağlantı noktası üzerinden bağlanır.
  • [C-1-3] Fiziksel harici kamera cihazıyla kamera CTS testlerini geçmelidir bağlı. Kamera CTS testiyle ilgili ayrıntıları source.android.com adresinde bulabilirsiniz.
  • Veri aktarımını sağlamak için MJPEG gibi video sıkıştırmalarını DESTEKLEMELİ yüksek kaliteli kodlanmamış akışlar (ör. ham veya bağımsız olarak sıkıştırılmış resim) akış) sunar.
  • Birden fazla kamerayı destekleyebilir.
  • Kamera tabanlı video kodlamayı destekleyebilir.

Kamera tabanlı video kodlama destekleniyorsa:

  • [C-2-1] Aynı anda kodlanmamış / MJPEG akışı (QVGA veya daha yüksek çözünürlük) için erişilebilir olması ZORUNLUDUR en iyi uygulamaları paylaşacağım.

7.5.4. Kamera API'si Davranışı

Android, kameraya erişmek için iki API paketi içerir. Yenisi android.hardware.camera2 API'si, uygulamaya alt düzey kamera kontrolü sunar. verimli sıfır kopya seri çekim/akış akışları ve her kare için pozlama, kazanç, beyaz dengesi kazanımları, renk dönüştürme, parazit giderme, keskinleştirme, ve diğerleri.

Eski API paketi (android.hardware.Camera), şu ülkelerde kullanımdan kaldırıldı olarak işaretlendi: Android 5.0, yani uygulamaların kullanması için hâlâ kullanılabilir durumda olması gerekir. Android cihaz uygulamalarında, API'nin aşağıda açıklandığı gibi sürekli desteğinin sağlanması ZORUNLUDUR Android SDK'sında kullanabilirsiniz.

Kullanımdan kaldırılan android.hardware.Kamera sınıfı arasındaki ortak özelliklerin tümü ve yeni android.hardware.camera2 paketinin eşdeğer performansa sahip olması ZORUNLUDUR ve kaliteyi artırır. Örneğin, eşdeğer ayarlarla otomatik odaklama hızı ile doğruluğu aynı olmalı ve çekilen görüntülerin kalitesi aynı olmalıdır. İki API'nin farklı anlamlarına bağlı özellikler hız veya kalitenin eşleşmesi zorunlu değildir, ancak bu eşleşmelerin yardımcı olabilirsiniz.

Cihaz uygulamalarının, API'leri kullanabilirsiniz. Cihaz uygulamaları:

  • [C-0-1] Önizleme için android.hardware.PixelFormat.YCbCr_420_SP KULLANILMALIDIR bir uygulama hiçbir zaman çağrılmadığında uygulama geri çağırmalarına sağlanan veriler android.hardware.Camera.Parameters.setPreviewFormat(int).
  • Bir uygulama, [C-0-2] kodlu bir android.hardware.Camera.PreviewCallback kaydeder ve sistem, onPreviewFrame() yöntemini ve önizlemeyi çağırır. biçimi YCbCr_420_SP şeklindedir. Bayttaki veriler[] onPreviewFrame() içine aktarılır. Diğer bir deyişle, NV21 varsayılan değer olmalıdır.
  • [C-0-3] (android.graphics.ImageFormat.YV12 sabit) android.hardware.Camera için ön ve arka kameralar. (Donanım video kodlayıcı ve kamera herhangi bir yerel piksel biçimini kullanabilir, ancak uygulamanın, YV12'ye dönüştürmeyi DESTEKLEMELİDİR.)
  • [C-0-4] android.hardware.ImageFormat.YUV_420_888 ve çıkış olarak android.hardware.ImageFormat.JPEG biçimleri Şu işlemi yapan android.hardware.camera2 cihazlar için android.media.ImageReader API: REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE reklamını yap özelliği android.request.availableCapabilities için geçerlidir.
  • [C-0-5] yine de Kamera API'sinin tamamını uygulaması ZORUNLUDUR Android SDK dokümanlarına dahil edilir (cihazın kullanım veya donanımla otomatik odaklama veya diğer özellikleri içerir. Örneğin, fotoğraf makinelerinde otomatik odaklama eksikliği kayıtlı olan herkesi android.hardware.Camera.AutoFocusCallback örnek (ancak bu sorguda kamerayla alaka düzeyi yüksek olabilir.) Bu özellik yalnızca öndeki kullanıcıların kameralar; ön kameraların çoğu desteklenmese de API geri çağırmalarının açıklandığı gibi "sahte" olması gerekir.
  • [C-0-6] Her parametre adını tanıması ve dikkate alması ZORUNLUDUR değeri sabit bir değer olarak android.hardware.Camera.Parameters ve android.hardware.camera2.CaptureRequest sınıfını kapsar. Öte yandan, cihaz uygulamaları dize sabit değerlerini SAĞLAMAMALI veya TANIMMAMALIDIR. bunların dışındaki android.hardware.Camera.setParameters() yöntemine aktarıldı android.hardware.Camera.Parameters üzerinde sabit değerler olarak belgelenir. Yani, aşağıdaki durumlarda cihaz uygulamalarının tüm standart Kamera parametrelerini desteklemesi ZORUNLUDUR: donanımlarına izin verir ve özel Kamera parametre türlerini DESTEKLEMEMELİDİR. Örneğin, görüntü yakalamayı destekleyen cihaz uygulamaları, Yüksek dinamik aralık (HDR) görüntüleme teknikleri kullanıldığında kamera parametresinin DESTEKLENMESİ GEREKİR Camera.SCENE_MODE_HDR
  • [C-0-7] android.info.supportedHardwareLevel özelliğini Android SDK'sında açıklandığı şekilde kullanmanız ve uygun çerçeve özelliği bayraklarını inceleyin.
  • [C-0-8] kendi kamera özelliklerini de beyan etmelidir. Şu yolla android.hardware.camera2: android.request.availableCapabilities mülk ve uygun özellik bayraklarını beyan etmelisiniz; Kamera cihazlarından herhangi biri ise özellik bayrağının tanımlanması ZORUNLUDUR özelliği destekler.
  • [C-0-9] Camera.ACTION_NEW_PICTURE GEREKİR kamera tarafından yeni bir fotoğraf çekildiğinde ve resim, medya mağazasına eklendi.
  • [C-0-10] Camera.ACTION_NEW_VIDEO cihazını YAYINLAMALIDIR kamera tarafından her yeni video kaydedildiğinde ve üçüncü bir kameranın girişi resim, medya mağazasına eklendi.
  • [C-0-11] Tüm kameraların desteği sonlandırılan android.hardware.Camera API'ye android.hardware.camera2 üzerinden de erişilebilir API'ye gidin.
  • [C-0-12] Aşağıdakiler dahil olmak üzere yüz görünümünün DEĞİŞTİRİLMEMEMESİ gerekir. ancak yüz geometrisini, yüz ten rengini veya yüz özelliklerini değiştirmekle sınırlı değildir. herhangi bir android.hardware.camera2 için cilt yumuşatma veya android.hardware.Camera API'ye gidin.
  • [C-SR-1] Birden fazla RGB kamerası olan cihazlar için ve aynı yöne bakan bir pozisyonda aşağıdaki özelliklere sahip mantıksal bir kamera cihazının desteklenmesi ÖNERİLİR: özellik CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA, oluşan tüm RGB kameralardan oluşur.

Cihaz uygulamaları, üçüncü taraf uygulamalarına özel bir kamera API'si sağlıyorsa onlar:

7.5.5. Kamera Yönü

Cihaz uygulamalarında ön veya arka kamera varsa, bu tür kameralar:

  • [C-1-1] Kameranın uzun boyutu ile aynı hizaya getirilmelidir. ekranın uzun boyutunu seçebilirsiniz. Başka bir deyişle, cihaz yatay yönde tutulduğunda yönünde, kameraların resimleri yatay yönde çekmesi ZORUNLUDUR. Bu cihazın doğal yönünden bağımsız olarak uygulanır; yani aynı zamanda hem dikey birincil cihazları hem de dikey birincil cihazları kullanır.

Aşağıdaki ölçütlerin tümünü karşılayan cihazlar yukarıdaki koşuldan muaftır:

  • Cihazda katlanabilir veya menteşeli gibi değişken geometriye sahip ekranlar kullanılıyor. görüntüler.
  • Cihazın kat veya menteşe durumu değiştiğinde cihaz dikey-birincilden yatay-birincil yönlere (veya tam tersi) doğru yapılandırmaya çalışın.

Yeni koşullarla başlayın

  • Kullanıcı tarafından döndürülemeyen cihaz uygulamaları (örneğin, otomotiv cihazları gibi.

Yeni şartları sonlandırma

7.6. Bellek ve Depolama

7.6.1. Minimum Bellek ve Depolama

Cihaz uygulamaları:

  • [C-0-1] ŞUNU İÇERMELİDİR: İndirme Yöneticisi uygulamaların veri dosyalarını indirmek için kullanabileceği ve şunları yapması ZORUNLUDUR: boyutu en az 100 MB olan dosyaları varsayılan olarak indirmek "önbellek" konum.

7.6.2. Uygulama Paylaşılan Depolama Alanı

Cihaz uygulamaları:

  • [C-0-1] uygulamalar tarafından paylaşılmak üzere depolama alanı SUNMALIDIR (çoğu zaman tavsiye edilir). "paylaşılan harici depolama", "uygulama paylaşılan depolama alanı" olarak veya Linux tarafından "/sdcard" yolu monte edildiğini unutmayın.
  • [C-0-2] Varsayılan olarak, diğer veya depolama alanının bir dahili depolama bileşeni veya çıkarılabilir depolama ortamı (ör. Dijital kart yuvası).
  • [C-0-3] Uygulama paylaşılan depolama alanının doğrudan Linux yoluna EKLENMESİ GEREKİR sdcard veya sdcard öğesinden gerçek ekleme işlemine Linux sembolik bir bağlantısı ekleyin puan.
  • [C-0-4] ETKİNLEŞTİRİLMELİDİR kapsamlı depolama varsayılan olarak API düzeyi 29 veya üstünü hedefleyen uygulamalar (aşağıdaki durum hariç):
    • Uygulama android:requestLegacyExternalStorage="true" istediğinde inceleyebilirsiniz.
  • [C-0-5] bu dosyalara MediaStore üzerinden erişildiğinde medya dosyaları (bu dosyalar hariç) Görüşme uygulaması ACCESS_MEDIA_LOCATION iznini saklı tutar.

Cihaz uygulamaları, takip etmek için:

  • Secure Digital (SD) kart yuvası gibi kullanıcı tarafından erişilebilen çıkarılabilir depolama alanı.
  • Android Açık Kaynak Projesi (AOSP).

Cihaz uygulamaları, yukarıdakileri karşılamak için çıkarılabilir depolama alanı kullanıyorsa olarak tanımlar:

  • [C-1-1] Kullanıcıyı uyaran bir bildirim mesajı veya pop-up kullanıcı arayüzü uygulanması ZORUNLUDUR depolama ortamı olmadığından emin olun.
  • [C-1-2] FAT biçiminde bir depolama ortamı (ör. SD kart) veya göstermek ZORUNLUDUR Kutunun ve diğer malzemelerin satın alınacağını unutmayın. aracının ayrı olarak satın alınması gerekir.

Cihaz uygulamaları, gereksinimleri karşılamak için kaldırılamayan depolama alanının bir kısmını kullanıyorsa karşılayamazsanız:

  • Paylaşılan dahili uygulamanın AOSP uygulamasını depolama alanına sahip olursunuz.
  • Depolama alanını, uygulamanın özel verileriyle PAYLAŞABİLİRSİNİZ.

Cihaz uygulamalarında USB çevre birimi modu destekli bir USB bağlantı noktası varsa onlar:

  • [C-3-1] Uygulamadaki verilere erişmek için bir mekanizma SAĞLANMALIDIR paylaşılan depolama alanı kullanır.
  • Her iki depolama yolundaki içerikleri de şeffaf bir şekilde Android'in medya tarayıcı hizmeti ve android.provider.MediaStore.
  • USB yığın depolama birimi KULLANILABİLİR, ancak aşağıdaki gereksinimlere uymak için Medya Aktarım Protokolü KULLANILMALIDIR şart koşuyor.

Cihaz uygulamalarında USB çevre birimi modu ve desteği olan bir USB bağlantı noktası varsa Medya Aktarım Protokolü;

  • Referans Android MTP ana makinesiyle uyumlu OLMALIDIR. Android Dosya Aktarımı.
  • 0x00 değerinde bir USB cihaz sınıfı Bildirilmelidir.
  • USB arayüzü adı "MTP" olarak BELİRTİLMELİDİR.

7.6.3. Kabul Edilebilir Depolama Alanı

Cihazın, televizyonun aksine mobil olması bekleniyorsa cihaz uygulamaları şunlardır:

  • [C-SR-1] Kabul edilebilir depolama alanını uzun vadede sabit bir konum elde etmeniz için veri kaybına/bozulmasına neden olur.

Çıkarılabilir depolama cihazı bağlantı noktası uzun vadede sabit bir konumdaysa Mesela pil bölmesinin veya başka bir koruyucu kapağın içinde cihaz uygulamaları şunlardır:

7.7. USB

Cihaz uygulamalarının USB bağlantı noktası varsa:

  • USB çevre birimi modunu DESTEKLEMELİ ve USB ana makine modunu DESTEKLEMELİDİR.
  • USB üzerinden veri sinyalinin devre dışı bırakılması DESTEKLENMELİDİR.

7.7.1. USB çevre birimi modu

Cihaz uygulamalarında çevre birimi modunu destekleyen bir USB bağlantı noktası varsa:

  • [C-1-1] Bağlantı noktasının standart bir USB ana makinesine bağlanabilmesi ZORUNLUDUR Type-A veya type-C USB bağlantı noktası.
  • [C-1-2] USB standardında doğru iSerialNumber değerini BİLDİRMELİDİR android.os.Build.SERIAL aracılığıyla cihaz tanımlayıcı.
  • [C-1-3] her Type-C direnci için 1,5A ve 3,0A şarj cihazlarını algılamalıdır standarttır ve reklamda yapılan değişikliklerin reklamdaki Type-C USB.
  • [C-SR-1] Bağlantı noktasında mikro B, mikro AB veya Type-C USB form faktörü KULLANILMALIDIR. Mevcut ve yeni Android cihazların bu şartlara uyması ÖNERİLİR gereksinimlerini karşılamanız gerekir. böylece gelecekteki platform sürümlerine geçiş yapabilirler.
  • [C-SR-2] Bağlantı noktasının cihazın altında BULUNMALIDIR (doğal yöne göre) veya ana ekran dahil olmak üzere tüm uygulamalarda (ana ekran dahil) cihazın yönü, alttaki bağlantı noktası olacak şekilde olmalıdır. Mevcut ve yeni Android cihazların bu gereksinimleri karşılaması ÖNEMLE ÖNERİLİR. Böylece, yeni sürüme geçebileceksiniz.
  • [C-SR-3] HS devresi sırasında 1,5 A akım çizmek için desteğin uygulanması GEREKİR USB Pil Şarj özelliği, düzeltme 1.2'de belirtildiği şekilde ve trafik için geçerlidir. Mevcut ve yeni Android cihazların bu şartlara uyması ÖNERİLİR gereksinimlerini karşılamanız gerekir. böylece gelecekteki platform sürümlerine geçiş yapabilirler.
  • [C-SR-4] Özel mülkiyeti desteklememesi Kesinlikle ÖNERİLİR Vbus voltajını varsayılan seviyelerin ötesinde değiştiren veya havuz/kaynak rollerinin bu şekilde olması, şarj cihazları veya standart USB Güç Aktarımı yöntemlerini destekleyen cihazlar Bu sırada "Kesinlikle ÖNERİLİR" olarak adlandırılır. standart C Tipi şarj cihazları.
  • [C-SR-5] Veri ve USB ve USB ana makine modunu desteklediğinde çok güçlü rol değişimi.
  • Yüksek voltajlı şarj için Güç Aktarımı'nı ve Ekran çıkışı gibi alternatif modlar.
  • Android Open Accessory (AOA) API'sini ve spesifikasyonunu Android SDK dokümanlarında bulabilirsiniz.

Cihaz uygulamaları USB bağlantı noktası içeriyorsa ve AOA'yı uyguluyorsa onlar:

  • [C-2-1] Donanım özelliği için destek beyanı GEREKLİDİR android.hardware.usb.accessory.
  • [C-2-2] USB yığın depolama sınıfının "android" dizesini içermesi ZORUNLUDUR , arayüz açıklamasının sonu iInterface USB yığın belleğinin dizesi

7.7.2. USB ana makine modu

Cihaz uygulamaları, ana makine modunu destekleyen bir USB bağlantı noktası içeriyorsa:

  • [C-1-1] Android SDK'sı ve donanım özelliği için destek beyanı GEREKLİDİR android.hardware.usb.host.
  • [C-1-2] Standart USB çevre birimlerini bağlama desteğinin uygulanması ZORUNLUDUR diğer bir deyişle, aşağıdakilerden birini yapmalıdır:
    • Cihaz üzerinde C tipi bağlantı noktasına sahip olun veya cihaz üzerinde uyarlanan kablolarla gönderin. özel bağlantı noktasını standart USB Type-C bağlantı noktasına (USB Type-C cihazı) bağlayın.
    • Cihaz üzerinde A tipi olması veya cihaz üzerinde uyarlanan bir kabloyla gönderilmesi özel bağlantı noktasını standart USB A Tipi bağlantı noktasına takın.
    • Cihaz üzerinde bir mikro AB bağlantı noktasına sahip olmalıdır. Bu bağlantı noktası, kablo uyarlamalı olarak gönderilmelidir. bağlantı noktası olacaktır.
  • [C-1-3] USB tip A veya mikro AB bağlantı noktalarını type-C bağlantı noktasına (fiş) bağlayabilirsiniz.
  • [C-SR-1] USB ses sınıfı Android SDK dokümanlarında gösterildiği gibi.
  • Ana makinedeyken bağlı USB çevre birimi cihazının şarj edilmesi DESTEKLENMELİDİR mod; belirtildiği gibi en az 1,5 A derecelik bir akım USB Type-C için USB Type-C Kablo ve Bağlayıcı Spesifikasyonu Düzeltmesi 1.2 veya Aşağı Akış Bağlantı Noktasını (CDP) Şarj Etme çıkış akım aralığını USB Pil Şarj özellikleri, düzeltme 1.2 kullanabilirsiniz.
  • USB Type-C standartları uygulanmalı ve desteklenmelidir.

Cihaz uygulamaları, ana makine modunu destekleyen bir USB bağlantı noktası ve USB ses dersi için:

  • [C-2-1] USB HID sınıfını DESTEKLEMELİDİR.
  • [C-2-2] aşağıdaki HID verilerinin algılanmasını ve eşlenmesini DESTEKLEMELİDİR USB HID Kullanım Tabloları'nda belirtilen alanlar ve Sesli Komut Kullanım İsteği KeyEvent sabit değerlerini aşağıda görebilirsiniz:
    • Kullanım Sayfası (0xC) Kullanım Kimliği (0x0CD): KEYCODE_MEDIA_PLAY_PAUSE
    • Kullanım Sayfası (0xC) Kullanım Kimliği (0x0E9): KEYCODE_VOLUME_UP
    • Kullanım Sayfası (0xC) Kullanım Kimliği (0x0EA): KEYCODE_VOLUME_DOWN
    • Kullanım Sayfası (0xC) Kullanım Kimliği (0x0CF): KEYCODE_VOICE_ASSIST

Cihaz uygulamaları, ana makine modunu destekleyen bir USB bağlantı noktası ve Depolama Erişim Çerçevesi (SAF) arasında ise:

  • [C-3-1], uzaktan bağlanmış herhangi bir MTP'yi (Medya Aktarım Protokolü) tanımalıdır. ve içeriklerini ACTION_GET_CONTENT üzerinden erişilebilir hale getirmek, ACTION_OPEN_DOCUMENT ve ACTION_CREATE_DOCUMENT niyet. .

Cihaz uygulamaları, ana makine modunu ve USB'yi destekleyen bir USB bağlantı noktası içeriyorsa C tipine girerse:

  • [C-4-1] USB tarafından tanımlandığı şekilde Çift Rol Bağlantı Noktası işlevini uygulamalıdır Type-C spesifikasyonu (bölüm 4.5.1.3.3). Çift Cihaz İçin Rol Bağlantı Noktaları, 3, 5 mm ses jakı içeren cihazlarda USB havuzu algılama (ana makine modu) varsayılan olarak kapalı OLABİLİR, ancak kullanıcı tarafından etkinleştirilebilir.
  • [C-SR-2] DisplayPort'u desteklemesi Şiddetle ÖNERİLİR, USB DESTEKLENMELİDİR SuperSpeed Veri Hızları'na sahiptir ve Güç Aktarımı'nı desteklemek için ÖNEMLE ÖNERİLİR çok önemli bir parçasıdır.
  • [C-SR-3] Ses Adaptör Aksesuar Modu'nu bu belgedeki Ek A USB Type-C Kablo ve Bağlayıcı Spesifikasyonu Düzeltmesi 1.2.
  • Deneme sürümü için en uygun Try.* modelini cihaz form faktörü. Örneğin, bir avuç içi cihazın SNK modelini deneyin.

7.8. Ses

7.8.1. Mikrofon

Mikrofon içeren cihaz uygulamaları:

  • [C-1-1], android.hardware.microphone özellik sabitini Bildirmelidir.
  • [C-1-2] bölüm 5.4.
  • [C-1-3] bölüm 5.6.
  • [C-SR-1] Açıklandığı gibi ultrasona yakın kayıt desteği için ÖNEMLE ÖNERİLİR bölüm 7.8.3'teki gibidir.

Mikrofonu olmayan cihaz uygulamaları:

  • [C-2-1], android.hardware.microphone özellik sabitini BildirMEMELİDİR.
  • [C-2-2] Ses kaydı API'sini her bir işlem için en azından işlemsiz olarak bölüm 7.

7.8.2. Ses Çıkışı

Cihaz uygulamaları hoparlör veya ses/multimedya çıkışı içeriyorsa 4 iletkenli 3,5 mm ses jakı gibi bir ses çıkışı çevre birimi için bağlantı noktası veya USB ses sınıfı kullanan USB ana makine modu bağlantı noktası:

  • [C-1-1], android.hardware.audio.output özellik sabitini Bildirmelidir.
  • [C-1-2] bölüm 5.5.
  • [C-1-3] bölüm 5.6.
  • [C-SR-1] Açıklandığı gibi ultrasona yakın oynatma desteği için ÖNEMLE ÖNERİLİR bölüm 7.8.3'teki gibidir.

Hoparlör veya ses çıkış bağlantı noktası bulunmayan cihaz uygulamaları:

  • [C-2-1], android.hardware.audio.output özelliğini BİLDİRMEMELİDİR.
  • [C-2-2] Ses Çıkışı ile ilgili API'leri en azından işlemsiz olarak uygulaması ZORUNLUDUR.

Bu bölümün amacı doğrultusunda bir "çıkış bağlantı noktası" bir fiziksel arayüz 3, 5 mm ses jakı, HDMI veya USB ses sınıfına sahip USB ana makine modu bağlantı noktası gibi. Bluetooth, Bluetooth gibi radyo tabanlı protokoller üzerinden ses çıkışı Kablosuz veya hücresel ağ, "çıkış bağlantı noktası" eklemek için uygun değildir.

7.8.2.1. Analog Ses Bağlantı Noktaları

mikrofonlu kulaklıklar ve diğer ses aksesuarları Android ekosisteminde 3, 5 mm'lik ses fişini kullanarak uygulamalar bir veya daha fazla analog ses bağlantı noktası içerir.

  • [C-SR-1] ses bağlantı noktalarının 4 iletken 3,5 mm ses jakı olması gerekir.

Cihaz uygulamalarında 4 iletkenli 3, 5 mm ses jakı varsa:

  • [C-1-1] Stereo kulaklıklarda ve stereo mikrofonlu kulaklıklarda ses çalmayı DESTEKLEMELİDİR çok kolay oluyor.
  • [C-1-2] CTIA pin çıkış sırasına sahip TRRS ses fişlerini DESTEKLEMELİDİR.
  • [C-1-3] mikrofon ve zemin arasında 3 eşdeğer empedans aralığında fişteki iletkenler:
    • 70 ohm veya daha düşük: KEYCODE_HEADSETHOOK
    • 210-290 ohm: KEYCODE_VOLUME_UP
    • 360-680 ohm: KEYCODE_VOLUME_DOWN
  • [C-1-4] Fiş takıldıktan sonra ACTION_HEADSET_PLUG öğesini tetiklemelidir, ancak ancak fişteki tüm kişiler alakalı segmentlerine dokunduktan sonra takılır.
  • [C-1-5] açık çıkış voltajının en az 150 mV ±% 10'u kadar sürüş kapasitesine sahip olmalıdır. 32 ohm hoparlör empedansı.
  • [C-1-6] 1,8 V ~ 2,9 V arasında bir mikrofon sapma voltajı OLMALIDIR.
  • [C-1-7] aşağıdaki mikrofon ve zemin iletkenleri arasındaki eşdeğer empedans aralığı ses fişinde:
    • 110-180 ohm: KEYCODE_VOICE_ASSIST
  • [C-SR-2] OMTP ile ses fişlerini desteklemesi için ÖNEMLE ÖNERİLİR PIN siparişi.
  • [C-SR-3] Stereodan ses kaydını desteklemeleri için ÖNEMLE ÖNERİLİR mikrofonlu kulaklıkları.

Cihaz uygulamalarında 4 iletken 3,5 mm ses jakı varsa ve mikrofona gidin ve android.intent.action.HEADSET_PLUG cihazını ek değere sahip mikrofon 1 olarak ayarlandığında:

  • [C-2-1], takılı ses sistemindeki mikrofonun algılanmasını DESTEKLEMELİDİR aksesuarı.
7.8.2.2. Dijital Ses Bağlantı Noktaları

Cihaza özel gereksinimler için Bölüm 2.2.1'e bakın.

7.8.3. Yakın-Ultrasound

Yakın Ultrasound ses, 18,5 kHz ila 20 kHz'lik banttır.

Cihaz uygulamaları:

PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND ise değeri "true" ise VOICE_RECOGNITION ve UNPROCESSED ses kaynakları:

  • [C-1-1] Mikrofonun 18,5 kHz - 20 kHz bandındaki ortalama güç yanıtı 2 kHz'de yanıtın en fazla 15 dB altında olması ZORUNLUDUR.
  • [C-1-2] Mikrofonun 18,5 kHz-20 kHz üzerindeki ağırlıklandırılmamış sinyal-gürültü oranı -26 dBFS'de 19 kHz'lik bir ton için 50 dB'den düşük olmaması ZORUNLUDUR.

PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND ise "true" (doğru) değerine ayarlanır:

  • [C-2-1] Konuşmacının 18,5 kHz-20 kHz aralığındaki ortalama yanıtı, 2 kHz'lik yanıtın 40 dB'den düşük olmaması ZORUNLUDUR.

7.8.4. Sinyal Bütünlüğü

Cihaz uygulamaları:

  • Her iki giriş için de kesintisiz bir ses sinyali yolu SAĞLANMALIDIR ve çıkış akışları, sıfır hata mesajıyla yol başına bir dakikalık test sırasında ölçülür. OboeTester kullanarak test etme "Otomatik Arıza Testi".

Test için bir ses geri döngü donanım anahtarı gerekir. doğrudan 3,5 mm'lik jakda ve/veya USB-C - 3,5 mm'lik adaptörle birlikte kullanıldığında kullanılır. Tüm ses çıkış bağlantı noktaları SAĞLANMALIDIR.

OboeTester şu anda AAudio yollarını desteklemektedir, dolayısıyla aşağıdaki kombinasyonlar AAudio kullanılarak arızalara karşı test edilmelidir:

Performans Modu Paylaşılıyor Dışarıdan Örnek Oranı Fırsat Dostu Kaçırmayın
DÜŞÜK_GECİKEN ÖZEL BELİRTİLMEDİ 1 2
DÜŞÜK_GECİKEN ÖZEL BELİRTİLMEDİ 2 1
DÜŞÜK_GECİKEN PAYLAŞILDI BELİRTİLMEDİ 1 2
DÜŞÜK_GECİKEN PAYLAŞILDI BELİRTİLMEDİ 2 1
YOK PAYLAŞILDI 48000 1 2
YOK PAYLAŞILDI 48000 2 1
YOK PAYLAŞILDI 44100 1 2
YOK PAYLAŞILDI 44100 2 1
YOK PAYLAŞILDI 16000 1 2
YOK PAYLAŞILDI 16000 2 1

Güvenilir bir akış, Gürültüye Gürültü için Sinyal için aşağıdaki ölçütleri SAĞLAMALIDIR. 2000 Hz sinüs için Oran (SNR) ve Toplam Harmonik Bozukluk (THD).

Dönüştürücü HDH SES
birincil dahili hoparlör (harici referans mikrofon kullanılarak ölçülür) < %3,0 >= 50 dB
harici referans hoparlör kullanılarak ölçülen birincil yerleşik mikrofon < %3,0 >= 50 dB
yerleşik analog 3,5 mm jaklar, geri döngü adaptörüyle test edilmiştir <%1 >= 60 dB
Telefonla birlikte verilen, geri döngü adaptörüyle test edilmiş USB adaptörleri < %1,0 >= 60 dB

7.9. Sanal Gerçeklik

Android, "Sanal Gerçeklik" oluşturmak için API'ler ve olanaklar sunar (KK) yüksek kaliteli mobil VR deneyimleri sunuyor. Cihaz uygulamaların bu API'leri ve davranışları doğru bir şekilde uygulaması ZORUNLUDUR, öğelerdir.

7.9.1. Sanal Gerçeklik Modu

Android, aşağıdakileri destekler: VR Modu, Bildirimlerin stereoskopik olarak oluşturulmasını işleyen ve kullanıcı odaklı bir VR uygulaması varken monoküler sistem kullanıcı arayüzü bileşenleri

7.9.2. Sanal Gerçeklik Modu - Yüksek Performans

Cihaz uygulamaları, VR modunu destekliyorsa:

  • [C-1-1] en az 2 fiziksel çekirdeğinin olması ZORUNLUDUR.
  • [C-1-2] tarafından android.hardware.vr.high_performance özelliğinin beyan edilmesi ZORUNLUDUR.
  • [C-1-3] Sürekli performans modunu DESTEKLEMELİDİR.
  • [C-1-4] OpenGL ES 3.2'yi DESTEKLEMELİDİR.
  • [C-1-5], android.hardware.vulkan.level 0'ı DESTEKLEMELİDİR.
  • android.hardware.vulkan.level 1 veya sonraki sürümleri DESTEKLEMELİDİR.
  • [C-1-6] UYGULAMASI ZORUNLUDUR EGL_KHR_mutable_render_buffer EGL_ANDROID_front_buffer_auto_refresh, EGL_ANDROID_get_native_client_buffer, EGL_KHR_fence_sync, EGL_KHR_wait_sync, EGL_IMG_context_priority, EGL_EXT_protected_content EGL_EXT_image_gl_colorspace, ve uzantıları kullanılabilir EGL uzantıları listesinde gösterin.
  • [C-1-8] UYGULAMASI ZORUNLUDUR GL_EXT_multisampled_render_to_texture2 GL_OVR_multiview, GL_OVR_multiview2, GL_EXT_protected_textures, ve uzantıları kullanılabilir GL uzantıları listesinde gösterin.
  • [C-SR-1] Uygulaması ÖNEMLE ÖNERİLİR GL_EXT_external_buffer GL_EXT_EGL_image_array, GL_OVR_multiview_multisampled_render_to_texture, ve uzantıları kullanılabilir GL uzantıları listesinde gösterin.
  • [C-SR-2] Vulkan 1.1'i desteklemeleri Kesinlikle ÖNERİLİR.
  • [C-SR-3] Uygulaması ÖNEMLE ÖNERİLİR VK_ANDROID_external_memory_android_hardware_buffer VK_GOOGLE_display_timing, VK_KHR_shared_presentable_image, ve mevcut Vulkan uzantıları listesinde görüntüleyin.
  • [C-SR-4] flags olan en az bir Vulkan sırası ailesinin açığa çıkarılması ÖNEMLE ÖNERİLİR hem VK_QUEUE_GRAPHICS_BIT hem de VK_QUEUE_COMPUTE_BIT içerir, ve queueCount en az 2'dir.
  • [C-1-7] GPU ve ekranın, paylaşılan VR içeriği, 60 fps'de ve iki farklı sanal gerçeklik içeriğiyle dönüşümlü olarak oluşturma bağlamları, görünür yırtılma yapıları olmadan görüntülenir.
  • [C-1-9] AHardwareBuffer için destek uygulaması ZORUNLUDUR AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER işaretleri, AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA ve AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT belirtildiği şekilde kullanın.
  • [C-1-10] AHardwareBuffers için desteğin kullanım işaretleri kombinasyonu AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT, AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE, AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT en azından aşağıdaki biçimler için: AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM, AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM, AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT.
  • [C-SR-5] AHardwareBuffer tahsisini desteklemesi için ÖNEMLE ÖNERİLİR C-1-10'da belirtilmiş birden fazla katman ve bayraklar ile biçimlerle
  • [C-1-11] 30 fps'de en az 3840 x 2160 için H.264 kod çözmeyi desteklemelidir. 40 Mb/sn'ye (4 örneğine eşdeğerdir) 30 fps-10 Mb/sn'de 1920 x1080 veya 60 fps - 20 Mb/sn'de 2 1920 x 1080 örnek.
  • [C-1-12] HEVC ve VP9'U DESTEKLEMELİ, en azından kodu çözebilmelidir 30 fps'de 1920 x 1080, ortalama 10 Mb/sn. olacak şekilde sıkıştırılır ve 30 fps - 20 Mb/sn'de 3840 x 2160 kodunu çözebilir ( 30 fps - 5 Mb/sn'de 1920 x 1080'de 4 örnek).
  • [C-1-13] HardwarePropertiesManager.getDeviceTemperatures API'Yİ DESTEKLEMELİDİR ve deri sıcaklığı için doğru değerler döndürür.
  • [C-1-14] Yerleşik bir ekranın olması ve çözünürlüğünün en az olması ZORUNLUDUR 1920 x 1080.
  • [C-SR-6] En az ekran çözünürlüğüne sahip olmaları ÖNEMLE ÖNERİLİR 2560 x 1440.
  • [C-1-15] VR Modu'ndayken ekranın en az 60 Hz güncellenmesi ZORUNLUDUR.
  • [C-1-17] Ekranın, 5 milisaniye veya daha uzun olan düşük kalıcılık modunu desteklemesi ZORUNLUDUR sebat, bir sonraki aşamaya geçme süresi olarak tanımlanır ışık yayan bir pikseldir.
  • [C-1-18] Bluetooth 4.2 ve Bluetooth LE Veri Uzunluğu Uzantısı'nı DESTEKLEMELİDİR bölüm 7.4.3'tür.
  • [C-1-19] Desteklenmeli ve düzgün bir şekilde bildirilmelidir Doğrudan kanal türü aşağıdaki varsayılan sensör türlerinin tamamında kullanılabilir:
    • TYPE_ACCELEROMETER
    • TYPE_ACCELEROMETER_UNCALIBRATED
    • TYPE_GYROSCOPE
    • TYPE_GYROSCOPE_UNCALIBRATED
    • TYPE_MAGNETIC_FIELD
    • TYPE_MAGNETIC_FIELD_UNCALIBRATED
  • [C-SR-7] TYPE_HARDWARE_BUFFER yukarıda listelenen tüm Doğrudan Kanal Türleri için doğrudan kanal türü.
  • [C-1-21] jiroskop, ivme ölçer ve manyetometreyle ilgili koşulları karşılamalıdır. android.hardware.hifi_sensors için gereksinimler bölüm 7.3.9'a dokunun.
  • [C-SR-8] android.hardware.sensor.hifi_sensors özelliği.
  • [C-1-22] foton gecikmesinden yüksek olmayan bir uçtan uca hareketin olması ZORUNLUDUR 28 milisaniye.
  • [C-SR-9] Foton gecikmesi için uçtan uca hareket olması ÖNEMLE ÖNERİLİR 20 milisaniyeden uzun olamaz.
  • [C-1-23] İlk kare oranına sahip olmalıdır. Bu, iki kare arasındaki siyahtan geçişten sonra ilk karede piksellerin parlaklığı sabit durumda (en az %85'lik) beyaz piksellerin parlaklığı.
  • [C-SR-10] İlk kare oranının en az %90 olması ÖNEMLE ÖNERİLİR.
  • Ön plana özel bir çekirdek sağlayabilir uygulaması ve geri dönmek için Process.getExclusiveCores API'sini DESTEKLEYEBİLİR üst ön plana özel CPU çekirdeklerinin sayısı bir uygulamadır.

Özel çekirdek destekleniyorsa çekirdek:

  • [C-2-1] Üzerinde başka herhangi bir kullanıcı alanı işleminin çalıştırılmasına İZİN VERİLMEMELİDİR (uygulama tarafından kullanılan cihaz sürücüleri hariç), ancak bazı çekirdeğe izin VEREBİLİR gerektiği şekilde yürütülmesini sağlar.

7:10. Dokunma teknolojisi

Yeni koşullarla başlayın

Elde tutulması veya takılması amaçlanan cihazlar genel amaçlı bir dokunma teknolojisi içerebilir aktüatör, dikkat çekmek de dahil olmak üzere uygulamalara bildirimlere ve genel geri bildirime kadar her şeyi yönlendirebilirsiniz.

Cihaz uygulamaları böyle genel amaçlı bir dokunma teknolojisi aktüatörü İÇERMEZSE, onlar:

  • [7.10/C] Vibrator.hasVibrator() için false (yanlış) değerini döndürmelidir.

Cihaz uygulamaları buna benzer en az bir genel amaçlı dokunma teknolojisi içeriyorsa en iyi uygulamalar:

Cihaz uygulamaları, dokunma teknolojisi sabitleri eşlemesini izlerse:

Yeni şartları sonlandırma

Cihaza özel gereksinimler için Bölüm 2.2.1'e bakın.

7:11. Medya Performans Sınıfı

Cihaz uygulamasının medya performans sınıfı şuradan edinilebilir: android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS API. Şartlar ile başlayan her Android sürümü için medya performans sınıfı tanımlıdır. R (sürüm 30). 0 özel değeri, cihazın medya performansı sınıfı.

Cihaz uygulamaları, android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS, onlar:

  • [C-1-1] en az android.os.Build.VERSION_CODES.R değerini döndürmelidir.

  • [C-1-2] Avuç içi cihaz uygulaması ZORUNLUDUR.

  • [C-1-3] "Medya Performans Sınıfı" ile ilgili tüm koşulların karşılanması ZORUNLUDUR açıklandı bölüm 2.2.7'de bulabilirsiniz.

Başka bir deyişle, Android T'deki medya performans sınıfı yalnızca T, S veya R sürümlerine sahip avuç içi cihazlar.

Cihaza özel bilgi için bölüm 2.2.7'ye bakın. gereksinimlerini karşılayın.

8. Performans ve Güç

Kullanıcı deneyimi için kritik öneme sahip bazı minimum performans ve güç kriterleri vardır ve geliştiricilerin bir çözüm geliştirirken üstlendikleri temel varsayımları uygulamasını indirin.

8.1. Kullanıcı Deneyiminde Tutarlılık

Belirli koşullar varsa son kullanıcıya sorunsuz bir kullanıcı arayüzü için tutarlı bir kare hızı ve yanıt süreleri sağlamak üzere uygulamalar ve oyunlar. Cihaz türüne bağlı olarak cihaz uygulamaları, Kullanıcı arayüzü gecikmesi ve görev için ölçülebilir gereksinimler OLABİLİR 2. bölümde açıklandığı şekilde geçiş yapın.

8.2. Dosya G/Ç Erişim Performansı

Dosya erişimlerinde tutarlı bir performans için ortak bir temel sağlayarak uygulama özel veri depolama alanı (/data bölümü), uygulama geliştiricilere izin verir yazılım tasarımına yardımcı olacak doğru bir beklenti oluşturmak üzere çalışmaktır. Cihaz cihaz türüne bağlı olarak, uygulamalarınızın belirli gereksinimleri OLABİLİR aşağıdaki okuma materyali için bölüm 2'de açıklandığı şekilde ve yazma işlemleri:

  • Sıralı yazma performansı. 256 MB'lık dosya kullanılarak ölçülmüştür 10 MB yazma arabelleği.
  • Rastgele yazma performansı. 4 KB boyutunda 256 MB'lık bir dosya kullanılarak ölçülür tamponu yazar.
  • Sıralı okuma performansı. 256 MB'lık bir dosya kullanılarak ölçülmüştür: 10 MB yazma arabelleği.
  • Rastgele okuma performansı. 4 KB kullanılarak 256 MB'lık bir dosya okunarak ölçülmüştür tamponu yazar.

8.3. Güç Tasarrufu Modları

Cihaz uygulamaları, cihaz güç yönetimini iyileştirecek özellikler içeriyorsa AOSP'ye dahil olan (ör. Uygulama Bekletme Paketi, Doz) veya KISITLANMIŞ Uygulama Bekleme Paketi'ne göre daha güçlü kısıtlamalar uygulamak için şunları yaparlar:

  • [C-1-1], tetiklemeye ilişkin AOSP uygulamasından farklı OLMAMALIDIR. algoritmalarının yanı sıra genel sistem ayarlarının veya DeviceConfig ve Doz'un güç tasarrufu modları hakkında daha fazla bilgi edinin.
  • [C-1-2] global kontrol etmek için yönetebilirsiniz. ağ.
  • [C-1-3] anahtar/değer çifti sayısı için AOSP uygulamasından Uygulama Bekleme Paketleri Uygulama Bekletme'de kullanılır.
  • [C-1-4] Uygulama Bekleme Paketleri'ni uygulaması ZORUNLUDUR Güç Yönetimi'nde açıklandığı şekilde ve Doz.
  • [C-1-5] şunun için true değerinin döndürülmesi ZORUNLUDUR: PowerManager.isPowerSaveMode() cihaz güç tasarrufu moduna girdiğinde.
  • [C-1-6] Muaf tutulan tüm uygulamaları görüntülemek için kullanıcıya gerekli mali yardımın sağlanması ZORUNLUDUR Uygulama Bekleme ve Doz'daki güç tasarrufu modlarından veya pil optimizasyonlarından ve ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS kullanıcıdan, bir uygulamanın pili yoksaymasına izin vermesini isteme optimize edebilirsiniz.
  • [C-SR-1] Kullanıcıya olanak tanıması için ÖNEMLE ÖNERİLİR: pil tasarrufu özelliğini devre dışı bırakın.
  • [C-SR-2] Kullanıcılara tüm öğeleri görüntüleme olanağı sunmaları için ÖNEMLE ÖNERİLİR belli başlı uygulamaları kullanabilir.

Cihaz uygulamaları, kapsama dahil olan güç yönetimi özelliklerinin kapsamını genişletiyorsa AOSP'ye göre daha sıkı kısıtlamalar uygular. Nadir Uygulama Bekleme Paketi, bölüm 3.5.1'e bakın.

Güç tasarrufu modlarının yanı sıra Android cihaz uygulamaları da Gelişmiş Yapılandırma ve Güç Arayüzü (ACPI)

Cihaz uygulamaları, ACPI'ler:

  • [C-1-1] bu duruma yalnızca kullanıcı açık bir işlem yaptıktan sonra girmelidir. cihazı etkin olmayan duruma (ör. fiziksel olarak cihazın bir bölümü veya bir aracı ya da televizyonu kapatma) ve Kullanıcı cihazı yeniden etkinleştirdiğinde (ör. kapağı açarak veya aracı döndürerek) veya televizyonu tekrar açın).

Cihaz uygulamaları, ACPI'ler:

  • [C-2-1] yukarıdaki C-1-1'i karşılamalıdır veya yalnızca üçüncü taraf olduğunda S3 durumuna girmelidir uygulamaların sistem kaynaklarına (ör. ekran, CPU) ihtiyacı yoktur.

    Öte yandan, üçüncü taraf uygulamalar bu SDK'da açıklandığı şekilde sistem kaynakları için geçerlidir.

    Örneğin, üçüncü taraf uygulamalar ekranı korumak için istekte bulunurken FLAG_KEEP_SCREEN_ON tarihine kadar açık veya CPU'yu açık tutun PARTIAL_WAKE_LOCK, açıklandığı gibi cihaz S3 durumuna GİRMEMELİDİR C-1-1'de, kullanıcı cihazı belirli bir etkin değil durumu. Bunun aksine, üçüncü taraf uygulamalarının veya Firebase Cloud Messaging etkin olduğunda, üçüncü taraf uygulamalarına teslim edildiği durumlarda, kullanıcı cihazı etkin olmayan bir duruma aldı. Bunlar her şeyi kapsamaz örnekleri içerir ve AOSP, uyandırmayı tetikleyen kapsamlı uyandırma sinyalleri uygular ve bu eyaletten.

8.4. Güç Tüketimi Hesaplaması

Güç tüketiminin daha doğru bir şekilde hesaplanması ve raporlanması, teşvik etmek için kullanabileceğiniz araçlar var. izin verir.

Cihaz uygulamaları:

  • [C-SR-1] Bileşen başına güç profili sağlamanız ÖNEMLE ÖNERİLİR mevcut tüketim değerini tanımlayan her bir donanım bileşenine ve bu bileşenin neden olduğu bileşenlerine örnek olarak verebiliriz.
  • [C-SR-2] Tüm güç tüketimi değerlerinin miliamper cinsinden bildirilmesi için ÖNEMLE ÖNERİLİR saat (mAh).
  • [C-SR-3] Her işlemin UID'sine göre CPU güç tüketimini raporlamak için ÖNEMLE ÖNERİLİR. Android Açık Kaynak Projesi, uid_cputime çekirdek modülünün uygulanması.
  • [C-SR-4] Bu güç kullanımını adb shell dumpsys batterystats kabuk komutunu kullanabilirsiniz.
  • Şu durumda donanım bileşeninin kendisiyle ilişkilendirilmelidir; donanım bileşeninin güç kullanımını bir uygulamayla ilişkilendirmek.

8.5. Tutarlı performans

Yüksek performanslı ve uzun süre çalışan uygulamalarda performansta büyük dalgalanmalar görülebilir. Bunun nedeni arka planda çalışan diğer uygulamalar veya CPU kısıtlaması (sıcaklık sınırları nedeniyle) nedeniyle oluşmuş olabilir. Android, programatik arayüzler içerir. Böylece en üstteki ön plan uygulaması sistemi bu tür dalgalanmaları gidermek için kaynak tahsisini optimize eder.

Cihaz uygulamaları:

Cihaz uygulamaları Sürdürülebilir Performans Modu'nu desteklediğini bildiriyorsa:

  • [C-1-1] üst ön plan uygulamasına tutarlı bir düzeyde Uygulama istekte bulunduğunda, en az 30 dakikalık bir performansa yer vermelidir.
  • [C-1-2] Window.setSustainedPerformanceMode() API ve diğer ilgili API'ler.

Cihaz uygulamaları iki veya daha fazla CPU çekirdeği içeriyorsa:

  • Üst yönetim tarafından ayırtılabilecek en az bir tane özel çekirdek SAĞLANMALIDIR. ön plan uygulamasıdır.

Cihaz uygulamaları, en üstte gerçekleştirmek için:

  • [C-2-1] Process.getExclusiveCores() API yöntemi, ayırtılabilecek özel çekirdeklerin kimlik numaralarıdır en üstteki ön plan uygulamasıyla başlar.
  • [C-2-2] Cihaz sürücüleri dışında hiçbir kullanıcı alanı işlemine izin VERMEMELİDİR uygulama tarafından özel çekirdeklerde çalışmak için kullanılır, ancak gereken şekilde çalışmasını sağlayın.

Cihaz uygulamaları özel bir çekirdeği desteklemiyorsa:

9. Güvenlik Modeli Uyumluluğu

Cihaz uygulamaları:

  • [C-0-1] Tutarlı bir güvenlik modeli uygulamalı (bkz. Android platform güvenliği modeli) Güvenlik ve İzinler referans belgesi başlıklı makaleyi inceleyin.

  • [C-0-2] Kendinden imzalı projelerin yüklenmesini DESTEKLEMELİDİR herhangi bir ek izin/sertifika gerekmeden üçüncü taraflar/yetkililer.

Cihaz uygulamaları için android.hardware.security.model.compatible şu özelliklere sahiptir:

  • [C-1-1] aşağıdaki alt bölümlerde belirtilen gereksinimleri DESTEKLEMELİDİR.

9.1. İzinler

Cihaz uygulamaları:

  • [C-0-1] Android izin modelini DESTEKLEMELİ ve Android Rol Modeli Android geliştirici dokümanlarında açıklandığı şekildedir. Özellikle, SDK belgeleri; hiçbir izin ve rol çıkarılamaz, değiştirilemez, veya yok sayılır.

  • Yeni izin kimliği dizeleri sağlandığında ek izinler EKLENEBİLİR android.\* ad alanında değil.

  • [C-0-2] protectionLevel PROTECTION_FLAG_PRIVILEGED değerine sahip izinler Yalnızca sistem görüntüsü (ayrıca APEX dosyaları) ve izin verilenler listesine eklenmiş izinlerle ilişkili izinleri içerir. AOSP uygulaması, her uygulama için izin verilenler listesindeki dosyalardan etc/permissions/ yolunu izler ve system/priv-app yolunu yolunu belirtmek istiyorum.

Tehlikeli koruma seviyesi olan izinler, çalışma zamanında istenen izinlerdir. targetSdkVersion içeren uygulamalar > 22 bunları çalışma zamanında isteyin.

Cihaz uygulamaları:

  • [C-0-3] Kullanıcının karar vermesi için özel bir arayüz gösterilmesi ZORUNLUDUR istenen çalışma zamanında istenen izinleri verilip verilmeyeceğini kullanıcının çalışma zamanında istenen izinleri yönetmesine olanak tanıyan bir arayüzdür.

  • [C-0-4] Her iki kullanıcının da yalnızca bir kez uygulanması ZORUNLUDUR kullanır.

  • [C-0-5], aşağıdaki durumlar haricinde uygulamalara çalışma zamanında istenen izin VERMEMELİDİR:

    • Cihazın sevkiyatı sırasında yüklenirler VE
    • Uygulama yapılmadan önce kullanıcının izni alınabilir izni kullanırsa

      VEYA

    • Çalışma zamanı izinleri verildi varsayılan izin verme politikasına göre bir platform rolüne sahip olduğunuz için.

  • [C-0-6] android.permission.RECOVER_KEYSTORE izni ZORUNLUDUR Yalnızca düzgün bir şekilde güvenliği sağlanmış bir Kurtarma Aracısı kaydeden sistem uygulamalarına. CEVAP Doğru şekilde güven altına alınmış Kurtarma Aracısı cihaz üzerinde yazılım aracısı olarak tanımlanır depolama alanına sahip, cihaz dışı bir uzaktan depolama eşdeğeri veya daha güçlü olan güvenli donanımlar şurada açıklandığı: Google Cloud Key Vault Hizmeti kilit ekranı bilgi faktörüne yönelik kaba kuvvet saldırıları önler.

Cihaz uygulamaları:

  • [C-0-7] Bir uygulama olduğunda Android konum izni özelliklerine UYMALIDIR Standart Android API üzerinden konum veya fiziksel aktivite verilerini istediğinde veya özel mekanizma. Bu tür veriler aşağıdakileri kapsar ancak bunlarla sınırlı değildir:

    • Cihazın konumu (ör. enlem ve boylam) bölüm 9.8.8'dir.
    • Cihazın özelliklerini belirlemek veya tahmin etmek için kullanılabilecek bilgiler (örneğin, SSID, BSSID, Hücre Kimliği veya ağın konumu) cihazın bağlı olduğu anlamına gelir.)
    • Kullanıcının fiziksel aktivitesi veya fiziksel aktivitenin sınıflandırması.

Daha ayrıntılı belirtmek gerekirse, cihaz uygulamaları:

  • [C-0-8] Bir uygulamanın konum veya fiziksel aktivite verileri olabilir.
  • [C-0-9] gerekir. Örneğin, TelephonyManager#getServiceState android.permission.ACCESS_FINE_LOCATION gerektirir).

Yukarıdaki Android konum izni özellikleriyle ilgili tek istisna şudur: Kullanıcının konumunu elde etmek veya tanımlamak için Konum'a erişmeyen uygulamalar; özel olarak:

  • Uygulamalar RADIO_SCAN_WITHOUT_LOCATION iznine sahip olduğunda.
  • Cihaz yapılandırması ve kurulumu için, sistem uygulamalarının NETWORK_SETTINGS veya NETWORK_SETUP_WIZARD izni.

İzinler, davranışlarını değiştiren kısıtlı olarak işaretlenebilir.

  • [C-0-10] hardRestricted bayrağıyla işaretlenen izinler OLMAMALIDIR aşağıdaki durumlar haricinde herhangi bir uygulamaya erişim izni verilmez:

    • Sistem bölümünde bir uygulama APK dosyası var.
    • Kullanıcı, hardRestricted ile ilişkili bir rol atar izin verir.
    • Yükleyici, hardRestricted iznini bir uygulamaya verir.
    • Önceki Android sürümünde bir uygulamaya hardRestricted izni verilir.
  • [C-0-11] softRestricted iznine sahip uygulamaların yalnızca sınırlandırılması ZORUNLUDUR açıklandığı şekilde izin verilenler listesine eklenene kadar tam erişim elde ETMEMELİDİR Her softRestricted için tam ve sınırlı erişimin tanımlandığı SDK izin (örneğin, READ_EXTERNAL_STORAGE).

  • [C-0-12] setPermissionPolicy'de tanımlanan izin kısıtlamaları ve setConsentGrantState API'ler.

  • [C-0-13] Her birini kaydedip izlemek için AppOpsManager API'lerini zararlı izinlerle korunan verilere yapılan tüm programatik erişimleri, Android etkinlikleri ve hizmetleri.

  • [C-0-14] Yalnızca şu işlevlerine sahip uygulamalara rol atanması ZORUNLUDUR: rollerin gerekliliklerini karşılamalısınız.

  • [C-0-15] Yinelenen veya üst küme işlevi olan roller tanımlamaması ZORUNLUDUR birçok rol bulunur.

android.software.managed_users bildiren cihazlar:

  • [C-1-1] yönetici:
    • Konum (ACCESS_BACKGROUND_LOCATION, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION).
    • Kamera (KAMERA)
    • Mikrofon (RECORD_AUDIO)
    • Vücut sensörü (BODY_SENSORS)
    • Fiziksel aktivite (ACTIVITY_RECOGNITION)

Cihaz uygulamaları, hangi uygulamaların üzerine düşeni yapan bir aktiviteye sahip ACTION_MANAGE_OVERLAY_PERMISSION değil:

Cihaz uygulamaları android.software.device_admin öğesini raporlarsa:

  • [C-3-1] Tümüyle yönetilen cihaz kurulumu sırasında sorumluluk reddi beyanı GEREKLİDİR (cihaz sahibi kurulumu) BT yöneticisinin şunları yapabileceğini belirten bir ifadedir: uygulamaların telefondaki ayarları kontrol etmesine izin ver (mikrofon, kamera ve kullanıcının kuruluma devam etmesini veya kurulumdan çıkmasını sağlayan seçenekler sunar. yönetici, cihazdaki izinler kontrolünü devre dışı bıraktı.

Cihaz uygulamaları; System UI Intelligence, System Ambient Audio Intelligence, System Audio Intelligence, System Notification Intelligence, System Text Intelligence veya System Visual Intelligence rollerinden herhangi birine sahip paketleri önceden yüklüyorsa paketler:

  • [C-4-1] bölümler "9.8.6 İçerik Yakalama" "9.8.6 OS düzeyi ve ambiyans verileri ve 9.8.15 Korumalı Alana Sahip API uygulamaları".

  • [C-4-2] android.permission.INTERNET iznine sahip OLMAMALIDIR. Bu 9.8.6'da listelenen ÖNEMLE ÖNERİLENLER'den daha katıdır.
  • [C-4-3] aşağıdaki sistem uygulamaları hariç diğer uygulamalara BAĞLANMAMALIDIR: Bluetooth, Kişiler, Medya, Telefon İletişimi, SystemUI ve İnternet API'leri Bu, şurada listelenen ÖNERİLENLERDEN daha katıdır: bölüm 9.8.6.

Yeni koşullarla başlayın

Cihaz uygulamaları, VoiceInteractionService:

  • [C-5-1] bunun için varsayılan olarak ACCESS_FINE_LOCATION hizmetini VERMEMELİDİR bir uygulamadır.

Yeni şartları sonlandırma

9.2. UID ve İşlem Yalıtımı

Cihaz uygulamaları:

  • [C-0-1] Android uygulamasını DESTEKLEMELİDİR her uygulamanın benzersiz bir Unixstyle UID'si olarak çalıştığı korumalı alan modeli ayrı bir süreç üzerinde çalışıyor.
  • [C-0-2] birden fazla uygulamanın çalıştırılmasını DESTEKLEMELİDİR aynı Linux kullanıcı kimliğiyle (uygulamaların gerektiği gibi imzalanmış olması gerekir) yukarıda açıklandığı şekilde, Güvenlik ve İzinler referansı.

9.3. Dosya Sistemi İzinleri

Cihaz uygulamaları:

9.4. Alternatif Yürütme Ortamları

Cihaz uygulamalarının Android güvenliği ve gereksinimleri yürütülebilecek çalışma zamanı ortamlarını içerseler bile Dalvik Executable'dan başka bir yazılım veya teknoloji kullanan uygulamalar Biçim veya yerel kod. Başka bir deyişle:

  • [C-0-1] Alternatif çalışma zamanlarının kendileri Android uygulamaları OLMALIDIR. ve aşağıda açıklandığı gibi standart Android güvenlik modeline uymak gerekir. bölüm 9.

  • [C-0-2] Alternatif çalışma zamanlarına kaynaklara erişim izni VERİLMEMELİDİR çalışma zamanının AndroidManifest.xml bölümünde istenmeyen izinlerle korunuyor <uses-permission> üzerinden dosyanızı mekanizmasıdır.

  • [C-0-3] Alternatif çalışma zamanları, uygulamaların Android izinleriyle korunan ve sistem uygulamalarıyla sınırlı olan özellikler.

  • [C-0-4] Alternatif çalışma zamanlarının Android korumalı alan modeline uyması ZORUNLUDUR ve farklı bir çalışma zamanı kullanan uygulamaların yüklü olması GEREKMELİDİR cihazda yüklü olan diğer uygulamaların korumalı alanını yeniden kullanmak, standart Android mekanizmalarını kullanabilirsiniz.

  • [C-0-5] Alternatif çalışma zamanlarının BAŞLATILMAMALIDIR. diğer Android uygulamalarına karşılık gelen korumalı alanlara erişim sağlayabilirsiniz.

  • [C-0-6] Alternatif çalışma zamanları ile başlatılmamalı, izin verilmemesi veya izin verilmemesi gerekir. kullanıcının (kök) veya başka herhangi bir kullanıcının ayrıcalığının kullanıcı kimliği.

  • [C-0-7] Alternatif çalışma zamanlarının .apk dosyaları cihaz uygulamalarının sistem görüntüsüdür; ayrı bir anahtarla imzalanması ZORUNLUDUR (cihazda bulunan diğer uygulamaları imzalamak için kullanılan anahtardan) hakkında bilgi edindiniz.

  • [C-0-8] Uygulamalar yüklenirken alternatif çalışma zamanlarının Uygulama tarafından kullanılan Android izinleri için kullanıcı rızası.

  • [C-0-9] Bir uygulamanın Android izni varsa (ör. Kamera, GPS vb.), alternatif çalışma zamanının, kullanıcıya uygulamanın şunları yapabileceğini bildirebilmesi ZORUNLUDUR: o kaynağa erişin.

  • [C-0-10] Çalışma zamanı ortamı, uygulamayı kaydetmediğinde bu şekilde çalışırsa çalışma zamanı ortamının tüm izinleri listelemesi ZORUNLUDUR bir uygulama yüklenirken çalışma zamanı tarafından tutulur.

  • Alternatif çalışma zamanlarının, PackageManager üzerinden uygulama yüklemesi GEREKİR ayrı Android korumalı alanları (Linux kullanıcı kimlikleri vb.) kullanın.

  • Alternatif çalışma zamanları, herkes tarafından paylaşılan tek bir Android korumalı alanı sağlayabilir diğer çalışma zamanını kullanır.

9.5. Çok Kullanıcılı Destek

Android'de birden fazla kullanıcı desteği bulunur Ayrıca, tam kullanıcı izolasyonu ve kullanıcı profillerini klonlama kısmi izolasyon(ör. aynı türde tek bir ek kullanıcı profili) android.os.usertype.profile.CLONE).

Cihaz uygulamaları birden fazla kullanıcıya yönelik destek içeriyorsa:

  • [C-1-2] Her kullanıcı için bir güvenlik uygulaması ZORUNLUDUR modeli, aşağıdaki konumda tanımlandığı şekilde Android platform güvenliği modeliyle tutarlıdır: Güvenlik ve İzinler referans belgesi bazı ipuçları vereceğim.
  • [C-1-3] Ayrı ve izole bir paylaşılan uygulama depolama alanının olması ZORUNLUDUR (/sdcard olarak da bilinir) dizinlerini oluşturmalarına olanak tanır.
  • [C-1-4] Bir kuruluşun sahibi olduğu ve bu kuruluş adına çalıştırılan uygulamaların belirtilen kullanıcı başka bir kullanıcıya ait dosyaları listeleyemez, okuyamaz veya bunlara yazamazsa olsa bile her iki kullanıcının verileri aynı birimde veya dosya sisteminde depolanıyor olabilir.
  • [C-1-5], çoklu kullanıcı etkinleştirildiğinde SD kartın içeriğini şifrelemek ZORUNLUDUR yalnızca sistem tarafından erişilebilen çıkarılamayan medyada saklanan bir anahtarı kullanma cihaz uygulamaları, harici depolama API'leri için çıkarılabilir medya kullanır. Bu işlem medyayı ana makine PC tarafından okunamaz hale getireceğinden, cihaz uygulamaları MTP'ye veya benzer bir sisteme geçerek ana bilgisayarlara Geçerli kullanıcının verilerine erişme.

Cihaz uygulamaları birden fazla kullanıcıya yönelik destek içeriyorsa çift örnek çalıştırmak için özel olarak oluşturulmuş kullanıcılar hariç tüm kullanıcılar kullanıcılar:

  • [C-2-1] Ayrı ve izole bir paylaşılan uygulama depolama alanının olması ZORUNLUDUR /sdcard olarak da bilinir.
  • [C-2-2] Google'a ait olan ve bu tarayıcılarda çalışan uygulamaların belirli bir kullanıcı adına, sahip olduğu dosyaları listeleyemez, okuyamaz veya bu dosyalara yazamaz diğer kullanıcılar tarafından (her iki kullanıcının verileri aynı ses birimi veya dosya sistemi olabilir.

Cihaz uygulamaları şu türde tek bir ek kullanıcı profili oluşturabilir: Birincil kullanıcıya göre android.os.usertype.profile.CLONE (ve yalnızca kullanıcıya karşı) birincil kullanıcı) kaldırın. Bu ikili örnekler, kısmen izole edilmiş bir depolamayı paylaşır ve Başlatıcı'da da son kullanıcıyla aynı anda görüntülenir ve aynı son kullanılanlar görünümünde görünür. Örneğin, bu, kullanıcının iki ayrı iki ayrı yükleme veya çift SIM kartlı cihazdaki tek bir uygulamanın örneklerini gösterir.

Cihaz uygulamaları yukarıda açıklanan ek kullanıcı profilini oluşturursa: şunu yaparlar:

  • [C-3-1] Yalnızca depolama alanına veya ana kullanıcı profili tarafından erişilebilir veya doğrudan bu profil ek kullanıcı profili.
  • [C-3-2] Bu kimliği iş profili olarak KULLANMAMALIDIR.
  • [C-3-3] Üst kuruluştan izole edilmiş özel uygulama veri dizinlerinin olması ZORUNLUDUR kullanıcı hesabı.
  • [C-3-4] Ek kullanıcı profilinin oluşturulmasına İZİN VERMEMELİDİR. Temel hazırlığı yapılmış bir Cihaz Sahibi ise (bkz. bölüm 3.9.1) veya bir Cihaz Sahibi'nin önce ek kullanıcı profili kaldırılmadan temel hazırlığının yapılması gerekir.

Yeni koşullarla başlayın

Cihaz uygulamaları yukarıda açıklanan ek kullanıcı profilini oluşturursa: şunu yaparlar:

  • [C-4-5] simgeler kullanıcılara gösterilir.
  • [C-4-6] klon profili verilerinin tamamını silmek için kullanıcıya uygun bir ödeme imkanı ZORUNLUDUR.
  • [C-4-7] Tüm klon uygulamaların kaldırılması, özel uygulama verilerinin silinmesi ZORUNLUDUR ve kullanıcı aşağıdaki işlemleri gerçekleştirdiğinde, profil verilerini klonla Profil klonlama verilerinin tamamını silmeyi seçer.
  • Son Klonlama Klonlama etkinliklendiğinde kullanıcıdan tüm Klon Profili verilerini klonlama uygulaması silinir.
  • [C-4-8], kullanıcıya klonlama işleminden sonra uygulama verilerinin silineceğini bildirmesi ZORUNLUDUR uygulamanın yüklemesi kaldırılmış veya kullanıcılara uygulama verilerini saklamaları için bir seçenek sunmak Uygulama cihazdan kaldırıldığında.
  • [C-4-9] aşağıdaki durumlarda özel uygulama veri dizinlerini ve içeriklerini SİLMELİDİR Kullanıcı, kaldırma işlemi sırasında verileri silmeyi seçer.

  • [C-4-14] bu ek profilde çalışan uygulamalar

  • [C-4-5] Ek profilde yalnızca için halihazırda erişilebilir olan kişilere erişmek üzere başlatıcı etkinliği ebeveyn kullanıcı profilidir.

Yeni şartları sonlandırma

9.6. Premium SMS Uyarısı

Android, giden iletiler konusunda kullanıcıları uyarma desteği sunar. premium SMS mesajı Premium SMS mesajlar, bir operatöre kayıtlı bir hizmete gönderilen kısa mesajlardır. kullanıcıdan ödeme alınır.

Cihaz uygulamaları android.hardware.telephony için destek beyan ederse, onlar:

  • [C-1-1] Numaralara SMS mesajı göndermeden önce kullanıcıları uyarmak ZORUNLUDUR /data/misc/sms/codes.xml içinde tanımlanan normal ifadelerle tanımlanır inceleyebilirsiniz. Yukarı akış Android Açık Kaynak Projesi, bir uygulamadır.

9.7. Güvenlik Özellikleri

Cihaz uygulamalarının hem .

Android Sandbox, Security-Geliştirilmiş Linux kullanan özellikler içerir. (SELinux) zorunlu erişim denetimi (MAC) sistemi, seccomp korumalı alan kullanımı ve diğer güvenlik özelliklerini etkinleştireceğiz. Cihaz uygulamaları:

  • [C-0-1], arama yapılmış ve çıkarılmış olsa bile SELinux veya diğer güvenlik özellikleri Android bahsedeceğim.
  • [C-0-2] Güvenlik açığı olduğunda, görünür bir kullanıcı arayüzü BULUNMAMALIDIR. ihlal algılandı ve güvenlik özelliği tarafından başarıyla engellendi Android çerçevesinin altında uygulanmış, ancak görünür bir kullanıcı arayüzüne sahip OLABİLİR ve bu durumun yol açtığı engellemesi kaldırılmış bir güvenlik ihlalinin başarılı bir şekilde istismara yol açması.
  • [C-0-3] SELinux veya diğer güvenlik özellikleri UYGULANMAMALIDIR kullanıcı veya uygulama geliştirici tarafından yapılandırılabilir.
  • [C-0-4] Başka bir uygulamayı etkileyebilecek bir uygulamaya İZİN VERMEMELİDİR bir politika yapılandırmak için bir API (Cihaz Yönetimi API'si gibi) üzerinden sorunu çözebilir.
  • [C-0-5] Medya çerçevesinin birden çok işleme bölünmesi ZORUNLUDUR. her işlem için daha dar kapsamlı bir erişim izni verilebilmesi açıklandı inceleyebilirsiniz.
  • [C-0-6] Bir çekirdek uygulamasını korumalı alana alma mekanizması ZORUNLUDUR Bu özellik, iş parçacıklı programlardır. Yukarı akış Android Açık Kaynak Projesi bunu karşılıyor İleti dizisi grubu ile seccomp-BPF'yi etkinleştirerek gerekliliği senkronizasyon (TSYNC) için source.android.com adresindeki Kernel Configuration (Kernel Yapılandırması) bölümünde bulabilirsiniz.

Çekirdek bütünlüğü ve kendini koruma özellikleri Android'in ayrılmaz bir parçasıdır Cihaz uygulamaları:

  • [C-0-7] Çekirdek yığını arabellek taşmasına karşı koruma mekanizmalarını uygulama ZORUNLUDUR. Bu tür mekanizmalara örnek olarak CC_STACKPROTECTOR_REGULAR ve CONFIG_CC_STACKPROTECTOR_STRONG.
  • [C-0-8] yürütülebilir olduğunda katı çekirdek belleği korumaları ZORUNLUDUR kod salt okunurdur, salt okunur veriler yürütülemez ve yazılamaz ayrıca Yazılabilir veriler yürütülebilir değil (ör. CONFIG_DEBUG_RODATA veya CONFIG_STRICT_KERNEL_RWX).
  • [C-0-9] Statik ve dinamik nesne boyutunun uygulanması ZORUNLUDUR kullanıcı alanı ve çekirdek alanı arasındaki kopyaların sınır kontrolü (ör. CONFIG_HARDENED_USERCOPY), başlangıçta API düzeyinde gönderilen cihazlarda 28 yaş veya üzeri.
  • [C-0-10] yürütülürken kullanıcı alanı belleğini ÇALIŞMAMALIDIR veya PXN donanımı üzerinden ya da CONFIG_CPU_SW_DOMAIN_PAN veya CONFIG_ARM64_SW_TTBR0_PAN) cihazlarda orijinal olarak API düzeyi 28 veya sonraki sürümlerle gönderilir.
  • [C-0-11] normal kullanıcı kopyası erişim API'lerinin dışındaki çekirdek (örneğin, donanım PAN'ı veya CONFIG_CPU_SW_DOMAIN_PAN veya CONFIG_ARM64_SW_TTBR0_PAN aracılığıyla emüle edilir) orijinal olarak API düzeyi 28 veya sonraki sürümlerle gönderilen cihazlarda kullanılabilir.
  • [C-0-12] Donanım aşağıdaki gibiyse çekirdek sayfa tablo izolasyonunun uygulanması ZORUNLUDUR orijinal olarak API düzeyinde gönderilen tüm cihazlarda CVE-2017-5754 güvenlik açığına karşı 28 veya üzeri (ör. CONFIG_PAGE_TABLE_ISOLATION veya CONFIG_UNMAP_KERNEL_AT_EL0) tıklayın.
  • [C-0-13] Donanım şu durumlarda dal tahmin sağlamlaştırmanın uygulanması ZORUNLUDUR: orijinal olarak API düzeyinde gönderilen tüm cihazlarda CVE-2017-5715 güvenlik açığına karşı 28 veya üzeri (ör. CONFIG_HARDEN_BRANCH_PREDICTOR).

  • [C-SR-1] Çekirdek verilerini muhafaza etmesi için ÖNEMLE ÖNERİLİR ve yalnızca başlatma sırasında yazılır ve salt okunur olarak işaretlenir başlatma (ör. __ro_after_init).

  • [C-SR-2] Çekirdek kodunun düzenini rastgele hale getirmek ve ve rastgele hale getirmeyi tehlikeye sokacak riskleri önlemek için (ör. Bootloader entropisiyle CONFIG_RANDOMIZE_BASE /chosen/kaslr-seed Device Tree node veya EFI_RNG_PROTOCOL).

  • [C-SR-3] yeniden kullanma saldırılarına karşı ek koruma sağlamak için çekirdeği (ör. CONFIG_CFI_CLANG ve CONFIG_SHADOW_CALL_STACK).

  • [C-SR-4] Kontrol-Akış Bütünlüğü'nü (CFI) devre dışı bırakmaması ÖNERİLİR, Gölge Çağrı Yığını (SCS) veya Tam Sayı Taşma Temizliği (IntSan) açık bu özelliğin etkinleştirildiği bileşenlerdir.

  • [C-SR-5] CFI, SCS ve IntSan'ın aşağıdaki sayfada açıklandığı gibi güvenlik açısından hassas ek kullanıcı alanı bileşenleri CFI ve IntSan.

  • [C-SR-6] Çekirdekte yığın başlatmanın etkinleştirilmesi için ÖNEMLE ÖNERİLİR başlatılmamış yerel değişkenlerin (CONFIG_INIT_STACK_ALL veya CONFIG_INIT_STACK_ALL_ZERO) tıklayın. Ayrıca, cihaz uygulamalarında, derleyici tarafından yerelleri ilk kullanıma hazırlar.

  • [C-SR-7] Çekirdekte yığın başlatmanın etkinleştirilmesi için ÖNEMLE ÖNERİLİR başlatılmamış yığın ayırmalarının kullanılmasını önlemek için (CONFIG_INIT_ON_ALLOC_DEFAULT_ON) tarafından kullanılan başlatmak için çekirdeği de ekler.

Cihaz uygulamaları, uygulamaları destekleyebilen bir Linux çekirdeği kullanıyorsa SELinux'ta:

  • [C-1-1] SELinux'u uygulaması ZORUNLUDUR.
  • [C-1-2] SELinux'u genel uygulama moduna ayarlamanın ZORUNLUDUR.
  • [C-1-3] Tüm alan adları zorunlu modda yapılandırılması ZORUNLUDUR. İzin modu yok Bir cihaza/sağlayıcıya özel alanlar dahil olmak üzere alan adlarına izin verilir.
  • [C-1-4] Mevcut "her zaman izin ver" kurallarını DEĞİŞTİRMEMELİ, DEĞERLENDİRMEMELİ veya DEĞİŞTİRMEMELİDİR yukarı akış Android Açık Kaynağında sağlanan sistem/sepolicy klasöründe Projenin (AOSP) ve politikanın, mevcut tüm izin ver kurallarıyla derlenmesi ZORUNLUDUR. hem AOSP SELinux alanları hem de cihaza/sağlayıcıya özel alanlar için.
  • [C-1-5] API düzeyi 28 veya sonraki sürümleri hedefleyen üçüncü taraf uygulamalarının çalıştırılması ZORUNLUDUR her birinde uygulama başına SELinux kısıtlamaları olan uygulama başına SELinux korumalı alanlarında uygulamanın gizli veri dizinini oluşturur.
  • Sistem/sepolicy içinde sağlanan varsayılan SELinux politikasını KORUMALIDIR açık kaynak projesinin klasörünü açın ve buna politika ve politikaları kontrol etmeyi tercih edebilirsiniz.

Cihaz uygulamaları, SELinux olmadan Linux veya Linux dışında çekirdeği kullanıyorsa onlar:

  • [C-2-1] Şu özelliklere sahip zorunlu bir erişim denetimi sisteminin kullanılması ZORUNLUDUR: SELinux'a eşdeğerdir.

Cihaz uygulamaları, DMA özellikli G/Ç cihazları kullanıyorsa:

  • [C-SR-9] DMA özellikli her G/Ç cihazının izole edilmesi ÖNERİLİR, (ör. ARM SMMU) bir IOMMU kullanılarak.

Android, cihazlarla entegre olan birçok derinlemesine savunma özelliği içerir. Buna ek olarak Android, yaygın hatalarla ilgili temel hata sınıflarını azaltmaya odaklanır ve güvenliğin düşmesine neden olan reklam öğeleri bulunur.

Bellek hatalarını azaltmak için cihaz uygulamaları:

  • [C-SR-10] Kullanıcı alanı bellek hatası kullanılarak test edilmeleri ÖNEMLE ÖNERİLİR ARMv9 cihazlar için MTE, ARMv8+ cihazlar için HWASan veya ASan gibi algılama araçları diğer cihaz türleri için.
  • [C-SR-11] Çekirdek bellek hatası kullanılarak test edilmeleri ÖNEMLE ÖNERİLİR için KASAN (CONFIG_KASAN, CONFIG_KASAN_HW_TAGS) gibi ARMv9 cihazlar, ARMv8 cihazlar için CONFIG_KASAN_SW_TAGS veya CONFIG_KASAN_GENERIC (diğer cihaz türleri için).
  • [C-SR-12] Bellek hatası algılama araçlarını kullanmanız ÖNEMLE ÖNERİLİR: MTE, GWP-ASan ve KFENCE gibi üretim süreçleri bulunuyor.

Cihaz uygulamaları Arm TrustZone tabanlı TEE kullanıyorsa:

  • [C-SR-13] Bellek için standart bir protokol kullanması ÖNEMLE ÖNERİLİR Örneğin, " Armv8-A (FF-A) olabilir.
  • [C-SR-14] Güvenilir uygulamaların yalnızca yukarıda kendileriyle açıkça paylaşılmış olan hafızaya erişme protokolü. Cihazda Arm S-EL2 istisna düzeyini destekliyorsa güvenli bölüm yöneticisi tarafından zorunlu kılınmalıdır. Aksi takdirde bu, TEE OS tarafından zorunlu kılındı.

Yeni koşullarla başlayın

Bellek Güvenliği teknolojisi, aşağıdaki güvenlik önlemlerinden en az birini yüksek (>%90) olasılıklı hata sınıflarından android:memtagMode manifesto seçeneği:

  • yığın arabellek taşması
  • ücretsiz sonra kullan
  • çift ücretsiz
  • vahşi ücretsiz (malloc olmayan işaretçi içermeyen)

Cihaz uygulamaları:

  • [C-SR-15] Ayarlanması ÖNEMLE ÖNERİLİR ro.arm64.memtag.bootctl_supported

Sistem özelliği, cihaz uygulamaları tarafından ayarlanıyorsa ro.arm64.memtag.bootctl_supported - Doğru:

  • [C-3-1] arm64.memtag.bootctl sistem özelliğinin bir aşağıdaki değerlerin istenen efekt ile virgülle ayrılmış listesi uygulanır:

    • memtag: Yukarıda tanımlanan şekilde bir Bellek Güvenliği teknolojisi etkin
    • memtag-once: Yukarıda tanımlanan Bellek Güvenliği teknolojisi geçici olarak etkinleştirilir ve sonraki adımda otomatik olarak devre dışı bırakılır yeniden başlat
    • memtag-off: Yukarıda tanımlanan Bellek Güvenliği teknolojisi devre dışı
  • [C-3-2], kabuk kullanıcısının arm64.memtag.bootctl ayarını yapmasına İZİN VERMELİDİR.

  • [C-3-3] Herhangi bir işlemin arm64.memtag.bootctl değerini okumasına İZİN VERMELİDİR.

  • [C-3-4] arm64.memtag.bootctl öğesini şu anda istenen duruma AYARLAMALIDIR açılıştan sonra, cihaz uygulaması yapılabilirse özelliğin de güncellenmesi GEREKİR sistem özelliğini değiştirmeden durumun değiştirilmesine olanak tanır.

  • [C-SR-16] Aşağıdakileri içeren bir Geliştirici Ayarı göstermesi ÖNEMLE ÖNERİLİR: yeniden başlatır ve cihazı yeniden başlatır. Uyumlu bir bootloader'da Android Açık Kaynak Projesi, MTE bootloader protokolü.

  • [C-SR-17] Güvenlik bölümünde bir ayarın gösterilmesi ÖNEMLE ÖNERİLİR Kullanıcının memtag öğesini etkinleştirmesine olanak tanıyan Ayarlar menüsü.

Yeni şartları sonlandırma

9.8. Gizlilik

9.8.1. Kullanım Geçmişi

Android, kullanıcının seçimlerinin geçmişini saklar ve bu geçmişi UsageStatsManager değerine ayarlayın.

Cihaz uygulamaları:

  • [C-0-1] Bu tür kullanıcı geçmişinin makul bir saklama süresi TUTULMASI ZORUNLUDUR.
  • [C-SR-1] 14 günlük saklama süresini, AOSP uygulamasında varsayılan olarak yapılandırılmıştır.

Android, sistem etkinliklerini StatsLog kullanarak depolar. ve bu geçmişi StatsManager ve Google ürünleri aracılığıyla yönetir. IncidentManager Sistem API'sı.

Cihaz uygulamaları:

  • [C-0-2] DEST_AUTOMATIC IncidentManager System API sınıfı tarafından oluşturulan olay raporu.
  • [C-0-3] Başka bir etkinliği günlüğe kaydetmek için sistem etkinliği tanımlayıcılarının kullanılmaması ZORUNLUDUR StatsLog bölümünde açıklananlardan daha fazla SDK belgeleri. Ek sistem etkinlikleri günlüğe kaydedilirse 100.000 ile 200.000 arasında farklı bir atom tanımlayıcısı içerir.

9.8.2. Kayıt

Cihaz uygulamaları:

  • [C-0-1] Yazılım bileşenlerini kullanıma hazır olmadan önceden YÜKLEMEMELİ veya DAĞITMAMALIDIR. Kullanıcının özel bilgilerini (ör. tuş vuruşları, ekranı, hata raporu) kullanıcının izni olmadan veya devam eden bildirimler alın.
  • [C-0-2] Kullanıcı uyarısı göstermeli ve kullanıcının ekranında gösterilen tüm hassas bilgilerin toplanmasına izin vermek üzereaçık bir kullanıcı izni almalıdır. AOSP ile aynı mesajdır. her zaman katılımcıların oluşturduğu ekran yayınlama veya ekran kaydı etkin başlatın: MediaProjection.createVirtualDisplay(), VirtualDeviceManager.createVirtualDisplay(), ya da özel API'ler. Kullanıcılara kullanıcı izninin gelecekte görüntülenmesini devre dışı bırakabilir.
  • [C-0-3] Ekran yayını sırasında kullanıcıya sürekli bir bildirim SUNMALIDIR veya ekran kaydı etkinleştirilmiş olmalıdır. AOSP, bu koşulu karşılayabilmek için devam eden bildirim simgesine dokunun.

Yeni koşullarla başlayın

  • [C-SR-1] AOSP'de uygulanan mesajın aynısı olan bir kullanıcı uyarısı göstermeleri ÖNEMLE ÖNERİLİR, ancak mesaj, kullanıcıyı ekranındaki hassas bilgilerin yakalandığı konusunda açık bir şekilde uyardığı sürece değiştirilebilir.

  • [C-0-4] kullanıcılara gelecekteki istemleri devre dışı bırakma olanağı SUNMAMALIDIR. Oturumun bir kullanıcı tarafından başlatılmaması durumunda, kullanıcının ekranı Kullanıcının izin verdiği sistem uygulaması associate() şununla: android.app.role.COMPANION_DEVICE_APP_STREAMING veya android.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING cihaz profiline dokunun.

    Yeni şartları sonlandırma

Cihaz uygulamaları, sistemde Ekranda görüntülenen içeriği yakalar ve/veya ses akışını kaydeder System API ContentCaptureService dışında bir cihazda oynatılan veya aşağıda açıklandığı şekilde, Google'a ait olan ve Bölüm 9.8.6 İşletim Sistemi düzeyi ve ortam verileri:

  • [C-1-1] bu tür bir işlem yapıldığında kullanıcıya sürekli bir bildirimin BULUNMASI ZORUNLUDUR ve etkin bir şekilde görüntü yakalama/kaydetme işlevselliğinin etkin olduğundan emin olun.

Cihaz uygulamaları, şunları yapabilen ve kullanıma hazır olarak etkinleştirilmiş bir bileşen içeriyorsa ortam sesini kaydetme ve/veya cihazda çalınan sesi kaydetme kullanıcı bağlamı hakkında faydalı bilgiler bulmak için:

  • [C-2-1] Cihaz üzerinde kalıcı bir depolama alanında saklanacak veya veya dönüştürülebilen herhangi bir formatı kullanarak, Kullanıcının açık izni olmadığı sürece orijinal ses veya yakın bir faks.

"Mikrofon göstergesi", ekranda sürekli olarak gösterilen bir görünümü ifade eder. kullanıcı tarafından gizlenemez ve mikrofonunuz açık değilken (benzersiz metin, renk, simge veya bazı kombinasyonlar yoluyla) kullanın.

"Kamera göstergesi", ekranın sürekli olarak görebildiği görünümünü kullanıcı tarafından gizlenemez ve kullanıcı kameranın kullanımda olduğunu anlar. (benzersiz metin, renk, simge veya çeşitli kombinasyonlar kullanarak).

İlk bir saniye görüntülendikten sonra bir gösterge görsel olarak değişebilir. Örneğin, ve en başta sunulduğu şekliyle gösterilmesi gerekmez ve durumlarda işe yarar.

Mikrofon göstergesi, aktif olarak görüntülenen bir kamerayla birleştirilebilir veya renklerin kullanıcıya gerçekten uygun olduğunu mikrofon kullanımına başlandı.

Kamera göstergesi, aktif olarak görüntülenen bir mikrofonla birleştirilebilir belirten bir uyarı veya açıklamadır. Ancak, metnin, simgelerin veya renklerin kullanıcıya başladı.

Cihaz uygulamaları android.hardware.microphone bildiriyorsa:

  • [C-SR-1] Bir uygulama olduğunda mikrofon göstergesini görüntülemesi ÖNEMLE ÖNERİLİR mikrofondan ses verilerine erişiyor, ancak mikrofon açıkken erişmiyor yalnızca HotwordDetectionService, SOURCE_HOTWORD, ContentCaptureService veya Bölüm'de açıklanan rollere sahip uygulamalar 9.1 CDD tanımlayıcısı [C-3-X] olan izinler. .
  • [C-SR-2] En Son ve Aktif listesinin görüntülenmesi için ÖNEMLE ÖNERİLİR geri döndüğü şekliyle mikrofonu kullanan uygulamalar PermissionManager.getIndicatorAppOpUsageData() (herhangi bir ilişkilendirmeyle birlikte) otomatik olarak bulunur.
  • [C-SR-3] Mikrofon göstergesini gizlememesi ÖNEMLE ÖNERİLİR: görünür kullanıcı arayüzleri veya doğrudan kullanıcı etkileşimi olan sistem uygulamaları.

Cihaz uygulamaları android.hardware.camera.any bildiriyorsa:

  • [C-SR-4] Bir uygulama etkinken kamera göstergesini göstermeniz ÖNEMLE ÖNERİLİR canlı kamera verilerine erişiyorum (yalnızca kameraya erişirken değil) Bölüm 9.1'de CDD ile İzinler'de açıklanan rollere sahip uygulamalara göre [C-3-X] olduğunu lütfen unutmayın.
  • [C-SR-5] Son kullanılan ve etkin uygulamaların PermissionManager.getIndicatorAppOpUsageData() adlı satıcıdan iade edilen kamera ve bunlarla ilişkili ilişkilendirme mesajları gösterilir.
  • [C-SR-6] Sistemde kamera göstergesini gizlememesi ÖNEMLE ÖNERİLİR görünür kullanıcı arayüzleri veya doğrudan kullanıcı etkileşimi olan uygulamalar.

9.8.3. Bağlantı

Cihaz uygulamalarında USB çevre birimi modu destekli bir USB bağlantı noktası varsa onlar:

  • [C-1-1] İşlem öncesinde kullanıcının iznini isteyen bir kullanıcı arayüzünün gösterilmesi ZORUNLUDUR USB bağlantı noktası üzerinden paylaşılan depolama biriminin içeriğine erişilmesine izin verir.

9.8.4. Ağ Trafiği

Cihaz uygulamaları:

  • [C-0-1] Sistem tarafından güvenilen Sağlandığı şekilde Sertifika Yetkilisi (CA) deposunu ürün geliştirme sürecinde
  • [C-0-2] boş bir kullanıcı kök CA deposuyla gönderilmesi ZORUNLUDUR.
  • [C-0-3] Kullanıcıya ağ trafiğini belirten bir uyarı GÖRÜNTÜLEMELİDİR kullanıcı kök CA'sı eklendiğinde izlenebilir.

Cihaz trafiği VPN üzerinden yönlendiriliyorsa cihaz uygulamaları:

  • [C-1-1], kullanıcıya aşağıdakilerden birini belirten bir uyarı görüntülemelidir:
    • Bu ağ trafiği izlenebilir.
    • Bu ağ trafiği, ilgili VPN üzerinden yönlendiriliyor sağlayan uygulamalardır.

Cihaz uygulamalarında varsayılan olarak kullanıma hazır olarak etkinleştirilmiş bir mekanizma varsa bir proxy sunucu veya VPN ağ geçidi (örneğin, bir VPN hizmetini android.permission.CONTROL_VPN verilmiş olarak önceden yüklediğinde):

  • [C-2-1] Bu mekanizmayı etkinleştirmeden önce kullanıcının iznini istemelidir. VPN, Cihaz Politikası Denetleyicisi tarafından DevicePolicyManager.setAlwaysOnVpnPackage() Bu durumda, kullanıcının ayrı bir izin vermesi gerekmez. Yalnızca bilgilendirilmek ZORUNLUDUR.

Cihaz uygulamaları, "her zaman açık VPN" işlevini yerine getiriyorsa:

  • [C-3-1] Desteklenmeyen uygulamalar için bu kullanıcı erişimini devre dışı bırakması ZORUNLUDUR AndroidManifest.xml dosyasında her zaman açık VPN hizmetini SERVICE_META_DATA_SUPPORTS_ALWAYS_ON özelliğini false ile ilişkilendirin.

9.8.5. Cihaz Tanımlayıcıları

Cihaz uygulamaları:

  • [C-0-1] cihazın seri numarasına erişimi engellemelidir ve geçerli, IMEI/MEID, SIM seri numarası ve Uluslararası Mobil Aşağıdaki koşullardan birini karşılamıyorsa uygulamanın Abone Kimliği (IMSI) koşullar:
    • cihaz üreticileri tarafından doğrulanan, imzalı bir operatör uygulamasıdır.
    • READ_PRIVILEGED_PHONE_STATE için izin verildi.
    • UICC Operatör Ayrıcalıkları bölümünde tanımlandığı şekilde operatör ayrıcalıklarına sahip olmalıdır.
    • kendisine izin verilen bir cihaz sahibi veya profil sahibidir READ_PHONE_STATE izni.
    • (Yalnızca SIM seri numarası/ICCID için) için yerel düzenlemeler gereklidir Bu uygulama, abonenin kimliğindeki değişiklikleri algılar.

9.8.6. İçerik Yakalama ve Uygulama Aramaİşletim Sistemi düzeyi ve ortam verileri

Android, Sistem API'leri ContentCaptureService, AugmentedAutofillService, AppSearchGlobalManager.query veya başka bir kullanıcı özel araçlar, cihaza yönelik bir mekanizmayı destekler. uygulamalar ve uygulamalar arasındaki aşağıdaki uygulama verisi etkileşimlerini yakalamak için kullanıcı hassas veriler:

  • Aşağıdakiler dahil ancak bunlarla sınırlı olmamak üzere ekranda oluşturulan metin ve grafikler bildirimler ve destek verileri: AssistStructure API'ye gidin.
  • Cihaz tarafından kaydedilen veya oynatılan ses ya da video gibi medya verileri.
  • Giriş etkinlikleri (ör. tuş, fare, hareket, ses, video ve erişilebilirlik).

Yeni koşullarla başlayın

  • AugmentedAutofillService aracılığıyla cihaza gönderilen herhangi bir ekran veya diğer veriler bahsedeceğim.
  • Üzerinden erişilebilen herhangi bir ekran veya diğer veriler Content Capture API'ye gidin.
  • FieldClassificationService API üzerinden erişilebilen herhangi bir ekran veya diğer veriler
  • Sisteme AppSearchManager API üzerinden iletilen tüm uygulama verileri ve AppSearchGlobalManager.query aracılığıyla erişilebilir.

Yeni şartları sonlandırma

  • Bir uygulamanın sisteme Content Capture API veya AppSearchManager API benzer özelliklere sahip bir Android ve Google'a ait.

  • TextClassifier API aracılığıyla gönderilen kısa mesajlar veya diğer veriler (ör. sisteme ait kullanımın anlaşılması için metnin anlamını ve içeriğe göre tahmini sonraki işlemleri oluşturma metin.
  • Aşağıdakiler dahil ancak hariç olmak üzere platformun AppSearch uygulaması tarafından dizine eklenen veriler metin, grafik, medya verileri veya diğer benzer verilerle sınırlıdır.

Yeni koşullarla başlayın

  • Kullanım sonucu elde edilen ses verileri Ses Tanıma Aracı'ndan SpeechRecognizer#onDeviceSpeechRecognizer() Uygulama.
  • AudioRecord tarihine kadar arka planda (sürekli) elde edilen ses verileri, SoundTrigger veya diğer Ses API'leridir ve kullanıcıların görmesini sağlamaz. gösterge
  • Kamera Manager veya arka planda (sürekli olarak) elde edilen kamera verileri kullanıcı tarafından görülebilen bir göstergeyle sonuçlanmayacak ve

Yeni şartları sonlandırma

Cihaz uygulamaları yukarıdaki verilerden herhangi birini yakalarsa:

  • [C-1-1] cihazda depolandığında bu tür verilerin tümünü şifreleme ZORUNLUDUR. Bu şifreleme, Android Dosya Tabanlı Şifreleme veya Cipher SDK'sı bölümünde açıklanan API 26 ve sonraki sürümleri olarak listelenen şifreler.
  • [C-1-2] Ham veya şifrelenmiş verileri Android yedekleme yöntemleri veya diğer yedekleme yöntemleri yöntemler.
  • [C-1-3] Bu tür verilerin yalnızca tümünü GÖNDERMELİDİR ve günlüğe gizliliği korumaya yönelik bir mekanizma kullanan, kullanıcı rızası da alınmalıdır. paylaşıldı. Gizliliği korumaya yönelik mekanizma “yalnızca toplu analize izin veren ve projenin günlüğe kaydedilen etkinliklerin veya türetilen sonuçların bireysel kullanıcılarla eşleştirilmesi, kullanıcı başına verilerin içe dönük olmasını önler (ör. RAPPOR gibi diferansiyel gizlilik teknolojisi).
  • [C-1-4] bu tür verileri herhangi bir kullanıcı kimliğiyle (ör. Account olarak) (veriler her seferinde açık kullanıcı izni olması dışında) ilişkilendirilmiş.
  • [C-1-5] Bu tür verileri, mevcut bölümde belirtilen şartlara uymak (9.8.6 İçerik Yakalama İşletim sistemi düzeyi ve ambiyans verileri) kapsar. Her bir kullanıcının açık kullanıcı izni olduğu durumlar paylaşıldığını gösterir. Bu tür bir işlev bir Android SDK API'si (AmbientContext, HotwordDetectionService).
  • [C-1-6] Kullanıcıya, "the" ContentCaptureService uygulama veya özel yöntemlerle toplanan if ne zaman verilerin cihazda herhangi bir biçimde saklandığına işaret eder. kullanıcı verileri silmeyi seçerse toplanan tüm geçmiş veriler.
  • [C-1-7], kullanıcıya, toplanan verileri devre dışı bırakma fırsatı SUNMALIDIR Android platformunda gösterilmesi için AppSearch veya özel araçlar aracılığıyla ör. Başlatıcı.
  • [C-SR-1] İNTERNET izni istemesi ÖNEMLE ÖNERİLİR.
  • [C-SR-2] İnternete yalnızca herkese açık açık kaynak uygulamalarıyla desteklenen yapılandırılmış API'ler.

Yeni koşullarla başlayın

  • [C-SR-4] Android SDK API veya OEM'ye ait benzer bir açık kaynak depo, ve / veya Korumalı alana alınan uygulama (9.8.15 Korumalı Alana Sahip API uygulamalarına bakın).

Yeni şartları sonlandırma

Cihaz uygulamaları, System API'yi uygulayan bir hizmet içeriyorsa ContentCaptureService, AppSearchManager.index veya özel bir hizmet yukarıda açıklandığı şekilde yakalayan uygulamalar:

  • [C-2-1] Kullanıcıların hizmetleri kullanıcı tarafından yüklenebilen uygulama veya hizmet .
  • [C-2-2] Önceden yüklenmiş hizmetler dışındaki hiçbir uygulamaya İZİN VERİLMEMELİDİR sahip bir mekanizmadır.
  • [C-2-3] Hizmetleri devre dışı bırakmak için kullanıcıya ödeme yapması GEREKİR.
  • [C-2-4] hizmetler tarafından sahip olup Android izinlerini takip ederler Bölüm 9.1. İzin.
  • [C-SR-3] Hizmetleri diğer hizmetlerden ayrı tutmak için ÖNEMLE ÖNERİLİR sistem bileşenleri(ör. hizmeti bağlamama veya işlem kimliklerini paylaşma) şunlar hariç:

    • Telefon, Kişiler, Sistem Kullanıcı Arayüzü ve Medya

Android, SpeechRecognizer#onDeviceSpeechRecognizer() aracılığıyla şunları sağlar: ağın müdahalesine gerek kalmadan cihazda konuşma tanıma işlevi gerçekleştirilmesini sağlar. Cihaz üzerinde SpeechUnderstandingr uygulaması politikalara UYMALIDIR bu bölümde özetleyeceğiz.

9.8.7. Pano Erişimi

Cihaz uygulamaları:

  • [C-0-1] kırpılmış bir veriyi panodan DÖNMEMELİDİR (ör. ClipboardManager API) uygulama, varsayılan IME'dir veya şu anda odaklanılan uygulamadır.

  • [C-0-2] Pano verilerini, son yüklendikten en geç 60 dakika sonra temizlemesi ZORUNLUDUR veya panodan okumanızı sağlar.

9.8.8. Konum

Konum, Android Konum sınıfındaki( Latitude, Boylam, Rakım) ve Konum'a dönüştürülebilen tanımlayıcılar. Konum için en az DGPS (diferansiyel Küresel Konumlandırma Sistemi) veya ülke düzeyinde yer olarak genel (ülke kodu konumu gibi - MM - Mobil Ülke Kodu) yazın.

Aşağıdakiler, doğrudan bir kullanıcının veya kullanıcının konumuna dönüştürülebilir. Bu, olası bir riskin ancak Konumun doğrudan veya dolaylı olarak türetilebilir:

  • GPS/GNSS/DGPS/PPP
    • Küresel Konumlandırma Çözümü veya Küresel Navigasyon Uydu Sistemi ya da Diferansiyel Küresel Konumlandırma Çözümü
    • Ham GNSS Ölçümleri ve GNSS Durumu da buna dahildir.
      • Hassas Konum, Ham GNSS Ölçümlerinden elde edilebilir
  • Aşağıdakiler gibi benzersiz tanımlayıcılara sahip Kablosuz Teknolojileri:
    • Kablosuz erişim noktaları (MAC, BSSID, Ad veya SSID)
    • Bluetooth/BLE (MAC, BSSID, Ad veya SSID)
    • Ultra Geniş Bant (MAC, BSSID, Ad veya SSID)
    • Baz İstasyonu Kimliği (3G, 4G, 5G... Gelecekteki tüm Hücresel Modem dahil) benzersiz tanımlayıcılara sahip teknolojiler)

Birincil referans noktası olarak şurayı gerektiren Android API'lerini inceleyin: ACCESS_FINE_Location veya ACCESS_COARSE_Location izinleri.

Cihaz uygulamaları:

  • [C-0-1] cihazın konum ayarını ve kablosuz/Bluetooth'u AÇMAMALI/KAPAMAMALIDIR. açık kullanıcı izni veya kullanıcı başlatma olmadan tarama ayarları.
  • [C-0-2] Kullanıcıya, konumla ilgili erişim için olanak sağlanması GEREKİR son konum istekleri, uygulama düzeyinde izinler ve kullanım dahil olmak üzere bilgiler kablosuz ağ/Bluetooth taramasının kullanılmasını sağlar.
  • [C-0-3] Uygulamanın, Emergency Location Bypass API'yi kullanan uygulamanın [LocationRequest.setLocationSettingsignored()], kullanıcı tarafından başlatılan bir acil durumdur oturum açın (ör. 911'i çevirin veya 911'e mesaj gönderin). Ancak otomotiv için bir araç durumda etkin kullanıcı etkileşimi olmadan acil durum oturumu başlatma bir kaza/kaza algılandığında (ör. e-posta çağrısı gereksinimlerini karşılamak için).
  • [C-0-4] Acil Durum Konum Atlama API'sinin şu işlemleri yapması ZORUNLUDUR: cihaz konum ayarlarını, ayarları değiştirmeden atlamasını sağlar.
  • [C-0-5] konum verilerine eriştiğinde, arka planın [ACCESS_BACKGROUND_LOCATION] izin.

9.8.9. Yüklü uygulamalar

API düzeyi 30 veya üstünü hedefleyen Android uygulamaları diğer varsayılan olarak yüklü uygulamalar (Android'de Paket görünürlüğü SDK dokümanları).

Cihaz uygulamaları:

  • [C-0-1] API düzeyi 30 veya üstünü hedefleyen hiçbir uygulamaya ilişkin ayrıntıları GÖSTERMEMELİDİR diğer yüklü uygulamalar hakkında (Uygulama, henüz ayrıntıları göremiyorsa) yönetilen API'ler aracılığıyla diğer yüklü uygulama hakkında Bunlara örnek olarak, cihaz tarafından eklenen özel API'lerin gösterdiği ayrıntılarla sınırlı değildir veya dosya sistemi üzerinden erişilebilir.
  • [C-0-2] Hiçbir uygulamaya, diğer Uygulamanın özel, uygulamaya özgü dizini bir depolama alanı vardır. Bu konudaki istisnalar şunlardır:
    • Harici depolama sağlayıcısı yetkilisi (ör. DocumentsUI gibi uygulamalar).
    • "İndirmeler" sağlayıcı yetkilisini kullanan İndirme Sağlayıcısı uygulama depolama alanına dosya indirme.
    • dosya aktarımını etkinleştirmek için ACCESS_MTP ayrıcalıklı izni başka bir cihaz.
    • Diğer uygulamaları yükleyen ve izne sahip uygulamalar YÜKLE_PAKETLERİ yalnızca "obb" dizinlerine erişebilir ve bu dizinleri APK genişletme dosyaları.

9.8.10. Bağlantı Hatası Raporu

Cihaz uygulamaları android.hardware.telephony özellik bayrağını beyan ederse, onlar:

  • [C-1-1] şunun üzerinden bağlantı hata raporlarının oluşturulmasını DESTEKLEMELİDİR: BugreportManager ile BUGREPORT_MODE_TELEPHONY.
  • [C-1-2] BUGREPORT_MODE_TELEPHONY her seferinde kullanıcı izninin alınması ZORUNLUDUR bir rapor oluşturmak için kullanılır ve kullanıcıdan talep etmesi gerekir.
  • [C-1-3] oluşturulan raporu, istekte bulunan uygulamaya açık kullanıcı izni.
  • [C-1-4] BUGREPORT_MODE_TELEPHONY kullanılarak oluşturulan raporlar ŞUNU İÇERMELİDİR: en azından aşağıdaki bilgilere sahip olmalısınız:
    • TelephonyDebugService dökümü
    • TelephonyRegistry dökümü
    • WifiService dökümü
    • ConnectivityService dökümü
    • Çağrı paketinin CarrierService örneğinin dökümü (bağlıysa)
    • Radyo günlüğü arabelleği
    • SubscriptionManagerService dökümü
  • [C-1-5] Oluşturulan raporlarda aşağıdakileri İÇERMEMELİDİR:
    • Bağlantıyla doğrudan alakalı olmayan her türlü bilgi hata ayıklama.
    • Kullanıcının yüklediği her türlü uygulama trafiği günlükleri veya ayrıntılı profiller uygulamalar/paketler (UID'ler kullanılabilir, paket adları kullanılabilir .
  • Herhangi bir kullanıcıyla ilişkili olmayan ek bilgiler İÇEREBİLİR kimliği. (ör. satıcı günlükleri).

Cihaz uygulamalarında ek bilgiler (ör. satıcı günlükleri) ve bilgilerde gizlilik/güvenlik/pil/depolama/bellek şu unsurlardan etkileniyor:

  • [C-SR-1] Geliştirici ayarının varsayılan olarak devre dışı bırakıldı. AOSP referans uygulaması, Enable verbose vendor logging sağlayarak bu ihtiyacı karşılar Geliştirici ayarlarında, cihaza özel ek satıcı günlüklerini içerme seçeneği bulabilirsiniz.

9.8.11. Veri blob'ları paylaşımı

Android (BlobStoreManager ile) uygulamaların, seçilen bir kullanıcıyla paylaşılması için Sistem'e veri blob'larıyla katkıda bulunmasına izin verir oluşturuyoruz.

Cihaz uygulamaları, SDK dokümanları, onlar:

9.8.12. Müzik Tanıma

System API MusicRecognitionManager aracılığıyla Android, müzik tanıma isteğinde bulunmak için kullanılan cihaz uygulamaları ve özel bir uygulamaya delege edebildiğiniz için bunu MusicRecognitionService API.

Cihaz uygulamaları, System API'yi uygulayan bir hizmet içeriyorsa MusicRecognitionManager veya ses verisi akışı sağlayan herhangi bir özel hizmet Bunlar:

  • [C-1-1] MusicRecognitionManager'ı arayan kişinin MANAGE_MUSIC_RECOGNITION izin
  • [C-1-2]; tek bir önceden yüklenmiş müzik tanıma özelliğini MusicRecognitionService'i uygular.
  • [C-1-3] Kullanıcıların MusicRecognitionManagerService öğesini değiştirmesine İZİN VERİLMEMELİDİR veya MusicRecognitionService'i kullanabilirsiniz.
  • [C-1-4] MusicRecognitionManagerService ve bu kaydı, MusicRecognitionService'e ise ses erişimi, AppOpsManager.noteOp / startOp.

MusicRecognitionManagerService veya MusicRecognitionService, yakalanan tüm ses verilerini depolar. Bu hizmetler:

  • [C-2-1] Ham ses veya ses parmak izlerini diskte hiç DEPOLAMAMALIDIR. veya hafızada saklanabilir.
  • [C-2-2] Bu tür verileri MusicRecognitionService dışında PAYLAŞMAMALIDIR. kullanıcı rızası da alınabiliyor.

9.8.13. SensörGizlilik Yöneticisi

Cihaz uygulamaları, kullanıcıya uygulamayı devre dışı bırakması için yazılım olanağı sağlıyorsa kamera ve/veya mikrofon girişini kontrol ettikten sonra:

  • [C-1-1] "true" (doğru) değerini doğru şekilde döndürmelidir alakalı supportsSensorToggle() API yöntemi.
  • [C-1-2] Bir uygulama engellenen bir mikrofona veya kameraya erişmeye çalıştığında; kullanıcıya, kullanıcıya açık bir şekilde kapatılamayan bir sensörün engellendiğini ve devam etmek için bir seçenek gerektirdiğini gösterir AOSP uygulaması uyarınca engelleme veya engellemeyi kaldırma gerekir.
  • [C-1-3] Uygulamalara yalnızca boş (veya sahte) kamera ve ses verileri iletmesi ZORUNLUDUR ve kullanıcının kamerayı açmadığı için bir hata kodu bildirmemesi kullanıcı tarafından sağlanan, mikrofonlu bir şekilde veya mikrofonlu olarak devre dışı bırakılabilir.

Yeni koşullarla başlayın

9.8.14. Kimlik Bilgisi Yöneticisi

Kaldırıldı.

9.8.15. Korumalı Alana Sahip API Uygulamaları

Android, bir dizi temsilci API aracılığıyla güvenli İşletim sistemi düzeyinde ve ortam verileri. Bu tür işlemler, önceden yüklenmiş bir Ayrıcalıklı erişime ve azaltılmış iletişim özelliklerine sahip olan bir apk, Korumalı Alana Sahip API Uygulaması.

Tüm Korumalı Alan API'leri uygulamaları:

  • [C-0-1] İNTERNET izni İSTEMEMELİDİR.
  • [C-0-2] internete yalnızca gizliliği korumaya yönelik kaynaklar kullanan herkese açık açık kaynak uygulamaları mekanizmaları üzerinden ya da dolaylı olarak Android SDK API'leri aracılığıyla) Gizliliği koruyan mekanizmanın “yalnızca toplu analize izin veren ve günlüğe kaydedilen etkinliklerin veya türetilen sonuçların bireysel kullanıcılarla eşleştirilmesini engeller", kullanıcı başına verilerin içe dönük olmasını önlemek için (ör. gizlilik teknolojileri gibi diferansiyel RAPOR) tıklayın.
  • [C-0-3] Hizmetleri diğer sistem bileşenlerinden ayrı TUTULMASI ZORUNLUDUR (ör. hizmeti bağlamama veya işlem kimliklerini paylaşma) yalnızca takip etmek için:
    • Telefon, Kişiler, Sistem Kullanıcı Arayüzü ve Medya
  • [C-0-4] Kullanıcıların hizmetleri kullanıcı tarafından yüklenebilen uygulama veya hizmet
  • [C-0-5] Yalnızca önceden yüklenmiş hizmetlerin bu tür verileri yakalamasına izin VERMELİDİR. Değişim özelliği AOSP'de yerleşik olarak bulunmuyorsa (ör. Asistan Uygulamaları).
  • [C-0-6] Önceden yüklenmiş hizmetler dışındaki hiçbir uygulamaya İZİN VERİLMEMELİDİR sahip bir mekanizmadır. Böyle bir yakalama özelliği olmadığı sürece Android SDK API ile uygulanmıştır.
  • [C-0-7] Hizmetleri devre dışı bırakmak için kullanıcıya ödeme yapması GEREKİR.
  • [C-0-8] ve Android izin modelini izlerler. Bu izin, şurada açıklandığı: Bölüm 9.1. İzin.

9.8.16. Kesintisiz Ses ve Kamera verileri

9.8.2 Kayıt, 9.8.6 OS düzeyi ve 9.8.15 Korumalı Alan API'si uygulamaları ile birlikte, arka planda (sürekli) elde edilen Ses verilerinden yararlanmak için AudioRecord, SoundTrigger veya diğer Ses API'leri VEYA KameraManager veya diğer Kamera API'leri üzerinden arka plan (sürekli):

  • [C-0-1] Buna karşılık gelen bir gösterge (kamera ve/veya mikrofon Bölüm 9.8.2 Kayıt uyarınca) geçerli değildir.
    • Bu erişim, Korumalı Alana sahip bir uygulamada gerçekleştirilir ( 9.8.15 Korumalı Alana Sahip API uygulaması), şu rollerden daha fazlasını alabilirsiniz: System UI Intelligence Sistem Ambiyansı Ses Zekası, Sistem Ses Zekası, System Notification Intelligence System Text Intelligence, veya System Visual Intelligence.
    • Erişim bir korumalı alan aracılığıyla gerçekleştirilir, AOSP'deki mekanizmalar aracılığıyla uygulanır (HotwordDetectionService, WearableSensingService, VisualQueryDetector).
    • Ses erişimi, Dijital Destek Ekibi tarafından yardımcı amaçlar doğrultusunda gerçekleştirilir. SOURCE_HOTWORD ses kaynağı olarak sağlayan Asistan uygulaması.
    • Erişim sistem tarafından gerçekleştirilir ve açık kaynak kodudur.
  • [C-SR-1] varsayılan olarak devre dışı bırakılır.
  • [C-SR-2] Aynı tedaviyi uygulaması ÖNEMLE ÖNERİLİR (ör. 9.8.2 Kayıt, 9.8.6 OS düzeyi ve ortam verileri bölümünde belirtilen kısıtlamalar 9.8.15 Korumalı Alana Sahip API uygulamaları ve 9.8.16 Sürekli Ses ve Kamera verileri) uzaktaki giyilebilir cihazdan gelen kamera verilerine bağlanabilir.

Kamera verileri uzaktaki bir giyilebilir cihazdan sağlanıyorsa ve verilere Android OS dışında şifrelenmemiş form, korumalı alana alınan uygulama veya korumalı alan işlevleri WearableSensingManager tarafından geliştirildiyse:

  • [C-1-1], uzaktaki giyilebilir cihaza şunu bildirmeli: orada ek bir gösterge görüntüleyebilir.

Cihazların Dijital Asistan Uygulaması ile etkileşimde bulunma özelliği sağlayıp sağlamadığı atanan anahtar kelime olmadan (genel kullanıcı sorgularını işleme veya kamera aracılığıyla kullanıcı varlığı):

  • [C-2-1] Bu tür bir uygulamanın, android.app.role.ASSISTANT rolü.
  • [C-2-2] Bu tür bir uygulamada HotwordDetectionService değerinin kullanılması ZORUNLUDUR ve/veya VisualQueryDetectionService Android API'si.

9.8.17. Telemetry

Android, sistem ve uygulama günlüklerini StatsLog API'lerini kullanarak depolar. Bu günlükler, özel sistem uygulamaları tarafından kullanılabilen StatsManager API'leri içerir.

StatsManager, gizlilik olarak sınıflandırılan verileri toplamak için bir yöntem de sağlar. gizliliği korumaya yönelik mekanizmalara sahip cihazlara karşı hassas olabilir. Özellikle, StatsManager::query API, kısıtlanmış metrikleri sorgulama olanağı sunar. kategori tanımı StatsLog'da bulabilirsiniz.

Kısıtlanmış metriklerin sorgulanması ve toplanmasıyla ilgili her türlü uygulama İstatistik Yöneticisi:

  • [C-0-1] cihazdaki tek uygulama/uygulama olması ZORUNLUDUR READ_RESTRICTED_STATS izni.
  • [C-0-2] telemetri verilerini ve cihazın günlüğünü gizliliği korumaya yönelik mekanizmalardan biri. Gizliliği korumaya yönelik mekanizmanın tanımı, "yalnızca toplu analize izin veren ve birbiriyle eşleştirilmesini önleyen bireysel kullanıcılara göre günlüğe kaydedilmiş etkinlikler veya türetilen sonuçlar" kullanıcı başına verilerin içe dönük olması (ör. diferansiyel RAPPOR gibi gizlilik teknolojileri).
  • [C-0-3] Bu tür verileri herhangi bir kullanıcı kimliğiyle (örneğin, Hesap) tıklayın. cihaz üzerinde.
  • [C-0-4] Bu tür verileri, politikaya uymayan diğer işletim sistemi bileşenleriyle PAYLAŞMAMALIDIR. (9.8.17 Gizlilik Güvencesi, 9.8.17) telemetri).
  • [C-0-5] Gizliliğin korunmasını etkinleştirmek/devre dışı bırakmak için kullanıcıya ödeme imkanı ZORUNLUDUR veri toplama, kullanma ve paylaşma.
  • [C-0-6] [C-0-6] veriler cihazda herhangi bir biçimde depolanıyorsa uygulama toplanır. Eğer kullanıcı verileri silmeyi seçti. Şu anda için geçerlidir.
  • [C-0-7] Temel gizliliği korumaya yönelik protokol uygulamasını AÇIKLAMALIDIR depoladığı anlamına gelir.
  • [C-0-8 ]Kapı toplama işlemi için bu bölümde veri çıkış politikalarının uygulanması ZORUNLUDUR kısıtlanmış metrik kategorilerindeki verilerin oranı StatsLog'da bulabilirsiniz.

Yeni şartları sonlandırma

9.9. Veri Depolama Şifrelemesi

Tüm cihazlar bölüm 9.9.1'deki şartları karşılamalıdır. Bu belgeden daha eski bir API düzeyinde başlatılan cihazlar 9.9.2 ve 9.9.3’ün şartlarından muaf olmalıdır; onlar da Android Uyumluluğu Bölüm 9.9'da belirtilen şartların karşılanması ZORUNLUDUR Cihazın başlatıldığı API düzeyine karşılık gelen tanım belgesi.

9.9.1. Doğrudan Başlatma

Cihaz uygulamaları:

  • [C-0-1] Doğrudan Başlatma modu API'lerini uygulaması GEREKİR. Depolama Alanı Şifreleme'yi desteklemez.

  • [C-0-2] ACTION_LOCKED_BOOT_COMPLETED ve ACTION_USER_UNLOCKED Amaçların yine de, Doğrudan Başlatma'ya duyarlı uygulamaların sinyalini vermek için yayınlanması ZORUNLUDUR. Cihazda Şifrelenmiş (DE) ve Kimlik Bilgisi Şifrelenmiş (CE) depolama konumları: kullanılabilir.

9.9.2. Şifreleme gereksinimleri

Cihaz uygulamaları:

  • [C-0-1], uygulamayı gizli olarak şifrelemelidir verileri (/data bölüm) ve uygulama paylaşılan depolama alanı bölümü (/sdcard bölümü) sağlayın.
  • [C-0-2] O anda veri depolama şifrelemesinin varsayılan olarak etkinleştirilmiş olması ZORUNLUDUR Kullanıcı ilk kurulum deneyimini tamamlamıştır.
  • [C-0-3] Yukarıdaki veri depolama alanı şifrelemesini karşılamalıdır. aşağıdaki iki şifreleme yönteminden birini uygulayarak

9.9.3. Şifreleme Yöntemleri

Cihaz uygulamaları şifrelenmişse:

  • [C-1-1] Kullanıcı kimlik bilgileri ve Doğrudan Başlatmaya duyarlı uygulamaların Cihazla Şifrelenmiş (DE) depolama alanına erişmesine izin ver ACTION_LOCKED_BOOT_COMPLETED mesajı yayınlandıktan sonra.
  • [C-1-2] Kimlik Bilgisi Şifrelenmiş (CE) depolama alanına yalnızca Kullanıcı, kimlik bilgilerini sağlayarak cihazın kilidini açtı (ör. şifre kodu, PIN, desen veya parmak izi) ve ACTION_USER_UNLOCKED mesajı yayınlanır.
  • [C-1-13] CE korumalı depolama alanının kilidini açmak için herhangi bir yöntem SUNMAMALIDIR kullanıcı tarafından sağlanan kimlik bilgileri, kayıtlı emanet anahtarı veya şu gereksinimleri karşılayacak şekilde yeniden başlatmaya bölüm 9.9.4'tür.
  • [C-1-4] Doğrulanmış Başlatma'yı kullanması ZORUNLUDUR.
9.9.3.1. Meta Veri Şifrelemeyle Dosya Tabanlı Şifreleme

Cihaz uygulamalarında Meta Veri Şifreleme ile Dosya Tabanlı Şifreleme kullanılıyorsa onlar:

  • [C-1-5] Dosya içeriklerini ve dosya sistemi meta verilerini AES-256-XTS veya Adiantum. AES-256-XTS, Gelişmiş Şifreleme Standardı'na işaret eder XTS modunda çalıştırılan, 256 bit şifre anahtarı uzunluğunda; videonun tam uzunluğunu anahtarı 512 bittir. Adiantum, https://github.com/google/adiantum Dosya sistemi meta verileri, dosya gibi verilerdir modlar ve genişletilmiş özellikler (xattrs).
  • [C-1-6], dosya adlarını AES-256-CBC-CTS, AES-256-HCTR2 kullanarak şifrelemelidir. ya da Adiantum.
  • [C-1-12] Cihazda Gelişmiş Şifreleme Standardı (AES) varsa talimatlar (ör. ARM tabanlı cihazlarda ARMv8 Kriptografi Uzantıları) veya AES-NI), ardından dosya adı için yukarıdaki AES tabanlı seçenekleri kullanın. dosya sistemi meta veri şifrelemesi KULLANILMALIDIR. Adiantum değil.
  • [C-1-13] Şifreleme açısından güçlü ve geri alınamayan bir anahtar KULLANILMALIDIR türev işlevi (ör. HKDF-SHA512) kullanarak gerekli alt anahtarları (ör. dosya başına anahtar sayısı) kaldırın. "Kriptografik olarak güçlü ve geri alınamaz" anahtar türetme fonksiyonunun bir güvenlik gücüne sahip olduğu anlamına gelir bir değere sahip ve ya da rastgele bir fonksiyonun aile fazla zaman harcıyor.
  • [C-1-14] aynı Dosya Tabanlı Şifreleme (FBE) anahtarlarını veya alt anahtarlarını KULLANMAMALIDIR (ör. hem şifreleme hem de anahtar için) veya iki farklı şifreleme algoritması için) kullanılabilir.
  • [C-1-15] Şifrelenmiş dosya içeriğindeki silinmemiş tüm blokların , şifreleme anahtarı ve şifre kombinasyonları kullanılarak şifrelendi. hem dosyaya hem de seçin. Ayrıca, şifreleme, yalnızca 32 bitlik IV uzunluğu.
  • [C-1-16], silinmemiş tüm şifrelenmiş dosya adlarının kalıcı farklı dizinlerdeki depolama birimleri farklı dizinler kullanılarak şifreleniyordu. şifreleme anahtarı ve başlatma vektörü (IV) hakkında daha fazla bilgi edinin.
  • [C-1-17] kalıcı depolama alanı, farklı şifreleme anahtarı kombinasyonları kullanılarak şifrelendi ve başlatma vektörü (IV) için de geçerlidir.

  • CE ve DE depolama alanlarını ve dosya sistemi meta verilerini koruyan anahtarlar:

    • [C-1-7] kriptografik olarak donanım destekli bir Anahtar Deposu'na bağlı olması ZORUNLUDUR. Bu anahtar deposunun Doğrulanmış Başlatma'ya ve cihazın donanımına bağlı olması ZORUNLUDUR güven kaynağıdır.
    • [C-1-8] CE anahtarları, kullanıcının kilit ekranı kimlik bilgilerine bağlı ZORUNLUDUR.
    • [C-1-9] Kullanıcı aşağıdaki işlemleri gerçekleştirdiğinde CE anahtarları varsayılan bir şifre koduna bağlanmalıdır: kilit ekranı kimlik bilgileri belirtilmemiş.
    • [C-1-10] benzersiz ve farklı olmalı, diğer bir deyişle hiçbir kullanıcının CE veya DE'si OLMALIDIR anahtarı başka bir kullanıcının CE veya DE anahtarlarıyla eşleşir.
    • [C-1-11] Zorunlu olarak desteklenen şifreler, anahtar uzunlukları ve kullanabilirsiniz.
    • [C-1-12] Bootloader'ın kilidi açılırken ve kilitlenirken güvenli bir şekilde silinmesi ZORUNLUDUR burada açıklandığı gibidir.
  • Önceden yüklenmiş temel uygulamalar (ör. Alarm, Telefon, Messenger) KULLANILMALIDIR Doğrudan Başlatma'ya duyarlı.

Yukarı akış Android Açık Kaynak projesi, Linux çekirdeği "fscrypt"e dayalı Dosya Tabanlı Şifreleme şifreleme özelliğini kullanabilirsiniz. ve Meta Veri Şifreleme'nin temel aldığı, "dm-default-key" özelliğini kullanabilirsiniz.

9.9.3.2. Kullanıcı Başına Blok Düzeyinde Şifreleme

Cihaz uygulamaları kullanıcı başına blok düzeyinde şifreleme kullanıyorsa:

  • [C-1-1] Bölüm 9.5'te açıklandığı gibi, çok kullanıcılı desteğin etkinleştirilmiş olması GEREKİR.
  • [C-1-2], ham bölümlendirme veya mantıksal hacimleri bulur.
  • [C-1-3] Aşağıdaki işlemler için kullanıcı başına benzersiz ve ayrı şifreleme anahtarları KULLANMALIDIR: şifrelemesini kontrol etmenizi sağlar.
  • [C-1-4] Kullanıcının blok düzeyinde şifrelemesi için AES-256-XTS kullanılması ZORUNLUDUR her bölüm için geçerlidir.

  • Kullanıcı başına blok düzeyinde şifrelenmiş cihazları koruyan anahtarlar:

    • [C-1-5], donanım destekli bir Anahtar Deposu'na kriptografik olarak bağlı OLMALIDIR. Bu anahtar deposunun Doğrulanmış Başlatma'ya ve cihazın donanımına bağlı olması ZORUNLUDUR güven kaynağıdır.
    • [C-1-6] İlgili kullanıcının kilit ekranına bağlı olması ZORUNLUDUR kimlik bilgileri.

Kullanıcı başına blok düzeyinde şifreleme, Linux çekirdeği kullanılarak uygulanabilir "dm-crypt" çok daha fazla özelliğe sahiptir.

9.9.4. Yeniden Başlatıldığında Devam Ettir

Yeniden başlatma sırasında devam ettir, olanlar da dahil olmak üzere tüm uygulamaların CE depolama alanının kilidini açmaya olanak tanır OTA tarafından başlatılan bir yeniden başlatma işleminden sonra henüz Doğrudan Başlatma'yı desteklemeyen uygulamalar. Bu Bu özellik, kullanıcıların şu uygulama yüklendikten sonra yüklü uygulamalardan bildirim almasını sağlar: tekrar başlat.

Yeniden Başlatmada Devam Ettirme uygulaması, bir saldırganın eline düştüğünü, bunun gerçekten saldırganın, cihaz açık olsa bile kullanıcının CE şifrelenmiş verilerini kurtarmasına açık, CE depolama alanının kilidi açık ve kullanıcı, OTA. Kuruluş içi saldırılara karşı direnç için, saldırganın aynı güvenlik açığını şifrelemeyi kullanın.

Özellikle:

  • [C-0-1] CE depolama alanı, fiziksel olarak Cihaza, aşağıdaki işlevlere ve sınırlamalara sahip olur:

    • Rastgele imzalamak için herhangi bir tedarikçinin veya şirketin imzalama anahtarını kullanabilir mesaj.
    • Cihazın OTA almasına neden olabilir.
    • Aşağıdaki durumlar dışında herhangi bir donanımın (AP, flash vb.) çalışmasını değiştirebilir. aşağıda ayrıntılı bir şekilde açıklanmıştır, ancak bu tür değişiklikler en azından bir güç döngüsü ve RAM içeriklerini yok sayacaktır.
    • Üzerinde oynanmaya karşı korumalı donanımın (ör. Titan M) çalışma şekli değiştirilemez.
    • Yayındaki cihazın RAM'i okunamıyor.
    • Kullanıcının kimlik bilgisi (PIN, desen, şifre) alınamıyor veya URL'nin girilmesine neden olabilir.

Örneğin, tüm gereksinimleri karşılayan ve açıklamalardan burada bulabilirsiniz [C-0-1] ile uyumlu olur.

9:10. Cihaz bütünlüğü

Aşağıdaki şartlar, sözleşmenin cihaz bütünlüğünü kontrol eder. Cihaz uygulamaları:

  • [C-0-1] System API yöntemi üzerinden doğru şekilde rapor GEREKLİDİR PersistentDataBlockManager.getFlashLockState() bootloader'ı durumu sistem görüntüsünün yanıp sönmesine izin verir.

  • [C-0-2] Cihaz bütünlüğü için Doğrulanmış Başlatma'yı DESTEKLEMELİDİR.

Cihaz uygulamaları, Doğrulanmış Başlatma'yı desteklemeden başlatılıyorsa ve söz konusu özellik varsa, bu sürümden gerekir.

Doğrulanmış Başlatma, cihazın bütünlüğünü garanti eden bir özelliktir daha fazla bilgi edineceksiniz. Cihaz uygulamaları bu özelliği destekliyorsa:

  • [C-1-1] platform özelliği işaretinin bildirilmesi ZORUNLUDUR android.software.verified_boot
  • [C-1-2] Her başlatma sırasında doğrulama ZORUNLUDUR.
  • [C-1-3] Doğrulamanın, ve sistem bölmesine kadar uzanır.
  • [C-1-4] Bütünlüğü kontrol etmek için doğrulamanın her aşamasını uygulaması ZORUNLUDUR ve kodu çalıştırmadan önce bir sonraki aşamada tüm baytların özgünlüğü bir sonraki aşamaya geçebiliriz.
  • [C-1-5] Geçerli olduğu kadar güçlü doğrulama algoritmaları KULLANILMALIDIR algoritmalar (SHA-256) ve ortak anahtar için NIST önerileri boyutları (RSA-2048).
  • [C-1-6] Sistem doğrulaması başarısız olduğunda başlatmanın tamamlanmasına İZİN VERİLMEMELİDİR. kullanıcı herhangi bir şekilde başlatmayı denemediğinde, doğrulanmamış herhangi bir depolama bloku KULLANILMAMALIDIR.
  • [C-1-7] Cihazdaki doğrulanmış bölümlerin değiştirilmesine İZİN VERİLMEMELİDİR Kullanıcı bootloader'ın kilidini açıkça açmadığı sürece.
  • [C-SR-1] Cihazda birden fazla ayrı çip (ör. radyo, özel görüntü işlemcisi), bu yongaların her birinin önyükleme Açılıştan sonra her aşamayı doğrulamanız ÖNEMLE ÖNERİLİR.
  • [C-1-8] Üzerinde değişiklik yapmaya izin vermeyecek şekilde depolama Bootloader'ın kilidi açıksa. Müdahale tespiti içeren depolama, bootloader'ın Android'in içinden depolama alanı ile oynanıp alınmadığını tespit edebilir.
  • [C-1-9] Cihazı kullanırken kullanıcıya istem göstermeli ve Bootloader'dan geçişe izin vermeden önce fiziksel onay gerektirir. kilitli modu, bootloader kilidi açık moduna getirin.
  • [C-1-10] Android tarafından kullanılan bölümler için geri alma korumasının uygulanması ZORUNLUDUR (ör. önyükleme, sistem bölümleri) ve değişiklikleri algılayacak verileri depolamak için kurcalama algılamalı İzin verilen minimum işletim sistemi sürümünü belirlemek için kullanılan meta veriler.
  • [C-1-11] bootloader kilidini açma sırasında tüm kullanıcı verilerinin güvenli bir şekilde SİLMELİ ve kilidini açın. Veri Silme (kullanıcı verileri bölümü ve NVRAM alanları).
  • [C-SR-2] Aşağıdaki özelliğe sahip tüm uygulama APK dosyalarının doğrulanması için ÖNEMLE ÖNERİLİR: Doğrulanmış Başlatma tarafından korunan bölümlerde köklenmiş bir güven zinciridir.
  • [C-SR-3] tarafından yüklenen yürütülebilir yapıların doğrulanması ÖNERİLİR APK dosyasının dışında bulunan özel bir uygulama (ör. dinamik olarak yüklenen kod veya derlenen kod) ya da yürütmeniz ÖNERİLİR mümkün değil.
  • Kalıcı donanım yazılımı (ör. modem, kamera) ve birinci taraf verileri için kurcalama algılamalı izin verilen minimum sürümü belirlemek için kullanılan meta verileri depolamak.

Cihaz uygulamaları C-1-8'i desteklemeden zaten kullanıma sunulmuşsa Android'in önceki bir sürümünde C-1-11 ve bir sistem yazılımı güncellemesi yapıldığında, bu şartlardan muaf tutulabilirler. gereksinimlerini karşılayın.

Yukarı akış Android Açık Kaynak Projesi, Bu özelliği external/avb/ yükleme için kullanılan bootloader'a entegre edilebilen depo Android

Cihaz uygulamaları

Cihaz uygulamalarının dosyayı doğrulama olanağı varsa sayfa başına içerik sunuyorsa:

  • [K-0-3 C-2-1] desteği dosya içeriğini güvenilir anahtarı olarak değiştirmeniz gerekir.

  • [K-0-4 C-2-2] güvenli bir dosyadaki okuma isteklerinin başarılı olması için güvenilir anahtarla doğrulama yapma şuna göre doğrulanmadı: [C-2-1] başlıklı makaleyi inceleyin.

Yeni koşullarla başlayın

  • [C-2-4], etkinleştirilmiş dosyalar için O(1) içinde dosya sağlama toplamının döndürülmesi ZORUNLUDUR.

Yeni şartları sonlandırma

Cihaz uygulamaları, doğrulama olanağı olmadan zaten başlatılmışsa önceki Android sürümünde güvenilir bir anahtara karşı dosya içeriği ve Bu özelliğin bir sistem yazılımı güncellemesiyle desteklendiğinden, muaf tutulabilirler. gerek yok. Yukarı akış Android Açık Kaynak projesi, bu özelliğin tercih edilen uygulamasını bildirmek istiyorum.

Cihaz uygulamaları:

Cihaz uygulamaları, Android Korumalı Onayı'nı destekliyorsa API ile:

  • [C-3-1] ConfirmationPrompt.isSupported() için true adlı kişiyi bildirmesi GEREKİR API'ye gidin.

  • [C-3-2] otomatik olarak çalıştırılmadığından emin olmak için kullanıcı etkileşimi.

  • [C-3-3] Kullanıcının çekirdeği de dahil olmak üzere Android OS'nin tutarlı bir şekilde emin olun.

9:11. Anahtarlar ve Kimlik Bilgileri

Android Anahtar Deposu Sistemi Uygulama geliştiricilerin şifreleme anahtarlarını bir container'da depolamasına ve bunları şurada kullanmasına olanak tanır: KeyChain API üzerinden şifreleme işlemleri veya Keystore API'yi kullanabilirsiniz. Cihaz uygulamaları:

  • [C-0-1] En az 8.192 anahtarın içe aktarılmasına veya oluşturulmasına izin verilmesi ZORUNLUDUR.
  • [C-0-2] Kilit ekranı kimlik doğrulamasının bir zaman aralığı uygulaması ZORUNLUDUR sayısını artırır. Başarısız deneme sayısı olarak n kullanıldığında, 9 < için aralık en az 30 saniye olmalıdır n < 30.) n > için 29, zaman aralığı değeri en az 30*2^floor((n-30)/10)) saniye olmalıdır ya da en az 24 saat yayınlanmalıdır.
  • Oluşturulabilecek anahtar sayısını SINIRLAMAMALIDIR.

Yeni koşullarla başlayın

  • [C-0-3] Başarısız birincil kimlik doğrulama denemesi sayısını SINIRLAMALIDIR.
  • [C-SR-2] 20'lik üst sınırın uygulanması Kesinlikle ÖNERİLİR birincil kimlik doğrulama denemeleri ve kullanıcıların onay verip özelliğini kaldırmak için "Fabrika Verilerine Sıfırlama" işlemini gerçekleştirin başarısız olduysa sınırı aşıldıktan sonra birincil kimlik doğrulama denemesidir.

Cihaz uygulamaları, bilinen bir gizli anahtara dayalı olması için kilit ekranını açın ve ekranı kilitlemenin güvenli bir yolu olarak işlem görürse:

  • [C-SR-3] PIN'in en az 6 haneli olması ÖNEMLE ÖNERİLİR veya 20 bit entropi olarak kabul edilir.
  • [C-2-1] 6 haneden kısa bir PIN otomatik girişe İZİN VERİLMEMELİDİR .

Yeni şartları sonlandırma

Cihaz uygulaması güvenli kilit ekranını desteklediğinde:

  • [C-1-1], anahtar deposu uygulamasını izole bir yürütme ortamı sağlar.
  • [C-1-2] RSA, AES, ECDSA, ECDH (IKeyMintDevice destekleniyorsa), 3DES, ve HMAC şifreleme algoritmaları ile MD5, SHA1 ve SHA-2 aile karması işlevlerinin doğru şekilde desteklenmesini sağlar. çalışan koddan güvenli bir şekilde izole edilmiş bir alanda kullanılabilir. üst tarafında yer alır. Güvenli yalıtım, tüm olası mekanizmaları Engelleme GEREKİR bir veri kümesindeki çekirdek veya kullanıcı alanı kodunun, DMA dahil, izole bir ortamdan izole edilmiş olmalıdır. Yukarı akış Android Açık Kaynağı Proje (AOSP) bu şartı Güvenilir uygulama, ancak başka bir ARM TrustZone tabanlı başka bir çözüm veya üçüncü bir tarafça incelenmiş güvenli uygun bir hipervizör tabanlı yalıtımının uygulanması, seçenekleri vardır.
  • [C-1-3] izole yalnızca başarılı olduğunda kimlik doğrulamasına bağlı belirlenecek. Kilit ekranı kimlik bilgilerinin yalnızca izole yürütme ortamının kilit ekranı yapmasına izin veren bir yöntemle kimlik doğrulama. Yukarı akış Android Açık Kaynak Projesi, Gatekeeper Donanım Soyutlama Katmanı (HAL) ve Trusty gibi araçlar mevcuttur.
  • [C-1-4] onay imzalama anahtarının ve imzalama işlemi güvenli donanımlarla gerçekleştirilir. Onay imzalama anahtarları, cihaz tanımlayıcıları olarak kullanılmasını önlemeye çalışır. Tek yön aynı onay anahtarını paylaşmaktır. belirli bir SKU'dan en az 100.000 birim üretildiğinden. 100.000 birimden fazla üretildiğinden her 100.000 birim için farklı bir anahtar KULLANILABİLİR.

Önceki Android sürümünde cihaz uygulaması zaten kullanıma sunulmuşsa sürümü hariç, böyle bir cihaz bir anahtar deposuna sahip olma izole bir yürütme ortamıyla desteklenir ve anahtar onayını destekler. gerektiren android.hardware.fingerprint özelliğinin belirtilmediği sürece yalıtılmış bir yürütme ortamıyla desteklenen anahtar deposudur.

  • [C-1-5] Kullanıcının kilidi, en fazla kadar izin verilen zaman aşımı olacak şekilde, 15 saniye. Ana birim her olduğunda ekranı kilitleyen otomotiv cihazları Kullanıcı kapatılırsa veya değiştirilebilir. Uyku zaman aşımı yapılandırma.
  • [C-1-6] aşağıdakilerden birini DESTEKLEMELİDİR:
    • IKeymasterDevice 3.0,
    • IKeymasterDevice 4.0,
    • IKeymasterDevice 4.1,
    • IKeyMintDevice sürüm 1 veya
    • IKeyMintDevice sürüm 2.
  • [C-SR-1] IKeyMintDevice sürüm 1'i desteklemesi için ÖNEMLE ÖNERİLİR.

9.11.1. Güvenli Kilit Ekranı, Kimlik Doğrulama ve Sanal Cihazlar

AOSP uygulaması, katmanlı bir kimlik doğrulama modelini izler. bilgi fabrikası tabanlı birincil kimlik doğrulama, güçlü biyometri veya daha zayıf üçüncül modaliteleri nedeniyle.

Cihaz uygulamaları:

  • [C-SR-1] Birincil kimlik doğrulama olarak aşağıdakilerden yalnızca birini ayarlaması ÖNEMLE ÖNERİLİR yöntem:

    • Sayısal bir PIN
    • Alfanümerik şifre
    • Tam olarak 3x3 noktalardan oluşan bir ızgarada kaydırma deseni

      Yukarıdaki kimlik doğrulama yöntemlerinin, önerilen kimlik doğrulama yöntemleri ekleyin.

Yeni koşullarla başlayın

  • [C-0-1], başarısız birincil kimlik doğrulama denemesi sayısını SINIRLAMALIDIR.
  • [C-SR-5] 20'lik üst sınırın uygulanması Kesinlikle ÖNERİLİR birincil kimlik doğrulama denemeleridir. Kullanıcıların bu özelliğe onay verip etkinleştirmesi "Fabrika Verilerine Sıfırlama" işlemi gerçekleştirme başarısız birincil sınırı aşıldıktan sonra kimlik doğrulama denemesidir.

Cihaz uygulamaları önerilen birincil PIN olarak sayısal bir PIN ayarladıysa kimlik doğrulama yöntemini seçin, ardından:

  • [C-SR-6] PIN'in en az 6 haneli olması ÖNEMLE ÖNERİLİR veya 20 bit entropi olarak kabul edilir.
  • [C-SR-7] 6 haneden kısa bir PIN ÖNERİLMEZ ÖNERİLMEZ PIN'in gösterilmesini önlemek için kullanıcı etkileşimi olmadan otomatik girişe izin vermek seçeceğiz.

Yeni şartları sonlandırma

Cihaz uygulamaları, önerilen birincil kimlik doğrulamasını ekler veya değiştirirse yöntemleri kullanabilir ve ekranı kilitlemenin güvenli bir yolu olarak yeni bir kimlik doğrulama yöntemi kullanabilirsiniz. yeni kimlik doğrulama yöntemi:

Cihaz uygulamaları, kilidi açmak için kimlik doğrulama yöntemlerini ekler veya değiştirirse bilinen bir gizli anahtara dayalıysa kilit ekranını görüntüler ve yeni bir kimlik doğrulama yöntemi yöntemini kullanmanızı öneririz:

  • [C-3-1] İzin verilen en kısa giriş uzunluğunun entropisi daha büyüktür.
  • [C-3-2] Olası tüm girişlerin maksimum entropisi şu değerden büyük OLMALIDIR: 18 bit.
  • [C-3-3] Yeni kimlik doğrulama yöntemi, önerilen birincil kimlik doğrulama yöntemleri (ör. PIN, desen, şifre) AOSP'de uygulanıp sağlanır.
  • [C-3-4] Device Policy Controller (DPC) uygulaması şifreyi ayarladı koşullar politikasını DevicePolicyManager.setGerekliPasswordComplexity() daha kısıtlayıcı bir karmaşıklık sabitine ŞİFRE_KARMAŞIK_YOK veya DevicePolicyManager.setPasswordQuality() aracılığıyla daha kısıtlayıcı bir sabit değer içeren yönteme Şifre_QUALITY_BIOMETRIC_WEAK
  • [C-3-5] Yeni kimlik doğrulama yöntemlerinin önerilen birincil kimlik doğrulama yöntemleri (ör. PIN, desen, parolası) 72 saatte bir veya daha az sıklıkta VEYA yedeklenmeyeceğini iddia eden bir kullanıcı korunmasını ifade eder.

Cihaz uygulamaları, önerilen birincil kimlik doğrulamasını ekler veya değiştirirse yeni bir kimlik doğrulama yöntemi kullanmanızı sağlar. ekranı kilitlemenin güvenli bir yolu olarak kabul edilmesi için biyometriye dayanarak yöntem:

Biyometrik kimlik doğrulama yöntemleri şartları karşılamıyorsa aşağıdaki açıklandığı gibi Sınıf 3 (eski adıyla Güçlü) için bölüm 7.3.10:

  • [C-5-1] Cihaz Politikası Denetleyicisi (DPC) uygulama, şifre gereksinimleri kalite politikasını DevicePolicyManager.setGerekliPasswordComplexity() PASSWORD_COMPLEXITY_LOW ile karşılaştırıldığında daha kısıtlayıcı bir karmaşıklık paketine sahip veya DevicePolicyManager.setPasswordQuality() özelliğini kullanarak daha kısıtlayıcı bir kalite sabitine sahip yöntemi kullanarak PASSWORD_QUALITY_BIOMETRIC_WEAK.
  • [C-5-2] Önerilen birincil ayar için kullanıcıya giriş sorgulaması ZORUNLUDUR [C-1-7] içinde açıklandığı gibi kimlik doğrulama (ör. PIN, desen, şifre) ve bölüm 7.3.10'daki [C-1-8].
  • [C-5-3] Yöntemler güvenli kilit ekranı olarak GÖRÜLMEMELİDİR ve bu iki yöntemde ZORUNLUDUR aşağıdaki bölümde yer alan C-8 ile başlayan koşulları karşılamalıdır.

Cihaz uygulamaları, kilidi açmak için kimlik doğrulama yöntemlerini ekler veya değiştirirse ve yeni bir kimlik doğrulama yöntemi fiziksel bir jetona dayalı. veya konum:

  • [C-6-1] Önerilen modellerden birini kullanmak için bir yedek mekanizmasının olması ZORUNLUDUR bilinen bir gizli anahtarı temel alan birincil kimlik doğrulama yöntemleridir. bu gereksinimlerin güvenli kilit ekranı olması gerekir.
  • [C-6-2] Yeni yöntemin devre dışı bırakılması ve yalnızca önerilen birincil kimlik doğrulama yöntemlerini kullanarak Cihaz Politikası Denetleyici (DPC) uygulaması, politikayı aşağıdakilerden biriyle ayarlamıştır:
  • [C-6-3] Önerilen birincil e-postalardan biri için kullanıcıya sorgu gönderilmesi ZORUNLUDUR kimlik doğrulama yöntemlerinden (ör. PIN, desen, şifre) en az bir kez 4 saat veya daha kısa. Fiziksel bir jetonun C-X'te TrustAgent uygulamaları için gereksinimler, zaman aşımı kısıtlamaları C-9-5'teki tanımlanan tanımları ifade eder.
  • [C-6-4] Yeni yöntem, güvenli kilit ekranı olarak KULLANILMAMALIDIR ve ZORUNLUDUR aşağıdaki C-8’de listelenen kısıtlamaları uygulayın.

Cihaz uygulamalarında güvenli bir kilit ekranı varsa ve bir veya daha fazla cihaz varsa güven aracısı (TrustAgentService System API'yi uygulayan) için:

  • [C-7-1] Ayarlar menüsünde ve kilit ekranında net bir gösterge OLMALIDIR Ekran kilidi ertelendiğinde veya güven aracıları tarafından kilidi açılabileceğinde Örneğin, AOSP bu koşulu karşılamak için "Ayarı otomatik olarak kilitle" ve "Güç düğmesi anında kilitlenir" ve kilit ekranında ayırt edilebilir bir simge görürsünüz.
  • [C-7-2] [C-7-2] [C-7-2] DevicePolicyManager sınıfı; örneğin: KEYGUARD_DISABLE_TRUST_AGENTS sabittir.
  • [C-7-3], TrustAgentService.addEscrowToken() öğesini tam olarak uygulamamalıdır. Birincil kişisel cihaz olarak kullanılan bir cihazda çalışma (ör. avuç içi) ancak bu işlevi cihazda tam olarak UYGULAMAYA BAŞLAYABİLİR genellikle paylaşılan uygulamalar (ör. Android Television veya Otomotiv cihazı).
  • [C-7-4] tarafından eklenen ve TrustAgentService.addEscrowToken()
  • [C-7-5] Şifreleme anahtarını veya emanet jetonunu anahtarın kullanıldığı cihazla aynı olmalıdır. Örneğin, TV'deki bir kullanıcı hesabının kilidini açmak için telefonda saklanan bir anahtardır. Otomotiv cihazlarında emanet jetonunun depolanmasına izin verilmez üzerinde değişiklik gösterebilir.
  • [C-7-6] Kullanımdan önce, güvenlik açısından ilgili sonuçları kullanıcıya bildirmelidir. Veri depolama alanının şifresini çözmek için emanet jetonunu etkinleştirmelisiniz.
  • [C-7-7] Önerilen modellerden birini kullanmak için bir yedek mekanizmasının olması ZORUNLUDUR birincil kimlik doğrulama yöntemleridir.
  • [C-7-8] Kullanıcının güvenliği (ör.sürücünün dikkatinin dağılması) olmadığı sürece, kullanıcı en az 72 saatte bir, önerilen birincil kimlik doğrulama yöntemlerinden (ör. PIN, desen, şifre) biri için sorgulanması ZORUNLUDUR endişe vericidir.
  • [C-7-9] Önerilen birincil e-postalardan biri için kullanıcıya sorgu gönderilmesi ZORUNLUDUR açıklandığı gibi kimlik doğrulama (ör. PIN, desen, şifre) yöntemlerini bölüm 7.3.10'da [C-1-7] ve [C-1-8] kullanıcının güvenliği (ör. sürücünün dikkatinin dağılması) endişe vericidir.
  • [C-7-10] güvenli kilit ekranı olarak KULLANILMAMALIDIR ve aşağıdaki C-8’de listelenen kısıtlamalar.
  • [C-7-11] Birincil kişisel cihazlarda TrustAgent'lara İZİN VERİLMEMELİDİR (ör.avuç içi) cihazın kilidini açmak için kullanabilir ve bunları yalnızca şu amaçlarla kullanabilir Kilidi açılmış bir cihazı şu kadar süreyle açık durumda tutun: 4 saat olması gerekir. Varsayılan uygulama yöntemi, AOSP'deki TrustManagerService bu gereksinimi karşılar.
  • [C-7-12] kriptografik olarak güvenli (ör.UKEY2) kullanılması ZORUNLUDUR depolama alanından emanet jetonunu aktarmak için bir iletişim kanalı cihaza gönderebilirsiniz.

Cihaz uygulamaları, kilidi açmak için kimlik doğrulama yöntemlerini ekler veya değiştirirse yukarıda açıklandığı gibi güvenli bir kilit ekranı olmayan kilit ekranını ve Tuş koruyucunun kilidini açmak için yeni bir kimlik doğrulama yöntemi:

  • [C-8-1] Cihaz Politikası Denetleyicisi, yeni yöntemin devre dışı bırakılmasını ZORUNLUDUR (DPC) uygulaması, şifre kalitesi politikasını DevicePolicyManager.setPasswordQuality() daha kısıtlayıcı bir kalite sabitine sahip yöntemi kullanarak PASSWORD_QUALITY_NONE veya şu yolla: DevicePolicyManager.setRequiredPasswordComplexity() daha kısıtlayıcı bir karmaşıklık sabitine "Şifre_COMPLçıkışY_NONE".
  • [C-8-2] Google Ads tarafından ayarlanan şifre süre sonu zamanlayıcılarını SIFIRLAMAMALIDIR. DevicePolicyManager.setPasswordExpirationTimeout().
  • [C-8-3] Üçüncü taraf uygulamalarının kullanımına yönelik bir API'yi AÇILMAMALIDIR. kilit durumunu değiştirebilirsiniz.

Cihaz uygulamaları, uygulamaların ikincil sanal ekranlar ve şunlar gibi ilişkili giriş etkinliklerini desteklemez: VirtualDeviceManager, onlar:

  • [C-9-1] Cihaz şu durumlarda ikincil sanal ekranları kilitlemelidir: kilitlenir ve aşağıdaki ikincil sanal ekranların kilidini açmalarını sağlayabilirsiniz: Cihazın varsayılan ekranının kilidi açıldığında.

Cihaz uygulamaları, uygulamaların ikincil sanal ekranlar oluşturmasına ve ilişkili girişi desteklemesine izin veriyorsa etkinlikleri için VirtualDeviceManager kullanarak gerçekleştirdiklerinde:

  • [C-10-1] Her sanal cihaz için ayrı kilit durumlarını DESTEKLEMELİDİR
  • [C-10-2] Boşta kalma zaman aşımı olduğunda tüm sanal cihazların bağlantısının kesilmesi ZORUNLUDUR
  • [C-10-3] Boşta kalma zaman aşımı olması ZORUNLUDUR
  • [C-10-4] Kullanıcı bir Tam kilitleme, (bkz. avuç içi cihazlar için gerekli olan tam kilitleme kullanıcısı Bölüm 2.2.5[9.11/H-1-2])
  • [C-10-5] Her kullanıcı için ayrı sanal cihaz örneklerinin olması ZORUNLUDUR
  • [C-10-6] Şu yolla ilişkilendirilmiş giriş etkinlikleri oluşturma işleminin devre dışı bırakılması ZORUNLUDUR: VirtualDeviceManager DevicePolicyManager.setNearbyAppStreamingPolicy
  • [C-10-7] yalnızca her sanal cihaz için ayrı bir pano kullanması ZORUNLUDUR (veya sanal cihazlar için panoyu devre dışı bırakın)
  • [C-10-11] Aşağıdakiler dahil olmak üzere sanal cihazlarda kimlik doğrulama kullanıcı arayüzünün devre dışı bırakılması ZORUNLUDUR: bilgi faktörü girişi ve biyometrik istem
  • [C-10-12] Bir sanal cihazdan başlatılan niyetlerin ekranla kısıtlanması ZORUNLUDUR yalnızca aynı sanal cihazda
  • [C-10-13] Kullanıcı kimlik doğrulaması olarak sanal bir cihaz kilidi durumu KULLANILMAMALIDIR yetkilendirmeye dayanıyor. Görüntüleyin KeyGenParameterSpec.Builder.setUserAuthentication*

Cihaz uygulamaları, kullanıcının birincil kimlik doğrulama bilgi faktörüne bağlı olarak, Örneğin, hedef cihazın ilk kurulumu için:

  • [C-11-1] Bilgi faktörünü, bölümünde açıklananlar Google Cloud Key Vault Hizmeti güvenlik teknik belgesini test etmek için kullanacağınız kaynak cihazdan hedef cihaza bilgi faktörünün uzaktan şifresi çözülemez veya kilidi uzaktan açmak için kullanılamaz iki cihazda da kullanılabilir.
  • [C-11-2] Kaynak cihazda kullanıcıdan bilgi faktörünü aktarmadan önce kaynak cihazın bilgi faktörü .
  • [C-11-3] öğrenmek istiyorsanız, kullanıcıdan cihazda aktarılan bir bilgi faktörünü birincil cihaz olarak ayarlamadan önce hedef cihazı test etmek kimlik doğrulama bilgi faktörünü test etmek amacıyla kaynak cihazdan aktarılan tüm verileri kullanabilir.

Cihaz uygulamalarında güvenli bir kilit ekranı varsa ve bir veya daha fazla cihaz varsa TrustAgentService.grantTrust() System API'yi FLAG_GRANT_TRUST_TEMPORARY_AND_RENEWABLE olarak işaretler:

  • [C-12-1] birgrantTrust() kendisine ait bir kilit ekranı bulunan yakın fiziksel cihaza kimliklerini doğrulamış olmamalıdır. Proxy cihazları kullanıcının tek seferliğine kilidini açtıktan sonra bilekte veya üzerinizde olduğunu algılama mekanizmalarını kullanın. kullanıcı kimlik doğrulama gereksinimini karşılamaya çalışır.
  • [C-12-2] Cihaz uygulamasını TrustState.TRUSTABLE uygulamasına koymanız GEREKİR Ekran kapandığındaki durum (örneğin, bir düğmeye basıldığında veya ekrandayken) zaman aşımı) ve TrustAgent, güveni iptal etmemiştir. AOSP aşağıdaki şartları karşılar: şart koşuyor.
  • [C-12-3], cihazı yalnızca TrustState.TRUSTABLE konumundan TrustState.TRUSTED ve C-12-1'deki şartlara uyması gerekir.
  • [C-12-4] TrustManagerService.revokeTrust() ARAMASI GEREKLİ
    • Güven izni verdikten sonra en fazla 24 saat sonra veya
    • 8 saatlik boşta kalma süresinden sonra veya
    • Uygulamalarda kriptografik olarak güvenli kullanılmıyorsa [C-12-5]'te tanımlandığı gibi temel bağlantı zaman aralığına kıyasla kaybolan mesafedir.
  • [C-12-5] [C-12-4] gereksinimleri için aşağıdaki çözümlerden birinin kullanılması ZORUNLUDUR:
    • Ultra Geniş Bant kullanan uygulamalar:
      • Uygunluk, sertifika, doğruluk ve gizlilik standartlarını karşılamalı kalibrasyon şartları 7.4.9'da açıklanmıştır.
      • Şurada listelenen P-STS güvenlik modlarından birinin kullanılması GEREKİR: 7.4.9.
    • Kablosuz Mahalle Farkındalık Ağı (NAN) kullanan uygulamalar:
      • 2.2.1 [7.4.2.5/H-SR-1] ise 160 MHz bant genişliğini kullanın (veya daha yüksek olduğunda) ve şurada belirtilen ölçüm kurulumu adımlarını izleyin: Bulunma Kalibrasyonu.
      • Aşağıda açıklandığı şekilde Güvenli LTF'nin kullanılması ZORUNLUDUR IEEE 802.11az.

Cihaz uygulamaları, uygulamaların ikincil sanal ekranlar oluşturmasına ve ilişkili girişi desteklemesine izin veriyorsa VirtualDeviceManager aracılığıyla yapılan etkinlikler ve ekranlar VIRTUAL_DISPLAY_FLAG_SECURE işaretiyle işaretlenmemişse:

  • [C-13-8], android:canDisplayOnRemoteDevices özelliğiyle veya android.activity.can_display_on_remote_devices meta verisi meta verisi olan etkinliklerin sanal ortamda başlatılmasını Engellemelidir olanak tanır.
  • [C-13-9] Aktiviteleri Engelleme GEREKİR ve akış ve akış işlevleri açıkça Bu bilgiler hassas içerik gösterdiğini belirtiyor. Buna SurfaceView#setSecure, FLAG_SECURE veya SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS, sanal cihazda başlatıldı.
  • [C-13-10], başlatılan uygulamaların yüklenmesinin DEVRE DIŞI BIRAKILMASI GEREKİR .

Cihaz uygulamaları, DeviceStateManager VE ayrı ekran kilidi durumlarını destekler. KeyguardDisplayManager:

  • [C-SR-2] Kimlik bilgileriyle ilgili bir toplantıdan yararlanmanız ÖNEMLE ÖNERİLİR veya Biyometrik dönüşüm ölçümü için en az Bölüm 7.3.10'da tanımlanan ve bağımsız varsayılan cihaz ekranından kilidi açılıyor.
  • [C-SR-3] Ekran kilidinin ayrı ayrı açılmasını kısıtlamak için ÖNEMLE ÖNERİLİR tanımlama zaman aşımını gözden geçirebilirsiniz.
  • [C-SR-4] Kullanıcının tüm ekranları genel olarak kilitlemesine izin vermek için ÖNEMLE ÖNERİLİR ilk avuç içi cihazda tam kilitleme ile başlayın.

9.11.2. Güçlü Kutu

Android Anahtar Deposu Sistemi, şifreleme anahtarlarını özel bir güvenli işlemcide depolayan uygulama geliştiricilerin yukarıda açıklanan izole yürütme ortamı da dahildir. Böyle bir özel güvenli işlemcisi "StrongBox"tur. C-1-3 şartları aşağıdaki C-1-11 arasındaki kurallara uygun bir şekilde, bir cihazın bir StrongBox üyesi olursunuz.

Özel bir güvenli işlemciye sahip cihaz uygulamaları:

  • [C-SR-1] StrongBox'u desteklemesi için ÖNEMLE ÖNERİLİR. StrongBox, sonraki sürümlerde bir gereksinim olacaktır.

Cihaz uygulamaları StrongBox'u destekliyorsa:

  • [C-1-1], FEATURE_STRONGBOX_KEYSTORE bildirmeli.

  • [C-1-2] yedekleme için kullanılan özel güvenli donanım SAĞLANMALIDIR anahtar deposu ve güvenli kullanıcı kimlik doğrulaması sunar. Özel güvenlik başka amaçlar için de kullanılabilir.

  • [C-1-3] Önbellek, DRAM ve ek işlemci paylaşmayan ayrı bir CPU'nun olması ZORUNLUDUR veya diğer temel kaynakları uygulama işlemcisi ile koordine etmeliyiz.

  • [C-1-4] AP ile paylaşılan çevre birimlerinin herhangi bir değişiklik yapamayacağından emin olunması ZORUNLUDUR StrongBox'u herhangi bir şekilde işleyemez veya StrongBox'tan herhangi bir bilgi edinebilirsiniz. AP, StrongBox'a erişimi devre dışı bırakabilir veya engelleyebilir.

  • [C-1-5] dahili saatinin makul doğrulukta (+-%10) olması ZORUNLUDUR (AP'nin manipülasyonuna karşı bağışıksızdır.)

  • [C-1-6] şunları üreten gerçek bir rastgele sayı oluşturma aracına sahip OLMALIDIR: ve öngörülemeyen çıktılar arasındaki farkı gözlemledik.

  • [C-1-7], kurcalamaya karşı direnç dahil olmak üzere, kurcalamaya karşı direnç fiziksel penetrasyon ve iğneleme.

  • [C-1-8], şunlara karşı direnç dahil olmak üzere yan kanal direncine sahip OLMALIDIR güç, zamanlama, elektromanyetik radyasyon ve termal aracılığıyla bilgi sızıntısı olduğu anlamına gelir.

  • [C-1-9] Gizlilik sağlayan, güvenli depolama alanına sahip OLMALIDIR. tutarlılığı, güvenilirliği ve yeniliği, içerik. Depolama alanının okunamaması veya değiştirilmesi mümkün OLMAMALIDIR. tarafından sağlandığından emin olun.

  • [C-1-3] ile [C-1-9] arasındaki uygunluğu doğrulamak için cihaz gibi çeşitli özelliklerden bahsedeceğiz:

    • [C-1-10] Güvenli IC Koruma Profili BSI-CC-PP-0084-2014 veya test laboratuvarını yürüten, ulusal akreditasyona sahip bir test laboratuvarı Saldırı Potansiyelinin Akıllı kartlar.
    • [C-1-11] tarafından değerlendirilen donanım yazılımının Yüksek saldırıya sahip ulusal onaylı test laboratuvarı güvenlik açığı değerlendirmesi Akıllı Kartlara Saldırı Potansiyeli İçin Ortak Kriterler.
    • [C-SR-2] bir Güvenlik Hedefi, Değerlendirme Güvencesi Düzeyi kullanılarak değerlendirildi (EAL) 5, AVA_VAN.5 ile artırılmıştır. EAL 5 sertifikasyonu büyük olasılıkla sonraki sürümlerde bir gereksinim olacaktır.
    • [C-SR-3] Kuruluş içi saldırılara direnç göstermeleri için ÖNEMLE ÖNERİLİR (IAR) anlamına gelir. Yani, donanım yazılımı imzalamaya erişimi olan bir kuruluş tuşları, StrongBox'un sızıntı yapmasına neden olan donanım yazılımı üretemez işlevsel güvenlik gereksinimlerini atlatmak veya başka Hassas kullanıcı verilerine erişimi etkinleştirin. Planlama için önerilen yöntem, IAR, donanım yazılımı güncellemelerine yalnızca birincil kullanıcı şifresi IAuthSecret HAL aracılığıyla sağlanır.

9.11.3. Kimlik Kimlik Bilgisi

Kimlik Kimlik Bilgileri Sistemi, API'ler android.security.identity.* paketinden yararlanın. Bu API'ler, uygulama geliştiricilerinin kullanıcı kimliğini depolamasına ve almasına olanak tanır. yardımcı olur. Cihaz uygulamaları:

  • [C-SR-1] kimlik bilgilerinin uygulanması için ÖNEMLE ÖNERİLİR Sistem.

Cihaz uygulamaları, Kimlik Kimlik Bilgisi Sistemi'ni uyguluyorsa:

  • [C-1-1], IdentityCredentialStore#getInstance() için boş olmayan bir değer döndürmelidir. yöntemidir.

  • [C-1-2], android.security.identity.* API'leri) - güvenilir bir kişiyle iletişim kuran kodla çalışan koddan güvenli bir şekilde izole edilmiş bir alanda üst tarafında yer alır. Güvenli yalıtım, tüm olası mekanizmaları Engelleme GEREKİR bir veri kümesindeki çekirdek veya kullanıcı alanı kodunun, DMA dahil, izole bir ortamdan izole edilmiş olmalıdır.

  • [C-1-3] Kimliği uygulamak için gereken şifreleme işlemleri Kimlik Bilgisi Sistemi (ör. android.security.identity.* API'leri) ŞU ZORUNLUDUR Tamamen güvenilir uygulamada yürütülmesi ve özel anahtar materyalinin Özellikle gerekli olmadığı sürece izole yürütme ortamından asla çıkmayın üst düzey API'ler (ör. createEphemeralKeyPair() yöntemini) kullanın.

  • [C-1-4] Güvenilir uygulamanın, güvenlik özellikleri etkilenmez (ör. kimlik bilgisi verileri serbest bırakılmaz) erişim denetimi koşulları karşılanmadığı sürece, bu işlem için rastgele veriler) kullanabilirsiniz.

Yukarı akış Android Açık Kaynak Projesi bir referans sağlar güvenilir bir uygulamanın uygulanması (libeic) kimlik bilgisi sistemini uygulamak için kullanılabilir.

9:12. Veri Silme

Tüm cihaz uygulamaları:

  • [C-0-1] kullanıcılara "Fabrika Verilerine Sıfırlama" işlemini gerçekleştirmeleri için bir mekanizma SAĞLAMALIDIR.
  • [C-0-2] Bir veri toplama işlemi gerçekleştirilirken kullanıcı verileri dosya sistemindeki tüm verilerin silinmesi ZORUNLUDUR "Fabrika Verilerine Sıfırla".
  • [C-0-3] Verileri, alakalı gereksinimleri karşılayacak şekilde SİLMELİDİR NIST SP800-88 gibi endüstri standartlarına uygun olduğundan Sıfırla"yı tıklayın.
  • [C-0-4] yukarıdaki "Fabrika Verilerine Sıfırlama" işlemini tetiklemelidir bir sonraki aşamaya DevicePolicyManager.wipeData() API, birincil kullanıcının Device Policy Controller uygulaması tarafından çağrılır.
  • Yalnızca mantıksal bir veri silme işlemi gerçekleştiren hızlı bir veri silme seçeneği SAĞLAYABİLİR.

9:13. Güvenli Başlatma Modu

Android, kullanıcıların belirli bir modda önyükleme yapmasına olanak tanıyan Güvenli Başlatma Modu sağlar. yalnızca önceden yüklenmiş sistem uygulamalarının çalışmasına izin verilen uygulamalar ve devre dışı bırakılır. "Güvenli Başlatma Modu" olarak bilinen bu mod, kullanıcının potansiyel zararlı üçüncü taraf uygulamalarını kaldırma olanağı sunar.

Cihaz uygulamaları şunlardır:

  • [C-SR-1] Güvenli Başlatma Modu'nun uygulanması Kesinlikle ÖNERİLİR.

Cihaz uygulamaları Güvenli Başlatma Modu'nu uygularsa:

  • [C-1-1], kullanıcıya şu seçeneği SAĞLAMALIDIR: üçüncü tarafın kesintiye uğramayacak şekilde Güvenli Başlatma Modu'na girmesi Üçüncü taraf uygulamasının cihazda yüklü olduğu durumlar dışında, Device Policy (Cihaz Politikası) denetleyicisi ve UserManager.DISALLOW_SAFE_BOOT doğru olarak işaretleyin.

  • [C-1-2] kullanıcının şu işlemleri gerçekleştirme kabiliyeti ZORUNLUDUR: Güvenli Mod'daki tüm üçüncü taraf uygulamalarını kaldırabilirsiniz.

  • Kullanıcıya, farklı bir iş akışı kullanarak başlatabilmenizi sağlar.

9:14. Otomotiv Araç Sistemi Yalıtımı

Android Automotive cihazlarının kritik araçlarla veri alışverişi yapması beklenir araç HAL kullanarak CAN veri yolu gibi araç ağları üzerinden mesaj gönderip almak için

Veri alışverişi, aşağıdaki güvenlik özellikleri uygulanarak Android sistem katmanları ile kötü amaçlı veya istemsiz etkileşimleri önleyen alt sistemleri oluşturur.

9:15. Abonelik Planları

"Abonelik planları" sağlanan fatura ilişkisi planı ayrıntılarına bakın - SubscriptionManager.setSubscriptionPlans().

Tüm cihaz uygulamaları:

  • [C-0-1] abonelik planlarını yalnızca tarafından sağlanır.
  • [C-0-2] abonelik planlarını uzaktan YEDEKLEMEMELİ veya YÜKLEMEMELİDİR.
  • [C-0-3] Aşağıdaki gibi yalnızca geçersiz kılmalara izin VERMELİDİR: SubscriptionManager.setSubscriptionOverrideCongested() güncel abonelik planları sunan mobil operatör uygulamasından

9:16. Uygulama Verilerini Taşıma

Cihaz uygulamaları, bir cihazdan cihaza veri taşıma özelliği içeriyorsa kopyalaması gereken uygulama verilerini, yalnızca uygulama geliştiricisi tarafından manifest dosyasında android:fullBackupContent sahip olduklarında:

  • [C-1-1] uygulamasından uygulama verisi aktarımlarını BAŞLATMAMALIDIR. Kullanıcının birincil kimlik doğrulaması ayarlamadığı cihazlar şurada açıklandığı: 9.11.1 Güvenli Kilit Ekranı ve Kimlik Doğrulaması.
  • [C-1-2], kaynaktaki birincil kimlik doğrulamasını güvenli bir şekilde ONAYLAMALIDIR cihazdaki verileri kopyalayın ve kullanıcının, kaynaktaki verileri cihazdaki verileri saklayabileceğinizi unutmayın.
  • [C-1-3] Her iki kaynağın da güvenlik anahtarı onayını kullanması ZORUNLUDUR taşımadaki hedef cihazın ve cihazın güvenli Android cihazlar ve kilitli bir bootloader'a sahip olmalıdır.
  • [C-1-4] Uygulama verilerinin yalnızca aynı paket adına VE imzalama sertifikasına sahip olmalıdır.
  • [C-1-5] kaynak cihazda veri olduğuna dair bir gösterge GÖRÜNTÜLEMELİDİR Taşıma işleminde ayarlar menüsünde bir cihazdan cihaza veri Kullanıcı Bu göstergeyi kaldıramamanız GEREKİR.

9:17. Android Sanallaştırma Çerçevesi

Cihaz, Android Virtualization Framework API'leri (android.system.virtualmachine.*) için destek uyguluyorsa Android ana makinesi:

  • [C-1-1] android.system.virtualmachine paketi.
  • [C-1-2] Korunan Sanal Makinelerin yönetimi (pVM) kullanır.

  • [C-1-3] Mevcut "her zaman izin ver" kurallarını DEĞİŞTİRMEMELİ, DEĞERLENDİRMEMELİ veya DEĞİŞTİRMEMELİDİR yukarı akış Android Açık Kaynak Projesi'nde sağlanan sistem/sepolitika dahilinde (AOSP) ile politika, izin vermeyen tüm kuralların mevcut olduğu şekilde derlenmesi ZORUNLUDUR.

  • [C-1-4] Yalnızca platform imzalı koda ve özel uygulamalardaYAPILMAYACAKLAR: güvenilir olmayan kodun (ör.3. taraf uygulamaları) oluşturulmasına izin ver Korunan Sanal Makineyi çalıştırın pVM ziyaret edin. Not: Bu durum, gelecekteki Android sürümlerinde değişebilir.

  • [C-1-5] Korumalı Sanal Makineye İZİN VERMEMELİDİR pVM için veya güncellemelerinin bir parçası değildir. Android Doğrulanmış Başlatma kapsamında olmayan her şey (ör. indirilen dosyalar internette çalıştırılmadan veya başka cihazdan yüklenmiş olarak) Korumalı Sanal Makine .

Yeni koşullarla başlayın

  • [C-1-5] yalnızca, hata ayıklaması yapılamayan bir pVM'nin fabrikadan kod çalıştırmasına izin vermesi ZORUNLUDUR resmi veya platform güncellemeleri (ayrıca özel

Yeni şartları sonlandırma

Cihaz, Android Sanallaştırma Çerçevesi API'leri (android.system.virtualmachine.*) için destek uyguluyorsa Korunan Sanal Makineler, pVM örneği:

  • [C-2-1] Şurada bulunan tüm işletim sistemlerini çalıştırabilmek ZORUNLUDUR: Korunan Sanal Makinede sanallaştırma APEX'i pVM başlıklı makaleyi inceleyin.
  • [C-2-2] Korumalı Sanal Makineye İZİN VERMEMELİDİR pVM İşletim sistemini çalıştırmak için veya işletim sistemi tedarikçisi tarafından imzalanmamıştır.
  • [C-2-3] Korumalı Sanal Makineye İZİN VERMEMELİDİR pVM Verileri kod olarak yürütmek için (ör. SELinux asla execmem'e izin vermez).

  • [C-2-4] Yukarı akış Android Açık Kaynağında sağlanan sistem/sepolicy/microdroid Proje (AOSP).

  • [C-2-5] Korumalı Sanal Makine'yi uygulamalı pVM derinlemesine savunma mekanizmaları (ör. pVM'ler için SELinux) mikrodroid olmayan işletim sistemleri için bile.
  • [C-2-6] pVM'nin başarısız olduğundan , donanım yazılımı doğrulanamazsa başlatmayı reddettiğinden emin olması ZORUNLUDUR Sanal makinenin çalıştırılacağı ilk görüntüler doğrulanamaz. Doğrulamanın sanal makine içinde YAPILMALIDIR.
  • [C-2-7], ornek.img bütünlüğünün güvenliği ihlal edilirse pVM'nin başarısız olduğundan donanım yazılımının açılmayı reddettiğinden emin olması ZORUNLUDUR.

Cihaz, Android Virtualization Framework API'leri (android.system.virtualmachine.*) için destek uyguluyorsa hipervizör:

  • [C-3-1] Yalnızca bellek sayfalarının (pVM veya ana makine sanal makinesi) sahip olduğu sanal makine, yalnızca sanal makine tarafından (diğer sanal makineler tarafından değil) olup olmadığını kontrol edin. Herhangi bir pVM'nin bir sayfaya erişmesine İZİN VERİLMEMELİDİR başka birine ait sayfa tarafından açıkça paylaşılmadıkça, varlık (ör. diğer pVM veya hipervizör) tıklayın. Buna ana makine sanal makinesi de dahildir. Bu hem CPU hem de DMA erişimleri için geçerlidir. 'nı inceleyin.
  • [C-3-2] Bir pVM tarafından kullanıldıktan sonra sayfayı SİLMELİDİR ve geri döndürülmeden önce ana makineye göndermek için kullanılır (ör. pVM'nin kaldırılması).
  • [C-3-3SR-1] pVM donanım yazılımının pVM'deki herhangi bir koddan önce yüklendiğinden ve yürütüldüğünden emin olmak içinÖNEMLE ÖNERİLİR.
  • [C-3-4] Her sanal makinenin, sanal makine başına bir gizli anahtar toplaması gerekir. {Bir pVM örneğine sağlanan Önyükleme Sertifika Zinciri (BCC) ve Bileşik Cihaz Tanımlayıcısı (CDI'ler) yalnızca söz konusu sanal makine örneği tarafından türetilebilir ve fabrika ayarlarına sıfırlama ile OTA'daki değişiklikler.

Cihaz, Android Virtualization Framework API'leri için destek uyguluyorsa daha sonra tüm bölgelerde:

  • [C-4-1] pVM'ye, Android Güvenlik Modeli.

Cihaz, Android Virtualization Framework API'leri için destek uyguluyorsa:

  • [C-5-1]'in izole edilmiş derlemeyi destekleyebilmesi ZORUNLUDUR, ancak bir ART çalışma zamanı güncellemesinin cihaz gönderiminde izole derleme özelliğini devre dışı bırakabilir.

Cihaz, Android Virtualization Framework API'leri için destek uyguluyorsa Key Management için:

  • [C-6-1] Kullanıcının değiştiremeyeceği bir noktada kök DICE zinciri ZORUNLUDUR. cihazın kilidini açabilirler. (Adres sahteciliği yapılmayacağından emin olmak için).

  • [C-SR-26-2] Sanal makine başına gizli anahtar türetme mekanizması olarak DICE'ın kullanılması ÖNEMLE ÖNERİLİR. DICE doğru şekilde YAPILMALIDIR. Diğer bir deyişle, doğru değerleri sağlamalıdır.

10. Yazılım Uyumluluğu Testi

Cihaz uygulamalarının bu bölümde açıklanan tüm testlerden geçmesi ZORUNLUDUR. Ancak hiçbir yazılım test paketinin tam kapsamlı olmadığını unutmayın. Bu nedenle, cihaz uygulayıcılarının referansta ve tercih edilen referansta mümkün olduğunca minimum değişiklik 'u Android Açık Kaynak Projesi'nden öğrenebilirsiniz. Bu, uyumsuzluklara yol açan hata oluşması riskini en aza indirir yeniden çalışma ve olası cihaz güncellemeleri gerektirir.

10.1. Uyumluluk Test Paketi

Cihaz uygulamaları:

  • [C-0-1] Android Uyumluluk Test Paketi'ni (CTS) geçmelidir. nihai gönderim bedeli kullanılarak Android Açık Kaynak Projesi'nden e-posta alırsınız.

  • [C-0-2] CTS'de belirsizlik durumlarında ve referans kaynak kodu bölümlerinin yeniden uygulanması.

CTS, gerçek bir cihazda çalışacak şekilde tasarlanmıştır. Her yazılım gibi CTS de hata içerebilir. CTS bu sürümden bağımsız olarak Uyumluluk Tanımı ve CTS'nin birden fazla revizyonu yayınlanmış Android 14.

Cihaz uygulamaları:

  • [C-0-3] cihazın mevcut olduğu en son CTS sürümünü geçebilmesi gerekir gerektiğini de unutmayın.

  • Android Açık Kaynak ağacındaki referans uygulamayı KULLANMALIDIR mümkün olduğunca çok şey katın.

10.2. CTS Doğrulayıcı

CTS Doğrulayıcı, Uyumluluk Test Paketi ile birlikte sunulur ve görüntülenemeyen işlevleri test etmek için insan bir operatör tarafından kameranın doğru şekilde çalışıp çalışmadığını ve olabilir.

Cihaz uygulamaları:

  • [C-0-1] CTS doğrulayıcıda geçerli tüm vakaları doğru şekilde yürütülmesi ZORUNLUDUR.

CTS Doğrulayıcı, bazı donanımlar da dahil olmak üzere birçok donanım isteğe bağlıdır.

Cihaz uygulamaları:

  • [C-0-2] Sahip olduğu donanım için tüm testlerden geçmelidir; örneğin, Bir cihaz ivme ölçere sahipse CTS Doğrulayıcı'daki ivme ölçer testi durumu.

Bu Uyumluluk Tanımı'nda isteğe bağlı olarak belirtilen özelliklerin test durumları Doküman atlanabilir veya çıkarılabilir.

  • [C-0-2] Her cihaz ve derleme, CTS Doğrulayıcı'yı doğru şekilde ÇALIŞTIRMALIDIR. belirtildiği şekilde kullanın. Ancak birçok derleme birbirine çok benzer olduğundan cihaz uygulayıcıların derlemelerde CTS Doğrulayıcı'yı açık bir şekilde çalıştırması beklenmemektedir. farklılık gösterebilir. Daha ayrıntılı belirtmek gerekirse, yalnızca CTS Doğrulayıcı testini içermeyebilir.

11. Güncellenebilir Yazılım

  • [C-0-1] Cihaz uygulamaları, çalışmasını sağlamalısınız. Mekanizmanın "yayında" işlemi yapması gerekmez yani cihazın yeniden başlatılması GEREKEBİLİR. önceden yüklenmiş yazılım olabilir. Örneğin, aşağıdakilerden herhangi biri bu şartı da karşılar:

    • "Kablosuz (OTA)" çevrimdışı güncellemeyle indirme işlemleri.
    • "Tethering" güncelleme veya güncelleme bilgileri alır.
    • "Çevrimdışı" yeniden başlatma ve çıkarılabilir depolama alanındaki bir dosyadan güncelleme yoluyla güncellenebilir.
  • [C-0-2] Kullanılan güncelleme mekanizması, kullanıcı silinmeden güncellemeleri DESTEKLEMELİDİR dışı verilerdir. Yani güncelleme mekanizmasının, uygulamanın özel verilerini KORUMALI ve uygulamada paylaşılan verileri içerir. Yukarı akış Android yazılımının bir bir güncelleme mekanizmasından yararlanmanız gerekir.

  • [C-0-3] Güncellemenin tamamı imzalanmalı ve cihaz üzerinde güncelleme mekanizması ZORUNLUDUR Güncellemenin ve imzanın, cihazda depolanan bir ortak anahtarla doğrulanması ZORUNLUDUR.

  • [C-SR-1] Güncellemeye karma oluşturma işlemi uygulamak için imzalama mekanizması ÖNEMLE ÖNERİLİR ve ECDSA NIST kullanarak karmayı ortak anahtarla karşılaştırarak doğrulama P-256.

Cihaz uygulamaları, sınırsız veri desteği içeriyorsa 802.11 veya Bluetooth PAN (Kişisel Alan Ağı) profili gibi bir bağlantı kullanıyorsanız şunları yaparlar:

  • [C-1-1] Yeniden başlatma aracılığıyla çevrimdışı güncelleme ile OTA indirmelerini DESTEKLEMELİDİR.

Cihaz uygulamalarında, sistem görüntüsünün ikili programın aynı olduğu doğrulanmalıdır beklenen sonuca ulaştırır. Blok tabanlı OTA Android'den itibaren eklenen, yukarı akış Android Açık Kaynak Projesi'ndeki uygulama 5.1 bu şartı yerine getirir.

Ayrıca, cihaz uygulamaları A/B sistem güncellemelerini DESTEKLEMELİDİR. AOSP bu özelliği, başlatma kontrolü HAL'sini kullanarak uygular.

Bir cihaz uygulamasında yayınlandıktan sonra hata bulunursa ancak belirlenen makul ürün ömrü içinde uyumluluklarını etkilemesine izin vermek için Android Uyumluluk Ekibi'ni kullanıyorsanız:

  • [C-2-1] Cihaz uygulayıcısının hatayı bir yazılım aracılığıyla düzeltmesi ZORUNLUDUR uygulanabilecek çeşitli güncellemeleri içerir.

Android, Cihaz Sahibi uygulamasının (varsa) şunları yapmasına olanak tanıyan özellikler içerir: sistem güncellemelerinin yüklenmesini kontrol edebilir. Sistem güncellemesi alt sistemi o zaman android.software.device_admin raporunu alırlar:

  • [C-3-1], SystemUpdatePolicy'de açıklanan davranışı uygulama ZORUNLUDUR sınıfını kullanır.

12. Doküman Değişiklik Günlüğü

Bu sürümdeki Uyumluluk Tanımı'nda yapılan değişikliklerin özeti için:

13. Bize Ulaşın

Yarışma kapsamında android-uyumluluk forumu ve dokümanın açıklığa kavuşturulmaması gerektiğini düşündüğünüz kapak.