تجدید نظر 2
آخرین به روز رسانی: 17 فوریه 2013
حق نشر © 2012، Google Inc. کلیه حقوق محفوظ است.
[email protected]
فهرست مطالب
2. منابع
3. نرم افزار
3.2. سازگاری نرم افزار API
3.3. سازگاری Native API
3.4. سازگاری وب
3.5. سازگاری رفتاری API
3.6. فضاهای نام API
3.7. سازگاری با ماشین مجازی
3.8. سازگاری با رابط کاربری
3.8.2. اطلاعیه
3.8.3. جستجو کردن
3.8.4. نان تست
3.8.5. تم ها
3.8.6. تصاویر پس زمینه زنده
3.8.7. نمایش برنامه اخیر
3.8.8. تنظیمات مدیریت ورودی
3.8.9. قفل و ابزارک های صفحه اصلی
3.8.10. کنترل از راه دور رسانه قفل صفحه نمایش
3.8.11. رویاها
3.10 دسترسی
3.11 تبدیل متن به گفتار
5. سازگاری چند رسانه ای
5.2. رمزگذاری ویدیو
5.3. رمزگشایی ویدیو
5.4. ضبط صدا
5.5. تأخیر صوتی
5.6. پروتکل های شبکه
7. سازگاری سخت افزار
7.1.2. معیارهای نمایش
7.1.3. جهت صفحه نمایش
7.1.4. شتاب گرافیکی دوبعدی و سه بعدی
7.1.5. حالت سازگاری برنامه قدیمی
7.1.6. انواع صفحه نمایش
7.1.7. فناوری صفحه نمایش
7.1.8. نمایشگرهای خارجی
7.3. حسگرها
7.3.2. مغناطیس سنج
7.3.3. جی پی اس
7.3.4. ژیروسکوپ
7.3.5. فشارسنج
7.3.6. دماسنج
7.3.7. فتومتر
7.3.8. سنسور مجاورت
7.4.2. IEEE 802.11 (WiFi)
7.4.3. بلوتوث
7.4.4. ارتباطات میدان نزدیک
7.4.5. حداقل قابلیت شبکه
7.6. حافظه و ذخیره سازی
7.7. یو اس بی
9. سازگاری مدل امنیتی
9.2. UID و جداسازی فرآیند
9.3. مجوزهای سیستم فایل
9.4. محیط های اجرایی جایگزین
9.5. پشتیبانی چند کاربره
9.6. هشدار پیامک برتر
11. نرم افزار قابل به روز رسانی
12. تماس با ما
ضمیمه A - روش تست بلوتوث
1. معرفی
این سند شرایطی را که باید برای سازگاری دستگاهها با Android 4.2 رعایت شود، برشمرده است.
استفاده از "باید"، "نباید"، "لازم"، "باید"، "نباید"، "باید"، "نباید"، "توصیه شده"، "ممکن است" و "اختیاری" طبق استاندارد IETF است. تعریف شده در RFC2119 [ منابع، 1 ].
همانطور که در این سند استفاده میشود، «پیادهکننده دستگاه» یا «اجراکننده» شخص یا سازمانی است که راهحل سختافزار/نرمافزاری را با Android 4.2 توسعه میدهد. "پیاده سازی دستگاه" یا "پیاده سازی" راه حل سخت افزاری/نرم افزاری است که به این شکل توسعه یافته است.
برای اینکه پیادهسازیهای دستگاه با Android 4.2 سازگار در نظر گرفته شوند، باید الزامات ارائهشده در این تعریف سازگاری، از جمله هر سندی که از طریق مرجع گنجانده شدهاند، داشته باشند.
در مواردی که این تعریف یا تستهای نرمافزاری توضیح داده شده در بخش 10 بیصدا، مبهم یا ناقص است، این مسئولیت اجرای دستگاه است که از سازگاری با پیادهسازیهای موجود اطمینان حاصل کند.
به همین دلیل، پروژه منبع باز اندروید [ منابع، 3 ] هم مرجع و هم پیاده سازی ترجیحی اندروید است. پیادهسازان دستگاه به شدت تشویق میشوند تا پیادهسازیهای خود را تا حد امکان بر اساس کد منبع «بالادست» موجود در پروژه منبع باز Android قرار دهند. در حالی که برخی از مؤلفهها را میتوان به طور فرضی با پیادهسازیهای جایگزین جایگزین کرد، این عمل به شدت ممنوع است، زیرا گذراندن آزمونهای نرمافزار به طور قابلتوجهی دشوارتر میشود. این مسئولیت پیادهکننده است که از سازگاری کامل رفتاری با پیادهسازی استاندارد Android، از جمله و فراتر از مجموعه تست سازگاری اطمینان حاصل کند. در نهایت، توجه داشته باشید که تعویض و اصلاح برخی از اجزا به صراحت توسط این سند ممنوع است.
2. منابع
- سطوح مورد نیاز IETF RFC2119: http://www.ietf.org/rfc/rfc2119.txt
- مروری بر برنامه سازگاری اندروید: http://source.android.com/docs/compatibility/index.html
- پروژه متن باز اندروید: http://source.android.com/
- تعاریف و مستندات API: http://developer.android.com/reference/packages.html
- مرجع مجوزهای Android: http://developer.android.com/reference/android/Manifest.permission.html
- مرجع android.os.Build: http://developer.android.com/reference/android/os/Build.html
- رشته های نسخه مجاز Android 4.2: http://source.android.com/docs/compatibility/4.2/versions.html
- Renderscript: http://developer.android.com/guide/topics/graphics/renderscript.html
- شتاب سخت افزار: http://developer.android.com/guide/topics/graphics/hardware-accel.html
- کلاس android.webkit.WebView: http://developer.android.com/reference/android/webkit/WebView.html
- HTML5: http://www.whatwg.org/specs/web-apps/current-work/multipage/
- قابلیت های آفلاین HTML5: http://dev.w3.org/html5/spec/Overview.html#offline
- برچسب ویدیوی HTML5: http://dev.w3.org/html5/spec/Overview.html#video
- HTML5/W3C geolocation API: http://www.w3.org/TR/geolocation-API/
- API پایگاه داده وب HTML5/W3C: http://www.w3.org/TR/webdatabase/
- HTML5/W3C IndexedDB API: http://www.w3.org/TR/IndexedDB/
- مشخصات ماشین مجازی Dalvik: در کد منبع Android در dalvik/docs موجود است
- AppWidgets: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
- اعلان ها: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
- منابع برنامه: http://code.google.com/android/reference/available-resources.html
- راهنمای سبک نماد نوار وضعیت: http://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html
- مدیر جستجو: http://developer.android.com/reference/android/app/SearchManager.html
- نان تست: http://developer.android.com/reference/android/widget/Toast.html
- تم ها: http://developer.android.com/guide/topics/ui/themes.html
- کلاس R.style: http://developer.android.com/reference/android/R.style.html
- تصاویر پس زمینه زنده: https://android-developers.googleblog.com/2010/02/live-wallpapers.html
- مدیریت دستگاه Android: http://developer.android.com/guide/topics/admin/device-admin.html
- مرجع DevicePolicyManager: http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html
- APIهای سرویس دسترسپذیری Android: http://developer.android.com/reference/android/accessibilityservice/package-summary.html
- APIهای دسترسی Android: http://developer.android.com/reference/android/view/accessibility/package-summary.html
- پروژه Eyes Free: http://code.google.com/p/eyes-free
- APIهای Text-To-Speech: http://developer.android.com/reference/android/speech/tts/package-summary.html
- مستندات ابزار مرجع (برای adb، aapt، ddms، systrace): http://developer.android.com/guide/developing/tools/index.html
- توضیحات فایل apk اندروید: http://developer.android.com/guide/topics/fundamentals.html
- فایل های مانیفست: http://developer.android.com/guide/topics/manifest/manifest-intro.html
- ابزار تست میمون: https://developer.android.com/studio/test/other-testing-tools/monkey
- Android android.content.pm.PackageManager کلاس و لیست ویژگی های سخت افزار: http://developer.android.com/reference/android/content/pm/PackageManager.html
- پشتیبانی از چند صفحه: http://developer.android.com/guide/practices/screens_support.html
- android.util.DisplayMetrics: http://developer.android.com/reference/android/util/DisplayMetrics.html
- android.content.res.Configuration: http://developer.android.com/reference/android/content/res/Configuration.html
- android.hardware.SensorEvent: http://developer.android.com/reference/android/hardware/SensorEvent.html
- API بلوتوث: http://developer.android.com/reference/android/bluetooth/package-summary.html
- NDEF Push Protocol: http://source.android.com/docs/compatibility/ndef-push-protocol.pdf
- MIFARE MF1S503X: http://www.nxp.com/documents/data_sheet/MF1S503x.pdf
- MIFARE MF1S703X: http://www.nxp.com/documents/data_sheet/MF1S703x.pdf
- MIFARE MF0ICU1: http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf
- MIFARE MF0ICU2: http://www.nxp.com/documents/short_data_sheet/MF0ICU2_SDS.pdf
- MIFARE AN130511: http://www.nxp.com/documents/application_note/AN130511.pdf
- MIFARE AN130411: http://www.nxp.com/documents/application_note/AN130411.pdf
- API جهتگیری دوربین: http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)
- دوربین: http://developer.android.com/reference/android/hardware/Camera.html
- لوازم جانبی باز اندروید: http://developer.android.com/guide/topics/usb/accessory.html
- USB Host API: http://developer.android.com/guide/topics/usb/host.html
- مرجع امنیت و مجوزهای Android: http://developer.android.com/guide/topics/security/security.html
- برنامه های اندروید: http://code.google.com/p/apps-for-android
- Android DownloadManager: http://developer.android.com/reference/android/app/DownloadManager.html
- انتقال فایل اندروید: http://www.android.com/filetransfer
- قالبهای رسانه اندروید: http://developer.android.com/guide/appendix/media-formats.html
- پروتکل پیشنویس پخش جریانی زنده HTTP: http://tools.ietf.org/html/draft-pantos-http-live-streaming-03
- انتقال اتصال NFC: http://www.nfc-forum.org/specs/spec_list/#conn_handover
- جفتسازی ساده بلوتوث ایمن با استفاده از NFC: http://www.nfc-forum.org/resources/AppDocs/NFCForum_AD_BTSSP_1_0.pdf
- Wifi Multicast API: http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html
- Action Assist: http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST
- مشخصات شارژ USB: http://www.usb.org/developers/devclass_docs/USB_Battery_Charging_1.2.pdf
- Android Beam: http://developer.android.com/guide/topics/nfc/nfc.html
- Android USB Audio: http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO
- تنظیمات اشتراکگذاری NFC Android: http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS
- Wifi Direct (Wifi P2P): http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html
- ویجت قفل و صفحه اصلی: http://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo.html
- مرجع UserManager: http://developer.android.com/reference/android/os/UserManager.html
- مرجع حافظه خارجی: https://source.android.com/docs/core/storage
- APIهای حافظه خارجی: http://developer.android.com/reference/android/os/Environment.html
- کد کوتاه پیامکی: http://en.wikipedia.org/wiki/Short_code
- سرویس گیرنده کنترل از راه دور رسانه: http://developer.android.com/reference/android/media/RemoteControlClient.html
- مدیر نمایش: http://developer.android.com/reference/android/hardware/display/DisplayManager.html
- رویاها: http://developer.android.com/reference/android/service/dreams/DreamService.html
- تنظیمات مربوط به توسعه برنامه Android: http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS
بسیاری از این منابع به طور مستقیم یا غیرمستقیم از Android 4.2 SDK مشتق شده اند و از نظر عملکردی با اطلاعات موجود در اسناد آن SDK یکسان خواهند بود. در هر موردی که این تعریف سازگاری یا مجموعه تست سازگاری با مستندات SDK مخالف باشد، اسناد SDK معتبر تلقی میشوند. هر گونه جزئیات فنی ارائه شده در مراجع ذکر شده در بالا به عنوان بخشی از این تعریف سازگاری در نظر گرفته می شود.
3. نرم افزار
3.1. سازگاری API مدیریت شده
محیط اجرای مدیریت شده (مبتنی بر دالویک) وسیله اصلی برنامه های اندروید است. رابط برنامه نویسی برنامه اندروید (API) مجموعه ای از رابط های پلتفرم اندروید است که در معرض برنامه های کاربردی در حال اجرا در محیط VM مدیریت شده قرار دارند. پیادهسازیهای دستگاه باید پیادهسازیهای کامل، از جمله تمام رفتارهای مستند، هر API مستندی را که توسط Android 4.2 SDK در معرض نمایش قرار میگیرد [ منابع، 4 ] ارائه دهد.
پیادهسازیهای دستگاه نباید هیچیک از APIهای مدیریتشده را حذف کنند، رابطها یا امضاهای API را تغییر دهند، از رفتار مستند منحرف شوند، یا شامل موارد بدون عملیات باشند، مگر در مواردی که بهطور خاص توسط این تعریف سازگاری مجاز است.
این تعریف سازگاری اجازه میدهد برخی از انواع سختافزاری که Android برای آنها دارای API است توسط پیادهسازی دستگاه حذف شوند. در چنین مواردی، APIها باید همچنان وجود داشته باشند و به روشی معقول رفتار کنند. برای شرایط خاص این سناریو به بخش 7 مراجعه کنید.
3.2. سازگاری نرم افزار API
علاوه بر APIهای مدیریت شده از بخش 3.1، Android همچنین شامل یک API "نرم" فقط زمان اجرا قابل توجه است، به شکل مواردی مانند Intent ها، مجوزها، و جنبه های مشابه برنامه های Android که در زمان کامپایل برنامه قابل اجرا نیستند.
3.2.1. مجوزها
پیادهکنندههای دستگاه باید تمام ثابتهای مجوز را همانطور که در صفحه مرجع مجوز [ منابع، 5 ] مستند شده است، پشتیبانی و اجرا کنند. توجه داشته باشید که بخش 10 الزامات اضافی مربوط به مدل امنیتی اندروید را فهرست می کند.
3.2.2. ساخت پارامترها
APIهای Android شامل تعدادی ثابت در کلاس android.os.Build
[ منابع، 6 ] هستند که برای توصیف دستگاه فعلی در نظر گرفته شده است. برای ارائه مقادیر معنادار و منسجم در بین پیادهسازیهای دستگاه، جدول زیر شامل محدودیتهای اضافی در قالبهای این مقادیر است که پیادهسازی دستگاه باید با آنها مطابقت داشته باشد.
پارامتر | نظرات |
android.os.Build.VERSION.RELEASE | نسخه سیستم اندروید در حال اجرا، در قالب قابل خواندن توسط انسان. این فیلد باید دارای یکی از مقادیر رشته تعریف شده در [ منابع، 7 ] باشد. |
android.os.Build.VERSION.SDK | نسخه سیستم Android در حال اجرا، در قالبی که برای کد برنامه شخص ثالث قابل دسترسی است. برای اندروید 4.2، این فیلد باید دارای عدد صحیح 17 باشد. |
android.os.Build.VERSION.SDK_INT | نسخه سیستم Android در حال اجرا، در قالبی که برای کد برنامه شخص ثالث قابل دسترسی است. برای اندروید 4.2، این فیلد باید دارای عدد صحیح 17 باشد. |
android.os.Build.VERSION.INCREMENTAL | مقداری که توسط پیادهکننده دستگاه انتخاب شده است که ساختار خاص سیستم Android در حال اجرا را در قالب قابل خواندن توسط انسان تعیین میکند. این مقدار نباید برای ساختهای مختلفی که در دسترس کاربران نهایی قرار گرفتهاند دوباره استفاده شود. یک استفاده معمولی از این فیلد این است که نشان دهد کدام شماره ساخت یا شناسه تغییر منبع-کنترل برای تولید بیلد استفاده شده است. هیچ الزامی برای قالب خاص این فیلد وجود ندارد، به جز اینکه نباید خالی یا رشته خالی ("") باشد. |
android.os.Build.BOARD | مقداری که توسط پیادهکننده دستگاه انتخاب میشود و سختافزار داخلی خاص مورد استفاده دستگاه را در قالب قابل خواندن توسط انسان شناسایی میکند. یکی از کاربردهای احتمالی این فیلد نشان دادن بازبینی خاص برد تغذیه کننده دستگاه است. مقدار این فیلد باید به صورت ASCII 7 بیتی قابل رمزگذاری باشد و با عبارت منظم "^[a-zA-Z0-9.,_-]+$" مطابقت داشته باشد. |
android.os.Build.BRAND | مقداری که توسط پیادهکننده دستگاه انتخاب میشود و نام شرکت، سازمان، فردی و غیره را که دستگاه را تولید کرده است، در قالب قابل خواندن توسط انسان مشخص میکند. استفاده احتمالی از این فیلد نشان دادن OEM و/یا حاملی است که دستگاه را فروخته است. مقدار این فیلد باید به صورت ASCII 7 بیتی قابل رمزگذاری باشد و با عبارت منظم "^[a-zA-Z0-9.,_-]+$" مطابقت داشته باشد. |
android.os.Build.CPU_ABI | نام مجموعه دستورالعمل (نوع CPU + قرارداد ABI) کد بومی. به |