
Android sensörleri, uygulamalara bir mobil cihazın temeldeki fiziksel sensörlerine erişim sağlar. Bunlar, sensör Donanım Soyutlama Katmanı (HAL) olan sensor.h tarafından tanımlanan veri sağlayan sanal aygıtlardır.
Android sensörleri nelerdir?
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 listesinde yer almayan kamera, parmak izi sensörü, mikrofon ve dokunmatik ekrandır. Bu cihazların kendi raporlama mekanizmaları vardır; ayırma keyfidir, ancak genel olarak Android sensörleri daha düşük bant genişliği verileri sağlar. Örneğin, bir ivmeölçer için "100hz x 3 kanal" ve bir kamera için "25hz x 8 MP x 3 kanal" veya bir mikrofon için "44kHz x 1 kanal".
Android, farklı fiziksel sensörlerin çip üzerindeki (SoC) sisteme nasıl bağlanacağını tanımlamaz.
- Çoğu zaman, sensör çipleri bir sensör merkezi aracılığıyla SoC'ye bağlanır ve bu da verilerin bir miktar düşük güçte izlenmesine ve işlenmesine izin verir.
- Aktarım mekanizması olarak genellikle Inter-Integrated Circuit (I2C) veya Seri Peripheral Interface (SPI) kullanılır.
- Güç tüketimini azaltmak için, bazı mimariler hiyerarşiktir, uygulamaya özel entegre devrede (akselerometre çipinde ASIC benzeri hareket algılama) bazı minimum işlemler yapılır ve daha fazlası bir mikro denetleyicide yapılır (bir sensör merkezinde 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.
- Gruplama yetenekleri, güç optimizasyonu için önemli bir husustur. Daha fazla bilgi için bkz.
Her Android sensörünün, sensörün nasıl davrandığını ve hangi verileri sağladığını gösteren bir “tipi” vardır.
- Resmi Android Sensör türleri , SENSOR_TYPE_… adları altında sensor.h dosyasında tanımlanmıştır.
- Sensörlerin büyük çoğunluğunun resmi bir sensör tipi vardır.
- Bu türler Android SDK'da belgelenmiştir.
- Bu türlere sahip sensörlerin davranışı, Android Uyumluluk Test Paketi'nde (CTS) test edilir.
- Bir üretici, bir Android cihazına yeni bir tür sensö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ştiricilerin bunları bilmedikleri veya nadiren mevcut olduklarını bildikleri için (yalnızca bu belirli üreticinin bazı cihazlarında) kullanmaları olası değildir.
- CTS tarafından test edilmezler.
- Android, bu tür bir sensör için resmi bir sensör tipi tanımladıktan sonra, üreticilerin kendi geçici tiplerini kullanmayı bırakmalı ve bunun yerine resmi tipi kullanmalıdır. Bu şekilde sensör daha fazla uygulama geliştiricisi tarafından kullanılacaktır.
- Cihazda bulunan tüm sensörlerin listesi, HAL uygulaması tarafından rapor edilir.
- Aynı tipte birkaç 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 talep eden bir uygulama, listedeki ilk ivmeölçeri alacaktır.
- Sensörler genellikle uyanan ve uyanmayan çiftlerle tanımlanır; her iki sensör de aynı türü 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:
- onu oluşturan sensöre bir tutamaç
-
SystemClock.elapsedRealtimeNanos()
'a dayalı olarak olayın algılandığı veya ölçüldüğü zaman damgası - ve bazı veriler
Raporlanan verilerin yorumlanması sensör tipine bağlıdır. Her sensör tipi için hangi verilerin rapor edildiğine ilişkin ayrıntılar için sensör tipi tanımlarına bakın.
Mevcut belgeler
Geliştiricilere yönelik
- genel bakış
- SDK referansı
- Yığın Taşması ve öğretici web siteleri
- Sensör belgeleri bazen eksik olduğundan geliştiriciler, yanıtları bulmak için Stack Overflow gibi Soru-Cevap web sitelerine başvurdu.
- Bazı öğretici web siteleri de mevcuttur, ancak gruplama, önemli hareket ve oyun döndürme vektörleri gibi en son özellikleri kapsamaz.
- Oradaki cevaplar her zaman doğru değildir ve nerede daha fazla belgenin gerekli olduğunu gösterir.
Üreticilere yönelik
- genel bakış
- Bu Sensörler sayfası ve alt sayfaları.
- Donanım soyutlama katmanı (HAL)
- /platform/hardware/libhardware/+/master/include/hardware/sensors.h
- "Sensörler.h" olarak da bilinir
- Gerçeğin kaynağı. Yeni özellikler geliştirildiğinde güncellenecek ilk belge.
- Android CDD (Uyumluluk Tanım Belgesi)
- /uyumluluk/android-cdd.pdf
- Sensörlerle ilgili bölümlere bakın.
- CDD esnektir, bu nedenle CDD gereksinimlerini karşılamak yüksek kaliteli sensörler sağlamak için yeterli değildir.