חיישני אנדרואיד נותנים ליישומים גישה לחיישנים הפיזיים הבסיסיים של מכשיר נייד. הם מכשירים וירטואליים המספקים נתונים המוגדרים על ידי sensors.h , שכבת החומרה ההפשטה של החיישן (HAL).
מהם חיישני אנדרואיד?
חיישני אנדרואיד הם מכשירים וירטואליים המספקים נתונים המגיעים מקבוצה של חיישנים פיזיים: מדי תאוצה, גירוסקופים, מגנומטרים, ברומטר, לחות, לחץ, אור, חיישני קירבה וקצב לב.
לא כלולים ברשימת המכשירים הפיזיים המספקים נתונים הם מצלמה, חיישן טביעת אצבע, מיקרופון ומסך מגע. למכשירים אלה יש מנגנון דיווח משלהם; ההפרדה היא שרירותית, אבל באופן כללי, חיישני אנדרואיד מספקים נתונים ברוחב פס נמוך יותר. לדוגמה, "100hz x 3 ערוצים" עבור מד תאוצה לעומת "25hz x 8 MP x 3 ערוצים" עבור מצלמה או "44kHz x 1 ערוץ" עבור מיקרופון.
אנדרואיד לא מגדירה כיצד החיישנים הפיזיים השונים מחוברים למערכת על שבב (SoC).
- לעתים קרובות, שבבי חיישן מחוברים ל-SoC דרך רכזת חיישנים , מה שמאפשר ניטור ועיבוד נתונים בצריכת חשמל נמוכה.
- לעתים קרובות, מעגלים משולבים (I2C) או ממשק היקפי טורי (SPI) משמש כמנגנון התחבורה.
- כדי להפחית את צריכת החשמל, חלק מהארכיטקטורות הינן היררכיות, כאשר עיבוד מינימלי מסוים מתבצע במעגל המשולב הספציפי ליישום (ASIC - כמו זיהוי תנועה על שבב מד התאוצה), ועוד נעשה במיקרו-בקר (כמו זיהוי צעדים ברכזת חיישנים ).
- על יצרן המכשיר לבחור ארכיטקטורה המבוססת על דיוק, הספק, מחיר ומאפייני גודל החבילה. ראה ערימת חיישנים למידע נוסף.
- יכולות אצווה הן שיקול חשוב למיטוב הספק. ראה אצווה למידע נוסף.
לכל חיישן אנדרואיד יש "סוג" המייצג כיצד החיישן מתנהג ואילו נתונים הוא מספק.
- סוגי חיישני Android הרשמיים מוגדרים ב- sensors.h תחת השמות SENSOR_TYPE_...
- לרובם המוחלט של החיישנים יש סוג חיישן רשמי.
- סוגים אלה מתועדים ב-Android SDK.
- התנהגות של חיישנים עם סוגים אלה נבדקת ב-Android Compatibility Test Suite (CTS).
- אם יצרן משלב חיישן מסוג חדש במכשיר אנדרואיד, היצרן יכול להגדיר סוג זמני משלו להתייחס אליו.
- סוגים אלה אינם מתועדים, כך שמפתחי יישומים לא סביר שישתמשו בהם, בין אם בגלל שהם לא יודעים עליהם, או שהם יודעים שהם נמצאים רק לעתים רחוקות (רק במכשירים מסוימים מהיצרן הספציפי הזה).
- הם לא נבדקו על ידי CTS.
- ברגע ש-Android מגדיר סוג חיישן רשמי עבור סוג זה של חיישן, היצרנים חייבים להפסיק להשתמש בסוג הזמני שלהם ולהשתמש בסוג הרשמי במקום זאת. בדרך זו, החיישן ישמש יותר מפתחי אפליקציות.
- רשימת כל החיישנים הקיימים במכשיר מדווחת על ידי יישום HAL.
- יכולים להיות מספר חיישנים מאותו סוג. לדוגמה, שני חיישני קירבה או שני מדי תאוצה.
- הרוב המכריע של היישומים מבקשים רק חיישן בודד מסוג נתון. לדוגמה, אפליקציה המבקשת את מד התאוצה המוגדרת כברירת מחדל תקבל את מד התאוצה הראשון ברשימה.
- חיישנים מוגדרים לעתים קרובות על ידי צמדי התעוררות ושאינם התעוררות , שני החיישנים חולקים את אותו סוג, אך שונים זה מזה על ידי מאפייני ההתעוררות שלהם.
חיישני אנדרואיד מספקים נתונים כסדרה של אירועי חיישן.
כל אירוע מכיל:
- ידית לחיישן שיצר אותו
- חותמת הזמן שבה האירוע זוהה או נמדד, בהתבסס על
SystemClock.elapsedRealtimeNanos()
- וכמה נתונים
הפרשנות של הנתונים המדווחים תלויה בסוג החיישן. ראה את הגדרות סוג החיישן לפרטים על הנתונים המדווחים עבור כל סוג חיישן.
תיעוד קיים
מיועד למפתחים
- סקירה כללית
- הפניה ל-SDK
- Stack Overflow ואתרי הדרכות
- מכיוון שלעתים היה חסר תיעוד חיישנים, מפתחים פנו לאתרי שאלות ותשובות כמו Stack Overflow כדי למצוא תשובות.
- ישנם אתרי הדרכה מסוימים גם כן, אך אינם מכסים את התכונות העדכניות ביותר כמו אצווה, תנועה משמעותית ווקטורי סיבוב משחקים.
- התשובות שם לא תמיד נכונות, ומראות היכן יש צורך בתיעוד נוסף.
מיועד ליצרנים
- סקירה כללית
- דף חיישנים זה ודפי המשנה שלו.
- שכבת הפשטת חומרה (HAL)
- /platform/hardware/libhardware/+/main/include/hardware/sensors.h
- ידוע גם בשם "sensors.h"
- מקור האמת. מסמך ראשון שמתעדכן כאשר תכונות חדשות יתפתחו.
- אנדרואיד CDD (מסמך הגדרת תאימות)
- /compatibility/android-cdd.pdf
- ראה סעיפים ביחס לחיישנים.
- ה-CDD מקל, כך שלא די בעמידה בדרישות ה-CDD כדי להבטיח חיישנים באיכות גבוהה.