![Ikon HAL Sensor Android](https://source.android.google.cn/static/docs/core/interaction/sensors/images/ape_fwk_hal_sensors.png?authuser=2&hl=id)
Sensor Android memberi aplikasi akses ke sensor fisik yang mendasari perangkat seluler. Ini adalah perangkat virtual penyedia data yang ditentukan oleh sensors.h, Hardware Abstraction Layer (HAL) sensor.
Apa yang dimaksud dengan sensor Android?
Sensor Android adalah perangkat virtual yang menyediakan data yang berasal dari sekumpulan sensor fisik: akselerometer, giroskop, magnetometer, barometer, kelembapan, tekanan, cahaya, kedekatan, dan sensor detak jantung.
Yang tidak disertakan dalam daftar perangkat fisik yang memberikan data adalah kamera, sensor sidik jari, mikrofon, dan layar sentuh. Perangkat ini memiliki mekanisme pelaporan sendiri; pemisahan bersifat arbitrer, tetapi secara umum, sensor Android memberikan data bandwidth yang lebih rendah. Misalnya, “100 hz x 3 saluran” untuk akselerometer versus “25 hz x 8 MP x 3 saluran” untuk kamera atau “44 kHz x 1 saluran” untuk mikrofon.
Android tidak menentukan cara berbagai sensor fisik terhubung ke sistem di chip (SoC).
- Sering kali, chip sensor terhubung ke SoC melalui hub sensor, yang memungkinkan pemantauan dan pemrosesan data dengan daya rendah.
- Sering kali, Inter-Integrated Circuit (I2C) atau Serial Peripheral Interface (SPI) digunakan sebagai mekanisme transpor.
- 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 dilakukan di mikrokontroler (seperti deteksi langkah di hub sensor).
- Produsen perangkat dapat memilih arsitektur berdasarkan karakteristik akurasi, daya, harga, dan ukuran paket. Lihat Stack sensor untuk mengetahui informasi selengkapnya.
- Kemampuan pengelompokan adalah pertimbangan penting untuk pengoptimalan daya. Lihat Pengelompokan untuk mengetahui informasi selengkapnya.
Setiap sensor Android memiliki “jenis” yang mewakili perilaku sensor dan data yang disediakannya.
- Jenis
sensor Android resmi ditentukan di sensors.h dengan nama SENSOR_TYPE_…
- Sebagian besar sensor memiliki jenis sensor resmi.
- Jenis tersebut didokumentasikan di Android SDK.
- Perilaku sensor dengan jenis tersebut diuji di Android Compatibility Test Suite (CTS).
- Jika produsen mengintegrasikan jenis sensor baru di perangkat
Android, produsen dapat menentukan jenis sementaranya sendiri untuk merujuk
ke sensor tersebut.
- Jenis tersebut tidak didokumentasikan, sehingga developer aplikasi tidak mungkin menggunakannya, baik karena mereka tidak mengetahuinya, atau mengetahui bahwa jenis tersebut jarang ada (hanya di beberapa perangkat dari produsen tertentu ini).
- Aplikasi tersebut 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. Dengan cara ini, sensor akan digunakan oleh lebih banyak developer aplikasi.
- Daftar semua sensor yang ada di perangkat dilaporkan oleh implementasi
HAL.
- Dapat ada beberapa sensor dari jenis yang sama. Misalnya, dua sensor kedekatan 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 kali ditentukan oleh pasangan wake-up dan non-wake-up, kedua sensor memiliki jenis yang sama, tetapi berbeda dengan karakteristik wake-up-nya.
Sensor Android memberikan data sebagai serangkaian peristiwa sensor.
Setiap peristiwa berisi:
- handle ke sensor yang menghasilkannya
- stempel waktu saat peristiwa terdeteksi atau diukur, berdasarkan
SystemClock.elapsedRealtimeNanos()
- dan beberapa data
Penafsiran data yang dilaporkan bergantung pada jenis sensor. Lihat definisi jenis sensor untuk mengetahui detail tentang data yang dilaporkan untuk setiap jenis sensor.
Dokumentasi yang ada
Ditargetkan untuk developer
- Ringkasan
- Referensi SDK
- Stack Overflow dan situs tutorial
- Karena dokumentasi sensor terkadang kurang, developer menggunakan situs Tanya Jawab seperti Stack Overflow untuk menemukan jawaban.
- Beberapa situs tutorial juga ada, tetapi tidak membahas fitur terbaru seperti pengelompokan, gerakan signifikan, dan vektor rotasi game.
- Jawaban di sana tidak selalu benar, dan menunjukkan tempat dokumentasi lainnya diperlukan.
Ditargetkan untuk produsen
- Ringkasan
- Halaman Sensor ini dan sub-halamannya.
- Hardware abstraction layer (HAL)
- /platform/hardware/libhardware/+/main/include/hardware/sensors.h
- Juga dikenal sebagai “sensors.h”
- Sumber tepercaya. Dokumen pertama yang akan diperbarui saat fitur baru dikembangkan.
- CDD (Dokumen Definisi Kompatibilitas) Android
- /compatibility/android-cdd.pdf
- Lihat bagian yang terkait dengan sensor.
- CDD bersifat longgar, sehingga memenuhi persyaratan CDD saja tidak cukup untuk memastikan sensor berkualitas tinggi.