سطح API: 9
برای توسعه دهندگان، پلتفرم Android 2.3 ( GINGERBREAD
) به عنوان یک جزء قابل دانلود برای Android SDK در دسترس است. پلتفرم قابل دانلود شامل کتابخانه اندروید و تصویر سیستم، و همچنین مجموعه ای از پوسته های شبیه ساز و موارد دیگر است. برای شروع توسعه یا آزمایش با Android 2.3، از Android SDK Manager برای دانلود پلتفرم در SDK خود استفاده کنید.
نمای کلی API
بخشهای زیر یک نمای کلی فنی از آنچه برای توسعهدهندگان نسخه 2.3 جدید است، شامل ویژگیهای جدید و تغییرات در چارچوب API نسبت به نسخه قبلی ارائه میدهد.
VoIP مبتنی بر SIP
این پلتفرم اکنون شامل یک پشته پروتکل SIP و چارچوب API است که به توسعه دهندگان اجازه می دهد برنامه های تلفن اینترنتی بسازند. با استفاده از API، برنامهها میتوانند ویژگیهای تماس صوتی را بدون نیاز به مدیریت جلسات، ارتباطات در سطح حملونقل یا صدا ارائه دهند - این ویژگیها بهطور شفاف توسط API و سرویسهای SIP پلت فرم مدیریت میشوند.
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 و سرویسهای پلتفرم نیستند، قابل شناسایی نباشد. برای درخواست فیلتر کردن، <uses-feature android:name="android.software.sip" android:required="true">
و <uses-feature android:name="android.software.sip.voip">
را به برنامه اضافه کنید. آشکار
برای اطلاعات بیشتر، راهنمای توسعه دهنده SIP را بخوانید.
ارتباطات میدان نزدیک (NFC)
Android 2.3 شامل یک پشته NFC و API چارچوب است که به توسعهدهندگان اجازه میدهد برچسبهای NDEF را بخوانند که وقتی کاربر یک دستگاه دارای NFC را لمس میکند تا عناصر جاسازیشده در استیکرها، پوسترهای هوشمند و حتی دستگاههای دیگر را برچسبگذاری کند.
این پلتفرم خدمات NFC اساسی را ارائه میکند که با سختافزار دستگاه کار میکنند تا وقتی تگها وارد محدوده شوند، برچسبها را کشف کنند. با کشف یک برچسب، پلتفرم با پخش یک Intent، برنامهها را مطلع میکند و پیامهای NDEF برچسب را به عنوان موارد اضافی به Intent اضافه میکند. برنامه ها می توانند فیلترهای Intent را برای شناسایی و مدیریت برچسب ها و پیام های هدفمند ایجاد کنند. به عنوان مثال، پس از دریافت برچسب توسط Intent، برنامهها پیامهای NDEF را استخراج میکنند، آنها را ذخیره میکنند، به کاربر هشدار میدهند یا به روشهای دیگری با آنها برخورد میکنند.
NFC API در بسته android.nfc
موجود است. کلاس های کلیدی عبارتند از:
-
NfcAdapter
که نشان دهنده سخت افزار NFC روی دستگاه است. -
NdefMessage
، که یک پیام داده NDEF را نشان می دهد، فرمت استانداردی که در آن "سوابق" حامل داده بین دستگاه ها و برچسب ها منتقل می شود. برنامهها میتوانند این پیامها را ازACTION_TAG_DISCOVERED
Intent دریافت کنند. -
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">
را به مانیفست برنامه اضافه کنید.
برای مشاهده نمونه برنامهای که از NFC API استفاده میکند، NFCDemo را ببینید.
ژیروسکوپ و سنسورهای دیگر
اندروید 2.3 پلتفرم و پشتیبانی API را برای چندین نوع جدید خواندن حسگر اضافه می کند - ژیروسکوپ، بردار چرخش، شتاب خطی، گرانش و فشارسنج. توسعه دهندگان می توانند از خوانش حسگرهای جدید برای ایجاد برنامه هایی استفاده کنند که به سرعت و به آرامی به تغییرات دقیق در موقعیت و حرکت دستگاه پاسخ می دهند. Sensor API تغییرات ژیروسکوپ و سایر حسگرها را به برنامههای کاربردی علاقهمند گزارش میدهد، خواه در چارچوب برنامه اجرا شوند یا در کد اصلی.
توجه داشته باشید که مجموعه خاصی از سنسورهای سخت افزاری موجود در هر دستگاهی بنا به صلاحدید سازنده دستگاه متفاوت است.
توسعه دهندگان می توانند در Google Play درخواست فیلتر کنند، به طوری که برنامه های آنها برای کاربرانی که دستگاه هایشان سنسور ژیروسکوپ ارائه نمی دهند قابل کشف نباشد. برای انجام این کار، <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true">
را به مانیفست برنامه اضافه کنید.
برای جزئیات API، به Sensor
مراجعه کنید.
پشتیبانی از دوربین های متعدد
اکنون برنامهها میتوانند از هر دوربینی که در دستگاه موجود است، برای گرفتن عکس یا فیلم استفاده کنند. Camera
به برنامههای کاربردی اجازه میدهد تعداد دوربینهای موجود و ویژگیهای منحصربهفرد هر کدام را جستجو کنند.
- کلاس
Camera.CameraInfo
جدید ویژگی های موقعیتی دوربین (جهت گیری، رو به جلو یا عقب) را ذخیره می کند. - متدهای جدید
getNumberOfCameras()
وgetCameraInfo()
در کلاسCamera
به برنامهها اجازه میدهند دوربینهای موجود را جستجو کنند و دوربین مورد نیاز خود را باز کنند. - متد جدید
get()
به برنامهها اجازه میدهد یکCamcorderProfile
برای یک دوربین خاص بازیابی کنند. -
getJpegEncodingQualityParameter()
جدید به برنامهها اجازه میدهد تا سطح کیفیت ثبت تصاویر ثابت را برای یک دوربین خاص به دست آورند.
برای مشاهده کد نمونه برای دسترسی به دوربین جلو، CameraPreview.java را در برنامه نمونه ApiDemos ببینید.
Camera API همچنین اضافه می کند:
- پارامترهای جدید برای دوربین ها، از جمله فاصله فوکوس، حالت فوکوس، و پیش نمایش حداکثر/حداقل فریم در ثانیه.
getFocusDistances()
,getPreviewFpsRange()
وgetSupportedPreviewFpsRange()
برای دریافت پارامترهای دوربین و همچنینsetPreviewFpsRange()
برای تنظیم نرخ فریم پیش نمایش.
جلوه های صوتی قابل ترکیب
چارچوب رسانهای این پلتفرم از جلوههای صوتی جدید در هر آهنگ یا سراسری پشتیبانی میکند، از جمله تقویت باس، مجازیسازی هدفون، یکسان سازی و ریورب.
- بسته جدید
android.media.audiofx
API را برای دسترسی به جلوه های صوتی فراهم می کند. - New
AudioEffect
کلاس پایه برای کنترل جلوه های صوتی ارائه شده توسط فریم ورک صوتی اندروید است. - شناسه جلسه صوتی جدید که به برنامه اجازه میدهد مجموعهای از جلوههای صوتی را با نمونهای از
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 در یک برنامه پیاده سازی می شود، فعالیت تصادفی دیسک یا شبکه را که می تواند عملکرد برنامه را کاهش دهد، مانند فعالیتی که در رشته اصلی برنامه (جایی که عملیات UI دریافت می شود و انیمیشن ها نیز در حال انجام است) انجام می شود، می گیرد و به توسعه دهنده اطلاع می دهد. توسعهدهندگان میتوانند مسائل مربوط به استفاده از شبکه و دیسک را که در StrictMode مطرح شده است، ارزیابی کرده و در صورت نیاز آنها را تصحیح کنند، موضوع اصلی را پاسخگوتر نگه دارند و از نمایش دیالوگهای ANR به کاربران جلوگیری کنند.
-
StrictMode
کلاس اصلی است و نقطه ادغام اصلی با سیستم و VM است. این کلاس روشهای راحتی را برای مدیریت رشتهها و خطمشیهای VM ارائه میکند که برای نمونه اعمال میشود. -
StrictMode.ThreadPolicy
وStrictMode.VmPolicy
خطمشیهایی را که تعریف میکنید و برای نمونههای Thread و VM اعمال میکنید، نگه میدارند.
برای اطلاعات بیشتر در مورد نحوه استفاده از StrictMode برای بهینه سازی برنامه خود، به مستندات کلاس و کد نمونه در android.os.StrictMode
مراجعه کنید.
چارچوب UI
- پشتیبانی از overscroll
- پشتیبانی جدید برای overscroll در Views و Widgets. در Views، برنامهها میتوانند اسکرول را برای یک نمای مشخص فعال/غیرفعال کنند، حالت overscroll را تنظیم کنند، فاصله overscroll را کنترل کنند و نتایج overscrolling را مدیریت کنند.
- در ابزارکها، برنامهها میتوانند ویژگیهای Overscroll مانند انیمیشن، Springback و فاصله Overscroll را کنترل کنند. برای اطلاعات بیشتر،
android.view.View
وandroid.widget.OverScroller
را ببینید. -
ViewConfiguration
همچنین متدهایgetScaledOverflingDistance()
وgetScaledOverscrollDistance()
را ارائه می دهد. - ویژگی های جدید
overScrollMode
،overScrollFooter
وoverScrollHeader
برای عناصر<ListView>
، برای کنترل رفتار overscroll.
- پشتیبانی از فیلتر لمسی
- پشتیبانی جدید از فیلتر لمسی، که به یک برنامه اجازه میدهد امنیت نماهایی را که دسترسی به عملکردهای حساس را فراهم میکنند، بهبود بخشد. به عنوان مثال، فیلتر کردن لمسی برای اطمینان از امنیت اقدامات کاربر مانند اعطای درخواست مجوز، خرید یا کلیک کردن بر روی یک تبلیغ مناسب است. برای جزئیات، به مشاهده مستندات کلاس مراجعه کنید.
- ویژگی جدید
filterTouchesWhenObscured
برای عناصر view، که اعلام میکند زمانی که پنجره نما توسط پنجره قابل مشاهده دیگری پوشیده میشود، لمسها فیلتر شوند یا خیر. وقتی روی"true"
تنظیم شود، هر زمان که یک نان تست، گفتگو یا پنجره دیگری در بالای پنجره نما ظاهر شود، نما لمس نمی شود. برای جزئیات به مشاهده اسناد امنیتی مراجعه کنید.
برای مشاهده کد نمونه برای فیلتر لمسی، SecureView.java را در برنامه نمونه ApiDemos ببینید.
- بهبود مدیریت رویداد
- کلاس پایه جدید برای رویدادهای ورودی،
InputEvent
. کلاس متدهایی را ارائه می دهد که به برنامه ها اجازه می دهد معنای رویداد را تعیین کنند، مانند پرس و جو برای InputDevice که رویداد از آن منشا گرفته است.KeyEvent
وMotionEvent
زیر کلاسهایInputEvent
هستند. - کلاس پایه جدید برای دستگاه های ورودی،
InputDevice
. کلاس اطلاعاتی را در مورد قابلیت های یک دستگاه ورودی خاص ذخیره می کند و روش هایی را ارائه می دهد که به برنامه ها اجازه می دهد نحوه تفسیر رویدادها را از یک دستگاه ورودی تعیین کنند.
- کلاس پایه جدید برای رویدادهای ورودی،
- رویدادهای حرکتی بهبود یافته
-
MotionEvent
API گسترش یافته است تا اطلاعات «شناسه اشاره گر» را در بر بگیرد، که به برنامهها اجازه میدهد تا تک تک انگشتان را هنگام بالا و پایین رفتن، ردیابی کنند. کلاس روشهای مختلفی را اضافه میکند که به یک برنامه اجازه میدهد تا با رویدادهای حرکتی کارایی داشته باشد. - سیستم ورودی اکنون منطقی برای ایجاد رویدادهای حرکتی با اطلاعات شناسه اشاره گر جدید دارد و با کاهش نشانگرهای جدید، شناسه ها را ترکیب می کند. این سیستم چندین شناسه اشاره گر را به طور جداگانه در طول یک رویداد حرکتی ردیابی می کند و با ارزیابی فاصله بین آخرین و مجموعه بعدی نشانگرها، تداوم مناسب نشانگرها را تضمین می کند.
-
- کنترل های انتخاب متن
- یک روش جدید
setComposingRegion
به یک برنامه اجازه میدهد یک منطقه از متن را بهعنوان متن در حال نوشتن علامتگذاری کند و سبک فعلی را حفظ کند. یک متدgetSelectedText
متن انتخاب شده را به برنامه برمی گرداند. متدها درBaseInputConnection
،InputConnection
وInputConnectionWrapper
موجود هستند. - ویژگی های جدید
textSelectHandle
،textSelectHandleLeft
،textSelectHandleRight
، وtextSelectHandleWindowStyle
برای<TextView>
، برای ارجاع به نقشه هایی که برای نمایش لنگرهای انتخاب متن و استایل پنجره حاوی استفاده خواهند شد.
- یک روش جدید
- کنترل های فعالیت
-
ActivityInfo
ثابتهای جدیدیSCREEN_ORIENTATION_SENSOR_PORTRAIT
برای مدیریت جهتگیری فعالیت اضافه میکند:SCREEN_ORIENTATION_FULL_SENSOR
،SCREEN_ORIENTATION_REVERSE_LANDSCAPE
،SCREEN_ORIENTATION_REVERSE_PORTRAIT
،SCREEN_ORIENTATION_SENSOR_LANDSCAPE
. - ثابت جدید
IMPORTANCE_PERCEPTIBLE
برای فیلدimportance
درActivityManager.RunningAppProcessInfo
. مقدار نشان می دهد که یک فرآیند خاص در حال اجرای چیزی است که به طور فعال برای کاربر قابل درک است. یک مثال می تواند برنامه ای باشد که پخش موسیقی پس زمینه را انجام می دهد. - متد Activity.setPersistent(boolean) برای علامتگذاری یک فعالیت بهعنوان ماندگار اکنون منسوخ شده است و پیادهسازی بدون عملیات است.
-
- متن اعلان و سبک نمادها
- روشهای باقیمانده OpenGL ES 2.0
glDrawElements()
وglVertexAttribPointer()
را در کلاسandroid.opengl.GLES20
اضافه میکند. - پشتیبانی از فرمت پیکسل
YV12
، فرمت مسطح 4:2:0 YCrCb را اضافه می کند. - کلاس ارائه دهنده
AlarmClock
جدید برای تنظیم زنگ هشدار یا مدیریت زنگ هشدار. ارائهدهنده دارای یک اقدام قصدACTION_SET_ALARM
و موارد اضافی است که میتوان از آنها برای شروع یک فعالیت برای تنظیم زنگ هشدار جدید در برنامه ساعت زنگ دار استفاده کرد. برنامه هایی که مایل به دریافتSET_ALARM
Intent هستند باید فعالیتی ایجاد کنند که به مجوز SET_ALARM نیاز دارد. برنامههایی که میخواهند زنگ هشدار جدیدی ایجاد کنند باید ازContext.startActivity()
استفاده کنند تا کاربر این گزینه را داشته باشد که از کدام برنامه ساعت زنگ دار استفاده کند. -
MediaStore
از یک اقدام جدید Intent پشتیبانی میکند،PLAY_FROM_SEARCH
، که به برنامه اجازه میدهد رسانه موسیقی را جستجو کند و در صورت امکان، محتوا را بهطور خودکار از نتیجه پخش کند. به عنوان مثال، یک برنامه می تواند این Intent را در نتیجه یک فرمان تشخیص صدا برای گوش دادن به موسیقی اجرا کند. -
MediaStore
همچنین یک پرچم جدیدMEDIA_IGNORE_FILENAME
اضافه میکند که به اسکنر رسانه میگوید رسانه موجود در فهرست حاوی و زیر شاخههای آن را نادیده بگیرد. توسعه دهندگان می توانند از این برای جلوگیری از نمایش گرافیک در گالری استفاده کنند و همچنین از نمایش صداهای برنامه و موسیقی در برنامه Music جلوگیری کنند. - ارائهدهنده
Settings
، کنشهای فعالیت جدیدAPPLICATION_DETAILS_SETTINGS
وMANAGE_ALL_APPLICATIONS_SETTINGS
را اضافه میکند، که به برنامه اجازه میدهد صفحه جزئیات را برای یک برنامه خاص نشان دهد یا صفحه مدیریت برنامهها را نشان دهد. - ارائه دهنده
ContactsContract
نوع دادهContactsContract.CommonDataKinds.SipAddress
را برای ذخیره آدرس SIP (تلفن اینترنتی) مخاطب اضافه می کند. -
LocationManager
اکنون درخواستهای برنامهای را ردیابی میکند که منجر به wake lock یا قفل وایفای بر اساسWorkSource
، یک کلاس مدیریتشده توسط سیستم است که برنامه را شناسایی میکند.LocationManager
تمام مشتریانی را که درخواست بهروزرسانیهای دورهای میکنند، پیگیری میکند و هنگام تنظیم حداقل زمان بهروزرسانی، به ارائهدهندگان خود به عنوان پارامترWorkSource
در مورد آنها میگوید. ارائهدهنده موقعیت مکانی شبکه ازWorkSource
برای ردیابی قفلهای wake و wifi که توسط یک برنامه راهاندازی شدهاند استفاده میکند و آن را به میزان مصرف باتری برنامه گزارششده در مدیریت برنامهها اضافه میکند. -
LocationManager
چندین روش جدید اضافه میکند که به یک Activity اجازه میدهد تا بر اساس معیارهای مشخص شده بهروزرسانیهای موقعیت مکانی دورهای یا یکباره را دریافت کند (به زیر مراجعه کنید). - یک کلاس جدید
Criteria
به یک برنامه اجازه می دهد مجموعه ای از معیارها را برای انتخاب ارائه دهنده مکان مشخص کند. به عنوان مثال، ارائه دهندگان ممکن است با توجه به دقت، میزان مصرف برق، توانایی گزارش ارتفاع، سرعت و باربری و هزینه پولی سفارش داده شوند. - Android 2.3 یک
StorageManager
جدید اضافه می کند که از فایل های OBB (Opaque Binary Blob) پشتیبانی می کند. اگرچه پشتیبانی پلتفرم OBB در اندروید 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 است که تماسهای چرخه حیات آن مستقیماً در کد بومی پیادهسازی میشوند. یکNativeActivity
و کد اصلی زیرین آن درست مانند سایر فعالیتها در سیستم اجرا میشود - بهویژه آنها در فرآیند سیستم برنامه Android اجرا میشوند و روی رشته اصلی رابط کاربری برنامه اجرا میشوند و همان بازگشتهای چرخه حیات را مانند سایر فعالیتها دریافت میکنند. - کلاس
InputQueue
جدید و رابط تماس برگشتی به کد بومی امکان مدیریت صف رویداد را می دهد. - رابط
SurfaceHolder.Callback2
جدید به کد بومی اجازه می دهد تا یکSurfaceHolder
را مدیریت کند. - متدهای جدید
takeInputQueue
وtakeSurface()
درWindow
به کد بومی اجازه میدهند رویدادها و سطوح را مدیریت کنند. -
dalvik.system
چندین کلاس را که قبلاً منسوخ شده بودند حذف می کند. - کتابخانه های هسته دالویک:
- مجموعه های جدید:
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"
- Activity میخواهد صفحهنمایش را در جهت افقی داشته باشد، اما میتواند از حسگر برای تغییر جهت صفحه نمایش استفاده کند. -
"sensorPortrait"
- Activity میخواهد صفحهنمایش در جهت عمودی باشد، اما میتواند از حسگر برای تغییر جهت صفحه نمایش استفاده کند. -
"fullSensor"
- جهت گیری توسط یک حسگر جهت گیری فیزیکی تعیین می شود: نمایشگر بر اساس نحوه حرکت کاربر دستگاه می چرخد. این امکان را به هر یک از 4 چرخش ممکن می دهد، صرف نظر از اینکه دستگاه معمولاً چه کاری انجام می دهد (به عنوان مثال برخی از دستگاه ها معمولاً از چرخش 180 درجه استفاده نمی کنند).
-
-
com.android.permission.SET_ALARM
- به یک برنامه کاربردی اجازه می دهد تا یک Intent برای تنظیم زنگ هشدار برای کاربر پخش کند. فعالیتی که عملکردSET_ALARM
Intent را مدیریت می کند باید به این مجوز نیاز داشته باشد. -
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
، برای برچسبگذاری منابعی که مخصوص صفحههای بسیار بزرگ هستند استفاده کنند. برای جزئیات بیشتر در مورد نحوه پشتیبانی از اندازههای بسیار بزرگ و سایر اندازههای صفحه، به پشتیبانی از چندین صفحه مراجعه کنید.
گرافیک
ارائه دهندگان محتوا
مکان
ذخیره سازی
مدیر بسته
تلفن
دسترسی بومی به چرخه حیات Activity، ویندوز
Android 2.3 مجموعه گسترده ای از API ها را در معرض برنامه هایی قرار می دهد که از کد بومی استفاده می کنند. طبقات چارچوب مورد علاقه برای چنین برنامه هایی عبارتند از:
برای اطلاعات کامل در مورد کار با کد بومی یا دانلود NDK به صفحه Android NDK مراجعه کنید.
Dalvik Runtime
عناصر و ویژگی های آشکار جدید
مجوزهای جدید
ثابت ویژگی های جدید
این پلتفرم چندین ویژگی سختافزاری جدید اضافه میکند که توسعهدهندگان میتوانند در مانیفستهای برنامه خود اعلام کنند که توسط برنامههایشان مورد نیاز است. این به توسعهدهندگان اجازه میدهد نحوه فیلتر شدن برنامههایشان را هنگام انتشار در Google Play کنترل کنند.
برای اطلاعات کامل درباره نحوه اعلام ویژگی ها و استفاده از آنها برای فیلتر کردن، به مستندات <uses-feature>
مراجعه کنید.
گزارش تفاوت های API
برای مشاهده جزئیات همه تغییرات API در Android 2.3 (سطح 9 API)، به گزارش تفاوت های API مراجعه کنید.
سطح API
پلتفرم Android 2.3 نسخه به روز شده چارچوب API را ارائه می دهد. به API Android 2.3 یک شناسه عدد صحیح - 9 - اختصاص داده شده است که در خود سیستم ذخیره می شود. این شناسه که "سطح API" نامیده می شود، به سیستم اجازه می دهد تا قبل از نصب برنامه به درستی تعیین کند که آیا یک برنامه با سیستم سازگار است یا خیر.
برای استفاده از API های معرفی شده در Android 2.3 در برنامه خود، باید برنامه را در مقابل کتابخانه اندرویدی که در پلتفرم Android 2.3 SDK ارائه شده است، کامپایل کنید. بسته به نیازتان، ممکن است لازم باشد یک ویژگی android:minSdkVersion="9"
نیز به عنصر <uses-sdk>
در مانیفست برنامه اضافه کنید. اگر برنامه شما فقط برای اجرا بر روی اندروید 2.3 و بالاتر طراحی شده است، اعلام ویژگی از نصب برنامه در نسخه های قبلی پلتفرم جلوگیری می کند.
برای اطلاعات بیشتر، سطح API چیست؟