Sensor Android memberi aplikasi akses ke sensor fisik yang mendasari perangkat seluler. Mereka adalah perangkat virtual penyedia data yang ditentukan oleh sensor.h , Sensor Hardware Abstraction Layer (HAL).
Apa itu sensor Android?
Sensor Android adalah perangkat virtual yang menyediakan data yang berasal dari serangkaian sensor fisik: akselerometer, giroskop, magnetometer, barometer, kelembaban, tekanan, cahaya, kedekatan, dan sensor detak jantung.
Tidak termasuk dalam daftar perangkat fisik yang menyediakan data adalah kamera, sensor sidik jari, mikrofon, dan layar sentuh. Perangkat ini memiliki mekanisme pelaporannya sendiri; pemisahannya sewenang-wenang, tetapi secara umum, sensor Android menyediakan data bandwidth yang lebih rendah. Misalnya, "saluran 100hz x 3" untuk akselerometer versus "saluran 25hz x 8 MP x 3" untuk kamera atau "saluran 44kHz x 1" untuk mikrofon.
Android tidak menentukan bagaimana sensor fisik yang berbeda terhubung ke sistem pada chip (SoC).
- Seringkali, chip sensor terhubung ke SoC melalui hub sensor , memungkinkan beberapa pemantauan dan pemrosesan data berdaya rendah.
- Seringkali, Inter-Integrated Circuit (I2C) atau Serial Peripheral Interface (SPI) digunakan sebagai mekanisme transportasi.
- Untuk mengurangi konsumsi daya, beberapa arsitektur bersifat hierarkis, dengan beberapa pemrosesan minimal dilakukan di sirkuit terintegrasi khusus aplikasi (ASIC - seperti deteksi gerakan pada chip akselerometer), dan lebih banyak lagi yang dilakukan di mikrokontroler (seperti deteksi langkah di hub sensor ).
- Terserah produsen perangkat untuk memilih arsitektur berdasarkan akurasi, kekuatan, harga dan karakteristik ukuran paket. Lihat Tumpukan sensor untuk informasi lebih lanjut.
- Kemampuan batching merupakan pertimbangan penting untuk pengoptimalan daya. Lihat Batching untuk informasi lebih lanjut.
Setiap sensor Android memiliki "tipe" yang mewakili perilaku sensor dan data apa yang disediakannya.
- Jenis Sensor Android resmi didefinisikan di sensor.h dengan nama SENSOR_TYPE_…
- Sebagian besar sensor memiliki tipe sensor resmi.
- Jenis-jenis tersebut didokumentasikan dalam Android SDK.
- Perilaku sensor dengan tipe tersebut diuji di Android Compatibility Test Suite (CTS).
- Jika pabrikan mengintegrasikan jenis sensor baru pada perangkat Android, pabrikan dapat menentukan jenis sementaranya sendiri untuk merujuknya.
- Jenis tersebut tidak didokumentasikan, sehingga pengembang aplikasi tidak mungkin menggunakannya, baik karena mereka tidak mengetahuinya, atau mengetahui bahwa mereka jarang ada (hanya pada beberapa perangkat dari pabrikan khusus ini).
- Mereka tidak diuji oleh CTS.
- Setelah Android menentukan jenis sensor resmi untuk jenis sensor ini, produsen harus berhenti menggunakan jenis sementara mereka sendiri dan menggunakan jenis resmi sebagai gantinya. Dengan cara ini, sensor akan digunakan oleh lebih banyak pengembang aplikasi.
- Daftar semua sensor yang ada pada perangkat dilaporkan oleh implementasi HAL.
- Mungkin ada beberapa sensor dari jenis yang sama. Misalnya, dua sensor jarak atau dua akselerometer.
- Sebagian besar aplikasi hanya meminta satu sensor dari jenis tertentu. Misalnya, aplikasi yang meminta akselerometer default akan mendapatkan akselerometer pertama dalam daftar.
- Sensor sering didefinisikan oleh pasangan bangun dan tidak bangun , kedua sensor berbagi jenis yang sama, tetapi berbeda dengan karakteristik bangunnya.
Sensor Android menyediakan data sebagai rangkaian peristiwa sensor.
Setiap acara berisi:
- pegangan ke sensor yang menghasilkannya
- stempel waktu saat peristiwa terdeteksi atau diukur, berdasarkan
SystemClock.elapsedRealtimeNanos()
- dan beberapa data
Interpretasi dari data yang dilaporkan tergantung pada jenis sensor. Lihat definisi jenis sensor untuk detail tentang data yang dilaporkan untuk setiap jenis sensor.
Dokumentasi yang ada
Ditargetkan pada pengembang
- Ringkasan
- referensi SDK
- Stack Overflow dan situs web tutorial
- Karena dokumentasi sensor terkadang kurang, pengembang menggunakan situs web Tanya Jawab seperti Stack Overflow untuk menemukan jawaban.
- Beberapa situs web tutorial juga ada, tetapi tidak mencakup fitur terbaru seperti batching, gerakan signifikan, dan vektor rotasi game.
- Jawaban di sana tidak selalu benar, dan tunjukkan di mana lebih banyak dokumentasi diperlukan.
Ditargetkan pada produsen
- Ringkasan
- Halaman Sensor ini dan sub-halamannya.
- Lapisan abstraksi perangkat keras (HAL)
- /platform/hardware/libhardware/+/master/include/hardware/sensors.h
- Juga dikenal sebagai "sensors.h"
- Sumber kebenaran. Dokumen pertama yang diperbarui ketika fitur baru dikembangkan.
- CDD Android (Dokumen Definisi Kompatibilitas)
- https://source.android.com/compatibility/android-cdd.pdf
- Lihat bagian yang berhubungan dengan sensor.
- CDD bersifat lunak, sehingga memenuhi persyaratan CDD tidak cukup untuk memastikan sensor berkualitas tinggi.