اندروید 2.0، نسخه 1

سطح API: 5

Android 2.0 یک نسخه پلتفرم اصلی است که از نوامبر 2009 در گوشی های مجهز به اندروید قابل استفاده است. این نسخه شامل ویژگی های جدیدی برای کاربران و توسعه دهندگان و همچنین تغییرات در API فریمورک اندروید است.

برای توسعه دهندگان، پلتفرم Android 2.0 به عنوان یک جزء قابل دانلود برای Android SDK در دسترس است. پلتفرم قابل دانلود شامل یک کتابخانه و تصویر سیستم کاملاً سازگار اندروید و همچنین مجموعه ای از پوسته های شبیه ساز، برنامه های کاربردی نمونه و موارد دیگر است. پلت فرم قابل دانلود کاملا سازگار است و شامل هیچ کتابخانه خارجی نیست.

برای شروع توسعه یا آزمایش در برابر پلتفرم Android 2.0، از ابزار Android SDK و AVD Manager برای دانلود پلتفرم در SDK خود استفاده کنید.

نکات برجسته پلتفرم

برای لیستی از ویژگی‌های کاربر جدید و نکات برجسته پلتفرم، به سند نکات برجسته پلتفرم Android 2.0 مراجعه کنید.

برنامه های کاربردی داخلی

تصویر سیستم موجود در پلتفرم قابل دانلود این برنامه های داخلی را ارائه می دهد:

  • ساعت زنگ دار
  • مرورگر
  • ماشین حساب
  • دوربین فیلمبرداری
  • دوربین
  • مخاطبین
  • محلی سفارشی (برنامه توسعه دهنده)
  • Dev Tools (برنامه توسعه دهنده)
  • شماره گیر
  • ایمیل
  • گالری
  • سازنده حرکات
  • IME برای ورودی نوشتار ژاپنی
  • پیام رسانی
  • موسیقی
  • تنظیمات
  • قطعات یدکی (برنامه توسعه دهنده)

محلی ها

تصویر سیستم موجود در پلتفرم قابل دانلود، انواع محلی داخلی را ارائه می دهد. در برخی موارد، رشته‌های خاص منطقه برای مناطق موجود است. در موارد دیگر، از یک نسخه پیش فرض زبان استفاده می شود. زبان‌هایی که در تصویر سیستم Android نسخه 2.0 موجود هستند در زیر فهرست شده‌اند (با زبان _ کشور/منطقه محلی توصیف‌کننده).

  • چینی، PRC (zh_CN)
  • چینی، تایوان (zh_TW)
  • چک (cs_CZ)
  • هلندی، هلند (nl_NL)
  • هلندی، بلژیک (nl_BE)
  • انگلیسی، ایالات متحده (en_US)
  • انگلیسی، بریتانیا (en_GB)
  • انگلیسی، کانادا (en_CA)
  • انگلیسی، استرالیا (en_AU)
  • انگلیسی، نیوزیلند (en_NZ)
  • انگلیسی، سنگاپور (en_SG)
  • فرانسوی، فرانسه (fr_FR)
  • فرانسوی، بلژیک (fr_BE)
  • فرانسوی، کانادا (fr_CA)
  • فرانسوی، سوئیس (fr_CH)
  • آلمانی، آلمان (de_DE)
  • آلمانی، اتریش (de_AT)
  • آلمان، سوئیس (de_CH)
  • آلمانی، لیختن اشتاین (de_LI)
  • ایتالیایی، ایتالیا (it_IT)
  • ایتالیایی، سوئیس (it_CH)
  • ژاپنی (ja_JP)
  • کره ای (ko_KR)
  • لهستانی (pl_PL)
  • روسی (ru_RU)
  • اسپانیایی (es_ES)
  • رشته‌های رابط کاربری محلی شده با زبان‌هایی که از طریق تنظیمات قابل دسترسی هستند مطابقت دارند.

    پوسته های شبیه ساز

    پلتفرم قابل دانلود شامل مجموعه‌ای از پوسته‌های شبیه‌ساز است که می‌توانید از آن‌ها برای مدل‌سازی اپلیکیشن خود در اندازه‌ها و وضوح‌های مختلف صفحه‌نمایش استفاده کنید. پوسته های شبیه ساز عبارتند از:

    • QVGA (240x320، چگالی کم، صفحه نمایش کوچک)
    • WQVGA (240x400، چگالی کم، صفحه نمایش معمولی)
    • FWQVGA (240x432، چگالی کم، صفحه نمایش معمولی)
    • HVGA (320x480، چگالی متوسط، صفحه نمایش معمولی)
    • WVGA800 (480x800، تراکم بالا، صفحه نمایش معمولی)
    • WVGA854 (480x854 چگالی بالا، صفحه نمایش معمولی)

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

    ویژگی های توسعه دهنده

    بخش‌های زیر اطلاعاتی درباره ویژگی‌های جدید توسعه‌دهنده ارائه شده توسط مؤلفه پلتفرم Android 2.0 قابل دانلود ارائه می‌دهند.

    پشتیبانی مورچه

    • امضای برنامه در حالت اشکال زدایی و انتشار. امضای حالت انتشار شامل پشتیبانی یکپارچه برای بهینه سازی zipalign است. برای اطلاعات بیشتر، به امضای برنامه های خود مراجعه کنید.
    • سیستم جدید ساخت مورچه را با پشتیبانی از پروژه های ابزار دقیق Emma (پوشش کد) اضافه می کند.

    چارچوب API

    بخش‌های زیر اطلاعاتی درباره API چارچوب برنامه ارائه شده توسط پلتفرم Android 2.0 ارائه می‌کند.

    سطح API

    پلتفرم Android 2.0 نسخه به روز شده ای از چارچوب API را ارائه می دهد. همانند نسخه‌های قبلی، API Android 2.0 به یک شناسه عدد صحیح - 5 - اختصاص داده شده است که در خود سیستم ذخیره می‌شود. این شناسه که "سطح API" نامیده می شود، به سیستم اجازه می دهد تا قبل از نصب برنامه به درستی تعیین کند که آیا یک برنامه با سیستم سازگار است یا خیر.

    برای استفاده از API های معرفی شده در Android 2.0 در برنامه خود، باید مقدار مناسب "5" را در ویژگی های عنصر <uses-sdk> در مانیفست برنامه خود تنظیم کنید.

    برای اطلاعات بیشتر در مورد نحوه استفاده از API Level، به سند API Levels مراجعه کنید.

    خلاصه تغییرات API

    بلوتوث

    • بلوتوث را روشن/خاموش کنید
    • کشف دستگاه و خدمات
    • با استفاده از RFCOMM به یک دستگاه راه دور متصل شوید و داده ها را ارسال/دریافت کنید
    • خدمات RFCOMM را تبلیغ کنید و برای اتصال RFCOMM ورودی گوش دهید

    همگام سازی آداپتورها

    • API های جدید برای آداپتورهای همگام سازی برای اتصال به هر باطنی

    مدیر حساب

    • API مدیریت حساب متمرکز برای ذخیره و دسترسی ایمن به رمزهای / رمزهای عبور

    مخاطبین

    • APIهای مخاطبین جدید که امکان داده از چندین حساب را فراهم می کند
    • APIهای جدید Quick Contact Framework به توسعه دهندگان این امکان را می دهند که نشان های مخاطب را در برنامه خود ایجاد کنند. با کلیک بر روی نشان، پنجره ای باز می شود که فهرستی از راه های ارتباط با فرد با یک کلیک را در آن مشاهده می کنید.

    WebView

    • کلاس های منسوخ شده: UrlInterceptHandler، Plugin، PluginData، PluginList، UrlInterceptRegistry.

    دوربین

    • پارامترهای جدید برای جلوه رنگ، حالت صحنه، حالت فلاش، حالت فوکوس، تعادل رنگ سفید، چرخش، و تنظیمات دیگر.
    • رابط جدید ZoomCallback برای انجام اقدامات زمانی که سطح بزرگنمایی تغییر کرده است.

    رسانه ها

    • MediaScanner اکنون تصاویر کوچکی را برای همه تصاویر هنگامی که در MediaStore قرار می‌گیرد تولید می‌کند.
    • API جدید Thumbnail برای بازیابی ریز عکسها و ویدیوها در صورت درخواست.

    چارچوب دیگر

    • تم های جدید سیستم در android.R.style برای نمایش آسان فعالیت ها در بالای تصویر زمینه سیستم فعلی یا قابل مشاهده بودن فعالیت قبلی در پس زمینه.
    • WallpaperManager API جدید، APIهای کاغذدیواری را که قبلاً در Context بودند جایگزین و گسترش می‌دهد تا به برنامه‌ها اجازه درخواست و تنظیم تصویر زمینه سیستم را بدهد.
    • APIهای سرویس جدید برای کمک به برنامه‌ها برای مدیریت صحیح چرخه عمر سرویس، به‌ویژه موقعیت‌های حافظه کم که ممکن است سرویس در حین اجرا از بین برود.
      • Service.setForeground() منسوخ شده است و اکنون عملاً هیچ عملیاتی را انجام نمی دهد. این با یک API جدید، startForeground() جایگزین شده است که به مرتبط کردن یک اعلان در حال انجام با وضعیت پیش زمینه کمک می کند (و نیاز دارد).
    • MotionEvent اکنون می‌تواند اطلاعات لمس همزمان را برای دستگاه‌هایی که از آن پشتیبانی می‌کنند گزارش کند. حداکثر سه اشاره گر را می توان به طور همزمان ردیابی کرد.
    • KeyEvent دارای APIهای ارسال کلید جدید است، برای کمک به پیاده سازی رفتار عمل روی بالا و فشار طولانی، و همچنین مکانیزم جدیدی برای لغو فشار کلید (برای کلیدهای مجازی).
    • WindowManager.LayoutParams دارای ثابت‌های جدیدی است که به پنجره اجازه می‌دهد هنگام نمایش صفحه را بیدار کند و حتی اگر صفحه قفل باشد، پنجره را نشان دهد. این به برنامه‌ها اجازه می‌دهد تا چیزهایی مانند ساعت‌های زنگ‌دار را که باید دستگاه را بیدار می‌کنند، به‌طور تمیزتر پیاده‌سازی کنند.
    • APIهای Intent جدید که وضعیت اتصال دستگاه را پخش می‌کنند و به برنامه‌ها اجازه می‌دهند فعالیت‌های خاصی را زمانی که دستگاه در دسک‌تاپ یا داک ماشین قرار می‌گیرد راه‌اندازی کنند.

    رویدادهای کلیدی اجرا شده در کلید آپ

    Android 2.0 برای اجرا در دستگاه هایی طراحی شده است که به جای کلیدهای فیزیکی از کلیدهای مجازی برای HOME، MENU، BACK و SEARCH استفاده می کنند. برای پشتیبانی از بهترین تجربه کاربری در آن دستگاه‌ها، پلتفرم Android اکنون این دکمه‌ها را به‌جای کلید کردن، برای جفت کلید-پایین/کلید-آپ، ​​با کلید بالا اجرا می‌کند. این به جلوگیری از رویدادهای تصادفی دکمه کمک می کند و به کاربر این امکان را می دهد که ناحیه دکمه را فشار داده و سپس بدون ایجاد رویداد از آن بیرون بکشد.

    این تغییر در رفتار تنها زمانی باید بر برنامه شما تأثیر بگذارد که رویدادهای دکمه را رهگیری کند و به جای کلید کردن، در حال انجام یک عمل کلید پایین باشد. به خصوص اگر برنامه شما کلید BACK را رهگیری می کند، باید مطمئن شوید که برنامه شما رویدادهای کلیدی را به درستی مدیریت می کند.

    به طور کلی، رهگیری کلید BACK در یک برنامه توصیه نمی شود، با این حال، اگر برنامه شما این کار را انجام می دهد و به جای کلید کردن، برخی از عملکردها را در key-down فراخوانی می کند، باید کد خود را تغییر دهید.

    اگر برنامه شما از API های معرفی شده در Android نسخه 2.0 (سطح 5 API) استفاده می کند، می توانید از API های جدید برای مدیریت جفت های کلید و رویداد استفاده کنید:

    • اگر کلید BACK را در یک اکتیویتی یا گفتگو رهگیری می کنید، فقط متد onBackPressed() جدید را پیاده سازی کنید.
    • اگر در حال رهگیری کلید BACK در یک نما هستید، باید رویداد کلید را در حالت key-down (از طریق متد startTracking() ردیابی کنید، سپس اقدام را در key up فراخوانی کنید. در اینجا یک الگو وجود دارد که می توانید از آن استفاده کنید:
    • کاتلین

      override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.repeatCount == 0) {
                      event.startTracking()
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyDown(keyCode, event)
          }
      }
      
      override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.isTracking && !event.isCanceled) {
                      // *** DO ACTION HERE ***
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyUp(keyCode, event)
          }
      }

      جاوا

      public boolean onKeyDown(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK
                      && event.getRepeatCount() == 0) {
                  event.startTracking();
                  return true;
              }
              return super.onKeyDown(keyCode, event);
          }
      
          public boolean onKeyUp(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
                      && !event.isCanceled()) {
                  // *** DO ACTION HERE ***
                  return true;
              }
              return super.onKeyUp(keyCode, event);
          }

    اگر می‌خواهید یک برنامه قدیمی را به‌روزرسانی کنید تا کنترل کلید BACK برای هر دو نسخه Android 2.0 و نسخه‌های قدیمی‌تر به درستی کار کند، می‌توانید از رویکردی مشابه آنچه در بالا نشان داده شده است استفاده کنید. کد شما می‌تواند رویداد دکمه هدف را در key-down دریافت کند، پرچمی را برای ردیابی رویداد کلیدی تنظیم کند، و سپس رویداد را در key-up نیز بگیرد و در صورت تنظیم پرچم ردیابی، اقدام مورد نظر را انجام دهد. همچنین می‌خواهید تغییرات فوکوس را تماشا کنید و هنگام به دست آوردن/از دست دادن فوکوس، پرچم ردیابی را پاک کنید.

    گزارش تفاوت های API

    برای مشاهده جزئیات تغییرات API در Android 2.0 (API Level 5)، در مقایسه با نسخه قبلی، به گزارش تفاوت های API مراجعه کنید.