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ı.
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
veVK_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:
- [7.1.4.6/H-1-1] çıktı olarak Bildirilmelidir GPU sayaçları ve GPU şemasıyla uyumlu protobuf izi Perfetto belgelerinde tanımlanan aşamalar.
- [7.1.4.6/H-1-2] Uyumlu değerleri Bildirmelisiniz. aşağıdaki kodu takip eden cihazın GPU sayaçları için: gpu sayaç izleme paket protokolü.
- [7.1.4.6/H-1-3] Uyumlu değerleri Bildirmelisiniz. aşağıdaki adımları uygulayarak cihazın GPU RenderStages için sahne izleme paket protokolü oluşturma.
- [7.1.4.6/H-1-4] GPU Frekansı Bildirilmesi ZORUNLUDUR Şu biçimde belirtilen izleme noktası: power/gpu_frequency.
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 etkinlikKEYCODE_MEDIA_PLAY_PAUSE
düğmesine uzun basıldığında veyaKEYCODE_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:
- [7.7.2/H-1-1] USB ses sınıfının uygulanması ZORUNLUDUR Android SDK dokümanlarında gösterildiği gibi.
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ıyorandroid.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:
- [7.10/H]* Eksantrik dönen kütle (ERM) KULLANMAMALIDIR dokunsal aktüatör (titreşim).
- [7.10/H]* Aktüatörün yerleşimi YERİNE ALINMALIDIR genellikle cihazın tutulduğu veya elle dokunulduğu yerin yakınında bulunmalıdır.
- [7.10/H]* Şunun için tüm herkese açık sabit değerlerin uygulanması GEREKİR: net dokunma teknolojisi android.view.HapticFeedbackConstants'ta olan (CLOCK_TICK, CONTEXT_click, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFIRM, REJECT, GESTURE_START ve GESTURE_END).
- [7.10/H]* Şunun için tüm herkese açık sabit değerlerin uygulanması GEREKİR: net dokunma teknolojisi android.os.VibrationEffect içinde olanlarla aynı olan (EF_TICK, !_TIKLAMA, EF_HEAVY_TIKLAMA ve EF_DOUBLE_TIKLAMA) ve zengin dokunma teknolojisi için tüm herkese açık sabitler android.os.VibrationEffect.Composition üzerinde yani (PRIMITIVE_click ve PRIMITIVE_TICK).
- [7.10/H]* Bu bağlantılı dokunma sabitleri KULLANILMALIDIR eşlemeler.
- [7.10/H]* UYGULANMALI
kalite değerlendirmesi
createOneShot()
için vecreateWaveform()
API'ler. - [7.10/H]* genlik özelliklerinin doğrulanması GEREKİR
ölçeklenebilirliği artırmak için
android.os.Vibrator.hasAmplitudeControl()
.
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:
- [7.10/H]* android.os.Vibrator.areAllEffectsSupported() ve android.os.Vibrator.arePrimitvesSupported() API'ler.
- [7.10/H]* kalite değerlendirmesi destekleyici araçlar da mevcut.
- [7.10/H]* Yaşanan risklerin etkilerini azaltmak için burada açıklandığı şekilde başarısız olma riskini alırsınız.
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:
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:
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ğuACTION_OPEN_DOCUMENT
,ACTION_OPEN_DOCUMENT_TREE
, veACTION_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
veNotificationManager
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çindetrue
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şleVoiceInteractionService
veyaACTION_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
vetrue
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 veControl
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ıraControl
tarafından sağlanan tüm belirtilen alanlar API'ler.
Öte yandan, Avuç içi cihaz uygulamalarında bu tür denetimler uygulanmazsa onlar:
- [3.8.16/H-2-1] şunun için
null
adlı yeri bildirmelidir:ControlsProviderService
veControl
API'ler. - [3.8.16/H-2-2] Özelliğin Beyan Edilmesi ZORUNLUDUR
işaretle
android.software.controls
vefalse
olarak ayarladım.
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
:
- [7.5.4/H-1-1]
android.media.action.STILL_IMAGE_CAMERA
'a uygun hareket edilmelidir veandroid.media.action.STILL_IMAGE_CAMERA_SECURE
niyetini gösterin ve kamerayı SDK'da açıklandığı şekilde hareketsiz görüntü modunda başlatın. - [7.5.4/H-1-2]
android.media.action.VIDEO_CAMERA
'a uygun hareket edilmelidir niyeti, SDK'da açıklandığı şekilde kamerayı video modunda başlatmaktır.
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:
- [8.4/H-1-1]
android.intent.action.POWER_USAGE_SUMMARY
intent ve bu güç kullanımını gösteren ayarlar menüsünü görüntüleyebilir.
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 veyaContentCaptureService
üzerindenContentCaptureManager
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çerenContentCaptureService
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ü).
- [6.1/H-0-2]* için bir
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()
veVideoCapabilities.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()
veVideoCapabilities.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()
veVideoCapabilities.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çinFULL
veya daha iyi, ön birincil için iseLIMITED
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çinandroid.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:
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:
- [5.3.3/T-0-1] MPEG-4 SP
- [5,3.4/T-0-2] H.264 AVC
- [5.3.5/T-0-3] H.265 HEVC
- [5.3.6/T-0-4] VP8
- [5.3.7/T-0-5] VP9
- [5.3.1/T-0-6] MPEG-2
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
veandroid.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:
- [8.3/T-1-2] cihazı Pilsiz Cihazları Destekleme başlıklı makalede açıklandığı şekilde pilsiz bir cihaz kullanılmalıdır.
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.
- [6.1/T-0-1] için bir
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
vePARKING_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:
- [7.3.1/A-1-1] E-posta mesajına en az 100 Hz'lik bir frekans.
- [7.3.1/A-1-2] Android'e UYMALIDIR araba sensörü koordinat sistemi.
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:
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:
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:
- [3.9.3/A-1-1]
Kullanıcı yaşam döngüsü özellikleri
INITIAL_USER_INFO
,SWITCH_USER
,CREATE_USER
,REMOVE_USER
.
Otomotiv cihaz uygulamaları:
- [3.14/A-0-1] şunları desteklemek için bir kullanıcı arayüzü çerçevesi İÇERMELİDİR: konusunda açıklandığı gibi medya API'lerini kullanan üçüncü taraf uygulamaları 3:14.
- [3.14/A-0-2] Kullanıcının güvenli bir şekilde etkileşimde bulunmasına İZİN VERİLMELİDİR medya uygulamaları ile karşılaşabilirsiniz.
- [3.14/A-0-3]
CAR_INTENT_ACTION_MEDIA_TEMPLATE
gizli Intent işlemi,CAR_EXTRA_MEDIA_PACKAGE
ekstra - [3.14/A-0-4] İçeriğe gitmek için Medya Uygulamasının tercih etkinlik ancak bu özelliği yalnızca Araba Kullanıcı Deneyimi Kısıtlamaları geçerli olmadığında ETKİNLEŞTİRMELİDİR.
- [3.14/A-0-5] GÖRÜNTÜLENMELİDİR
hata mesajları
tarafından belirlenmelidir ve isteğe bağlı ekstraları DESTEKLEMELİDİR
ERROR_RESOLUTION_ACTION_LABEL
veERROR_RESOLUTION_ACTION_INTENT
. - [3.14/A-0-6] Aşağıdakiler için uygulama içi arama olanağını DESTEKLEMELİDİR: özellikleri de kullanabilirsiniz.
- [3.14/A-0-7] UYMALI
CONTENT_STYLE_BROWSABLE_HINT
veCONTENT_STYLE_PLAYABLE_HINT
MediaTarayıcı'yı görüntülerken tanımlar hiyerarşik olarak düzenlenmiştir.
Automotive cihaz uygulamaları bir varsayılan başlatıcı uygulaması içeriyorsa:
- [3.14/A-1-1] Medya hizmetlerini içermeli ve açmalıdır
CAR_INTENT_ACTION_MEDIA_TEMPLATE
ile isteyebilirsiniz.
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:
- [9.5/A-1-1] kullanıcıların etkileşimde bulunmasına İZİN VERİLMEMELİDİR veya Gözetimsiz Sistem Kullanıcısı'na geçiş yaparsanız cihaz temel hazırlığı hariçtir.
- [9.5/A-1-2] İkincil Kullanıcı'ya geçilmesi ZORUNLUDUR
BOOT_COMPLETED
tarihinden önce. - [9.5/A-1-3], içerik üretme özelliğini DESTEKLEMELİDİR Misafir Kullanıcı bir cihazda izin verilen maksimum Kullanıcı sayısına ulaşılsa bile.
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.
- [6.1/A-0-1] için bir
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
veExtServices
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ğininandroid:name
özelliğiorg.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)/ Örnek: acme/ürünüm/ 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:
[C-2-1] şunu çağıracak bir ayarlar menüsü SAĞLAMALIDIR:
android.provider.Telephony.ACTION_CHANGE_DEFAULT
varsayılan SMS uygulamasını değiştirmeye yönelik bir iletişim kutusu göstermek istiyor.[C-2-2],
android.telecom.action.CHANGE_DEFAULT_DIALER
'na uygun hareket etmelidir kullanıcının varsayılan Telefonu değiştirmesine izin vermek için bir iletişim kutusu gösterme niyeti bir uygulamadır.- Gelen ve giden bildirimler için kullanıcının seçtiği varsayılan Telefon uygulamasının kullanıcı arayüzü acil durum çağrıları hariç, giden aramaları önceden yüklenmiş Telefon uygulaması.
[C-2-3], android.telecom.action.CHANGE_PHONE_ACCOUNTS hatasını dikkate almalıdır. kullanıcının,
ConnectionServices
ayarlarını yapması için gerekli bütçeyi sağlama niyetiPhoneAccounts
ile ilişkilidir. telekomünikasyon servis sağlayıcısının kullanacağı varsayılan bir Telefon Hesabı'nın yanı sıra giden bir çağrı yapmak için de kullanabilirsiniz. AOSP uygulaması, "Arama Hesapları seçeneği" dahil "Aramalar"daki menü Ayarlar menüsüne gidin.[C-2-4]
android.telecom.CallRedirectionService
özelliğine İZİN VERMELİDİRandroid.app.role.CALL_REDIRECTION
içeren bir uygulama için çok önemlidir.[C-2-5] Kullanıcıya
android.app.role.CALL_REDIRECTION
çok önemlidir.[C-2-6], android.intent.action.SENDTO'ya uygun olmalıdır. ve android.intent.action.VIEW amaç ve SMS mesajı göndermek/görüntülemek için bir etkinlik sağlamak.
[C-SR-1] android.intent.action.ANSWER değerine uygun hareket edilmesi ÖNEMLE ÖNERİLİR, android.intent.action.CALL, android.intent.action.CALL_button, android.intent.action.VIEW & android.intent.action.DIAL bu amaçları işleyebilen önceden yüklenmiş bir numara çevirici uygulamasıyla SDK'da açıklandığı şekilde sipariş karşılama sağlamalıdır.
Cihaz uygulamaları android.hardware.nfc.hce
bildiriminde bulunursa:
- [C-3-1], android.settings.NFC_PAYMENT_SETTINGS ayarına uymalıdır temassız ödeme için varsayılan bir uygulama ayarları menüsü göstermek istiyor.
- [C-3-2], android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT'ye uygun olmalıdır kullanıcıdan içeriği değiştirmesini isteyen bir iletişim kutusu açan bir etkinlik gösterme isteği SDK'da açıklandığı şekilde belirli bir kategori için varsayılan kart emülasyon hizmeti.
Cihaz uygulamaları android.hardware.nfc
bildiriminde bulunursa:
- [C-4-1] şu amaçları yerine getirmelidir: android.nfc.action.NDEF_DISCOVERED, android.nfc.action.TAG_DISCOVERED & android.nfc.action.TECH_DISCOVERED, geliştiricilerin bu amaçlara yönelik beklentilerini karşılayan bir etkinlik göstermek için SDK'da açıklandığından emin olun.
Cihaz uygulamaları android.hardware.bluetooth
bildiriminde bulunursa:
- [C-5-1], "android.bluetooth.adapter.action.REQUEST_ENABLE" yönergesini dikkate almalıdır kullanıcının Bluetooth'u açmasına izin vermek için bir sistem etkinliği gösterin.
- [C-5-2] "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE" intent ve bulunabilir mod isteyen bir sistem etkinliğini gösterir.
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:
- [C-9-1], Settings#ACTION_İŞLEM_WIFI_EASY_CONNECT_URI öğesini uygulaması ZORUNLUDUR Intent API'leri, SDK belgelerinde açıklanmıştır.
Cihaz uygulamaları veri tasarrufu modunu sağlıyorsa:
- [C-10-1] ayarlarda
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
ve kullanıcıların Google Cloud'dan uygulama ekleyip kaldırmasına olanak izin verilenler listesi.
Cihaz uygulamaları veri tasarrufu modunu sağlamıyorsa:
- [C-11-1]
Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS
Niyeti işlemsiz olarak uygulayabilirsiniz.
Cihaz uygulamaları,
android.hardware.camera.any
:
- [C-12-3] Yalnızca önceden yüklenmiş Android uygulamalarının
şu amaçlar
MediaStore.ACTION_IMAGE_CAPTURE
,MediaStore.ACTION_IMAGE_CAPTURE_SECURE
, veMediaStore.ACTION_VIDEO_CAPTURE
(SDK dokümanında açıklandığı gibi)
Cihaz uygulamaları android.software.device_admin
bildiriminde bulunursa:
[C-13-1]
android.app.action.ADD_DEVICE_ADMIN
niyetini dikkate almalı bir kullanıcı arayüzü çağırmak ve böylece kullanıcıyı, cihaz yöneticisini kabul ederek (veya reddetmesine izin verebilirsiniz.)[C-13-2] Niyetlere riayet etmelidir android.app.action.PROVISION_MANAGED_PROFILE, android.app.action.SET_NEW_PARENT_PROFILE_Şifre android.app.action.SET_NEW_Şifre & android.app.action.START_ENCRYPTION ve açıklandığı şekilde bu amaçların karşılanmasını sağlayacak bir etkinliğe sahip olma SDK'da burada bulabilirsiniz.
Cihaz uygulamaları için android.software.autofill
için şu özellikleri taşıdığını unutmayın:
- [C-14-1]
AutofillService
'nin tam olarak uygulanması ZORUNLUDUR veAutofillManager
API'leri kullanın ve android.settings.REQUEST_SET_autoFILL_SERVICE'ı kullanın otomatik doldurmayı etkinleştirmek ve devre dışı bırakmak için varsayılan uygulama ayarları menüsü göstermek ve kullanıcı için varsayılan otomatik doldurma hizmetini değiştir.
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:
- [C-18-1],
android.settings.ACTION_VOICE_INPUT_SETTINGS
'na uygun hareket etmelidir ses girişi ve yardımı için varsayılan bir uygulama ayarları menüsü göstermek istiyor.
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 destekleniyorandroid.os.Build.SUPPORTED_32_BIT_ABIS
veandroid.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.
armeabi
(artık NDK tarafından hedef olarak desteklenmiyor)armeabi-v7a
arm64-v8a
x86
x86-64
[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çindeVK_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:
- [C-2-1], bölüm 3.2.3.1'dir.
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. veGnssNavigationMessage
. - [C-0-5] olan güncellemelerin sıklığını sınırlandırmaları ZORUNLUDUR
uygulamaya
LocationManager
üzerinden sağlanır API sınıfı veyaWifiManager.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"
gerekirprotectionLevel
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
hizmetlerin
stopSelf()
Örneğin, uygulama, belirli bir e-posta adresini yönetmek için görünür olan bir görevdir. - [C-0-8] Uygulama, API düzeyi 25 veya üstünü hedefliyorsa uygulamanın barındırdığı uyanık kalma kilitlerini serbest bırakır.
- [C-0-4]
uygulamasından çıkışları almak için
- [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, listeyiinsertProviderAt()
veyaremoveProvider()
. Cihazlar Belirtilen sağlayıcı listesinden sonra ek sağlayıcılar döndürülebilir bölümüne göz atın.- AndroidNSSP -
android.security.net.config.NetworkSecurityConfigProvider
- AndroidOpenSSL:
com.android.org.conscrypt.OpenSSLProvider
- CertPathProvider -
sun.security.provider.CertPathProvider
- AndroidKeyStoreBCWorkaround -
android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
- BC -
com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
- HarmonyJSSE -
com.android.org.conscrypt.JSSEProvider
- AndroidKeyStore -
android.security.keystore.AndroidKeyStoreProvider
- AndroidNSSP -
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çintrue
İ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 vePackageManager
yöntemleri çağrılır.
Cihaz uygulamaları, uygulama içi öğeleri destekleyen bir varsayılan başlatıcı içeriyorsa sabitlendiğinde:
- [C-2-1]
true
Bildirilmelidir:ShortcutManager.isRequestPinShortcutSupported()
- [C-2-2] İstenen bir kısayolu eklemeden önce kullanıcıya sorması GEREKİR
ShortcutManager.requestPinShortcut()
üzerinden uygulama tarafından API yöntemi. - [C-2-3] Sabitlenmiş kısayolları ve dinamik ve statik sekmeleri DESTEKLEMELİDİR Uygulama Kısayolları sayfasında açıklandığı şekilde kısayolları kullanın.
Buna karşılık, cihaz uygulamaları bunlar:
- [C-3-1]
false
Bildirilmelidir:ShortcutManager.isRequestPinShortcutSupported()
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ğeritrue
olarak ayarlanırsa ve yalnızca uygulamanın bildirim kanalları arasında değerfalse
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()
veNotification.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:
- [C-2-1]
true
Bildirilmelidir:AppWidgetManager.html.isRequestPinAppWidgetSupported()
- [C-2-2] İstenen bir kısayolu eklemeden önce kullanıcıya sorması GEREKİR
AppWidgetManager.requestPinAppWidget()
üzerinden uygulama tarafından API yöntemi.
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 veimportance: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 etmelidirNotificationManager.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, veyaACTION_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.
- Cihaz uygulamaları, gösterildiği Cihaz Varsayılan tema özelliklerini değiştirebilir izin verir.
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,
- [C-1-2] konumun mevcut durumunu GÖRÜNTÜLEMELİDİR Ayarlar'daki Konum menüsünde
- [C-1-3] konum modlarını GÖRÜNTÜLEMEMELİDİR Ayarlar'daki Konum menüsünde
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 OLMALIDIRAndroidManifest.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 veAndroidManifestLayout_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:
- API düzeyi 26 veya üstünü hedefler ve aşağıdakileri belirtir
android:supportsPictureInPicture
- API düzeyi 25 veya altı hedefleniyor ve
android:resizeableActivity
hem tanımlanıyor veandroid:supportsPictureInPicture
.
- API düzeyi 26 veya üstünü hedefler ve aşağıdakileri belirtir
[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
veAndroidManifestLayout_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.
- Şundan farklı şekilde ayarlanmış Configuration.uiMode'a sahip cihazlar:
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 veMIME_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.
- [C-1-5]
cihaz, özellikle
- Cihaz uygulamasında kullanıcı verileri olduğunda:
- [C-1-7] Herhangi bir DPC uygulamasını Cihaz Sahibi Uygulaması olarak kaydetmemek ZORUNLUDUR daha fazla.
- Cihaz uygulamasında henüz yapılandırılmış kullanıcı verisi yoksa:
- [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:
[C-1-1] API'leri uygulaması ZORUNLUDUR bir Cihaz Politikası Denetleyicisi (DPC) uygulamasının yeni bir Yönetilen Profil sahibi.
[C-1-2] Yönetilen profil temel hazırlık süreci ( android.app.action.PROVISION_MANAGED_PROFILE) izin ekranı ve kullanıcı deneyimi Google tarafından sağlanan AOSP uygulaması.
[C-1-3] Ayarlar'da aşağıdaki kullanıcı olanaklarını belirli bir sistem işlevinin ne zaman devre dışı bırakıldığını kullanıcıya Cihaz Politikası Denetleyicisi (DPC):
- Tutarlı bir simge veya diğer kullanıcı ürünleri (örneğin, yukarı akış) AOSP bilgisi simgesi), belirli bir ayarın bir Cihaz Yöneticisi.
- Cihaz Yöneticisi tarafından
setShortSupportMessage
. - DPC uygulamasının simgesi.
[C-1-4] ACTION_PROVISIONING_BAŞARILI için işleyiciyi BAŞLATMALIDIR bir profil sahibi olarak tanımlanırsa, kullanıcının iş profilinde Temel hazırlık, android.app.action.PROVISION_MANAGED_PROFILE tarafından başlatıldı. ve DPC işleyiciyi uygulamıştır.
[C-1-5] şunu göndermelidir: ACTION_PROFILE_PROVISIONING_COMPLETE temel hazırlık işlemi, android.app.action.PROVISION_MANAGED_PROFILE isteyebilirsiniz.
[C-1-6] şunu göndermelidir: ACTION_GET_PROVISIONING_MODE Böylece DPC uygulamasının aşağıdaki durumlarda Cihaz Sahibi mi yoksa Profil Sahibi yöneticisi mi olacağını seçebilir temel hazırlık, android.app.action.PROVISION_MANAGED_PROFILE amacı tarafından tetiklenir.
[C-1-7] şunu GÖNDERMELİDİR: ACTION_ADMIN_POLICY_COMPLIANCE oluşturulduğunda profil sahibi olarak tanınmalarını isteyebilirsiniz. kullanılan temel hazırlık yönteminin kullanıldığına bakılmaksızın temel hazırlık, android.app.action.PROVISION_MANAGED_PROFILE amacı tarafından tetiklendiğinde. Kullanıcı, Profil görünene kadar Kurulum Sihirbazı'nda devam edememelidir. Sahip uygulaması tamamlanır.
[C-1-8] şunu göndermelidir: ACTION_MANAGED_PROFILE_PROVISIONED Profil Sahibi oluşturulduğunda kişisel profil DPC'sine anons yap her kullanıcı temel hazırlığı yapmadığından emin olun.
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.
- Cihaz uygulamalarında,
DevicePolicyManager.ACTION_SET_NEW_PASSWORD
Ayrı bir kilit ekranı yapılandırmak üzere bir arayüz göstermek yönetilen profil için kimlik bilgisi. - Yönetilen profilin kilit ekranı kimlik bilgilerinin aynı olması ZORUNLUDUR kimlik bilgileri deposunu ve yönetim mekanizmalarını kullanarak, olduğu gibi Android Açık Kaynak Proje Sitesi.
- DPC şifre politikaları
Yalnızca yönetilen profilin kilit ekranı kimlik bilgileri için uygulanması ZORUNLUDUR
tarafından döndürülen
DevicePolicyManager
örneğine getParentProfileInstance.
- Cihaz uygulamalarında,
- 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:
- [C-1-1] Android TTS çerçevesi API'ler.
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()
veyagetIconUri()
aracılığıyla elde edilen simgelerin ve başlıkların açıkça görüntülenmesi ZORUNLUDURMediaDescription
içinde açıklandığı şekildegetTitle()
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
veyaKEYCODE_MEDIA_PLAY_PAUSE
KEYCODE_MEDIA_NEXT
olarakMediaSession.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:
- [C-1-1],
FEATURE_COMPANION_DEVICE_SETUP
özellik bayrağını beyan etmelidir. , - [C-1-2],
android.companion
paketi tamamen uygulanmış. - [C-1-3] Kullanıcının bir tamamlayıcı seçmesi/onaylaması için kullanıcıya sunulan olanakların sunulması ZORUNLUDUR mevcut ve çalışır durumda olduğundan emin olun.
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 ZORUNLUDURContactsContract.RawContacts.getLocalAccountName
- [C-1-2]
ACCOUNT_TYPE
bir kullanıcının özel yerel hesabın sahibi tarafından döndürülmesi ZORUNLUDURContactsContract.RawContacts.getLocalAccountType
- [C-1-3] Üçüncü taraf uygulamalar tarafından eklenen ham kişiler
varsayılan yerel hesap (yani
ACCOUNT_NAME
veACCOUNT_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. veyaandroid: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çinRESULT_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:
- [C-3-1]
android.media.MediaCodec
üzerinden PCM 16 bit yerel bayt siparişi ses kareleri API'ye gidin.
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
veKEY_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
veKEY_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:
- [C-6-1]
android.media.MediaCodec
üzerinden PCM 16 bit yerel bayt sırası ses kareleri API'ye gidin.
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ı. |
|
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ı. |
|
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ı. |
|
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. |
|
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. |
|
MP3 | Mono/Stereo 8-320 Kb/sn sabit (CBR) veya değişken bit hızı (VBR) |
|
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 |
|
Vorbis |
|
|
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 |
|
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
) ileCodecCapabilities
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
) veyaCOLOR_FormatYUV420PackedSemiPlanar
(eşdeğeri) ileCOLOR_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) veyaCOLOR_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 |
|
|
H.264 AVC | Bkz. bölüm 5.2 ve Ayrıntılar için 5.3 |
|
H.265 HEVC | Ayrıntılar için bkz. bölüm 5.3 |
|
MPEG-2 | Ana Profil |
|
MPEG-4 SP |
|
|
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:
- [C-1-1]
MediaCodecInfo
API'ye gidin.
Ö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üğü |
|
|
|
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 olanAudioManager.getMicrophones()
ve üçüncü tarafın erişimine açık olan etkin mikrofonlarAudioRecord.getActiveMicrophones()
aracılığıyla veMediaRecorder.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çinandroid.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:
- [C-SR-1], bunu AcousticEchoCanceler aracılığıyla bildirmesi için STRONGLY_RECOMMENDED AcousticEchoCanceler.isAvailable() API yöntemi
- [C-SR-2], bu ses efektinin: AcousticEchoCanceler ile kontrol edilebilir API'ye gidin.
- [C-SR-3], her bir AEC teknolojisini benzersiz şekilde tanımlamak için STRONGLY_RECOMMENDED AudioEffect.Descriptor.uuid aracılığıyla uygulama girin.
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 birAudioSource
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 yapmaAudioSource.VOICE_COMMUNICATION
veyaAudioSource.CAMCORDER
. - [C-1-3]
bir erişilebilirlik hizmeti, bir uygulama
AudioSource.VOICE_COMMUNICATION
veyaAudioSource.CAMCORDER
. Ancak, bir uygulamaAudioSource.VOICE_COMMUNICATION
ve ardından başka bir uygulama üzerinden görüntü çekiyor özel (önceden yüklenmiş) bir uygulama iseCAPTURE_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 edilebilenEFFECT_TYPE_LOUDNESS_ENHANCER
uygulamaları AudioEffect alt sınıflarıEqualizer
veLoudnessEnhancer
. - [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
veEFFECT_TYPE_VIRTUALIZER
uygulamalarıAudioEffect
alt sınıfıBassBoost
aracılığıyla kontrol edilebilir.EnvironmentalReverb
,PresetReverb
veVirtualizer
.- [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:
- [C-SR-5] şunu beyan ederek düşük gecikmeli sesi bildirmesi ÖNEMLE ÖNERİLİR:
android.hardware.audio.low_latency
özellik bayrağı. - [C-SR-6] Düşük gecikme gereksinimlerini karşılamak için ÖNEMLE ÖNERİLİR AAudio API aracılığıyla ses.
- [C-SR-7] Döndürülen akışlar için ÖNEMLE ÖNERİLİR
AAUDIO_PERFORMANCE_MODE_LOW_LATENCY
kalkış:AAudioStream_getPerformanceMode()
,AAudioStream_getFramesPerBurst()
tarafından döndürülen değerandroid.media.AudioManager.getProperty(String)
tarafından döndürülen değerden küçük veya bu değere eşitAudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER
mülk anahtarı için.
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ı:
[C-1-1] HTTP ve HTTPS üzerinden bu codec'i veya kapsayıcıyı DESTEKLEMELİDİR.
[C-1-2], aşağıdaki medya segmenti biçimleri tablosu HTTP Canlı Yayın taslak protokolü, Sürüm 7.
[C-1-3] Aşağıdaki RTSP tablosunu inceleyin. İstisnalar için lütfen bölüm 5.1.
Medya Segmenti Biçimleri
Segment biçimleri | Referanslar | Gerekli codec desteği |
---|---|---|
MPEG-2 Taşıma Akışı | ISO 13818 |
Video codec'leri:
ile ilgili ayrıntılar için bkz. bölüm 5.1.8 ve MPEG-2. Ses codec'leri:
|
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:
- USB ana makine modu, bölüm 7.7
- Merkezi rolde görev alan Bluetooth LE üzerinden MIDI, bölüm 7.4.3
[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
üzerindenandroid.hardware.audio.pro
sınıfını kullanır.
Cihaz uygulamaları 4 iletkenli 3, 5 mm ses jakı içeriyorsa bunlar:
- [C-2-1] aşağıdaki şekilde tanımlandığı şekilde ortalama bir Sürekli Gidiş-Dönüş Ses Gecikmesi ZORUNLUDUR bölüm 5.6 Ses Gecikmesi, 20 milisaniye veya daha kısa, 5 milisaniyeden az Ortalama Mutlak Sapma ile 5 üzerinde ölçüm olduğunu öğreneceğiz.
- [C-SR-5] UYGULANMASI ÖNEMLE ÖNERİLİR Mobil cihaz (jak) özellikleri bölümü (Kablolu Ses Mikrofonlu Kulaklık Spesifikasyonu (v1.1).
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çinnull
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.
-
- [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
dahilcmd 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 veStatsManager
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 iadetrue
.
Cihaz uygulamaları, Kablosuz bağlantı ve en az bir kamera içerir. Bu cihazlar:
- [C-5-1]
AdbManager#isAdbWifiQrSupported()
yöntemini ZORUNLUDUR iadetrue
.
- [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,
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ı.
-
- [C-0-8] Monkey çerçevesini içermeli ve bu çerçeveyi çeşitli uygulamalar vardır.
-
- [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ı.
-
- [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ı.
- [C-SR-1]
-
- [C-0-10]
LMK_KILL_OCCURRED_FIELD_NUMBER
Bir uygulama Low Memory Killer tarafından sonlandırıldığında istatistik günlüğü.
- [C-0-10]
Test Bandı Modu Cihaz uygulamaları,
cmd testharness
kabuk komutunu vecmd 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ı.
- [C-2-1] şunun için
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 cihazdahasSystemFeature(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çinsmall
boyutu bildiriyorConfiguration.screenLayout
için en az 426 dp x 320 dp olması ZORUNLUDUR.Configuration.screenLayout
içinnormal
boyutu bildiren cihazlar, En az 480 dp x 320 dp olması ZORUNLUDUR.Configuration.screenLayout
içinlarge
boyutu bildiren cihazlar, En az 640 dp x 480 dp olması ZORUNLUDUR.Configuration.screenLayout
içinxlarge
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:
- [C-2-1] extensions API veya yardımcı API'nin kararlı sürümü Window Manager Jetpack kitaplığı tarafından kullanılır.
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.
- Uygulama, daha büyük ekran en boy oranını desteklediğini beyan etti
[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ığı şekildeview.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/veyaandroid.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 raporandroid.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
veEGL_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
veEGL_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
veOES_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 APIvkEnumeratePhysicalDevices()
, - [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ığıylavkEnumerateInstanceLayerProperties()
vevkEnumerateDeviceLayerProperties()
, - [C-1-5]
gözlemlemek veya müdahale etmek için başka yollar
Uygulamada
android:debuggable
özelliği yoksa Vulkan APItrue
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ü veandroid.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 veVK_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
, veEGL_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ı:
- [C-0-1] şöyle bir giriş mekanizması içermelidir: dokunmatik ekran veya dokunmatik olmayan gezinme, kullanıcı arayüzü öğeleri arasında gezinebilirsiniz.
7.2.1. Klavye
Cihaz uygulamaları, üçüncü taraf Giriş Yöntemi Düzenleyici (IME) uygulamaları:
- [C-1-1],
android.software.input_methods
kimliğini beyan etmelidir. özellik bayrağı. - [C-1-2]
Input Management Framework
özelliğinin tam olarak uygulanması ZORUNLUDUR - [C-1-3] Önceden yüklenmiş bir yazılım klavyesi ZORUNLUDUR.
Cihaz uygulamaları:
- [C-0-1] android.content.res.Configuration.keyboard dosyalarında belirtilen biçimler (QWERTY veya 12 tuşlu).
- Ek yazılım klavyesi uygulamaları İÇERMELİDİR.
- Donanım klavyesi İÇEREBİLİR.
7.2.2. Dokunmatik Olmayan Gezinme
Android'de d-pad, iztopu ve tekerlek gibi destek mekanizmaları dokunmatik olmayan gezinme.
Cihaz uygulamaları:
- [C-0-1] android.content.res.Configuration.navigation adresini ziyaret edebilirsiniz.
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>
ileACTION=MAIN
ve Televizyon cihazı içinCATEGORY=LAUNCHER
veyaCATEGORY=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:
- [C-6-1]
WindowInsets#getMandatorySystemGestureInsets()
Yalnızca Ana ekran hareketi tanıma alanını bildirmek için kullanılması ZORUNLUDUR. - [C-6-2]
şunun üzerinden ön plan uygulaması:
View#setSystemGestureExclusionRects()
ama şunun dışında:WindowInsets#getMandatorySystemGestureInsets()
, Hariç tutma Drect'e belgeleriView#setSystemGestureExclusionRects()
- [C-6-3] Ön plan uygulamasına
MotionEvent.ACTION_CANCEL
sistem hareketi için dokunmaya başladığında gerçekleşen etkinlik Ön plan uygulamasına daha önceMotionEvent.ACTION_DOWN
unutmayın. - [C-6-4] Kullanıcıya ekrana geçiş imkanı sağlanmalıdır. düğme tabanlı gezinme (örneğin, Ayarlar'da).
- Ana Sayfa işlevini, ekranın alt kenarından yukarı doğru kaydırma olarak SAĞLAMALIDIR. ekranın geçerli yönünü gösterir.
- Son Kullanılanlar işlevini yayınlamadan önce yukarı kaydırma ve basılı tutma işlevi olarak Ana Ekran hareketiyle aynı alana dokunun.
- İçinde başlayan hareketler
WindowInsets#getMandatorySystemGestureInsets()
Ön plan tarafından sağlanan hariç tutma listelerinden ETKİLEMEMELİDİR. üzerinden başvuruView#setSystemGestureExclusionRects()
.
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çinTOUCHSCREEN_FINGER
adlı kişiyi bildirmesi GEREKİR API alanına girin. - [C-1-2],
android.hardware.touchscreen
veandroid.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ı.
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 |
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
veyafalse
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ığı gibiTYPE_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
veTYPE_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:
- [C-3-1]
TYPE_GRAVITY
veTYPE_LINEAR_ACCELERATION
birleşik sensör. - [C-SR-5]
TYPE_GAME_ROTATION_VECTOR
olabilir.
7.3.5. Barometre
Cihaz uygulamaları:
- [C-SR-1] Barometre (ortam hava basıncı) içermesi ÖNEMLE ÖNERİLİR sensör).
Cihaz uygulamaları barometre içeriyorsa:
- [C-1-1]
TYPE_PRESSURE
sensörünü uygulamalı ve bildirmelidir. - [C-1-2] 5 Hz veya daha yüksek hızlarda etkinlik sunmak ZORUNLUDUR.
- [C-1-3] için sıcaklık dengelemesi ZORUNLUDUR.
- [C-SR-2] Basınç ölçümlerini rapor edebilmeniz için ÖNEMLE ÖNERİLİR: 300 hPa - 1100 hPa aralığındadır.
- Mutlak doğruluk oranının 1hPa olması gerekir.
- 20 hPa aralığında 0,12 hPa göreli doğruluğa sahip olması GEREKİR (deniz seviyesinde yaklaşık 200 metrelik değişimde ~1 metre doğruluk oranına denk).
7.3.6. Termometre
Cihaz uygulamaları bir ortam termometresi (sıcaklık sensörü) içeriyorsa onlar:
- [C-1-1]
SENSOR_TYPE_AMBIENT_TEMPERATURE
TANITIMI ZORUNLUDUR ortam sıcaklığı sensörü için, sensörün ortam sıcaklığını ölçmesi GEREKİR (oda/araç kabini) cihazın doğrudan topladığı andan itibaren Celsius olarak ayarlanır.
Cihaz uygulamalarında, sıcaklığı ölçen bir termometre sensörü varsa CPU sıcaklığı gibi ortam sıcaklığından farklı bir sıcaklık değeri için şu değerleri ifade eder:
- [C-2-1]
SENSOR_TYPE_AMBIENT_TEMPERATURE
TANIMLAMAMALIDIR en iyi yoludur.
Cihaz uygulamalarında deri sıcaklığını izlemeye yönelik bir sensör varsa şunu yaparlar:
- [C-SR-1] PowerManager.getThermalHeadroom API'ye gidin.
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 gereksinimleriTYPE_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
OLMALIDIRTYPE_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 vegetHighestDirectReportRateLevel
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
veyaDevicePolicymanager.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:
- [C-1-1]
TYPE_HINGLE_ANGLE
uygulamasının uygulanması ve bildirilmesi GEREKİR. - [C-1-2] 0 ile 360 derece arasında en az iki ölçümü desteklemelidir (0 ve 360 dereceler dahil).
- [C-1-3] uyandırma döndürülmesi ZORUNLUDUR
getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE)
için sensör.
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:
- [C-3-1],
EuiccManager API
'ın eksiksiz bir şekilde uygulanması ZORUNLUDUR.
Cihaz uygulamaları, ro.telephony.iwlan\_operation\_mode
sistem özelliğini "eski" olarak ayarlamazsa:
- [C-4-1] "NETWORK_TYPE_IWLAN" için rapor VERMEMELİDİR NetworkRegistrationInfo#getAccessNetworkTechnology() aracılığıyla NetworkRegistrationInfo#getTransportType() olduğunda aynı NetworkRegistrationInfo örneği için "TRANSPORT_TYPE_WWAN" olarak raporlanır.
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ı;
- [C-5-1],
android.hardware.telephony.ims
kimliğini beyan etmelidir. ve aşağıdaki özelliklerin tam olarak uygulanmasını sağlayın: Hem MMTEL hem de RCS User Capability Exchange API için ImsService API. - [C-5-2],
android.hardware.telephony.ims.singlereg
kimliğini beyan etmelidir. özellik bayrağını göstermeli ve SipTransport API'nin tam uygulamasını sağlamalısınız. GbaService API IRadio 1.6 HAL kullanan özel hamile göstergeleri ve temel hazırlık Otomatik Yapılandırma Sunucusu (ACS) veya başka bir özel temel hazırlık aracılığıyla mekanizmanın IMS Yapılandırma API'sını kullanmasını.
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şuPhoneAccount
'tentrue
'ye.[C-SR-2] Mikrofonlu kulaklığın kullanımı için ÖNEMLE ÖNERİLİR Şu dönem için
KEYCODE_MEDIA_PLAY_PAUSE
veKEYCODE_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ülenNetwork
sanatçı:ConnectivityManager
getActiveNetwork
gibi API yöntemleri veregisterDefaultNetworkCallback
. 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 mevcutNetwork
metriğinin artık mevcutNetwork
İ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 veyaWIFI_MODE_FULL_LOW_LATENCY
kilitWifiManager.createWifiLock()
üzerinden veWifiManager.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.
7.4.2.2. Kablosuz Tünelli Doğrudan Bağlantı Kurulumu
Cihaz uygulamaları:
- ŞU SORU için destek İÇERMELİDİR: Kablosuz Tünelli Doğrudan Bağlantı Kurulumu (TDLS) belirtildiği gibi Android SDK Dokümanları'nda açıklandığı şekilde ekleyebilirsiniz.
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ı:
- Wi-Fi Aware desteği GEREKİR.
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:
- [C-2-1], konuma duyarlı keşif API'lerini uygulaması ZORUNLUDUR: setRangingEnabled, setMinMesafeMm, setMaxMesafeMm ve onService ExploreedWithinRange altında toplanmıştır.
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'lerUnsupportedOperationException
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ı:
- Kablosuz Konum desteği İÇERMELİDİR.
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:
- [C-2-1],
ERROR_UNSUPPORTED
YÜKLEMELİ.
7.4.2.7. Wi-Fi Easy Connect (Cihaz Temel Hazırlık Protokolü)
Cihaz uygulamaları:
- Wi-Fi Easy Connect (DPP) desteği İÇERMELİDİR.
Cihaz uygulamaları Wi-Fi Easy Connect desteği içeriyorsa ve üçüncü taraf uygulamalarına yönelik olarak:
- [C-1-1] öğesinin WifiManager#isEasyConnectSupported()'a sahip olması ZORUNLUDUR
yöntem dönüşü
true
.
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
veandroid.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:
- [C-5-1] şunun için
true
DÖNÜŞÜMÜ ZORUNLUDUR: BluetoothAdapter.getProfileProxy(bağlam, dinleyici, BluetoothProfile.HEARING_AID).
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:
- [C-6-2],
android.permission.ACCESS_FINE_LOCATION
'in arkasından Bluetooth erişimini ZORUNLUDUR.
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 veyaandroid.nfc.NdefRecord
API'leri sınıfları bir değeri temsil ettiğindenandroid.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ğiniandroid.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:
- [C-3-1],
android.hardware.nfc.hcef
özellik sabitini Bildirmelidir. - [C-3-2] NfcF Kart Emülasyon API'lerinin uygulanması ZORUNLUDUR uygulamanız gerekir.
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ğiniandroid.content.pm.PackageManager.hasSystemFeature
() yöntemidir. Bunun standart bir Android özelliği olmadığını ve bu nedenleandroid.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
vejava.net.URLConnection
veAF_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.
- IPv6 iletişiminin IPv4 kadar güvenilir olduğundan emin olunması ZORUNLUDUR. Örneğin:
- [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
veyaSocket#getLocalPort
) vegetsockname()
veyaIPV6_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
veandroid.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:
- [C-2-1] şu değer için
RESTRICT_BACKGROUND_STATUS_DISABLED
değerini döndürmelidir:ConnectivityManager.getRestrictBackgroundStatus()
- [C-2-2] YAYINLANMAMALIDIR
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED
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:
[C-1-1] Mevcut güvenli öğeler okuyucularını
android.se.omapi.SEService.getReaders()
API.[C-1-2] Doğru özellik bayraklarını
android.hardware.se.omapi.uicc
UICC tabanlı güvenlik öğeleri içeren cihaz içinandroid.hardware.se.omapi.ese
cihaz için eSE tabanlı güvenlik öğeleri içerenandroid.hardware.se.omapi.sd
cihaz için bir e-posta alırsınız.
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
, veyaMediaStore.ACTION_VIDEO_CAPTURE
, önce resim meta verisinde kullanıcının konumunu kaldırmak, alıcı uygulama bunu yapmazsa, alıcı uygulamayaACCESS_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 veandroid.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üzeyindeFLASH_MODE_AUTO
veyaFLASH_MODE_ON
özelliklerini etkinleştirerek flash'ı açın. birCamera.Parameters
nesnesinin tanımını yapabilirsiniz. Bu kısıtlamanın cihazın yerleşik sistem kamera uygulaması (yalnızca üçüncü tarafCamera.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 veandroid.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ğlayanandroid.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
veandroid.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 verilerandroid.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ış olarakandroid.hardware.ImageFormat.JPEG
biçimleri Şu işlemi yapanandroid.hardware.camera2
cihazlar içinandroid.media.ImageReader
API:REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
reklamını yap özelliğiandroid.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
veandroid.hardware.camera2.CaptureRequest
sınıfını kapsar. Öte yandan, cihaz uygulamaları dize sabit değerlerini SAĞLAMAMALI veya TANIMMAMALIDIR. bunların dışındakiandroid.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İRCamera.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'yeandroid.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 veyaandroid.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:
- [C-1-1] Bu tür bir kamera API'sini
android.hardware.camera2
kullanarak uygulaması ZORUNLUDUR API'ye gidin. android.hardware.camera2
'e tedarikçi firma etiketleri ve/veya uzantılar SAĞLAYABİLİR API'ye gidin.
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
veyasdcard
öğ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.
- Uygulama
- [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:
- [C-SR-2] Uygulanması Kesinlikle ÖNERİLİR kabul edilebilir depolama alanı.
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İRandroid.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
- Kullanım Sayfası (0xC) Kullanım Kimliği (0x0CD):
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
veACTION_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
- 70 ohm veya daha düşük:
- [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
- 110-180 ohm:
- [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 hemVK_QUEUE_GRAPHICS_BIT
hem deVK_QUEUE_COMPUTE_BIT
içerir, vequeueCount
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ı ZORUNLUDURAHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER
işaretleri,AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA
veAHARDWAREBUFFER_USAGE_PROTECTED_CONTENT
belirtildiği şekilde kullanın. - [C-1-10]
AHardwareBuffer
s için desteğin kullanım işaretleri kombinasyonuAHARDWAREBUFFER_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çintrue
İ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 tutunPARTIAL_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ı:
[C-0-1] Sürdürülebilir Performans Modu desteğini doğru şekilde BİLDİRMELİDİR aracılığıyla
PowerManager.isSustainedPerformanceModeSupported()
API yöntemi.Sürdürülebilir Performans Modu'nu DESTEKLEMELİDİR.
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:
- [C-3-1]
Process.getExclusiveCores()
API yöntemi.
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 izinlerPROTECTION_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 dosyalardanetc/permissions/
yolunu izleyipsystem/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
veyaNETWORK_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 HersoftRestricted
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:
- [C-2-1]
ACTION_MANAGE_OVERLAY_PERMISSION
intent'in, başlatan uygulamadan veya yardımcı olur.
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ı:
- [C-0-1] Android dosya erişimini DESTEKLEMELİDİR aşağıdaki konumda tanımlandığı şekilde izin modelini Güvenlik ve İzinler referansı.
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ı; İFADE EDİLEBİLİR, ancak çıkarılabilir medya birincil harici depolama için.
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
veCONFIG_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
veyaCONFIG_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
veyaCONFIG_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
veyaCONFIG_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
veyaCONFIG_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
veyaEFI_RNG_PROTOCOL
).[C-SR-3] yeniden kullanma saldırılarına karşı ek koruma sağlamak için çekirdek (ör.
CONFIG_CFI_CLANG
veCONFIG_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
veyaCONFIG_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 hizmetiniSERVICE_META_DATA_SUPPORTS_ALWAYS_ON
özelliğinifalse
ile ilişkilendirin.
9.8.5. Cihaz Tanımlayıcıları
Cihaz uygulamaları:
- [C-0-1] cihazın seri numarasına erişimi engellemelidir ve
geçerli, IMEI/MEID, SIM seri numarası ve Uluslararası Mobil
Aşağıdaki koşullardan birini karşılamıyorsa uygulamanın Abone Kimliği (IMSI)
koşullar:
- cihaz üreticileri tarafından doğrulanan, imzalı bir operatör uygulamasıdır.
READ_PRIVILEGED_PHONE_STATE
için izin verildi.- UICC Operatör Ayrıcalıkları bölümünde tanımlandığı şekilde operatör ayrıcalıklarına sahip olmalıdır.
- kendisine izin verilen bir cihaz sahibi veya profil sahibidir
READ_PHONE_STATE
izni. - (Yalnızca SIM seri numarası/ICCID için) için yerel düzenlemeler gereklidir Bu uygulama, abonenin kimliğindeki değişiklikleri algılar.
9.8.6. İçerik Yakalama ve Uygulama Arama
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 veyaAppSearchManager
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:
- [C-1-1] uygulamalara ait veri blob'larını bildikleri dışında PAYLAŞMAMALIDIR. (ör. varsayılan erişim kapsamı ve diğer erişim izinleri) ile belirtilebilen modlar da vardır. BlobStoreManager.session#allowPackageAccess(), BlobStoreManager.session#allowSameSignatureAccess(), veya BlobStoreManager.session#allowPublicAccess() DEĞİŞTİRİLMEMELİDİR). AOSP referansının uygulanması şu koşulları karşılıyor: gereksinimlerini karşılayın.
- [C-1-2] Güvenli karmaları cihazı GÖNDERMEMELİ veya diğer uygulamalarla PAYLAŞMAMALIDIR dahil edilir.
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
veACTION_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
- Dosya Tabanlı Şifreleme (FBE) ve Meta Veri Şifreleme belirtildiği şekilde kullanın.
- Bölüm 9.9.3.2'de açıklandığı üzere, Kullanıcı Başına Blok Düzeyinde Şifreleme.
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ı:
- [C-SR-4] Android ProtectedApproval API'yi desteklemesi için ÖNEMLE ÖNERİLİR.
Cihaz uygulamaları, Android Korumalı Onayı'nı destekliyorsa API ile:
[C-3-1]
ConfirmationPrompt.isSupported()
içintrue
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:
- [C-2-1] aşağıda açıklandığı gibi kullanıcı kimlik doğrulama yöntemi OLMALIDIR Anahtar Kullanımı İçin Kullanıcı Kimlik Doğrulaması Gerektirme.
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:
- [C-4-1] bölümünde belirtilen tüm şartları karşılamalıdır. Sınıf 1 için 7.3.10 Kolaylık).
- [C-4-2] Ö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.
- [C-4-3] Devre dışı bırakılmalı ve yalnızca önerilen birincil
Cihaz Politikası Denetleyicisi (DPC) etkinleştirildiğinde ekranın kilidini açmak için kimlik doğrulaması
Uygulama,
DevicePolicyManager.setKeyguardDisabledFeatures()
)KEYGUARD_DISABLE_BIOMETRICS
,KEYGUARD_DISABLE_FINGERPRINT
,KEYGUARD_DISABLE_FACE
veyaKEYGUARD_DISABLE_IRIS
).
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 kullanarakPASSWORD_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:
- İlgili içeriği oluşturmak için kullanılan
DevicePolicyManager.setKeyguardDisabledFeatures(KEYGUARD_DISABLE_TRUST_AGENTS)
yöntem - İlgili içeriği oluşturmak için kullanılan
DevicePolicyManager.setPasswordQuality()
daha kısıtlayıcı bir kalite sabitine sahip yöntemi kullanarakPASSWORD_QUALITY_NONE
. DevicePolicyManager.setRequiredPasswordComplexity()
daha kısıtlayıcı bir karmaşıklık paketine sahip bir yöntemePASSWORD_COMPLEXITY_NONE
.
- İlgili içeriği oluşturmak için kullanılan
- [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 kullanarakPASSWORD_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-1-10] Güvenli IC Koruma Profili BSI-CC-PP-0084-2014 veya test laboratuvarını yürüten, ulusal akreditasyona sahip bir test laboratuvarı Akıllı Kartlara Saldırı Potansiyeli İçin Ortak Kriterler.
- [C-1-11] tarafından değerlendirilen donanım yazılımının Yüksek saldırıya sahip ulusal onaylı test laboratuvarı güvenlik açığı değerlendirmesi Akıllı Kartlara Saldırı Potansiyeli İçin Ortak Kriterler.
- [C-SR-2] bir Güvenlik Hedefi, Değerlendirme Güvencesi Düzeyi kullanılarak değerlendirildi (EAL) 5, AVA_VAN.5 ile artırılmıştır. EAL 5 sertifikasyonu büyük olasılıkla sonraki sürümlerde bir gereksinim olacaktır.
[C-SR-3], kuruluş iç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:
- Giriş
- Cihaz Türleri
- Yazılım
- Uygulama Paketi
- Multimedya
- Geliştirici Araçları ve Seçenekleri
- Donanım Uyumluluğu
- Performans ve Güç
- Güvenlik Modeli
- Yazılım Uyumluluğu Testi
- Güncellenebilir Yazılımlar
- Doküman Değişiklik Günlüğü
- 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.