Android 12 Uyumluluk Tanımı

1. Giriş

Bu belgede, cihazların kullanılabilmesi için karşılanması gereken Android 12 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ş 12. "Cihaz uygulaması" veya "uygulama" , donanım/yazılım çözümünün çok gelişmiş olması.

Android 12 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 bu dokümandaki bilgileri paylaşacağım.

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. değeri 1 birim artırır 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 ve form faktörüne özel koşulları içerir.

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.
  • Çapraz olarak 3,3 inç (veya 2,5 inç) aralığında fiziksel bir ekran boyutuna sahip olmalıdır inç API düzeyi 29 veya önceki sürümlerde gönderilen cihaz uygulamaları için inç) 36 cm'ye kadar.

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 Bu uygulayacaksınız.
  • [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.

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 şart koşuyor.

Avuç içi cihaz uygulamaları, yazılımda ekran döndürmeyi 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 şart koşuyor.

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-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.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.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] 6'lı poz sensörünün desteklenmesi ÖNERİLİR serbestlik derecesidir.
  • [7.4.3/H] Bluetooth ve Bluetooth desteği İÇERMELİDİR Bluetooth LE.

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 95 derece arasında olması ZORUNLUDUR.

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(#56_audio-latency)/H-1-1] Ortalama Sürekli Gidiş Dönüş 5 ölçümde 800 milisaniye veya daha az gecikme, Ortalama Desteklenen en az bir yolda 100 ms'den az mutlak Sapma.

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.

Avuç içi cihaz uygulamaları en az bir doğrusal rezonant içeriyorsa en iyi uygulamalar:

  • [7.10/H]* Dokunsal uyarıcıyı X eksenindeki HAREKETLEMELİDİR dikey yönde.

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

  • [7.10/H]* X ekseninin rezonans frekansına sahip olmalıdır LRA, 200 Hz'in altında olmalıdı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 ve bunların üçüncü taraf uygulamalarının kullanımına sunulmasını sağlayabilirsiniz:

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

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

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ı, 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 API'nin yanı sıra Control tarafından sağlanan tüm belirtilen alanlar API'ler.

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

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çin ÖNEMLE ÖNERİLİR-1 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:

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:

2.2.5. Güvenlik Modeli

Avuç içi cihaz uygulamaları:

  • [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.

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.
  • [9/H-0-1] "android.hardware.security.model.compliance" ZORUNLUDUR özelliğini kullanabilirsiniz.

Ö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.

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.

System API VoiceEngagementService üzerinden Android, Mikrofon erişimi göstergesi olmadan güvenli her zaman açık özel kelime algılama

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 Sisteme veya ContentCaptureService'e veri
  • [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 büyük verilerin aktarılmasına İZİN VERİLMEMELİDİR özel kelime algılama hizmetinin sonuna geldik.
  • [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-13] Özel kelime algılama hizmetini barındıran işlemin yeniden başlatılması ZORUNLUDUR en az saatte bir veya her 30 donanım tetikleyici etkinliğinde bir (hangisi daha düşükse) önce gelir.
  • [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.
  • [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.

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

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, 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/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.
  • [9.8.2/H-4-3] 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/H-4-4] En Son ve Etkin listesinin görüntülenmesi ZORUNLUDUR PermissionManager.getIndicatorAppOpUsageData() uygulamasından döndürüldüğü şekliyle mikrofonu kullanan uygulamalar, ve bunlarla ilişkili ilişkilendirme mesajları gösterilir.

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.
  • [9.8.2/H-5-3] 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.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

Medyanın tanımı için bkz. Bölüm 7.11 performans sınıfı.

2.2.7.1. Medya

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

  • Android 11 CDD'de listelenen medya gereksinimlerini karşılamanız ZORUNLUDUR bölüm 2.2.7.1

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

  • [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 farklı donanım video kod çözücü oturumunu DESTEKLEMELİDİR (AVC, HEVC, VP9* veya sonraki sürümler) aynı anda 30 fps'de 720p çözünürlükte. *Aşağıdaki durumlarda yalnızca 2 örnek gereklidir VP9 codec'i mevcut.
  • [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] Video kodlayıcının 6 örneğini DESTEKLEMELİDİR çalışan herhangi bir codec kombinasyonunda gerçekleşen (AVC, HEVC, VP9* veya sonraki sürümler) aynı anda 30 fps'de 720p çözünürlükte. *Yalnızca 2 örnek gereklidir VP9 codec'i varsa.
  • [5.1/H-1-5], maksimum sayıda donanımla video kodlayıcının ve 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 farklı donanım video kod çözücüyü ve donanımını DESTEKLEMELİDİR Herhangi bir codec'teki video kodlayıcı oturumları (AVC, HEVC, VP9* veya sonraki sürümler) kombinasyon 720p'de 30 fps çözünürlükte eş zamanlı olarak çalışır. *VP9 codec'i varsa yalnızca 2 örnek gereklidir.
  • [5.1/H-1-7] için bir codec başlatma gecikmesinin 50 ms veya daha az olması ZORUNLUDUR Tüm donanım video kodlayıcıları için 1080p veya daha küçük video kodlama oturumu (Dolby Vision codec'i dışında) yüklenmelidir. Buraya yükleme şu şekilde tanımlanır: donanım videosu kullanarak eşzamanlı 1080p - 720p arası yalnızca video kod dönüştürme oturumu codec'lerini 1080p ses-video kaydı başlatma ile birlikte destekler.
  • [5.1/H-1-8] için bir codec başlatma gecikmesinin 40 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.3/H-1-1] 10 saniyede 2 kareden fazla DEVAM ETMEMELİDİR 1080p 60 fps video oturumu için (yani yüzde 0,333'ten az kare düşüşü) yardımcı olabilir. Yükleme, 1080p ile 720p arası eşzamanlı yalnızca video olarak tanımlanır kullanarak bir üçüncü taraf veri sunucusu tarafından değil, aynı zamanda 128 kb/sn AAC ses oynatma.
  • [5.3/H-1-2] Bir video sırasında 10 saniyede 2 kareden fazla DEVAM ETMEMELİDİR yükleme altındaki 60 fps video oturumunda çözünürlük değişikliği. Yükleme, donanım kullanarak eşzamanlı 1080p - 720p arası yalnızca video kod dönüştürme oturumu video codec'lerinin yanı sıra 128 kb/sn AAC ses oynatma.
  • [5.6/H-1-1] için dokunma tonu gecikmesinin 100 milisaniyeden az olması ZORUNLUDUR OboeTester dokunarak ton testi veya CTS Doğrulayıcı dokunma ton testini kullanabilirsiniz.

2.2.7.2. Kamera

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

  • Android 11 CDD'de listelenen kamera gereksinimlerini karşılamalıdır. bölüm 2.2.7.2

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

  • [7.5/H-1-1] Çözünürlükte birincil arka kamera olması ZORUNLUDUR 4K'da 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üğü olan bir birincil ön kamera ZORUNLUDUR en az 5 megapiksel çözünürlüğüne sahip 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 ilkokul 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 gecikmesi < Şu süre için 1.000 ms: ITS kapsamındaki CTS kamera PerformanceTest tarafından ölçüldüğü şekliyle 1080p çözünürlük ışık koşulları (3000 K) sağlaması gerekir.
  • [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üş 600 ms ışık koşulları (3000 K) sağlaması gerekir.
  • [7.5/H-1-8] CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW DESTEKLEMELİDİR ve birincil arka kamera için android.graphics.ImageFormat.RAW_SENSOR.

2.2.7.3. Donanım

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

  • Android 11 CDD'de listelenen donanım gereksinimlerini karşılaması ZORUNLUDUR bölüm 2.2.7.3

Avuç içi cihaz uygulamaları, şunun için android.os.Build.VERSION_CODES.S döndürürse: android.os.Build.VERSION.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.6.1/H-2-1] en az 6 GB fiziksel belleğe sahip OLMALIDIR.

2.2.7.4. Performans

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

  • Android 11 CDD'de listelenen performans gereksinimlerini karşılamalıdır. bölüm 2.2.7.4

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

  • [8.2/H-2-1] En az 125 MB/sn'lik sıralı yazma performansı sağlaması ZORUNLUDUR.
  • [8.2/H-2-2] En az 10 MB/sn'lik bir rastgele yazma performansının sağlanması ZORUNLUDUR.
  • [8.2/H-2-3] En az 250 MB/sn'lik sıralı okuma performansı sağlaması ZORUNLUDUR.
  • [8.2/H-2-4] En az 40 MB/sn'lik rastgele bir okuma performansı sağlanması ZORUNLUDUR.

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

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:

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-2-1] 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 çı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.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.
  • [9/T-0-1] "android.hardware.security.model.compliance" ZORUNLUDUR özelliğini kullanabilirsiniz.

Ö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.

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] bunlardan 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.

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], Ev işlevini sağlamalı ve Geri ve Son işlevlerini sağlar.

  • [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-0-1] Ölü sayılma MAYIS 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-2] Konum LocationManager#requestLocationUpdates() aracılığıyla istendi Harita EŞLEŞMEMELİDİ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.

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

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

  • [7.3.4/A-2-1]. en az 100 Hz'lik bir frekans.
  • [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ı mümkün

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ı:

  • [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.

Dış görüş kamerası, cihazın dışındaki sahneleri gösteren bir kameradır kamera gibi kullanabilirsiniz.

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.5/A-SR-1] Bu doğrultuda odaklanmaları ÖNEMLE ÖNERİLİR. kameranın uzun boyutu ufuk çizgisiyle hizalanı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.
  • Android senkronizasyon çerçevesini DESTEKLEMELİDİR.
  • Donanım otomatik odaklama veya yazılımda otomatik odaklama uygulanmış olabilir. çok kolaylaşır.

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ı 32 bitse:

  • [7.6.1/A-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 512 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-1-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 608 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-1-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 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
  • [7.6.1/A-1-4] Çekirdek tarafından kullanılabilen bellek ve aşağıdaki yoğunluklardan herhangi biri geçerliyse kullanıcı alanının en az 1344 MB olması ZORUNLUDUR kullanılıyor:

    • 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

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ı.

  • [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] Şiddetle ÖNERİLİR 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:

Otomotiv cihaz uygulamaları:

  • [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.
  • [9/A-0-1] "android.hardware.security.model.compliance" ZORUNLUDUR özelliğini kullanabilirsiniz.

Ö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.
  • 7 inçten büyük ve 18 inçten küçük ekran görüntü boyutuna sahip bir çizgi çizin.

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.

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 12 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 12'de bu alan, 12_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 12'de bu alan, 12_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:12/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ülteni 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 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:

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.

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 işlevi için işlev sembollerini dışa aktarması ZORUNLUDUR VK_KHR_surface, VK_KHR_android_surface, VK_KHR_swapchain, VK_KHR_maintenance1 ve Şu kadar süre içinde VK_KHR_get_physical_device_properties2 uzantı: libvulkan.so kitaplığı. Tüm simgelerin mevcut olması ZORUNLUDUR Bölüm 7.1.4.2'de, sözleşmenin tam olarak geçerli olmasına ilişkin 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 12 ş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 uygulamaya LocationManager üzerinden sağlanır 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 listesinde bulunmalıdır.
    • [C-0-7] Uygulama, API düzeyi 25 veya üstünü hedefliyorsa durması GEREKİR uygulamanın arka plan hizmetlerini kullanabilir, sanki uygulama hizmetlerinstopSelf() Ö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 Security.getProviders() bölümünden yedi dizi değeri 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 Kısıtlanmış Uygulama Bekleme Paketi'nden daha kısıtlayıcı olduğunu düşünürsek:

  • [C-1-1] Kullanıcının listeyi görebileceği yerde kısıtlanmış uygulamalar için geçerlidir.
  • [C-1-2] Kısıtlamaları etkinleştirmek veya devre dışı bırakmak için kullanıcıya ödeme yapması GEREKİR görebilirsiniz.
  • [C-1-3] Kötüye olduğuna dair kanıt olmadan kısıtlamaları otomatik olarak uygulamaması ZORUNLUDUR sistem sağlığı davranışı vardır, ancak tespit edildikten sonra uygulamalara kısıtlamalar uygulansın mı? takılı kalan uyanık kalma kilitleri, uzun süre çalışan hizmetler ve dikkate almamanız gerekir. Kriterler, cihazı uygulayıcılar tarafından belirlenebilir ancak ZORUNLUDUR Uygulamanın sistem sağlığı üzerindeki etkisiyle alakalı olmalıdır. Güçlü olmayan diğer kriterler Tamamen sistem sağlığıyla ilgili (ör. uygulamanın ABD'deki popülerliğinin düşük olması) kriter olarak KULLANILMAMALIDIR.
  • [C-1-4] Kullanıcı aşağıdaki işlemleri gerçekleştirdiğinde, uygulamalar için uygulama kısıtlamalarının otomatik olarak uygulanmaması ZORUNLUDUR uygulama kısıtlamalarını manuel olarak devre dışı bıraktıysa ve kullanıcıya uygulama kısıtlamaları.
  • [C-1-5] Bir uygulamaya uygulama kısıtlamaları uygulanırsa kullanıcıları bilgilendirme GEREKİR otomatik olarak oluşturur. Bu tür bilgilerin, ilgili tarihten itibaren 24 saat içinde sağlanması ZORUNLUDUR kısıtlamalar uygulanır.
  • [C-1-6] ActivityManager.isBackgroundRestricted() için true İadesi GEREKİR Kısıtlanmış uygulama bu API'yi çağırdığında.
  • [C-1-7] Açıkça kullanılan üst ön plan uygulamasını KISITLAMAMALIDIR tarafından belirleniyor.
  • [C-1-8] En üst ön plan haline gelen bir uygulamadaki kısıtlamaların askıya alınması ZORUNLUDUR o uygulama için kullandığı belli bir uygulama olan kısıtlanmış durumda.
  • [C-1-10] Bir uygulamanın otomatik olarak KISITLANMIŞ grubunu 2 saat içinde kullanmaya başlayın.

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

  • [C-2-1] bu belgede açıklanan uygulamaya UYMALIDIR.

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 KullanımStats#getLastTimevisible() yoluyla açık bir kullanıcı etkileşimiyle tanımlanır. 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ğlanmışsa örneğin Notification.Builder.setNumber() ve Notification.Builder.setBadgeIconType() API'ye gidin.

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ı doğrudan Başlatıcı içinden de yapabilirsiniz.
  • [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 setGroupConversation aracılığıyla ayarlanmış bir grup görüşmesinde.
  • [C-SR-1] Kullanıcıya yönelik ürünleri otomatik olarak öne çıkarması Ö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.
  • [C-SR-2]'nin, kullanıcıya ödeme yapması için ÖNEMLE ÖNERİLİR. izin verilen uygulamalara maruz kalan bildirimleri kontrol eder Bildirim Dinleyici iznine sahip olmanız gerekir. Ayrıntı düzeyi, kullanıcı, bu tür her bir bildirim dinleyicisi için hangi bildiriminin türler bu işleyici ile köprülenmiştir. Türler, ZORUNLUDUR "ileti dizileri", "uyarı verme", "sessiz" ve "önemli ölçüde devam eden" bildirimleri etkinleştirebilirsiniz.
  • [C-SR-3]'ün, kullanıcılara aşağıdakileri yapabilmesi için ÖNEMLE ÖNERİLİR: bildirim dinleyicilerine bildirim göndermemesi için hariç tutulacak uygulamaları belirleyin.
  • 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ı.

Cihaz uygulamaları, uyarı bildirimlerini destekliyorsa:

  • [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. Rahatsız Etmeyin (Rahatsız Etmeyin)

Cihaz uygulamaları DND özelliğini destekliyorsa:

  • 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.

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.
  • [C-1-2] ekran sabitleme davranışını uygulaması ZORUNLUDUR ve kullanıcıya özelliği değiştirebileceği bir ayarlar menüsü sunmak.
  • 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.
  • [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 dışındaki çoklu pencere modlarını 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 içinde pencere özelliklerini destekliyorsa kullandığında:

  • [C-3-1] Etkinliklerin pencere içinde pencere çoklu pencere modunda başlatılması ZORUNLUDUR Uygulama:

  • [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.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 henüz yapılandırılmış kullanıcı verisi yoksa:
      • [C-1-5] cihaz, özellikle android.hardware.nfc işaretini işaretler ve MIME_TYPE_PROVISIONING_NFC MIME türüyle kayıt.
      • [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 İçerik sahibinin, projenin sahibinin geçerli tek bir seçenek (ör. Profil Sahip temel hazırlığı desteklenmez).
      • [C-1-9] şunu GÖNDERMELİDİR: ACTION_ADMIN_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 kullanıcı verileri olduğunda:
      • [C-1-7] Herhangi bir DPC uygulamasını Cihaz Sahibi Uygulaması olarak kaydetmemek ZORUNLUDUR daha fazla.
  • [C-1-2] uygulamanın Cihaz Sahibi olarak ayarlanmasına izin vermek için temel hazırlık sürecini başlatır. İzin, kullanıcı işlemi aracılığıyla veya bazı programatik araçlarla yapılabilir ancak uygundur. açıklama bildirimi (AOSP'de belirtildiği şekilde) cihaz sahibinden önce GÖSTERİLMELİDİR temel hazırlık başlatılır. Ayrıca, programatik cihaz sahibi, cihaz sahibi temel hazırlığı için kullanılan mekanizma (kuruluşlar tarafından) KULLANILMAMALIDIR. Devre Dışı Deneyimi, kurumsal olmayan kullanım için etkileyebilir.
  • [C-1-3] İznin koda gömülmemesi veya diğer cihazların kullanılmasını engellememesi sahip uygulamalar.

Cihaz uygulamaları android.software.device_admin belirtiyorsa, ancak aynı zamanda özel bir Cihaz Sahibi yönetim çözümü içermeli ve bunun için 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 daha önce özel çözümde yapılandırılmış olması gerekir sahip olması gerekir.
  • [C-2-2] android.app.action.PROVISION_MANAGED_DEVICE tarafından başlatılan akış .
  • DPC uygulamasını kaydettirmeden önce cihazda kullanıcı verileri OLABİLİR "Cihaz Sahibi" olarak ayarlanır.
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-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.

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: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ıya gerekli maliyeti VERMELİDİR 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'e Contacts Provider dahildir 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: olan ve AccountManager'daki bir Hesapla ilişkilendirilmemiş olan şunun için null değerlerle oluşturulur: 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" dosyalarını aşağıdaki gibi yükleyip çalıştırabilmesi ZORUNLUDUR "aapt" aracı tarafından oluşturulan 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.

Cihaz uygulamaları:

  • [C-0-2] ".apk" dosyalarının 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ı DELETE_PACKAGE için SDK'da açıklandığı üzere kullanıcı onayı izni gerekir. Tek istisna, sistem paketi doğrulayıcı uygulama işlemedir. PACKAGE_NEEDS_VERIFICATION intent ve ACTION_MANAGE_STORAGE depolama alanı yöneticisi uygulaması 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 startActivityForResult() için RESULT_CANCELED değerini döndürün. 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 İmza Şeması v4.

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.
  • [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:

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
  • 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

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: BITRATE_MODE_CQ desteklenir 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

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)

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ı

  • [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.

  • [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

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)
  • 1.408 x 1152 piksel (H263)
  • 1280 x 720 piksel (diğer)
1920 x 1080 piksel (MPEG4 hariç) 3840 x 2160 piksel (HEVC, VP9)
  • [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.

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] Temel Profil Düzeyi 45'i DESTEKLEMELİDİR.
  • Desteklenen kodlayıcı için dinamik olarak yapılandırılabilen bit hızlarını DESTEKLEMELİDİR.

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 Düzeyi 3'ü DESTEKLEMELİDİR.
  • Aşağıdaki tabloda belirtildiği şekilde HD kodlama profillerini DESTEKLEMELİDİR.
  • [C-SR-1]'in HD kodlama 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

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 ve Düzey 45'i DESTEKLEMELİDİR.

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'ları:

  • 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'leri:

  • [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] geriye dönük uyumlu temel katmanların izleme dizininin ayarlanması ZORUNLUDUR (varsa) mevcut), birleştirilmiş Dolby Vision katmanının parkur diziniyle aynı olmalıdır.

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.

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] Aşağıdaki özellikler:

    • Biçim: Doğrusal PCM, 16 bit
    • Örnekleme hızları: 8000, 11025, 16000, 44100, 48.000 Hz
    • Kanallar: Mono
  • 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() ve üçüncü tarafın erişimine açık olan etkin mikrofonlar AudioRecord.getActiveMicrophones() aracılığıyla ve MediaRecorder.getActiveMicrophones() API'ler. Cihaz uygulamaları, ham sesin AM radyo ve DVD kalitesinde yakalanmasına izin veriyorsa için:

  • [C-2-1] Daha yüksek bir oranda yukarı örnekleme yapmadan yakalama GEREKİR daha fazla içerik ekleyebilirsiniz.

  • [C-2-2] Tüm ağaç türleri için uygun bir kenar yumuşatma filtresi veya aşağı örnekleme.

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ı.
  • Ses tanıma ses akışını yaklaşık olarak düz bir şekilde kaydetmeli genlik ve frekans özellikleri: spesifik olarak ±3 dB, 100 Hz'den - 4.000 Hz
  • Ses tanıma ses yayını, giriş hassasiyeti ayarlıyken KAYDETMELİDİR Öyle ki 1.000 Hz'de 90 dB ses gücü düzeyi (SPL) kaynağı, 16 bit örnekler için 2500.
  • 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 yakalama sırasında

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.4.6. Mikrofon Kazanç Düzeyleri

Cihaz uygulamaları android.hardware.microphone bildiriyorsa:

  • Yaklaşık olarak düz genlik-frekans değerlerini sergilemelidir orta frekans aralığındaki özellikler: özellikle 100'den ±3 dB'ye Sesi kaydetmek için kullanılan her mikrofon için 4.000 Hz - 4.000 Hz tanıma ses kaynağı.
  • Ses giriş hassasiyetini 1000 Hz sinüsoidal olacak şekilde AYARLAMALIDIR 90 dB Ses Basıncı Düzeyinde (SPL) çalınan ton kaynağı yanıt veriyor 16 bit örnek için 2.500 RMS (veya kayan örnek için -22,35 dB Tam Ölçekli) ile her mikrofon için ayrı ayrı ölçeğe/çift hassasiyetli örnekler) ses tanıma ses kaynağını kaydetme.
  • [C-SR-1]'nin düşük sıcaklıklarda genlik seviyeleri sergilemesi ÖNEMLE ÖNERİLİR: frekans aralığı: özellikle kıyaslandığında ±20 dB'den 5 Hz'den 100 Hz'e ses kaydetmek için kullanılan her bir mikrofonun orta frekans aralığına ses tanıma ses kaynağına dokunun.
  • [C-SR-2]'nin yüksek frekans aralığı: özellikle ±30 dB ile 4.000 Hz - 22 KHz arasında ve kullanılan her mikrofonun orta frekans aralığına kıyasla ses tanıma ses kaynağını kaydedin.

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.
  • 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 AudioTrack gapless API tarafından belirtildiğinde 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 bunlara karşılık gelen sesin ortama sunulduğu zamanlar, PCM kodlu verilerin veya sinyalin bir bağlantı noktası aracılığıyla cihazdan ayrılmasını sağlar ve gözlemlemenizi sağlar.
  • 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.
  • soğuk çıkış ses dalgalanması. Soğuk algınlığının ayrı ölçümleri arasındaki değişkenlik çıkış gecikmesi değerleri olabilir.
  • soğuk giriş ses dalgalanması. Soğuk algınlığının ayrı ölçümleri arasındaki değişkenlik giriş gecikmesi değerleri olabilir.
  • 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 milisaniye veya daha az soğuk çıkış gecikmesi.

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. Android'in bu sürümünü çalıştıran mevcut ve yeni cihazlar ÇOK Bu koşulları hemen karşılamanız ÖNERİLİR. Gelecekteki bir platformda 200 ms veya daha az Soğuk çıkış gecikmesi için ZORUNLU olarak sağlayacağız.
  • [C-SR-2] Dokunma tonla ilgili gecikme süresi 80 milisaniye veya daha az.
  • [C-SR-3] Soğuk çıkış ses dalgalanmasını en aza indirin.
  • [C-SR-4] AudioTrack.getTimestamp ve AAudioStream_getTimestamp değerinin +/- 1 ms'ye eşit olduğunu unutmayın.

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 milisaniye veya daha az soğuk giriş gecikmesi.

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. Android'in bu sürümünü çalıştıran mevcut ve yeni cihazlar şunlardır: Bu koşulları karşılamanız şimdi ÇOK ÖNEMLE ÖNERİLİR. Gelecekte 200 ms veya daha az Soğuk giriş gecikmesi gerektireceğini ZORUNLUDUR.
  • [C-SR-9] 30 milisaniye veya daha kısa sürekli giriş gecikmesi.
  • [C-SR-10] Soğuk giriş ses dalgalanmasını en aza indirin.
  • [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; 20 milisaniye veya daha kısa ZORUNLUDUR ve desteklenen en az bir yolda 10 milisaniye veya daha kısa olmalıdır.
  • [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'ye gidin.
  • [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-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. SynthMark uygulamasının "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

SynthMark dokümanlarını inceleyin bir açıklamasına yer verilebilir.

  • 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.
  • Dokunmatik girişten ses çıkışına kadar gecikme süresi en az veya daha az 40 ms'ye eşittir.

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.

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ı, Wi-Fi ise:

    • [C-4-1] AdbManager#isAdbWifiSupported() yöntemini ZORUNLUDUR iade true.

    Cihaz uygulamaları, Kablosuz bağlantı ve en az bir kamera içerir. Bu cihazlar:

    • [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ı.
  • Maymun

    • [C-0-8] Monkey çerçevesini içermeli ve bu çerçeveyi çeşitli uygulamalar vardır.
  • 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-10] 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ı.

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. Tüm üçüncü taraf Android uyumlu cihazlarda Android uyumlu ekranlarda çalıştırılabildiği takdirde, cihaz uygulamalarının bu API'leri doğru bir şekilde uygulaması GEREKİR özellikleri hakkında daha fazla bilgi edinin.

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). Bir doğrusal çizginin kapsadığı piksel sayısı 1 inç yatay veya dikey aralık. Dpi değerleri listelendiğinde, her iki yatay ve dikey dpi aralık dahilinde olmalıdır.
  • 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). Normalleştirilmiş sanal piksel birimi: 160 dpi ekran. Şu şekilde hesaplanır: piksel = dps * (yoğunluk/160).

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ı UI_MODE_TYPE_NORMAL özelliğini destekliyor ve Köşeleri yuvarlanmış Android uyumlu ekranlar:

  • [C-1-1] Aşağıdaki şartlardan en az birinin karşılanması ZORUNLUDUR karşılanıyor:

    • Yuvarlatılmış köşelerin yarıçapı 38 dp'den az veya bu değere eşittir.
    • Mantıksal dokümanın her köşesine 15 dp x 15 dp boyutunda bir kutu sabitlendiğinde, ekranda, her kutunun en az bir pikseli görünür olmalıdır.
  • dikdörtgen köşeler.

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.

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.

  • [C-0-1] Varsayılan olarak, cihaz uygulamalarının yalnızca Aşağıdaki Android çerçeve yoğunlukları DisplayMetrics DENSITY_DEVICE_STABLE API üzerinden ve bu değer hiçbir zaman DEĞİŞMEMELİDİR; ancak cihaz bir görüntü yapılandırmasına göre farklı rastgele yoğunluklar Kullanıcı tarafından yapılan, ilk gösterimden sonra belirlenen değişiklikler (ör. görüntü boyutu) başlatı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.

Cihazın ekran boyutunu değiştirme imkanı varsa:

  • [C-1-1] Görüntü boyutu, yerel yoğunluğun 1,5 katından daha büyük bir oranda Ölçeklendirilmemelidir 320 dp'den (eşdeğeri) sw320dp kaynak niteleyicisine bağlayın.
  • [C-1-2] Görüntü boyutu, yerel yoğunluğun 0,85 katından daha küçük olacak şekilde ölçeklendirilemez.
  • İ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-master-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.

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] Vulkan 1.1 desteği içermesi ÖNEMLE ÖNERİLİR.

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

  • Vulkan 1.1 desteği İÇERMELİDİR.

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-master-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 1.0 veya sonraki sürümü desteği içeriyorsa:

  • [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] Numaralandırılmış her biri için Vulkan 1.0 API'lerini tam olarak uygulamalıdır 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 olarak ayarlandı.
  • [C-1-6] Vulkan yerel API'leri ve bunun tersine , uzantı dizelerini RAPORULAMAMALIDIR 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-2] VK_KHR_driver_properties ve VK_GOOGLE_display_timing uzantıları.

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 Vulkan'ın özellik bayrakları:

  • [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.
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ı, geniş yelpazedeki ekranları desteklediğini iddia ediyorsa 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 .

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-2] 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 şuradan kaydırma yoluyla sağlanması ZORUNLUDUR: hem sol hem de sağ kenarlara sığdırır.
  • [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.

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, İşaretçide, aşağıya veya yukarıya doğru giden bir durum değişikliği tıklayın.
  • [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ı 3 eksenli ivme ölçer içeriyorsa:

  • [C-1-1] En az 50 Hz frekansına kadar olan etkinlikleri raporlayabilmesi ZORUNLUDUR.
  • [C-1-2] TYPE_ACCELEROMETER'nin uygulanması ve bildirilmesi GEREKİR görebilirsiniz.
  • [C-1-3] Android sensör koordinat sistemine UYMALIDIR 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.
  • [C-SR-2], TYPE_SIGNIFICANT_MOTION özelliğinin uygulanması için ÖNEMLE ÖNERİLİR olabilir.
  • [C-SR-3]'ün uygulanması ve TYPE_ACCELEROMETER_UNCALIBRATED bildirilmesi için ÖNEMLE ÖNERİLİR görebilirsiniz. Android cihazların bu gereksinimi karşılaması ÖNERİLİR, dolayısıyla daha fazla bilgi edinerek GEREKLİ hale gelir.
  • TYPE_SIGNIFICANT_MOTION, TYPE_TILT_DETECTOR, TYPE_STEP_DETECTOR, açıklandığı gibi TYPE_STEP_COUNTER kompozit sensör konusuna bakın.
  • 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 bir ivme ölçer ve TYPE_SIGNIFICANT_MOTION, TYPE_TILT_DETECTOR, TYPE_STEP_DETECTOR, TYPE_STEP_COUNTER birleşik sensör uygulandı:

  • [C-2-1] Bu cihazların güç tüketimlerinin toplamı her zaman 4 mW'dan az olmalıdır.
  • 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-3-1] TYPE_GRAVITY ve TYPE_LINEAR_ACCELERATION ZORUNLUDUR olabilir.
  • [C-SR-4] TYPE_GAME_ROTATION_VECTOR'nin uygulanması ÖNEMLE ÖNERİLİR olabilir.

Cihaz uygulamaları 3 eksenli ivme ölçer, 3 eksenli jiroskop sensörü ve bir manyetometre sensörü varsa:

  • [C-4-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ı ortadan kaldırın ve cihazı yeniden başlatma işlemleri arasında dengeleme parametrelerini koruyun.
  • [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 hava koşullarında, 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ı 3 eksenli bir jiroskop içeriyorsa:

  • [C-1-1] En az 50 Hz frekansına kadar olan etkinlikleri raporlayabilmesi ZORUNLUDUR.
  • [C-1-2] TYPE_GYROSCOPE sensörünü uygulaması 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] TYPE_GYROSCOPE_UNCALIBRATED'in uygulanması ÖNEMLE ÖNERİLİR görebilirsiniz.
  • [C-SR-4] 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, ivme ölçer sensörü ve bir manyetometre sensörü varsa:

  • [C-2-1] bir TYPE_ROTATION_VECTOR kompozit sensör uygulaması ZORUNLUDUR.

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

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. Sensörler varsayılan olarak Sınıf 1 olarak sınıflandırılır ve ve sınıflandırılmasını isteyen ya da kendi Sınıf 2 veya Sınıf 3 olarak derecelendirilmelidir. Hem 2. Sınıf hem de 3. Sınıf biyometri, aşağıda ayrıntılı olarak açıklandığı şekilde ek özelliklere sahiptir.

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 ve 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:

  • [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-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): a) cihazlar için 24 saatte bir veya daha az sıklıkta Android 9 veya sonraki bir sürümle kullanıma sunulması ya da b) 72 saatte bir veya daha kısa bir süre içinde kullanıma sunulması .
  • [C-1-8] Önerilen birincil kimlik doğrulama işlemi için kullanıcıyı ZORUNLAMALIDIR (ör. PIN, desen, şifre) veya takip etmek için:

    • 4 saatlik boşta kalma zaman aşımı süresi VEYA
    • 3 başarısız biyometrik kimlik doğrulama denemesi.

  • [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.

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 Android Biyometri Test Protokolleri tarafından ölçülmüştür.
  • [C-2-3] Android dışında izole bir yürütme ortamında biyometrik eşleştirme Güvenilir Yürütme Ortamı (TEE) gibi bir kullanıcı veya çekirdek alanı ya da izole yürütme ortamına güvenli kanalı olan bir çip üzerinde çalışır.
  • [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ı inceleyebilirsiniz.
  • [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 güvenli bir kanalla izole edilmiş yürütme ortamına atar.
    • 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] Kimliği tanımlayabilecek bilgilere şifrelenmemiş erişime İZİN VERMEMELİDİR veya bu verilerden türetilen veriler (gömmeler gibi) Sözleşme'yi ihlal edene izin verilmez. Cihazlar yeni sürüme geçiriliyor ve Android 9 veya önceki sürümlerde kullanıma sunulan reklamlar C-2-7'den muaf değildir.
  • [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.

  • [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ün 3. Sınıf olarak işlenmesini istiyorsa (eski adıyla Güçlü):

  • [C-3-1], şunlar hariç yukarıdaki Sınıf 2'nin tüm şartlarını karşılamalıdır: [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 Android Biyometri Test Protokolleri tarafından ölçülmüştür.
  • [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.

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.12. 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.13. Menteşe Açısı Sensörü

Cihaz uygulamaları menteşe açısı sensörünü destekliyorsa:

7.4. Veri Bağlantısı

7.4.1. Telefon Hizmeti

Android API'leri tarafından kullanılan "Telefon" ve bu dokümanda özellikle GSM üzerinden sesli arama yapma ve SMS mesajı göndermeyle ilgili donanımla ya da CDMA ağıdır. Bu sesli aramalar paketle devredilebilir veya yapılmayabilir, ancak bunlar, Android'in hiçbir veriden bağımsız olduğu kabul edilen amaçlarına yönelik olarak aynı ağ kullanılarak uygulanabilecek bağlantıdır. Başka bir deyişle, Android "telefon" işlevi ve API'leri, özellikle de ses telefon aramaları ve SMS'ler. Örneğin, telefon araması yapamayan veya SMS mesajı gönderme/alma bir telefon cihazı olarak kabul edilmez. Veri bağlantısı için hücresel ağ kullanıp kullanmadıkları.

  • 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ı;

7.4.1.1. Numara Engelleme Uyumluluğu

Cihaz uygulamaları android.hardware.telephony feature 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 YAZMAMALIDIR iptal edebilirsiniz.
  • [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.
7.4.1.2. Telekom API'sı

Cihaz uygulamaları android.hardware.telephony 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-1] 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-2] 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.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) herhangi bir zamanda işleme konabilir:
    • Ekran etkin durumda olmadığında bile.
    • Android Televizyon cihaz uygulamaları için, bekleme modundayken bile güç durumlarıyla ilgilidir.
  • [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 destek vermesi 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.

Buna karşılık, cihaz uygulamaları kablosuz ağ desteği içermiyorsa Passpoint:

  • [C-2-1] Passpoint ile ilgili WifiManager uygulaması API'ler UnsupportedOperationException hatası ZORUNLUDUR.

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] 80 MHz bant genişliğinde 2 metreye kadar kesinlikte olması ZORUNLUDUR 68. yüzde birlik dilimde (Kümülatif Dağıtı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 ve üçüncü taraf uygulamalarına sunduğu işlevler:

  • [C-1-1] SocketKeepAlive API'si.

  • [C-1-2] Kablosuz ağ üzerinden ve Hücresel ağ üzerinde en az bir keepalive yuvası.

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ılarına bir seçenek sunmaması ÖNEMLE ÖNERİLİR Kurumsal kablosuz ağı manuel olarak ekleyin Ayarlar uygulamasında.

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:

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-postasında 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.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 ACCESS_FINE_LOCATION var.

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.

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.

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

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] Aynı yöne bakan birden fazla RGB kamerası olan cihazlarda aşağıdaki özelliklere sahip mantıksal bir kamera cihazını desteklemesi için ÖNEMLE Ö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.

7.6. Bellek ve Depolama

7.6.1. Minimum Bellek ve Depolama

Cihaz uygulamaları:

  • [C-0-1] ŞUNU İÇERMELİDİR: İndirme Yöneticisi veri dosyalarını indirmek için kullanabileceği ve 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 bildirmelidir.
  • [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 (priz) bağlayabilirsiniz.
  • [C-SR-1] USB ses sınıfının uygulanması için ÖNEMLE ÖNERİLİR 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ı teknik özellikleri, düzeltme 1.2'de belirtilmiştir. 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).
  • [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ğil.

7.8.2.1. Analog Ses Bağlantı Noktaları

Mikrofonlu kulaklıklar ve diğer ses aksesuarlarıyla uyumlu olmak için 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 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ı

Mikrofonlu kulaklıklarla ve diğer ses aksesuarlarıyla uyumlu olmak için USB-C konnektörleri ve Android ekosisteminde uygulama (USB ses sınıfı) Android USB mikrofonlu kulaklık spesifikasyonunda tanımlandığı gibi.

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ı:

  • Desteğini doğru bir şekilde BİLDİRMELİDİR AudioManager.getProperty aracılığıyla ultrasona yakın ses özelliği API'yi aşağıda görebilirsiniz:

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

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.MEDIA_PERFORMANCE_CLASS. Gereksinimler: medya performans sınıfı R (sürüm 30). 0 özel değeri, cihazın medya performansı sınıfı.

Cihaz uygulamaları, android.os.Build.VERSION.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.

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 için kullanılan Uygulama Bekleme Paketleri Bekleme.
  • [C-1-4] Uygulama Bekleme Paketleri ve Doz'u Güç Yönetimi bölümünde açıklanmıştır.
  • [C-1-5] PowerManager.isPowerSaveMode() için true İadesi GEREKİR 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 için bölüm 3.5.1'i okuyun.

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() üzerinden BİLDİRMELİDİR 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 değerine sahip izinler PROTECTION_FLAG_PRIVILEGED Yalnızca sistemin ayrıcalıklı yollarında önceden yüklenmiş uygulamalara İZİN VERİLMELİDİR izin verilenler listesine eklenmiş izinlerin alt kümesinde uygulamasını indirin. AOSP uygulaması, bu şartı okuyup kabul ederek her uygulama için izin verilenler listesindeki dosyalardan etc/permissions/ yolunu izleyip 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] Önceden yüklenmiş şu durumlar söz konusu değilse:
    • Uygulama yapılmadan önce kullanıcının izni alınabilir nasıl kullanacağımızı konuştuk.
    • Çalışma zamanı izinleri bir intent kalıbıyla ilişkilendirilmiş (önceden yüklenmiş uygulama varsayılan işleyici olarak ayarlanır).
  • [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 dahil edilir.

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ı, kullanıcılara 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] "9.8.6 İçerik Yakalama" bölümünde cihaz uygulamalarıyla ilgili tüm şartları yerine getirmesi ZORUNLUDUR.
  • [C-4-2] android.permission.INTERNET iznine sahip OLMAMALIDIR. Bu, bölüm 9.8.6'da listelenen ÖNEMLE ÖNERİLENDEN daha katıdır.
  • [C-4-3] Bluetooth, Kişiler, Medya, Telefon, SystemUI ve internet API'lerini sağlayan bileşenler dışında diğer uygulamalara BAĞLANMAMALIDIR.Bu, bölüm 9.8.6'da listelenen ÖNERİLENLER'den daha katıdır.

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ü diğer uygulamaların korumalı alanını yeniden kullanmak, standart Android mekanizmalarını kullanabilirsiniz.

  • [C-0-5] Alternatif çalışma zamanları ile BAŞLATILMAMALIDIR, izin verilmemeli veya 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ı 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 mi (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.

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 çekirdek (ö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 tahsislerinin 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-8] 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-9] 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-10] Ç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-11] 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-12] Bellek için standart bir protokol kullanması ÖNEMLE ÖNERİLİR Örneğin, " Armv8-A (FF-A) olabilir.
  • [C-SR-13] 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ı.

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ı kullanmaması 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] Hassas bilgilere izin veren bir şekilde açık kullanıcı izinlerinin gösterilmesi ve yakalanacak şekilde kullanıcının ekranında gösterilen tüm bilgiler ekran yayınlama veya ekran kaydı özelliği MediaProjection ya da özel API'ler. Kullanıcılara ileride devre dışı bırakma olanağı VERMEMELİDİR kullanıcı izni görüntülenir.
  • [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.

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 İçerik Yakalama,

  • [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.

Android, System API ContentCaptureService üzerinden, AugmentedAutofillService, AppSearchGlobalManager.query veya başka bir kullanıcı özel yöntemler, cihaz uygulamalarının kullanılabilmesi için bir mekanizmayı aşağıdaki uygulama verisi etkileşimleri hakkında: kullanıcı:

  • 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).
  • 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.

Cihaz uygulamaları yukarıdaki verileri 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 ve cihazın günlüğünün yalnızca bir gizliliği korumaya yönelik mekanizmalardan biri. 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), her seferinde açık kullanıcı izni alınması hariç paylaşılmamaktadır.
  • [C-1-6] Kullanıcıya, ContentCaptureService veya özel araçlar, verilerin cihazda herhangi bir biçimde saklandığına işaret eder.
  • [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.

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 panoda DEĞİŞTİRMEMELİDİR (ör. ClipboardManager API) göndermediğiniz durumlarda, uygulama varsayılan IME değilse veya odaklanacağız.

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 de 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
  • [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.

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'nın kullanılması 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 kullanarak şifrelemek ZORUNLUDUR ya da Adiantum.
  • [C-1-12] Cihazda Gelişmiş Şifreleme Standardı (AES) varsa talimatlar (ARM tabanlı cihazlarda ARMv8 Kriptografi Uzantıları gibi) 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 çok değerlidir.
  • [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) ÜRETİLMELİDİR 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ı:

  • [C-0-3] Dosya içeriğinin güvenilir anahtarından kurtarır.
  • [C-0-4] Korunan dosyadaki okuma isteklerinin başarılı olmasına izin VERMEMELİDİR güvenilir anahtarla doğrulanmadığı durumlarda bu işlemi yapabilirsiniz.

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 aracılığıyla ş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 (hangisi daha küçükse) olmalıdır.
  • Oluşturulabilecek anahtar sayısını SINIRLAMAMALIDIR.

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 ve HMAC kriptografik uygulamalarının kullanılabilmesi ZORUNLUDUR desteği düzgün bir şekilde desteklemek için MD5, SHA1 ve SHA-2 ailesi karma işlevleri Android Anahtar Deposu sisteminin desteklediği algoritmaları güvenli bir şekilde çekirdek ve üzerinde çalışan koddan izole edilir. Güvenli yalıtım ZORUNLUDUR çekirdek veya kullanıcı alanı kodunun erişebileceği tüm potansiyel mekanizmaları engeller DMA dahil olmak üzere, izole ortamın dahili durumu Yukarı akış Android Açık Kaynak Projesi (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ı izolasyonun uygulanması alternatif seçeneklerdir.
  • [C-1-3] izole çalıştırma ortamı sağlar ve kimlik doğrulamaya bağlı anahtarların kullanılmasına izin verir kimlik doğrulama işleminden sonra gerçekleştirilir. Kilit ekranı kimlik bilgilerinin yalnızca izole yürütme ortamının kilit ekranı yapmasına olanak tanıyan bir yöntem sağlar. 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. İlgili içeriği oluşturmak için kullanılan onay imzalama anahtarlarının, kimlik doğrulama ve deneme amaçlı olarak anahtarların cihaz tanımlayıcı olarak kullanılmasını önler. Bunu karşılamanın bir yolu en az 100.000 birim olmadığı sürece aynı onay anahtarını üretildiğini gördük. 100.000'den fazla SKU üretilirse her 100.000 birim için farklı bir anahtar 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.

  • [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 veya
    • IKeyMintDevice sürüm 1.
  • [C-SR-1] IKeyMintDevice sürüm 1'i desteklemesi için ÖNEMLE ÖNERİLİR.

9.11.1. Güvenli Kilit Ekranı ve Kimlik Doğrulama

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.

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) bu yöntemlerin devre dışı bırakılması ZORUNLUDUR uygulama, şifre gereksinimleri kalite politikasını DevicePolicyManager.setRequiredPasswordComplexity() 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 en az 4 defada bir kimlik doğrulama yöntemi (ör. PIN, desen, şifre) tercih edebilirsiniz.
  • [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ışan (ör. avuç içi) ancak bu işlevi cihazda tam olarak uygulayamaz 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, kullanıcının güvenlik açısından sonuçları hakkında bilgilendirilmesi GEREKİR 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] Önerilen birincil ayarlardan biri için kullanıcıya giriş sorgulaması ZORUNLUDUR kimlik doğrulama (ör. PIN, desen, şifre) yöntemlerini en az 72'de bir kez saat veya daha az kullanıcının güvenliği (ör. sürücünün dikkatinin dağılması) dışında 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öntemleri 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ı, 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 uyumluluğu doğrulamak için cihaz gibi çeşitli özelliklerden bahsedeceğiz:

  • [C-SR-3], kuruluş içinden saldırılara karşı direnç (IAR) sağlamak için ÖNEMLE ÖNERİLİR, Bu, donanım yazılımı imzalama anahtarlarına erişimi olan bir içeriden birinin StrongBox'un işlevsel sırları atlayarak gizli bilgileri sızdırmasına neden olan bir donanım yazılımı güvenlik şartlarına tabi veya hassas kullanıcı verilerine başka şekilde erişilmesini sağlamak. İlgili içeriği oluşturmak için kullanılan IAR'yi uygulamanın önerilen yolu, 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öntemi).

  • [C-1-4] Güvenilir uygulamanın, güvenlik özellikleri etkilenmez (ör. erişim olmadığı sürece kimlik bilgisi verileri serbest bırakılmaz) denetim koşulları sağlandığından, rastgele MAC'ler üretilemez verileri) kullandığınızdan emin olun.

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.

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 12.

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:

Bireysel bölümlerde yapılan değişikliklerin özeti için:

  1. Giriş
  2. Cihaz Türleri
  3. Yazılım
  4. Uygulama Paketi
  5. Multimedya
  6. Geliştirici Araçları ve Seçenekleri
  7. Donanım Uyumluluğu
  8. Performans ve Güç
  9. Güvenlik Modeli
  10. Yazılım Uyumluluğu Testi
  11. Güncellenebilir Yazılımlar
  12. Doküman Değişiklik Günlüğü
  13. Bize Ulaşın

12.1. Değişiklik Günlüğünü Görüntüleme İpuçları

Değişiklikler şu şekilde işaretlenmiştir:

  • CDD
    Uyumluluk gereksinimlerinde önemli değişiklikler yapılmıştır.

  • Dokümanlar
    Kozmetik veya yapıyla ilgili değişiklikler.

En iyi görüntüleme için pretty=full ve no-merges URL parametrelerini değişiklik günlüğü URL'leri.

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.