Android 2.0, גרסה 1

רמת API: 5

Android 2.0 היא גרסת פלטפורמה עיקרית לפרוס במכשירים מבוססי Android החל מנובמבר 2009. הגרסה כוללת תכונות חדשות למשתמשים ולמפתחים וגם שינויים ב-Android framework API.

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

כדי להתחיל לפתח או לבצע בדיקה מול Android בפלטפורמה 2.0, השתמשו ב-Android SDK ובכלי AVD Manager כדי להוריד את הפלטפורמה ל-SDK.

המיטב של הפלטפורמה

לרשימה של תכונות חדשות והמשתמשים העיקריים בפלטפורמה אפשר לעיין בגרסה של Android 2.0 מסמך 'המיטב של הפלטפורמה'.

אפליקציות מובנות

תמונת המערכת שכלולה בפלטפורמה שניתנת להורדה מספקת את הפרטים הבאים: אפליקציות מובנות:

  • שעון מעורר
  • דפדפן
  • מחשבון
  • מצלמת וידאו
  • מצלמה
  • אנשי קשר
  • מיקום מותאם אישית (אפליקציה למפתחים)
  • כלי פיתוח (אפליקציה למפתחים)
  • Dialer
  • אימייל
  • גלריה
  • הכלי ליצירת תנועות
  • IME לקלט טקסט ביפנית
  • העברת הודעות
  • מוזיקה
  • הגדרות
  • חלקי חילוף (אפליקציה למפתחים)

לוקאלים

תמונת המערכת שכלולה בפלטפורמה שניתנת להורדה מספקת מגוון ולוקאלים מובנים. במקרים מסוימים, מחרוזות ספציפיות לאזור זמינות עבור ולוקאלים. במקרים אחרים, נעשה שימוש בגרסת ברירת המחדל של השפה. השפות שזמינות במערכת Android 2.0 התמונות מפורטות למטה (עם המיקום language_country/region לתיאור).

  • סינית, PRC (zh_CN)
  • סינית, טייוואן (zh_TW)
  • צ'כית (cs_CZ)
  • הולנדית, הולנד (nl_NL)
  • הולנדית, בלגיה (nl_BE)
  • אנגלית, ארה"ב (en_US)
  • אנגלית, בריטניה (en_GB)
  • אנגלית, קנדה (en_CA)
  • אנגלית, אוסטרליה (en_AU)
  • אנגלית, ניו זילנד (en_NZ)
  • אנגלית, סינגפור(en_SG)
  • צרפתית, צרפת (fr_FR)
  • צרפתית, בלגיה (fr_BE)
  • צרפתית, קנדה (fr_CA)
  • צרפתית, שווייץ (fr_CH)
  • גרמנית, גרמניה (de_DE)
  • גרמנית, אוסטריה (de_AT)
  • גרמנית, שווייץ (de_CH)
  • גרמנית, ליכטנשטיין (de_LI)
  • איטלקית, איטליה (it_IT)
  • איטלקית, שווייץ (it_CH)
  • יפנית (ja_JP)
  • קוריאנית (ko_KR)
  • פולנית (pl_PL)
  • רוסית (ru_RU)
  • ספרדית (es_ES)
  • מחרוזות ממשק משתמש שהותאמו לשוק המקומי תואמות ללוקאלים הנגישים דרך ההגדרות.

    סקינים לאמולטור

    הפלטפורמה שניתנת להורדה כוללת ערכת סקינים של אמולטור שניתן להשתמש בהם כדי לבנות מודלים של אפליקציות בגדלים שונים וברזולוציות שונות. סקינים של האמולטור הם:

    • QVGA (240x320, צפיפות נמוכה, מסך קטן)
    • WQVGA (240x400, צפיפות נמוכה, מסך רגיל)
    • FWQVGA (240x432, צפיפות נמוכה, מסך רגיל)
    • HVGA (320x480, צפיפות בינונית, מסך רגיל)
    • WVGA800 (480x800, צפיפות גבוהה, מסך רגיל)
    • WVGA854 (480x854 צפיפות גבוהה, מסך רגיל)

    למידע נוסף על פיתוח אפליקציה שמציגה ומתפקדת כראוי בכל מכשירי Android, אפשר לעיין במאמר תמיכה במספר מסכים.

    תכונות למפתחים

    הקטעים הבאים מספקים מידע על תכונות חדשות למפתחים שמוצעות ברכיב הפלטפורמה של Android 2.0 שניתן להורדה.

    תמיכה בנמלים

    • חתימת אפליקציה במצב ניפוי באגים והשקה. חתימה במצב גרסה כוללת תמיכה משולבת באופטימיזציה של zipalign. למידע נוסף, ראו חתימה על האפליקציות שלך.
    • הוספת מערכת בניית נמלים חדשה עם תמיכה בפרויקטים של אינסטרומנטציה של Emma (כיסוי קוד).

    API של Framework

    בקטעים הבאים מפורט מידע על ה-API של מסגרת האפליקציה שפלטפורמת Android 2.0 מספקת.

    רמת ממשק API:

    פלטפורמת Android 2.0 מספקת גרסה מעודכנת של המסגרת API. בדומה לגרסאות קודמות, Android 2.0 API מוקצה לו מזהה מספר שלם – 5 – מאוחסנים במערכת עצמה. המזהה הזה, שנקרא 'רמת API', מאפשר כדי לקבוע בצורה נכונה אם אפליקציה תואמת במערכת, לפני התקנת האפליקציה.

    כדי להשתמש בממשקי API שנוספו ל-Android 2.0 באפליקציה שלכם, צריך: להגדיר את הערך הנכון, "5", במאפיינים של <uses-sdk> במניפסט של האפליקציה.

    מידע נוסף על אופן השימוש ברמת ה-API זמין במסמך בנושא רמות API.

    סיכום השינויים ב-API

    ‫Bluetooth

    • הפעלה או כיבוי של Bluetooth
    • זיהוי מכשירים ושירותים
    • התחברות למכשיר מרוחק באמצעות RFCOMM ושליחה/קבלה של נתונים
    • פרסום שירותי RFCOMM והאזנה לחיבור RFCOMM נכנס

    מתאמי סנכרון

    • ממשקי API חדשים למתאמי סנכרון שאפשר להתחבר לכל קצה עורפי

    מנהל חשבון

    • ממשק API מרכזי של מנהל חשבון לאחסון מאובטח של אסימונים וסיסמאות של אימות וגישה מאובטחת

    אנשי קשר

    • ממשקי API חדשים לאנשי קשר שמאפשרים נתונים מחשבונות מרובים
    • ממשקי API חדשים של framework API ליצירת קשר מהיר מאפשרים למפתחים ליצור תגים ליצירת קשר באפליקציה שלהם. לחיצה על התג פותחת חלון עם רשימה של דרכים ליצירת קשר עם אותו אדם בלחיצה אחת.

    WebView

    • מחלקות שהוצאו משימוש: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    מצלמה

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

    מדיה

    • MediaScanner יוצרת עכשיו תמונות ממוזערות לכל התמונות כשהן מתווספות אל MediaStore.
    • ממשק API חדש לתמונות ממוזערות לאחזור תמונות ממוזערות של תמונות וסרטונים על פי דרישה.

    מסגרת אחרת

    • עיצובי מערכת חדשים ב-android.R.style שמאפשרים להציג בקלות פעילויות על גבי טפט המערכת הנוכחי, או להשאיר את הפעילות הקודמת גלויה ברקע.
    • ממשק ה-API החדש של טפטים האלו מחליף ומרחיב את ממשקי ה-API של הטפטים שהיו בעבר בהקשר, כדי לאפשר לאפליקציות לבקש ולהגדיר את טפט המערכת.
    • ממשקי API חדשים של שירות עוזרים לאפליקציות לטפל כראוי במחזור החיים של השירות, במיוחד במצבים של מחסור בזיכרון, שבהם השירות מפסיק לפעול במהלך הפעלתו.
      • השירות Service.setForeground() הוצא משימוש ועכשיו הוא לא מבצע כל פעולה ביעילות. הוא יוחלף ב-API חדש, startForeground(), שעוזר (ומחייב) שיוך של התראה מתמשכת למצב החזית.
    • עכשיו יש ל-MotionEvent אפשרות לדווח על פרטי מגע סימולטני של מכשירים שתומכים בו. ניתן לעקוב אחר עד שלושה מצביעים בו-זמנית.
    • ל-KeyEvent יש ממשקי API חדשים לשליחת מפתחות, כדי לעזור בהטמעה של נקיטת פעולות בלחיצה ארוכה ובלחיצה ארוכה, וגם מנגנון חדש לביטול לחיצות המקשים (למקשים וירטואליים).
    • ל-windowManager.LayoutParams יש קבועים חדשים שמאפשרים לחלון להוציא את המסך ממצב שינה כשהוא מוצג ולהציג את החלון גם אם המסך נעול. כך אפליקציות יכולות ליישם בצורה נקייה יותר דברים כמו שעונים מעוררים שצריכים להוציא את המכשיר ממצב שינה.
    • ממשקי API חדשים מסוג Intent שמשדרים את מצב העגינה של המכשיר, ומאפשרים לאפליקציות להפעיל פעילויות מיוחדות כשהמכשיר נמצא במחשב או באביזר העגינה של הרכב.

    האירועים המרכזיים הופעלו במפתח הגישה

    Android 2.0 תוכנן לפעול במכשירים שמשתמשים במפתחות וירטואליים של דף הבית, 'תפריט', 'חזרה' ו'חיפוש', במקום מקשים פיזיים. לתמוך במשתמש המתאים ביותר במכשירים האלה, פלטפורמת Android מפעילה עכשיו את הלחצנים האלה בלחיצה על 'זוג מקש', זה עוזר למנוע אירועי לחיצה מקריים שמאפשרים למשתמש ללחוץ על אזור הלחצן ואז לגרור בלי ליצור אירוע.

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

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

    אם האפליקציה שלך תשתמש בממשקי API שנוספו ל-Android 2.0 (רמת API 5), תוכלו להשתמש בממשקי API חדשים כדי לנהל צמדים של אירועים מרכזיים:

    • אם מיירטים את מקש 'חזרה' בפעילות או בתיבת דו-שיח, פשוט להטמיע את השיטה החדשה onBackPressed().
    • אם אתה מיירט את מקש 'הקודם' בתצוגה, עליך לעקוב אחר המפתח אירוע ב'לחיצה על מקש' (דרך startTracking() החדש) method), ואז להפעיל את הפעולה בהקשה על מקש למעלה. אפשר להשתמש בדפוס הבא:
    • Kotlin

      override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.repeatCount == 0) {
                      event.startTracking()
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyDown(keyCode, event)
          }
      }
      
      override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.isTracking && !event.isCanceled) {
                      // *** DO ACTION HERE ***
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyUp(keyCode, event)
          }
      }
      

      Java

      public boolean onKeyDown(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK
                      && event.getRepeatCount() == 0) {
                  event.startTracking();
                  return true;
              }
              return super.onKeyDown(keyCode, event);
          }
      
          public boolean onKeyUp(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
                      && !event.isCanceled()) {
                  // *** DO ACTION HERE ***
                  return true;
              }
              return super.onKeyUp(keyCode, event);
          }
      

    אם ברצונך לעדכן אפליקציה מדור קודם כך שהטיפול בה המפתח פועל באופן תקין גם עבור Android 2.0 וגם עבור גרסאות פלטפורמה ישנות יותר, אפשר להשתמש בגישה הדומה לזו שמוצגת למעלה. הקוד יכול לקלוט את הלחצן 'יעד אירוע' בלחיצה על מקש חץ, הגדרת דגל למעקב אחרי האירוע המרכזי לאחר מכן גם לקלוט את האירוע בלחיצה על מַפְתח, ביצוע הפעולה הרצויה אם מוגדר הערך. מומלץ גם לעקוב אחר שינויים במיקוד ולנקות את המעקב סימון כאשר מקבלים/מאבדים את המיקוד.

    דוח הבדלים בין ממשקי API

    לתצוגה מפורטת של שינויים ב-API ב-Android 2.0 (רמת API 5), בהשוואה את הגרסה הקודמת, ראו את דוח ההבדלים ב-API.