
Android sensörleri, uygulamaların mobil cihazın temel fiziksel sensörlerine erişmesini sağlar. Bunlar, sensör Donanım Soyutlama Katmanı (HAL) olan sensors.h tarafından tanımlanan, veri sağlayan sanal cihazlardır.
Android sensörleri nedir?
Android sensörleri, bir dizi fiziksel sensörden (ivmeölçerler, jiroskoplar, manyetometreler, barometre, nem, basınç, ışık, yakınlık ve kalp atış hızı sensörleri) gelen verileri sağlayan sanal cihazlardır.
Kamera, parmak izi sensörü, mikrofon ve dokunmatik ekran, veri sağlayan fiziksel cihazlar listesinde yer almaz. Bu cihazların kendi raporlama mekanizmaları vardır. Ayrım rastgeledir ancak genel olarak Android sensörleri daha düşük bant genişliğine sahip veriler sağlar. Örneğin, bir ivmeölçer için "100 Hz x 3 kanal" ile bir kamera için "25 Hz x 8 MP x 3 kanal" veya bir mikrofon için "44 kHz x 1 kanal".
Android, farklı fiziksel sensörlerin çip üzerinde sisteme (SoC) nasıl bağlandığını tanımlamaz.
- Sensör çipleri genellikle sensör hub'ı aracılığıyla SoC'ye bağlanır. Bu sayede, verilerin düşük güçle izlenmesi ve işlenmesi sağlanır.
- Genellikle, taşıma mekanizması olarak Inter-Integrated Circuit (I2C) veya Serial Peripheral Interface (SPI) kullanılır.
- Güç tüketimini azaltmak için bazı mimariler hiyerarşiktir. Uygulamaya özel entegre devrede (ASIC - ivme ölçer çipinde hareket algılama gibi) minimum düzeyde işlem yapılırken daha fazla işlem bir mikro denetleyicide (sensör merkezinde adım algılama gibi) yapılır.
- Doğruluk, güç, fiyat ve paket boyutu özelliklerine göre bir mimari seçmek cihaz üreticisinin sorumluluğundadır. Daha fazla bilgi için Sensör yığını başlıklı makaleyi inceleyin.
- Toplu işleme özellikleri, güç optimizasyonu açısından önemli bir husustur. Daha fazla bilgi için Toplu işleme bölümünü inceleyin.
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_TYPE_… adları altında sensors.h içinde tanımlanır.
- Sensörlerin büyük çoğunluğunun resmi bir sensör türü vardır.
- Bu türler Android SDK'sında belgelenmiştir.
- Bu tür sensörlerin davranışı Android Uyumluluk Test Paketi'nde (CTS) test edilir.
- Bir üretici, Android cihazlara yeni bir sensör türü entegre ederse bu sensöre atıfta bulunmak için kendi geçici türünü tanımlayabilir.
- Bu türler belgelenmediği için uygulama geliştiricilerin bunları kullanması olası değildir. Bunun nedeni, bu türler hakkında bilgi sahibi olmamaları veya nadiren (yalnızca bu belirli üreticinin bazı cihazlarında) bulunduklarını bilmeleridir.
- CTS tarafından test edilmezler.
- Android bu tür sensörler için resmi bir sensör türü tanımladığında üreticiler kendi geçici türlerini kullanmayı bırakıp resmi türü kullanmalıdır. Bu sayede sensör, daha fazla uygulama geliştirici tarafından kullanılır.
- Cihazda bulunan tüm sensörlerin listesi HAL uygulaması tarafından bildirilir.
- Aynı türden 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 türde yalnızca tek bir sensör ister. Örneğin, varsayılan ivmeölçeri isteyen bir uygulama, listedeki ilk ivmeölçeri alır.
- Sensörler genellikle uyandırma ve uyandırmama çiftleri olarak tanımlanır. Her iki sensör de aynı türdedir ancak uyandırma özellikleriyle farklılık gösterir.
Android sensörleri, verileri bir dizi sensör etkinliği olarak sağlar.
Her etkinlik şunları içerir:
- oluşturan sensörün tanıtıcısı
- Etkinliğin algılandığı veya ölçüldüğü zaman damgası. Bu zaman damgası, aşağıdakilere göre belirlenir:
SystemClock.elapsedRealtimeNanos()
- ve bazı veriler
Bildirilen verilerin yorumlanması sensör türüne bağlıdır. Hangi verilerin her sensör türü için raporlandığıyla ilgili ayrıntılar için sensör türü tanımlarına bakın.
Mevcut belgeler
Geliştiricilere yöneliktir.
- Genel bakış
- SDK referansı
- Stack Overflow ve eğitim web siteleri
- Sensörlerle ilgili dokümanlar bazen eksik olduğundan geliştiriciler, yanıt bulmak için Stack Overflow gibi soru-cevap web sitelerine başvuruyordu.
- Bazı eğitim web siteleri de vardır ancak gruplandırma, önemli hareket ve oyun dönüşü vektörleri gibi en yeni özellikleri kapsamaz.
- Oradaki yanıtlar her zaman doğru olmayabilir ve daha fazla dokümanın nerede gerektiğini gösterir.
Üreticilere yöneliktir.
- Genel bakış
- Bu Sensörler sayfası ve alt sayfaları.
- Donanım soyutlama katmanı (HAL)
- /platform/hardware/libhardware/+/android16-release/include/hardware/sensors.h
- "sensors.h" olarak da bilinir.
- Doğruluğun kaynağı. Yeni özellikler geliştirildiğinde güncellenecek ilk doküman.
- Android CDD (Uyumluluk Tanımı Belgesi)
- /compatibility/android-cdd.pdf
- Sensörlerle ilgili bölümlere bakın.
- CDD'nin şartları esnektir. Bu nedenle, CDD şartlarını karşılamak yüksek kaliteli sensörler sağlamak için yeterli değildir.