רמת ה-API: 9
למפתחים, פלטפורמת Android 2.3 (GINGERBREAD
) זמינה כרכיב שניתן להורדה ל-Android SDK. הפלטפורמה שניתנת להורדה כוללת
ספריית Android ותמונת מערכת, וגם ערכת סקינים של אמולטור
עוד. כדי להתחיל לפתח או לבדוק עבור Android 2.3, צריך להשתמש ב-Android SDK Manager כדי להוריד את הפלטפורמה ל-SDK.
סקירה כללית על ממשקי API
בקטעים הבאים מופיעה סקירה טכנית של החידושים למפתחים בגרסה 2.3, כולל תכונות חדשות ושינויים ב-API של המסגרת מאז הגרסה הקודמת.
VoIP מבוסס-SIP
הפלטפורמה כוללת עכשיו סטאק פרוטוקול SIP ו-framework API שמאפשר מפתחים אפליקציות של טלפוניה באינטרנט. באמצעות ה-API, אפליקציות יכולות להציע תכונות של שיחות קוליות ללא צורך לנהל פעילויות באתר, ברמת ההעברה בתקשורת או באודיו. אנחנו מטפלים בהם באופן שקוף על ידי ה-SIP API והשירותים של הפלטפורמה.
SIP API זמין בandroid.net.sip
חבילה. סוג המפתח הוא SipManager
, והאפליקציות משתמשות בו כדי להגדיר ולנהל פרופילי SIP, ולאחר מכן להתחיל שיחות אודיו ולקבל שיחות אודיו. אחרי שמתחילים שיחת אודיו, האפליקציות יכולות להשתיק את השיחה, להפעיל את מצב הרמקול, לשלוח צלילים של DTMF ועוד. האפליקציות יכולות להשתמש גם
SipManager
כדי ליצור חיבורי SIP כלליים.
סטאק ה-SIP והשירותים הבסיסיים של הפלטפורמה זמינים במכשירים
לפי שיקול דעתו של היצרן והספק המשויך. לכן, לפני שמשקיפים את הפונקציונליות של השיחות למשתמשים, צריך להשתמש בשיטה isApiSupported()
כדי לבדוק אם יש תמיכה ב-SIP.
כדי להשתמש ב-SIP API, האפליקציות צריכות לבקש הרשאה מהמשתמש על ידי הצהרה על <uses-permission
android:name="android.permission.INTERNET">
ו-<uses-permission
android:name="android.permission.USE_SIP">
בקובצי המניפסט שלהן.
בנוסף, מפתחים יכולים לבקש סינון ב-Google Play, כך שהאפליקציות שלהם לא יהיו גלויות למשתמשים שהמכשירים שלהם לא כוללים את שירותי SIP וסטאק SIP של הפלטפורמה. כדי לבקש סינון, צריך להוסיף את <uses-feature
android:name="android.software.sip"
android:required="true">
ואת <uses-feature
android:name="android.software.sip.voip">
למניפסט של האפליקציה.
מידע נוסף זמין במדריך למפתחים של SIP.
תקשורת מטווח קצר (NFC)
מערכת Android 2.3 כוללת סטאק NFC ו-framework API שמאפשר למפתחים קריאת תגי NDEF שמתגלה כשמשתמש נוגע במכשיר עם NFC כדי לתייג רכיבים שמוטמעים בסטיקרים, בפוסטרים חכמים ואפילו במכשירים אחרים.
הפלטפורמה מספקת את שירותי ה-NFC הבסיסיים שפועלים עם החומרה של המכשיר כדי לזהות תגים כשהם נכנסים לטווח. כשהפלטפורמה מזהה תג, היא מעדכנת את האפליקציות על ידי שידור כוונה (Intent), ומצרפת את הודעות ה-NDEF של התג לכוונה כפרטים נוספים. אפליקציות יכולות ליצור מסנני Intent כדי לזהות הודעות ותגים ממוקדים ולטפל בהם. לדוגמה, אחרי קבלת תג לפי Intent, אפליקציות מחלצות את הודעות ה-NDEF, מאחסנים אותן, שולחים התראות או תטפל בהם בדרכים אחרות.
API NFC זמין בחבילה של android.nfc
. סיווגי המפתח הם:
NfcAdapter
, שמייצג את חומרת ה-NFC במכשיר.NdefMessage
, שמייצג הודעת נתונים מסוג NDEF, הפורמט הסטנדרטי שבו מתבצעת העברה של 'רשומות' עם נתונים בין מכשירים ותגים. האפליקציות יכולות לקבל את ההודעות האלה מאובייקטים מסוג Intent שלACTION_TAG_DISCOVERED
.NdefRecord
, שנשלח ב-NdefMessage
, שמתאר את סוג הנתונים ששותפו ונושא את הנתונים עצמם.
תקשורת NFC מסתמכת על טכנולוגיה אלחוטית בחומרת המכשיר,
התמיכה בתכונות ה-NFC של הפלטפורמה במכשירים ספציפיים נקבעת לפי
של היצרנים שלהם. כדי לבדוק מהי התמיכה ב-NFC במכשיר הנוכחי:
אפליקציות יכולות לקרוא ל-isEnabled()
כדי
לשלוח שאילתה אל NfcAdapter
. עם זאת, ממשק ה-API של NFC תמיד קיים, ללא קשר לתמיכה בחומרה הבסיסית.
כדי להשתמש ב-NFC API, האפליקציות צריכות לבקש הרשאה מהמשתמש על ידי הצהרה על <uses-permission
android:name="android.permission.NFC">
בקובצי המניפסט שלהן.
בנוסף, מפתחים יכולים לבקש סינון ב-Google Play, למשל
המשתמשים במכשירים שלהם לא תומכים בגילוי האפליקציות שלהם
NFC. כדי לבקש סינון, מוסיפים את הערך <uses-feature android:name="android.hardware.nfc"
android:required="true">
למניפסט של האפליקציה.
כדי לעיין באפליקציה לדוגמה שמשתמשת ב-API ל-NFC: NFCDemo
ג'ירוסקופ וחיישנים אחרים
ב-Android 2.3 נוספה תמיכה בפלטפורמה וב-API בכמה סוגים חדשים של קריאות חיישנים – גירוסקופ, וקטור סיבוב, תאוצה לינארית, כוח משיכה ובארומטר. מפתחים יכולים להשתמש בקריאות החיישנים החדשות כדי ליצור אפליקציות שמגיבות במהירות ובקלות לשינויים מדויקים במיקום ובתנועה של המכשיר. אפליקציית Sensor API מדווחת על הג'ירוסקופ ועל שינויים אחרים בחיישנים כדי להביע עניין בין אם הן פועלות במסגרת האפליקציה או במערכות מקוריות
חשוב לזכור שהקבוצה הספציפית של חיישני החומרה שזמינים בכל מכשיר משתנה לפי שיקול דעתו של יצרן המכשיר.
מפתחים יכולים לבקש סינון ב-Google Play, כך שהאפליקציות שלהם לא יהיו גלויות למשתמשים שהמכשירים שלהם לא כוללים חיישן גירוסקופ. כדי לעשות זאת, מוסיפים את <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
למניפסט של האפליקציה.
לפרטים נוספים על ה-API: Sensor
.
תמיכה במספר מצלמות
האפליקציות יכולות עכשיו להשתמש בכל המצלמה שזמינה במכשיר,
לצילום תמונות או סרטונים. בעזרת Camera
, אפליקציות יכולות לשלוח שאילתות לגבי מספר המצלמות הזמינות והמאפיינים הייחודיים של כל אחת מהן.
- בכיתה חדשה של
Camera.CameraInfo
נשמרים מאפיינים תלויי מיקום (כיוון, לפנים או אחוריים). - methods חדשות
getNumberOfCameras()
ו-getCameraInfo()
במחלקהCamera
מאפשרות לאפליקציות לשלוח שאילתות לגבי המצלמות הזמינות ופותחים את המצלמה שהם צריכים. - שיטת
get()
החדשה מאפשרת אפליקציות מאחזרותCamcorderProfile
של מצלמה ספציפית. getJpegEncodingQualityParameter()
החדש מאפשר לאפליקציות לקבל את רמת האיכות של צילום התמונות הסטטיות במצלמה ספציפית.
כדי לראות קוד לדוגמה לגישה למצלמה הקדמית, אפשר לעיין בקטע CameraPreview.java באפליקציית הדוגמה ApiDemos.
ב-Camera API יש גם:
- פרמטרים חדשים למצלמות, כולל מרחק מיקוד, מצב מיקוד וקצב פריימים מקסימלי/מינימלי בתצוגה המקדימה. פונקציות חדשות
getFocusDistances()
,getPreviewFpsRange()
ו-getSupportedPreviewFpsRange()
לקבלת פרמטרים של מצלמה, וגםsetPreviewFpsRange()
להגדרת קצב הפריימים של התצוגה המקדימה.
אפקטים קוליים שניתן לערבב
מסגרת המדיה של הפלטפורמה מוסיפה תמיכה באפקטים אודיו גלובליים או בכל טראק חדש. כולל הגברת הבס, וירטואליזציה של אוזניות, איזון והדהוד.
- חבילת
android.media.audiofx
החדשה מספקת את ממשק API לגישה לאפקטים קוליים. AudioEffect
החדש הוא הכיתה הבסיסית לניהול אפקטים קוליים שסופקו על ידי מסגרת האודיו של Android.- מזהה חדש של הפעלת אודיו שמאפשר לאפליקציה לשייך סדרת אודיו
אפקטים עם מופע של
AudioTrack
אוMediaPlayer
. - קונסטרוקטור חדש של הכיתה
AudioTrack
שמאפשר ליצורAudioTrack
עם מזהה סשן ספציפי. שיטות חדשותattachAuxEffect()
,getAudioSessionId()
ו-setAuxEffectSendLevel()
. attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
וגםsetAuxEffectSendLevel()
חדשים שיטות וסוגים תומכים.
קוד לדוגמה של אפקטים קוליים זמין כאן: AudioFxDemo.java באפליקציה לדוגמה של ApiDemos.
מסגרת המדיה מוסיפה גם:
- תמיכה חדשה בתג גובה במטא-נתונים של EXIF בקובצי JPEG. שיטה חדשה
אמצעי תשלום אחד (
getAltitude()
) אל מאחזרים את הערך של תג הגובה EXIF. - שיטה חדשה של
setOrientationHint()
מאפשרת לאפליקציה לעדכן אתMediaRecorder
לגבי הכיוון במהלך צילום הווידאו.
מנהל ההורדות
הפלטפורמה כוללת שירות מערכת חדש של DownloadManager
שמטפל בהורדות HTTP ממושכות. אפליקציות יכולות לבקש שה-URI יוריד לקובץ יעד מסוים. DownloadManager
המערכת תבצע את ההורדה ברקע, תוך שמירה על אינטראקציות HTTP
ניסיון חוזר של הורדות לאחר כשלים או בעקבות שינויי קישוריות ומערכת
מופעלת מחדש.
- אפליקציות יכולות לקבל מופע של המחלקה
DownloadManager
על ידי קריאה ל-getSystemService(String)
והעברתDOWNLOAD_SERVICE
. אפליקציות שמבקשות הורדות דרך ה-API הזה צריכות לרשום מקלט שידורים עבורACTION_NOTIFICATION_CLICKED
, בהתאם כאשר המשתמש לוחץ על הורדה פועלת בהתראה או ממשק משתמש של הורדות. - המחלקה
DownloadManager.Request
מאפשרת לספק את כל המידע הדרוש כדי לבקש הורדה חדשה, כמו URI של בקשה ויעד הורדה. מזהה ה-URI של הבקשה הוא הפרמטר היחיד הנדרש. חשוב לדעת שהיעד שמוגדר כברירת מחדל להורדה הוא נפח אחסון משותף, שבו המערכת יכולה למחוק את הקובץ אם היא צריכה לפנות מקום לשימוש במערכת. כדי לשמור הורדה באופן קבוע, צריך לציין יעד להורדה באחסון חיצוני (ראוsetDestinationUri(Uri)
). - בכיתה
DownloadManager.Query
יש שיטות שמאפשרות לאפליקציה לבצע שאילתות ולסנן הורדות פעילות.
StrictMode
כדי לעזור למפתחים לעקוב אחרי הביצועים של האפליקציות שלהם ולשפר אותם, בפלטפורמה יש שירות חדש שנקרא StrictMode
.
כאשר הוא מוטמע באפליקציה, StrictMode קולט ושולח התראות
מפתח של פעילות מקרית או ברשת שעשויה לפגוע באפליקציה
ביצועים, כמו פעילות שמתרחשת ב-thread הראשי של האפליקציה
(כשמתקבלות פעולות בממשק המשתמש ומתבצעות גם אנימציות).
מפתחים יכולים להעריך את בעיות השימוש ברשת ובדיסק שהועלו ב-StrictMode
ולתקן אותן לפי הצורך, כדי שהשרשור הראשי יהיה יותר רספונסיבי
לא ניתן להציג למשתמשים תיבות דו-שיח של ANR.
StrictMode
היא הכיתה המרכזית וזהו נקודת השילוב העיקרית עם המערכת והמכונה הווירטואלית. הכיתה מספקת שיטות נוחות ניהול כללי מדיניות ה-thread וה-VM שחלים על המכונה.StrictMode.ThreadPolicy
ו-StrictMode.VmPolicy
מחזיקים את כללי המדיניות שהגדרת וחלים עליהם מכונות thread ו-VM.
למידע נוסף על השימוש ב-StrictMode לאופטימיזציה של האפליקציה, אפשר לעיין במסמכי העזרה של הכיתה ובקוד לדוגמה בכתובת android.os.StrictMode
.
מסגרת UI
- תמיכה בגלילת יתר
- תמיכה חדשה לגלילת יתר בתצוגות ובווידג'טים. בתצוגות, אפליקציות יכולות להפעיל או להשבית גלילה מעבר לקצה בתצוגה מסוימת, להגדיר את מצב הגלילה מעבר לקצה, לשלוט במרחק הגלילה מעבר לקצה ולטפל בתוצאות של גלילה מעבר לקצה.
- בווידג'טים, אפליקציות יכולות לשלוט במאפיינים של גלילת יתר כמו
אנימציה, קפיציות ומרחק גדול מדי. מידע נוסף זמין במאמרים
android.view.View
ו-android.widget.OverScroller
. ViewConfiguration
מספק גם את השיטותgetScaledOverflingDistance()
ו-getScaledOverscrollDistance()
.overScrollMode
,overScrollFooter
חדשים וגם מאפייניoverScrollHeader
עבור רכיבי<ListView>
, לשליטה בהתנהגות של גלילת יתר.
- תמיכה בסינון באמצעות מגע
- תמיכה חדשה בסינון מגע, שמאפשרת לאפליקציה לשפר את האבטחה של תצוגות שמספקות גישה לפונקציונליות רגישה. לדוגמה, סינון המגע מתאים כדי להבטיח את האבטחה של פעולות משתמש כגון הענקת בקשת הרשאה, ביצוע רכישה או לחיצה על מודעה. פרטים נוספים זמינים במאמר הצגת מסמכי התיעוד של הכיתה.
- מאפיין
filterTouchesWhenObscured
חדש לרכיבי תצוגה, שמציין אם לסנן נגיעות כשחלון התצוגה מוסתר על ידי חלון גלוי אחר. אם המדיניות מוגדרת לערך"true"
, התצוגה לא לקבל נגיעות בכל פעם שמופיע טוסט, תיבת דו-שיח או חלון אחר מעל החלון של הצפייה. פרטים נוספים זמינים במאמר הצגת מסמכי העזרה בנושא אבטחה.
קוד לדוגמה לסינון מגע: SecureView.Java באפליקציה לדוגמה של ApiDemos.
- ניהול אירועים משופר
- מחלקה בסיסית חדשה עבור אירועים לקלט,
InputEvent
. הכיתה מספקת שיטות שמאפשרות לאפליקציות לקבוע את משמעות האירוע, למשל באמצעות שליחת שאילתה ל-inputDevice שממנו בוצע האירוע.KeyEvent
ו-MotionEvent
הם מחלקות משנה שלInputEvent
. - מחלקה בסיסית חדשה למכשירים לקליטת נתונים,
InputDevice
. הכיתה מאחסנת מידע על היכולות של מכשיר קלט מסוים מספקת שיטות שמאפשרות לאפליקציות לקבוע איך לפרש אירועים של מכשיר לקליטת נתונים.
- מחלקה בסיסית חדשה עבור אירועים לקלט,
- אירועי תנועה משופרים
- ה-API של
MotionEvent
מורחב כך שיכלול 'מזהה מצביע' מידע, שמאפשר לאפליקציות לעקוב אחר אצבעות בודדות בזמן שהן לעבור למעלה ולמטה. הכיתה מוסיפה מגוון שיטות שמאפשרות לאפליקציה לעבוד ביעילות עם אירועי תנועה. - למערכת הקלט יש עכשיו לוגיקה ליצירת אירועי תנועה עם פרטים על מזהים של מצביע העכבר, סינתזות של מזהים כסמנים חדשים, לא פעילים. המערכת עוקבת אחרי מספר מזהי סמן בנפרד במהלך אירוע תנועה, ומבצעת הערכה של המרחק בין הקבוצה האחרונה של הסימנים לבין הקבוצה הבאה כדי להבטיח המשכיות תקינה של הסימנים.
- ה-API של
- פקדים לבחירת טקסט
- שיטה חדשה של
setComposingRegion
מאפשרת לאפליקציה לסמן אזור של טקסט כטקסט שנערך, תוך שמירה על הסגנון הנוכחי. א' השיטהgetSelectedText
מחזירה את הטקסט שנבחר אל תרגום מכונה. השיטות זמינות ב-BaseInputConnection
, ב-InputConnection
וב-InputConnectionWrapper
. - מאפיינים חדשים
textSelectHandle
,textSelectHandleLeft
,textSelectHandleRight
ו-textSelectHandleWindowStyle
ל-<TextView>
, שמשמשים להפניה לרכיבי drawable שיעזרו להציג עוגנים לבחירת טקסט ואת הסגנון של החלון המכיל.
- שיטה חדשה של
- בקרת הפעילות בחשבון
ActivityInfo
מוסיף קבועים חדשים לניהול כיוון הפעילות:SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
,SCREEN_ORIENTATION_REVERSE_PORTRAIT
,SCREEN_ORIENTATION_SENSOR_LANDSCAPE
, וגםSCREEN_ORIENTATION_SENSOR_PORTRAIT
.- קבוע חדש
IMPORTANCE_PERCEPTIBLE
עבור השדהimportance
ב-ActivityManager.RunningAppProcessInfo
. הערך מציין שתהליך מסוים מפעיל משהו שנחשב שאפשר להבחין באופן פעיל למשתמש. לדוגמה: אפליקציה שמבצעת השמעת מוזיקת רקע. - המתודה Activity.setPersistent(boolean) לסימון ההגדרה של פעילות קבועה הוצאה משימוש, וההטמעה מתבצעת ללא תפעול.
- הסגנונות של הסמלים והטקסט של ההתראות
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
ו-TextAppearance.StatusBar.Title
חדשים לניהול סגנון ההתראות.
- הוספת שאר השיטות של OpenGL ES 2.0
glDrawElements()
וגםglVertexAttribPointer()
בכיתהandroid.opengl.GLES20
. - נוספה תמיכה בפורמט הפיקסלים
YV12
, שהוא פורמט YCrCb שטוח 4:2:0. - סוג ספק חדש
AlarmClock
להגדרת התראה או לטיפול בהתראה. הספק מכיל פעולת Intent מסוגACTION_SET_ALARM
ואת האפשרויות הנוספות שאפשר להשתמש בהן כדי להפעיל פעילות להגדרת שעון מעורר חדש באפליקציית שעון מעורר. לאפליקציות המעוניינות לקבל ה-Intent שלSET_ALARM
צריך ליצור פעילות שמחייבת את התחילית את ההרשאה SET_ALARM. אפליקציות שרוצות ליצור חשבון חדש ההתראה צריכה להשתמש ב-Context.startActivity()
, כדי שלמשתמש תהיה אפשרות לבחור באיזה יישום של שעון מעורר להשתמש. MediaStore
תומך בפעולה חדשה של כוונה (Intent),PLAY_FROM_SEARCH
, שמאפשרת לאפליקציה לחפש מדיה של מוזיקה ולהפעיל תוכן מהתוצאה באופן אוטומטי, אם הדבר אפשרי. לדוגמה, האפליקציה יכולה להפעיל את ה-Intent הזה כתוצאה מפקודת זיהוי קולי כדי להאזין למוזיקה.MediaStore
מוסיף גם את הדגל החדשMEDIA_IGNORE_FILENAME
, שמורה לסורק המדיה להתעלם ממדיה בספרייה המכילה ובספריות המשנה שלה. המפתחים יכולים להשתמש באפשרות הזו כדי למנוע הצגת גרפיקה בגלריה, וכדי למנוע הצגת מוזיקה וצלילים של אפליקציות באפליקציית המוזיקה.- הספק
Settings
מוסיף את הפעולות החדשות של ActivityAPPLICATION_DETAILS_SETTINGS
ו-MANAGE_ALL_APPLICATIONS_SETTINGS
, שמאפשרות לאפליקציה להציג את מסך הפרטים של אפליקציה ספציפית או להציג את המסך Manage Applications (ניהול האפליקציות). - ספק
ContactsContract
מוסיף את סוג הנתוניםContactsContract.CommonDataKinds.SipAddress
, כדי לאחסן את כתובת ה-SIP (טלפוניה באינטרנט) של איש הקשר. - עכשיו ה-
LocationManager
עוקב אחרי בקשות של אפליקציות שמובילות לחסימות מצב שינה או לחסימות Wi-Fi, בהתאם ל-WorkSource
, כיתת ניהול מערכת שמזהה את האפליקציה.LocationManager
עוקב אחרי של כל הלקוחות שמבקשים עדכונים תקופתיים, ומיידעים את הספקים שלהם עליהם כפרמטרWorkSource
, בעת הגדרת המינימום זמני עדכון. ספק המיקום ברשת משתמש ב-WorkSource
כדי לעקוב אחרי נעילת ההתעוררות והנעילה של Wi-Fi שהאפליקציה יזמה, ומוסיף את הנתונים האלה לדיווח על השימוש בסוללה של האפליקציה בדף 'ניהול האפליקציות'. - ב
LocationManager
נוספו כמה שיטות חדשות לאפשר לפעילות להירשם לקבלת עדכוני מיקום תקופתיים או חד-פעמיים לפי קריטריונים מסוימים (ראו בהמשך). - מחלקה חדשה של
Criteria
מאפשרת לאפליקציה לציין קבוצת קריטריונים לבחירת ספק מיקום. לדוגמה, ספקים יכולים להיות מסודרת לפי דיוק, צריכת חשמל, יכולת לדווח על גובה, מהירות, ורמת הנשיאה, והעלות הכספית. - ב-Android 2.3 נוספה
StorageManager
חדשה שתומכת בקובצי OBB (Opaque Binary Blob). התמיכה בפלטפורמה של קובצי OBB זמינה ב-Android 2.3, אבל כלים לפיתוח ליצירה ולניהול של קובצי OBB יהיו זמינים רק בתחילת 2011. - פלטפורמת Android 2.3 מוסיפה תמיכה רשמית במכשירים שלא כוללים כרטיסי SD (אבל היא מספקת מחיצה של כרטיס SD וירטואלי, כשאין כרטיס SD פיזי זמין). שיטת נוחות,
isExternalStorageRemovable()
, מאפשרת לאפליקציות לקבוע אם יש כרטיס SD פיזי. - קבועים חדשים להצהרה על תכונות חומרה ותוכנה. הרשימה מופיעה בקטע קבועים של תכונות חדשות בהמשך.
PackageInfo
מוסיף שדות חדשיםfirstInstallTime
ו-lastUpdateTime
ששומרים את השעה של התקנת החבילה ואת השעה של העדכון האחרון.- שיטה חדשה של
getProviderInfo()
לאחזור כל המידע הידוע על סוג מסוים של ספק תוכן. TelephonyManager
מוסיף את הקבועNETWORK_TYPE_EVDO_B
לציון ה-CDMA סוג רשת EVDO Rev B.- החזרה באמצעות שיטת
getPsc()
חדשה קוד המעורבל הראשי של תא ההצגה ברשת UMTS. NativeActivity
הוא סוג חדש של סיווג Activity, שבו קריאות החזרה (callbacks) של מחזור החיים מיושמות ישירות בקוד מקורי. א'NativeActivity
והקוד המקורי שלו מריצים במערכת בדיוק כמו פעילויות אחרות - באופן ספציפי הן פועלות במכשיר Android בתהליך המערכת של האפליקציה והפעלה שלה ב-thread הראשי של ממשק המשתמש של האפליקציה, והם מקבלים את אותו קריאה חוזרת (callback) במחזור החיים כמו פעילויות אחרות.- מחלקה חדשה של
InputQueue
וממשק קריאה חוזרת (callback) מאפשר להפעיל מודעות מותאמות ניהול קוד בתור אירועים. - ממשק
SurfaceHolder.Callback2
החדש מאפשר שימוש בקוד נייטיב לנהלSurfaceHolder
. - שיטות חדשות של
takeInputQueue
ו-takeSurface()
ב-Window
מאפשרות לקוד מקורי לנהל אירועים וממשקים. dalvik.system
מסירה כמה כיתות שהוצאו משימוש.- ספריות הליבה של Dalvik:
- אוספים חדשים:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- כלי
Arrays
חדשים:binarySearch()
,copyOf()
,copyOfRange()
ועוד. CookieManager
עבורHttpURLConnection
.- ממשקי API מלאים יותר של רשתות:
InterfaceAddress
,NetworkInterface
ו-IDN
- אמצעי בקרה לקריאה ולכתיבה ב-
File
String.isEmpty()
Normalizer
וגםNormalizer.Form
- שקעי שרת משופרים ב-
javax.net.ssl
.
- אוספים חדשים:
- מאפיין
xlargeScreens
חדש עבור<supports-screens>
כדי לציין אם האפליקציה תומכת גורמי צורה גדולים במיוחד של מסכים גדולים. פרטים נוספים זמינים במאמר תמיכה במספר מסכים. - ערכים חדשים למאפיין
android:screenOrientation
של רכיב<activity>
:"reverseLandscape"
— הפעילות רוצה שהמסך יהיה בכיוון לרוחב, הפוך לכיוון הרגיל של המסך בכיוון לרוחב."reversePortrait"
— במסגרת הפעילות צריך המסך בפריסה לאורך, בכיוון ההפוך מהרגיל לאורך."sensorLandscape"
— במסגרת הפעילות צריך המסך בפריסה לרוחב, אבל יכול להשתמש בחיישן כדי לשנות לכיוון המסך."sensorPortrait"
— במסגרת הפעילות צריך המסך לאורך, אבל יכול להשתמש בחיישן כדי לשנות את הכיוון שהמסך פונה אליו."fullSensor"
— הכיוון נקבע לפי חיישן כיוון: המסך יסתובב בהתאם לאופן שבו המשתמש יזיז את במכשיר. כך מתאפשרת כל אחת מ-4 הסבבים האפשריים, ללא קשר בדרך כלל, (לדוגמה, מכשירים מסוימים לא משתמשים בדרך כלל ב-180 מעלות ).
com.android.permission.SET_ALARM
– מאפשרת אפליקציה לשידור Intent כדי להגדיר התראה למשתמש. פעילות שמטפלת פעולת ה-IntentSET_ALARM
צריכה את ההרשאה הזו.android.permission.USE_SIP
— הרשאה שמאפשרת לאפליקציה להשתמש ב-SIP API
כדי לבצע או לקבל שיחות באינטרנט.android.permission.NFC
– מאפשרת לאפליקציה להשתמשNFC API
כדי לקרוא תגי NFC.android.hardware.audio.low_latency
– האפליקציה משתמשת בצינור עיבוד נתונים של אודיו עם זמן אחזור קצר במכשיר, והיא רגישה לעיכובים או להשהיות בקלט או בפלט של האודיו.android.hardware.camera.front
– האפליקציה משתמשת במצלמה הקדמית במכשיר.android.hardware.nfc
— האפליקציה משתמשת בתכונות הרדיו של NFC במכשיר.android.hardware.sensor.barometer
– האפליקציה משתמשת ברומטר.android.hardware.sensor.gyroscope
– האפליקציה משתמשת בחיישן הגירוסקופ של המכשיר.android.software.sip
– האפליקציה משתמשת ב-SIP API במכשיר.android.software.sip.voip
– האפליקציה משתמשת ב-VoIP מבוסס SIP שירות במכשיר.android.hardware.touchscreen.multitouch.jazzhand
– האפליקציה משתמשת ביכולות מתקדמות של מגע רב-נקודתי במסך המכשיר, כדי לעקוב אחרי חמש נקודות או יותר באופן עצמאי לחלוטין.
מסכים גדולים במיוחד
הפלטפורמה תומכת עכשיו בגודלי מסך גדולים במיוחד, כמו אלה שעשויים להופיע במכשירי טאבלט. מפתחים יכולים לציין שהאפליקציות שלהם תוכננו לתמוך בגודלי מסך גדולים במיוחד על ידי הוספת רכיב <supports
screens ... android:xlargeScreens="true">
לקובצי המניפסט שלהם. אפליקציות יכולות להשתמש במגדיר משאבים חדש, xlarge
, כדי לתייג משאבים שספציפיים למסכים גדולים במיוחד. עבור
לפרטים על האופן שבו ניתן לתמוך במסכים גדולים במיוחד ובגדלים אחרים, ראו תמיכה בריבוי
מסכים.
גרפיקה
ספקי תוכן
מיקום
אחסון
מנהל החבילות
טלפוניה
גישה מקורית למחזור החיים של פעילות, לחלונות
ב-Android 2.3 מוצגת קבוצה רחבה של ממשקי API לאפליקציות שמשתמשות בקוד מקומי. רמות העניין של אפליקציות כאלה כוללות:
כדי לקבל מידע מלא על עבודה עם קוד נייטיב או כדי להוריד את ה-NDK: תוכלו לעיין בדף Android NDK.
Dalvik Runtime
רכיבים ומאפיינים חדשים במניפסט
הרשאות חדשות
מאפיינים קבועים חדשים
לפלטפורמה נוספו כמה תכונות חומרה חדשות שהמפתחים יכולים להצהיר עליהן במניפסטים של האפליקציה בהתאם לדרישות של האפליקציות שלהם. הזה מאפשרת למפתחים לשלוט באופן הסינון של האפליקציה שלהם, כשהיא מתפרסמת בתאריך Google Play.
מידע מלא על הצהרת מאפיינים ועל שימוש בהם לסינון זמין במסמכי העזרה של <uses-feature>
.
דוח הבדלים בין ממשקי API
כדי לראות תצוגה מפורטת של כל השינויים ב-API ב-Android 2.3 (רמת API 9), אפשר לעיין בדוח ההבדלים ב-API.
רמת ה-API
פלטפורמת Android 2.3 מספקת גרסה מעודכנת של ממשק ה-API של framework. ממשק ה-API של Android 2.3 מקבלים מזהה של מספר שלם – 9 – כלומר מאוחסנים במערכת עצמה. המזהה הזה, שנקרא 'רמת API', מאפשר כדי לקבוע בצורה נכונה אם אפליקציה תואמת במערכת, לפני התקנת האפליקציה.
כדי להשתמש בממשקי API שהוצגו ב-Android 2.3 באפליקציה, צריך לקמפל את האפליקציה מול ספריית Android שסופקת בפלטפורמת Android 2.3 SDK. בהתאם לצרכים שלכם, ייתכן
צריך להוסיף גם android:minSdkVersion="9"
לרכיב <uses-sdk>
. אם האפליקציה מיועדת לפעול רק ב-Android מגרסה 2.3 ואילך,
הצהרה על המאפיין מונעת את התקנת האפליקציה בשלב מוקדם יותר
של הפלטפורמה.
מידע נוסף זמין במאמר מהו רמת API?