Android sensörleri, uygulamalara bir mobil cihazın temelindeki fiziksel sensörlere erişim sağlar. Bunlar tarafından tanımlanan sanal cihazlar veri sağlanmaktadır sensors.h , sensör Donanım Özet Katmanı (HAL).
Android sensörleri nedir?
Android sensörler, 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 almayanlar kamera, parmak izi sensörü, mikrofon ve dokunmatik ekrandır. 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 "100hz x 3 kanal" ve kamera için "25hz x 8 MP x 3 kanal" veya mikrofon için "44kHz x 1 kanal".
Android, farklı fiziksel sensörlerin çip üzerindeki sisteme (SoC) nasıl bağlandığını tanımlamaz.
- Genellikle, sensör yongaları bir sensör göbeği aracılığıyla SoC'ye bağlanır ve bu da verilerin düşük güçle izlenmesine ve işlenmesine izin verir.
- Aktarım mekanizması olarak genellikle Inter-Integrated Circuit (I2C) veya Seri Çevresel 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'ında adım algılama gibi) ).
- Doğruluk, güç, fiyat ve paket boyutu özelliklerine dayalı bir mimari seçmek cihaz üreticisine kalmıştır. Daha fazla bilgi için Sensör yığını bölümüne bakın.
- Gruplama yetenekleri, güç optimizasyonu için önemli bir husustur. Daha fazla bilgi için Gruplama konusuna bakın.
Her Android sensörünün, sensörün nasıl davrandığını ve hangi verileri sağladığını gösteren bir "türü" vardır.
- Resmi Android Sensör türleri , sensor.h'de SENSOR_TYPE_… adları altında tanımlanmıştı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ürlere sahip sensörlerin davranışı Android Uyumluluk Test Paketi'nde (CTS) test edilir.
- Bir üretici bir Android cihaza yeni bir sensör türü entegre ederse, üretici buna başvurmak için kendi geçici türünü tanımlayabilir.
- Bu türler belgelenmemiş olduğundan, uygulama geliştiricilerin bunları kullanmaları pek olası değildir, çünkü onları bilmiyorlar veya nadiren mevcut olduklarını biliyorlar (yalnızca bu belirli üreticinin bazı cihazlarında).
- CTS tarafından test edilmezler.
- Android, bu tür bir sensör için resmi bir sensör türü tanımladığında, üreticiler kendi geçici türlerini kullanmayı bırakmalı ve bunun yerine resmi türü 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 isteyen bir uygulama listedeki ilk ivme ölçeri alacaktır.
- Sensörler genellikle uyanma ve uyanmama çiftleriyle 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örler, verileri bir dizi sensör olayı olarak sağlar.
Her olay şunları içerir:
- onu oluşturan sensöre bir tutamaç
-
SystemClock.elapsedRealtimeNanos()temel alınarak olayın tespit edildiği veya ölçüldüğü zaman damgası
- ve bazı veriler
Raporlanan verilerin yorumlanması sensör tipine bağlıdır. Her sensör türü için hangi verilerin rapor edildiğine ilişkin ayrıntılar için sensör türü tanımlarına bakın.
Mevcut belgeler
Geliştiricilere yönelik
- Genel Bakış
- SDK referansı
- Stack Overflow ve eğitici 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ı eğitici web siteleri de mevcuttur, ancak gruplama, önemli hareket ve oyun döndürme vektörleri gibi en son özellikleri kapsamaz.
- Buradaki cevaplar her zaman doğru değildir ve daha fazla dokümantasyona ihtiyaç duyulan yerleri 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)
- https://source.android.com/compatibility/android-cdd.pdf
- Sensörlerle ilgili bölümlere bakın.
- CDD yumuşaktır, bu nedenle CDD gereksinimlerini karşılamak, yüksek kaliteli sensörler sağlamak için yeterli değildir.