Sensörler

Android Sensörleri HAL simgesi

Android sensörleri, uygulamaların mobil cihazın temelindeki fiziksel sensörlere erişmesine olanak tanır. Bunlar, sensör Donanım Soyutlama Katmanı (HAL) olan sensörler.h tarafından tanımlanan veri sağlayan sanal cihazlardır.

Android sensörleri nedir?

Android sensörleri, bir dizi fiziksel sensörden gelen verileri sağlayan sanal cihazlardır: ivmeölçerler, jiroskoplar, manyetometreler, barometre, nem, basınç, ışık, yakınlık ve kalp atış hızı sensörleri.

Veri sağlayan fiziksel cihazlar arasında kamera, parmak izi sensörü, mikrofon ve dokunmatik ekran yer almıyor. Bu cihazların kendi raporlama mekanizmaları vardır; ayırma isteğe bağlıdır, ancak genel olarak Android sensörleri daha düşük bant genişliği verileri sağlar. Örneğin, ivme ölçer için "100 hz x 3 kanal", kamera için "25 hz x 8 MP x 3 kanal" veya mikrofon için "44 kHz x 1 kanal".

Android, farklı fiziksel sensörlerin çip üzerindeki sisteme (SoC) nasıl bağlanacağını tanımlamaz.

  • Çoğu zaman, sensör çipleri SoC'ye bir sensör hub'ı aracılığıyla bağlanır ve bu da verilerin düşük güçte izlenmesine ve işlenmesine olanak tanır.
  • Taşıma mekanizması olarak sıklıkla Inter-Entegre Devre (I2C) veya Seri Çevre Birim Arayüzü (SPI) kullanılır.
  • Güç tüketimini azaltmak için, bazı mimariler hiyerarşiktir; uygulamaya özel entegre devrede bazı minimum işlemler yapılır (ivme ölçer çipinde ASIC benzeri hareket algılama) ve daha fazlası bir mikro denetleyicide yapılır (sensör hub'ındaki adım algılama gibi) ).
  • Doğruluk, güç, fiyat ve paket boyutu özelliklerine göre bir mimari seçmek cihaz üreticisine kalmıştır. Daha fazla bilgi için Sensör yığınına bakın.
  • Toplu işleme yetenekleri güç optimizasyonu için önemli bir husustur. Daha fazla bilgi için Toplu İşleme konusuna bakın.

Her Android sensörünün, sensörün nasıl davrandığını ve hangi verileri sağladığını temsil eden bir "tipi" vardır.

  • Resmi Android Sensör türleri, sensörler.h'de SENSOR_TYPE_… adları altında tanımlanır.
    • Sensörlerin büyük çoğunluğu resmi bir sensör tipine sahiptir.
    • Bu türler Android SDK'da belgelenmiştir.
    • Bu türlerdeki sensörlerin davranışı Android Uyumluluk Test Paketi'nde (CTS) test edilir.
  • Bir üretici, bir Android cihazına yeni bir sensör türü entegre ederse, üretici buna atıfta bulunmak için kendi geçici türünü tanımlayabilir.
    • Bu türler belgelenmemiştir, bu nedenle uygulama geliştiricilerinin bunları bilmemeleri veya nadiren mevcut olduklarını bilmeleri (yalnızca bu belirli üreticinin bazı cihazlarında) nedeniyle bunları kullanmaları pek olası değildir.
    • CTS tarafından test edilmezler.
    • Android, bu tür sensörler için resmi bir sensör türü tanımladığında, üreticilerin kendi geçici türlerini kullanmayı bırakması ve bunun yerine resmi türü kullanması gerekir. Bu sayede sensör daha fazla uygulama geliştiricisi tarafından kullanılacaktır.
  • Cihazda bulunan tüm sensörlerin listesi HAL uygulaması tarafından raporlanır.
    • Aynı tipte birden fazla sensör olabilir. Örneğin iki yakınlık sensörü veya iki ivmeölçer.
    • Uygulamaların büyük çoğunluğu belirli bir tipte yalnızca tek bir sensör talep eder. Örneğin, varsayılan ivmeölçeri isteyen bir uygulama, listedeki ilk ivmeölçeri alacaktır.
    • Sensörler genellikle uyanma ve uyanma olmayan çiftlerle tanımlanır; her iki sensör de aynı tipi paylaşır ancak uyanma özelliklerine göre farklılık gösterir.

Android sensörleri, verileri bir dizi sensör olayı olarak sağlar.

Her etkinlik şunları içerir:

Bildirilen verilerin yorumlanması sensör tipine bağlıdır. Her sensör türü için hangi verilerin raporlandığına ilişkin ayrıntılar için sensör türü tanımlarına bakın.

Mevcut belgeler

Geliştiricilere yönelik

Üreticileri hedef alıyor

  • Genel Bakış
  • Donanım soyutlama katmanı (HAL)
  • Android CDD (Uyumluluk Tanımı Belgesi)
    • /uyumluluk/android-cdd.pdf
    • Sensörlerle ilgili bölümlere bakın.
    • CDD esnektir, dolayısıyla CDD gerekliliklerini karşılamak yüksek kaliteli sensörler sağlamak için yeterli değildir.