ממשקי API של Android 2.3.4

רמת API: 10

Android 2.3.4 (GINGERBREAD_MR1) היא גרסת תחזוקה שמוסיפה מספר תיקוני באגים ותיקונים לפלטפורמת Android 2.3, ללא שינויי API מ-Android 2.3.3. בנוסף, Android 2.3.4 כולל תמיכה ב-Open Accessory API במכשירים ניידים, באמצעות Open Accessory Library האופציונלית.

למפתחים, פלטפורמת Android 2.3.4 זמינה רכיב להורדה עבור Android SDK. הפלטפורמה שניתנת להורדה כוללת ספריית Android ותמונת מערכת, וגם ערכת סקינים של אמולטור עוד. כדי להתחיל לפתח או לבדוק מול Android 2.3.4, להשתמש ב-Android SDK Manager כדי להוריד את הפלטפורמה ל-SDK.

סקירה כללית על API

ב-Android 2.3.4 יש את אותו ממשק API של framework לאפליקציות כמו Android 2.3.3 (רמת API 10). לסיכום של ה-API אפשר לעיין במאמר הערות לגבי גרסת Android 2.3.3.

פתיחה של ספריית האביזרים

Open Accessory היא יכולת חדשה לשילוב ציוד היקפי מחובר עם אפליקציות שפועלות בפלטפורמה. היכולת מבוסס על מחסנית USB (אפיק טורי אוניברסלי) שמובנית בפלטפורמה ממשק ה-API חשוף לאפליקציות. ציוד היקפי שמוצמד למכשירים מבוססי Android כאביזרים מתחברים כמארחי USB.

האביזר הפתוח הושק ב-Android 3.1 (רמת API 12), אבל הוא זמין למכשירים שבהם פועלת מערכת Android 2.3.4 באמצעות התקן חיצוני אופציונלי ספריית האביזרים הפתוחה. הספרייה חושפת ממשק API של framework מאפשר לאפליקציות לגלות מגוון מכשירים, לתקשר איתם ולנהל אותם שונים המחוברים באמצעות USB. הן גם מספקות את ההטמעה של ה-API מול חלקים בפלטפורמת Android שאינם חשופים ישירות לאפליקציות Android 2.3.4.

ספריית האביזרים הפתוחה היא אופציונלית בכל מכשיר נתון. Device (מכשיר) יצרנים יכולים לבחור אם לכלול את ספריית האביזרים הפתוחה המוצרים או להחריג אותם. הספרייה תואמת ל-Android 3.1, לכן אפליקציות שפותחו נגד Android 2.3.4 יפעלו באופן תקין במכשירים מערכת Android 3.1, אם המכשירים תומכים באביזרי USB.

ה-API שמסופק על ידי Open Accessory Library מבוסס על Open Accessory ממשק ה-API שסופק ב-Android 3.1. ברוב התחומים אפשר להשתמש באותן שיטות ממשקי API. עם זאת, הפיתוח עבור ספריית האביזרים הפתוחה ב-Android 2.3.4 שונה דרך ממשק ה-API הסטנדרטי של USB בדרכים הבאות:

  • קבלת אובייקט UsbManager – כדי לקבל באובייקט UsbManager כשמשתמשים בספריית התוספים, להשתמש בשיטת העזרה getInstance() במקום getSystemService() מוצרים לדוגמה:

    Kotlin

    val manager = UsbManager.getInstance(this)
    

    Java

    UsbManager manager = UsbManager.getInstance(this);
    
  • קבלת UsbAccessory מ-Intent מסונן – כשמבצעים סינון כדי למצוא מכשיר או אביזר מחובר, מסנן, האובייקט UsbAccessory נמצא בתוך הכוונה שמועברת לאפליקציה. אם משתמשים בספריית התוספים, אפשר לקבל את האובייקט UsbAccessory באופן הבא:

    Kotlin

    val accessory = UsbManager.getAccessory(intent)
    

    Java

    UsbAccessory accessory = UsbManager.getAccessory(intent)
    
  • אין תמיכה במארח USB — Android 2.3.4 ו-Open Accessory Library כן לא תומך במצב מארח USB (לדוגמה, דרך UsbDevice), למרות שמצב מארח USB נתמך ב-Android 3.1. מכשיר מבוסס Android עם Android 2.3.4 לא יכול לפעול כ-USB מארח. הספרייה מאפשרת למכשיר מבוסס Android לפעול ציוד היקפי בלבד, כשהאביזר המחובר פועל כמארח USB (באמצעות UsbAccessory).

כדי לפתח אפליקציות באמצעות Open Accessory Library, יש צורך:

  • הגרסה האחרונה של כלי Android SDK
  • את הגרסה האחרונה של תוסף Google APIs, שכולל את הספרייה עצמו (לקישור)
  • מכשיר חומרה אמיתי שפועל בו Android 2.3.4 (או Android 3.1) עם USB תמיכה באביזרים, לבדיקות בזמן ריצה מול מכשירים מחוברים

לדיון מלא על פיתוח אפליקציות שמקיימות אינטראקציה עם USB אביזרים, אפשר לעיין בתיעוד למפתחים שקשור לכך.

בנוסף, מפתחים יכולים לבקש סינון ב-Google Play, למשל שהאפליקציות שלהם לא זמינות למשתמשים שהמכשירים שלהם לא מספקים תמיכה מתאימה באביזר. כדי לבקש סינון, צריך להוסיף את הרכיב למטה למניפסט של האפליקציה:

<uses-feature
  android:name="android.hardware.usb.accessory"
  android:required="true">

רמת API

פלטפורמת Android 2.3.4 לא מגדילה את רמת ה-API — היא משתמשת באותה רמת API כמו Android 2.3.3, רמת API 10.

כדי להשתמש בממשקי API שהושקו ברמת API 10 באפליקציה שלכם: צריך להדר את האפליקציה מול ספריית Android שמופיעה את הגרסה האחרונה של תוסף Google APIs, שכוללת גם את ספריית האביזרים.

בהתאם לצרכים שלכם, ייתכן צריך להוסיף גם android:minSdkVersion="10" לרכיב <uses-sdk> . אם האפליקציה מיועדת לפעול רק ב-Android מגרסה 2.3.3 ואילך, הצהרה על המאפיין מונעת את התקנת האפליקציה בשלב מוקדם יותר של הפלטפורמה.

מידע נוסף זמין במאמר מהו API רמה?