เซ็นเซอร์

ไอคอน HAL ของเซ็นเซอร์ Android

เซ็นเซอร์ 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()
  • และข้อมูลบางอย่าง

การตีความข้อมูลที่รายงานจะขึ้นอยู่กับประเภทเซ็นเซอร์ ดูรายละเอียดเกี่ยวกับข้อมูลที่รายงานสำหรับเซ็นเซอร์แต่ละประเภทได้ที่คำจำกัดความของประเภทเซ็นเซอร์

เอกสารที่มีอยู่

มีกลุ่มเป้าหมายเป็นนักพัฒนาแอป

มีกลุ่มเป้าหมายเป็นผู้ผลิต

  • ภาพรวม
  • ชั้นการจัดการฮาร์ดแวร์โดยตรง (HAL)
  • CDD (เอกสารคำจำกัดความความเข้ากันได้) ของ Android
    • /compatibility/android-cdd.pdf
    • ดูส่วนที่เกี่ยวข้องกับเซ็นเซอร์
    • CDD มีความยืดหยุ่น ดังนั้นการปฏิบัติตามข้อกำหนดของ CDD จึงไม่เพียงพอที่จะรับประกัน เซ็นเซอร์คุณภาพสูง