ממשקי API של Android 2.2

רמת ה-API: 8

Android 2.2 היא גרסה משנית של הפלטפורמה, שכוללת תכונות למשתמש, תכונות למפתחים, שינויים ב-API ותיקוני באגים. מידע על תכונות למפתחים ועל שינויים ב-API זמין בקטע Framework API.

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

רגעי השיא של הפלטפורמה

ברשימת המאפיינים החדשים של משתמשים והתכונות הבולטות בפלטפורמה של Android 2.2 מפורטות התכונות החדשות של המשתמשים והתכונות הבולטות בפלטפורמה.

רמת ה-API

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

כדי להשתמש בממשקי API שהוצגו ב-Android 2.2 באפליקציה, צריך להגדיר את הערך המתאים, '8', במאפייני android:minSdkVersion של הרכיב <uses-sdk> במניפסט של האפליקציה.

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

שינויים ב-Framework API

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

התקנת אפליקציות באמצעי אחסון חיצוני

פלטפורמת Android מאפשרת עכשיו לאפליקציות לבקש התקנה על מדיית האחסון החיצונית של המכשיר (כמו כרטיס ה-SD), כחלופה להתקנה בזיכרון הפנימי של המכשיר.

מפתחי אפליקציות יכולים לציין את מיקום ההתקנה המועדף של האפליקציות שלהם באמצעות מאפיין חדש של <manifest> בקובץ המניפסט, android:installLocation. המאפיין תומך בשלושה ערכים: "internalOnly", "preferExternal" ו-"auto". בזמן ההתקנה, המערכת בודקת את הערך של android:installLocation ומתקינה את האפליקציה .apk לפי המיקום המועדף, אם אפשר. אם האפליקציה ביקשה התקנה חיצונית, המערכת מתקינה אותה במחיצה פרטית מוצפנת במדיה החיצונית. אחרי שמתקינים קובץ APK של אפליקציה באופן חיצוני, המערכת מאפשרת למשתמש לשנות את מיקום האחסון של קובץ ה-APK ולהעביר אותו לזיכרון הפנימי של המכשיר אם יש צורך (ולהפך), דרך 'ניהול האפליקציות' בהגדרות המשתמש.

כברירת מחדל, המערכת מתקינה את כל האפליקציות בזיכרון הפנימי של המכשיר, מלבד אלה שמבקשות במפורש התקנה חיצונית. כלומר, המערכת תמיד תתקין אפליקציות מדור קודם בזיכרון הפנימי, כי אין להן גישה למאפיין android:installLocation. עם זאת, אפשר להגדיר ולקמפל אפליקציה מדור קודם כך שתתקין באופן פנימי בגרסאות ישנות יותר של הפלטפורמה, ותתקין באופן חיצוני בפלטפורמות Android 2.2 ואילך, במקרה הצורך.

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

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

גיבוי נתונים

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

גרפיקה

מדיה

  • ממשקי API חדשים ב-android.media.AudioManager לניהול המיקוד באודיו, בקרת התעבורה, אובדן זמני של המיקוד באודיו, הדחקה.
  • כוונה חדשה לשידור להפניית אודיו ל-SCO – ACTION_SCO_AUDIO_STATE_CHANGED עם נתונים נוספים שמציינים מצב חדש.
  • ממשקי API חדשים ב-SoundPool לזיהוי השלמת טעינת האודיו.
  • ממשקי API חדשים ב-SoundPool להשהיה אוטומטית ולהמשך אוטומטי.
  • ממשקי API חדשים ב-MediaRecorder להגדרת הגדרות אודיו למספר הערוצים, לקצבי הקידוד והדגימה ולקצב הדגימה.
  • ממשקי API חדשים להוספת קבצים למסד הנתונים של המדיה, כדי שהם יסתננו באופן אוטומטי. פרטים נוספים זמינים בMediaScannerConnection.scanFile ובMediaScannerConnection.OnScanCompletedListener.

זיהוי דיבור ומנועי זיהוי של צד שלישי

  • הפלטפורמה מספקת ממשקי API חדשים לזיהוי דיבור שמאפשרים לאפליקציות ליצור אינטראקציה עשירה יותר עם מערכת זיהוי הקול הזמינה. לדוגמה, ממשקי ה-API מספיקים כדי לשלב זיהוי קולי באופן מעמיק ב-IME.
  • הפלטפורמה מספקת גם סיווג בסיס RecognitionService שמאפשר למפתחים של צד שלישי ליצור מנועי זיהוי של יישומי פלאגין.
  • ממשק RecognitionListener חדש לקבלת קריאות חזרה.
  • רכיבים נוספים חדשים של RecognizerIntent שמאפשרים לאפליקציית מבקש להגדיר פרטים כמו שפה מועדפת, אורך מינימלי במילישניות וכו'.

מצלמה ומצלמת וידאו

  • שינויים ב-Camera Preview API כדי לשפר את היעילות של צינור עיבוד הנתונים של התצוגה המקדימה.
  • כיוון תצוגה חדש למצלמה (עכשיו אפשר להשתמש בה בפריסה לאורך).
  • ממשקי API חדשים ב-android.hardware.Camera לניהול רמת הזום.
  • ממשקי API חדשים android.hardware.Camera.Parameters לשליחת שאילתות ולהגדרת ההגדרות של מצלמת המכשיר, כמו אורך מוקד, חשיפה, רמת זום, זווית צפייה ועוד.
  • כלי חדש thumbnail לתמונות ממוזערות של סרטונים ותמונות.
  • הכיתות החדשות CamcorderProfile ו-CamcorderProfile מאפשרות לאפליקציות לקבוע את יכולות המצלמה של חומרת המכשיר.
  • תמיכה חדשה ב-android.media.ExifInterface לאחזור נתוני GPS ואורך מוקד.

מנהל מדיניות המכשיר

ממשקי API חדשים לניהול מדיניות המכשיר מאפשרים למפתחים לכתוב אפליקציות 'אדמין מכשיר' שיכולות לשלוט בתכונות האבטחה של המכשיר, כמו חוזק הסיסמה המינימלי, מחיקה של נתונים וכו'. המשתמשים יכולים לבחור את האדמינים שיופעלו במכשירים שלהם. למידע נוסף, אפשר לעיין ב-class של android.app.admin או בקוד לדוגמה של האפליקציה ב-DeviceAdminSample.java.

מסגרת UI

  • מצבי ממשק משתמש חדשים – 'מצב רכב' ו'מצב לילה' – ו-UiModeManager מאפשרים לאפליקציות להתאים את ממשק המשתמש שלהן למצבי משתמש ספציפיים.
  • ScaleGestureDetector חדש שמאפשר ל-Views לזהות ולטפל בתנועות טרנספורמציה שכוללות יותר ממחווה אחת (מגע רב-משתמש) באמצעות MotionEvents שסופקו.
  • שיפורים בדיווח על אירועי מגע רב-משתמש באובייקטים מסוג MotionEvent.
  • השם של מאפיין הפריסה fill_parent השתנה ל-match_parent. השינוי הזה משפיע גם על קוד XML וגם על קוד Java (ראו ViewGroup.LayoutParams). חשוב לזכור שהפלטפורמה תמשיך לכבד את השימוש ב-fill_parent באפליקציות מדור קודם.
  • מאפייני פריסה חדשים, tabStripEnabled,‏ tabStripRight ו-tabStripLeft, מאפשרים למפתחים להתאים אישית את הפסים התחתונים של TabWidgets.
  • תמיכה משופרת בתיבת דו-שיח מנוהלות ב'פעילות'.

חשבונות וסנכרון

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

מאפיינים ורכיבים חדשים במניפסט

  • כדי לציין את מיקום ההתקנה המועדף של האפליקציה (ראו התקנת אפליקציות על מדיה חיצונית לאחסון למעלה):
    • מאפיין android:installLocation חדש של הרכיב <manifest>. מציין את מיקום ברירת המחדל להתקנה שהוגדר על ידי אפליקציה.
  • לניהול הגיבוי של נתוני המשתמשים (מידע נוסף זמין בקטע מנהל הגיבויים שלמעלה):
    • מאפיין android:backupAgent חדש של הרכיב <application>. שם הרכיב של תת-הסוג של BackupAgent שסופק על ידי האפליקציה לטיפול בפעולות הגיבוי או השחזור, אם יש כאלה.
    • מאפיין android:restoreAnyVersion חדש של הרכיב <application>. ערך בוליאני שמציין אם האפליקציה מוכנה לנסות לשחזר מערכי נתונים שהוגדרו לגיבוי, גם אם הגיבוי נראה כגרסה חדשה יותר של האפליקציה מזו שמותקנת כרגע במכשיר.
  • כדי לנהל את המהדר של ה-JIT בפלטפורמה:
    • מאפיין android:vmSafeMode חדש של הרכיב <application>. ערך בוליאני שקובע אם להשבית אופטימיזציות של מהדר JIT במהלך הרצה של האפליקציה.

הרשאות

  • android.permission.BIND_DEVICE_ADMIN – כל מקלט שידור לניהול המכשיר חייב לדרוש את ההרשאה הזו, כדי להבטיח שרק המערכת תוכל לקיים איתו אינטראקציה.
  • android.permission.KILL_BACKGROUND_PROCESSES — מאפשר לאפליקציה לבצע קריאה ל-killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER – כל WallpaperService חייב לדרוש את ההרשאה הזו, כדי לוודא שרק המערכת יכולה לקיים אינטראקציה איתו.
  • android.permission.SET_TIME – מאפשרת לאפליקציה להגדיר את שעון המערכת.

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

כדי לראות תצוגה מפורטת של כל השינויים ב-API ב-Android 2.2 (רמת API 8), אפשר לעיין בדוח ההבדלים ב-API.