API های اندروید 2.3

سطح 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 همچنین اضافه می کند:

جلوه های صوتی قابل ترکیب

چارچوب رسانه‌ای این پلتفرم از جلوه‌های صوتی جدید در هر آهنگ یا سراسری پشتیبانی می‌کند، از جمله تقویت باس، مجازی‌سازی هدفون، یکسان سازی و ریورب.

برای مشاهده کد نمونه برای جلوه های صوتی، 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> ، برای ارجاع به نقشه هایی که برای نمایش لنگرهای انتخاب متن و استایل پنجره حاوی استفاده خواهند شد.
  • کنترل های فعالیت
  • متن اعلان و سبک نمادها
  • صفحه نمایش های فوق العاده بزرگ

    این پلتفرم اکنون از اندازه های صفحه نمایش بسیار بزرگ مانند اندازه هایی که ممکن است در دستگاه های تبلت یافت می شود، پشتیبانی می کند. توسعه دهندگان می توانند با افزودن عنصر <supports screens ... android:xlargeScreens="true"> به فایل های مانیفست خود نشان دهند که برنامه های آنها برای پشتیبانی از اندازه های بسیار بزرگ صفحه نمایش طراحی شده است. برنامه‌ها می‌توانند از یک واجد شرایط منبع جدید، xlarge ، برای برچسب‌گذاری منابعی که مخصوص صفحه‌های بسیار بزرگ هستند استفاده کنند. برای جزئیات بیشتر در مورد نحوه پشتیبانی از اندازه‌های بسیار بزرگ و سایر اندازه‌های صفحه، به پشتیبانی از چندین صفحه مراجعه کنید.

    گرافیک

    ارائه دهندگان محتوا

    • کلاس ارائه دهنده 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 را برمی‌گرداند.

    دسترسی بومی به چرخه حیات Activity، ویندوز

    Android 2.3 مجموعه گسترده ای از API ها را در معرض برنامه هایی قرار می دهد که از کد بومی استفاده می کنند. طبقات چارچوب مورد علاقه برای چنین برنامه هایی عبارتند از:

    • NativeActivity نوع جدیدی از کلاس Activity است که تماس‌های چرخه حیات آن مستقیماً در کد بومی پیاده‌سازی می‌شوند. یک NativeActivity و کد اصلی زیرین آن درست مانند سایر فعالیت‌ها در سیستم اجرا می‌شود - به‌ویژه آنها در فرآیند سیستم برنامه Android اجرا می‌شوند و روی رشته اصلی رابط کاربری برنامه اجرا می‌شوند و همان بازگشت‌های چرخه حیات را مانند سایر فعالیت‌ها دریافت می‌کنند.
    • کلاس InputQueue جدید و رابط تماس برگشتی به کد بومی امکان مدیریت صف رویداد را می دهد.
    • رابط SurfaceHolder.Callback2 جدید به کد بومی اجازه می دهد تا یک SurfaceHolder را مدیریت کند.
    • متدهای جدید takeInputQueue و takeSurface() در Window به کد بومی اجازه می‌دهند رویدادها و سطوح را مدیریت کنند.

    برای اطلاعات کامل در مورد کار با کد بومی یا دانلود NDK به صفحه Android NDK مراجعه کنید.

    Dalvik Runtime

    عناصر و ویژگی های آشکار جدید

    • ویژگی 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 استفاده کند.

    ثابت ویژگی های جدید

    این پلتفرم چندین ویژگی سخت‌افزاری جدید اضافه می‌کند که توسعه‌دهندگان می‌توانند در مانیفست‌های برنامه خود اعلام کنند که توسط برنامه‌هایشان مورد نیاز است. این به توسعه‌دهندگان اجازه می‌دهد نحوه فیلتر شدن برنامه‌هایشان را هنگام انتشار در Google Play کنترل کنند.

    • 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 — این برنامه از قابلیت های چند نقطه ای پیشرفته روی صفحه نمایش دستگاه برای ردیابی پنج یا چند نقطه به طور کاملا مستقل استفاده می کند.

    برای اطلاعات کامل درباره نحوه اعلام ویژگی ها و استفاده از آنها برای فیلتر کردن، به مستندات <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 چیست؟