
เซ็นเซอร์ Android ช่วยให้แอปพลิเคชันเข้าถึงเซ็นเซอร์จริงพื้นฐานของอุปกรณ์เคลื่อนที่ได้ ซึ่งเป็นอุปกรณ์เสมือนที่ให้ข้อมูลซึ่งกำหนดโดย sensors.h ซึ่งเป็น Hardware Abstraction Layer (HAL) ของเซ็นเซอร์
เซ็นเซอร์ Android คืออะไร
เซ็นเซอร์ Android เป็นอุปกรณ์เสมือนที่ให้ข้อมูลจากชุดเซ็นเซอร์จริง ได้แก่ ตัวตรวจวัดความเร่ง ตัวตรวจจับการหมุน เครื่องวัดค่าความเข้มข้นของสนามแม่เหล็ก บารอมิเตอร์ ความชื้น ความดัน แสง พร็อกซิมิตีเซ็นเซอร์ และเซ็นเซอร์อัตราการเต้นของหัวใจ
กล้อง เซ็นเซอร์ลายนิ้วมือ ไมโครโฟน และหน้าจอสัมผัสไม่ได้รวมอยู่ในรายการอุปกรณ์จริงที่ให้ข้อมูล อุปกรณ์เหล่านี้มีกลไกการรายงานของตัวเอง การแยกข้อมูลเป็นไปโดยพลการ แต่โดยทั่วไปแล้ว เซ็นเซอร์ Android จะให้ข้อมูลที่มีแบนด์วิดท์ต่ำกว่า เช่น "100 Hz x 3 ช่อง" สำหรับ เครื่องวัดความเร่ง เทียบกับ "25 Hz x 8 MP x 3 ช่อง" สำหรับกล้อง หรือ "44 kHz x 1 ช่อง" สำหรับไมโครโฟน
Android ไม่ได้กำหนดวิธีเชื่อมต่อเซ็นเซอร์จริงต่างๆ กับระบบวงจรรวมบนชิป (SoC)
- โดยปกติแล้ว ชิปเซ็นเซอร์จะเชื่อมต่อกับ SoC ผ่านฮับเซ็นเซอร์ ซึ่งช่วยให้ การตรวจสอบและการประมวลผลข้อมูลบางอย่างใช้พลังงานต่ำ
- โดยทั่วไปแล้ว Inter-Integrated Circuit (I2C) หรือ Serial Peripheral Interface (SPI) จะใช้เป็นกลไกการรับส่ง
- สถาปัตยกรรมบางอย่างเป็นแบบลำดับชั้นเพื่อลดการใช้พลังงาน โดย มีการประมวลผลขั้นต่ำบางอย่างในวงจรรวมเฉพาะแอปพลิเคชัน (ASIC - เช่น การตรวจจับการเคลื่อนไหวในชิปตัววัดความเร่ง) และมีการประมวลผลเพิ่มเติม ในไมโครคอนโทรลเลอร์ (เช่น การตรวจจับการก้าวในฮับเซ็นเซอร์)
- ผู้ผลิตอุปกรณ์จะเป็นผู้เลือกสถาปัตยกรรมตามลักษณะความแม่นยำ กำลัง ราคา และขนาดแพ็กเกจ ดูข้อมูลเพิ่มเติมได้ที่สแต็กเซ็นเซอร์
- ความสามารถในการประมวลผลเป็นกลุ่มเป็นข้อควรพิจารณาที่สำคัญสำหรับการเพิ่มประสิทธิภาพด้านพลังงาน ดูข้อมูลเพิ่มเติมได้ที่การประมวลผลแบบกลุ่ม
เซ็นเซอร์ Android แต่ละตัวมี "ประเภท" ที่แสดงลักษณะการทำงานของเซ็นเซอร์และ ข้อมูลที่เซ็นเซอร์ให้
- ประเภทเซ็นเซอร์อย่างเป็นทางการของ Android มีการกำหนดไว้ใน sensors.h ภายใต้ชื่อ SENSOR_TYPE_…
- เซ็นเซอร์ส่วนใหญ่มีประเภทเซ็นเซอร์อย่างเป็นทางการ
- ซึ่งมีเอกสารประกอบอยู่ใน Android SDK
- พฤติกรรมของเซ็นเซอร์ที่มีประเภทดังกล่าวจะได้รับการทดสอบในชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) ของ Android
- หากผู้ผลิตติดตั้งเซ็นเซอร์ชนิดใหม่ในอุปกรณ์ Android
ผู้ผลิตสามารถกำหนดประเภทชั่วคราวของตนเองเพื่ออ้างอิงถึงเซ็นเซอร์ดังกล่าวได้
- ประเภทดังกล่าวไม่มีในเอกสารประกอบ ดังนั้นนักพัฒนาแอปพลิเคชันจึง ไม่น่าจะใช้ประเภทดังกล่าว ไม่ว่าจะเป็นเพราะไม่ทราบ หรือ ทราบว่าประเภทดังกล่าวแทบจะไม่มีอยู่ (มีเฉพาะในอุปกรณ์บางรุ่นจากผู้ผลิต รายนี้)
- และไม่ได้ทดสอบโดย CTS
- เมื่อ Android กำหนดประเภทเซ็นเซอร์อย่างเป็นทางการสำหรับเซ็นเซอร์ประเภทนี้แล้ว ผู้ผลิตต้องหยุดใช้ประเภทชั่วคราวของตนเองและใช้ประเภท อย่างเป็นทางการแทน วิธีนี้จะช่วยให้นักพัฒนาแอปพลิเคชันจำนวนมากขึ้นใช้เซ็นเซอร์ได้
- การติดตั้ง HAL จะรายงานรายการเซ็นเซอร์ทั้งหมดที่มีอยู่ในอุปกรณ์
- เซ็นเซอร์ประเภทเดียวกันอาจมีหลายตัว เช่น พร็อกซิมิตีเซ็นเซอร์ 2 ตัวหรือตัวตรวจวัดความเร่ง 2 ตัว
- แอปพลิเคชันส่วนใหญ่ขอเซ็นเซอร์เพียงตัวเดียวของ ประเภทที่กำหนด ตัวอย่างเช่น แอปพลิเคชันที่ขอ เครื่องวัดความเร่งเริ่มต้นจะได้รับเครื่องวัดความเร่งแรกในรายการ
- เซ็นเซอร์มักจะกำหนดโดยคู่ปลุกและ ไม่ปลุก โดยเซ็นเซอร์ทั้ง 2 ตัวใช้ประเภทเดียวกัน แต่แตกต่างกันตาม ลักษณะการปลุก
เซ็นเซอร์ Android จะให้ข้อมูลเป็นชุดเหตุการณ์เซ็นเซอร์
เหตุการณ์แต่ละรายการ ประกอบด้วยข้อมูลต่อไปนี้
- แฮนเดิลของเซ็นเซอร์ที่สร้างข้อมูล
- การประทับเวลาที่ตรวจพบหรือวัดเหตุการณ์ โดยอิงตาม
SystemClock.elapsedRealtimeNanos()
- และข้อมูลบางอย่าง
การตีความข้อมูลที่รายงานจะขึ้นอยู่กับประเภทเซ็นเซอร์ ดูรายละเอียดเกี่ยวกับข้อมูลที่รายงานสำหรับเซ็นเซอร์แต่ละประเภทได้ที่คำจำกัดความของประเภทเซ็นเซอร์
เอกสารที่มีอยู่
มีกลุ่มเป้าหมายเป็นนักพัฒนาแอป
- ภาพรวม
- ข้อมูลอ้างอิง SDK
- Stack Overflow และเว็บไซต์บทแนะนำ
- เนื่องจากบางครั้งเอกสารประกอบของเซ็นเซอร์ไม่เพียงพอ นักพัฒนาแอป จึงต้องหันไปใช้เว็บไซต์ถามตอบอย่าง Stack Overflow เพื่อค้นหาคำตอบ
- นอกจากนี้ ยังมีเว็บไซต์สอนการใช้งานบางแห่ง แต่ไม่ได้ครอบคลุมฟีเจอร์ล่าสุด เช่น การจัดกลุ่ม การเคลื่อนไหวที่สำคัญ และเวกเตอร์การหมุนของเกม
- คำตอบในนั้นอาจไม่ถูกต้องเสมอไป และแสดงให้เห็นว่าต้องมีเอกสารเพิ่มเติมในส่วนใด บ้าง
มีกลุ่มเป้าหมายเป็นผู้ผลิต
- ภาพรวม
- หน้าเซ็นเซอร์ และหน้าย่อย
- ชั้นการจัดการฮาร์ดแวร์โดยตรง (HAL)
- /platform/hardware/libhardware/+/android16-release/include/hardware/sensors.h
- หรือที่เรียกว่า "sensors.h"
- แหล่งข้อมูลที่ถูกต้อง เอกสารแรกที่จะได้รับการอัปเดตเมื่อมีการพัฒนาฟีเจอร์ใหม่ ๆ
- CDD (เอกสารคำจำกัดความความเข้ากันได้) ของ Android
- /compatibility/android-cdd.pdf
- ดูส่วนที่เกี่ยวข้องกับเซ็นเซอร์
- CDD มีความยืดหยุ่น ดังนั้นการปฏิบัติตามข้อกำหนดของ CDD จึงไม่เพียงพอที่จะรับประกัน เซ็นเซอร์คุณภาพสูง