অ্যান্ড্রয়েড 2.0, রিলিজ 1

API স্তর: 5

অ্যান্ড্রয়েড 2.0 একটি প্রধান প্ল্যাটফর্ম রিলিজ যা অ্যান্ড্রয়েড-চালিত হ্যান্ডসেটগুলিতে মোতায়েন করা যায় নভেম্বর 2009 থেকে। রিলিজটিতে ব্যবহারকারী এবং বিকাশকারীদের জন্য নতুন বৈশিষ্ট্যগুলি, সেইসাথে অ্যান্ড্রয়েড ফ্রেমওয়ার্ক API-তে পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে।

বিকাশকারীদের জন্য, Android 2.0 প্ল্যাটফর্মটি Android SDK-এর জন্য একটি ডাউনলোডযোগ্য উপাদান হিসাবে উপলব্ধ। ডাউনলোডযোগ্য প্ল্যাটফর্মে একটি সম্পূর্ণ অনুগত অ্যান্ড্রয়েড লাইব্রেরি এবং সিস্টেম ইমেজ, সেইসাথে এমুলেটর স্কিন, নমুনা অ্যাপ্লিকেশন এবং আরও অনেক কিছু রয়েছে। ডাউনলোডযোগ্য প্ল্যাটফর্মটি সম্পূর্ণরূপে অনুগত এবং এতে কোনো বহিরাগত লাইব্রেরি নেই।

Android 2.0 প্ল্যাটফর্মের বিরুদ্ধে বিকাশ বা পরীক্ষা শুরু করতে, আপনার SDK-এ প্ল্যাটফর্ম ডাউনলোড করতে Android SDK এবং AVD ম্যানেজার টুল ব্যবহার করুন৷

প্ল্যাটফর্ম হাইলাইট

নতুন ব্যবহারকারীর বৈশিষ্ট্য এবং প্ল্যাটফর্ম হাইলাইটগুলির একটি তালিকার জন্য, Android 2.0 প্ল্যাটফর্ম হাইলাইট নথিটি দেখুন৷

অন্তর্নির্মিত অ্যাপ্লিকেশন

ডাউনলোডযোগ্য প্ল্যাটফর্মে অন্তর্ভুক্ত সিস্টেম চিত্রটি এই অন্তর্নির্মিত অ্যাপ্লিকেশনগুলি সরবরাহ করে:

  • অ্যালার্ম ঘড়ি
  • ব্রাউজার
  • ক্যালকুলেটর
  • ক্যামকর্ডার
  • ক্যামেরা
  • পরিচিতি
  • কাস্টম লোকেল (ডেভেলপার অ্যাপ)
  • ডেভ টুলস (ডেভেলপার অ্যাপ)
  • ডায়ালার
  • ইমেইল
  • গ্যালারি
  • অঙ্গভঙ্গি নির্মাতা
  • জাপানি টেক্সট ইনপুটের জন্য IME
  • মেসেজিং
  • সঙ্গীত
  • সেটিংস
  • খুচরা যন্ত্রাংশ (ডেভেলপার অ্যাপ)

লোকেল

ডাউনলোডযোগ্য প্ল্যাটফর্মে অন্তর্ভুক্ত সিস্টেম চিত্রটি বিভিন্ন বিল্ট-ইন লোকেল সরবরাহ করে। কিছু ক্ষেত্রে, অঞ্চল-নির্দিষ্ট স্ট্রিং লোকেলের জন্য উপলব্ধ। অন্যান্য ক্ষেত্রে, ভাষার একটি ডিফল্ট সংস্করণ ব্যবহার করা হয়। অ্যান্ড্রয়েড 2.0 সিস্টেম ইমেজে উপলব্ধ ভাষাগুলি নীচে তালিকাভুক্ত করা হয়েছে ( ভাষা _ দেশ/অঞ্চলের লোকেল বর্ণনাকারী সহ)।

  • চীনা, PRC (zh_CN)
  • চাইনিজ, তাইওয়ান (zh_TW)
  • চেক (cs_CZ)
  • ডাচ, নেদারল্যান্ডস (nl_NL)
  • ডাচ, বেলজিয়াম (nl_BE)
  • ইংরেজি, US (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)
  • স্থানীয় UI স্ট্রিংগুলি সেটিংসের মাধ্যমে অ্যাক্সেসযোগ্য লোকেলগুলির সাথে মেলে৷

    এমুলেটর স্কিনস

    ডাউনলোডযোগ্য প্ল্যাটফর্মটিতে এমুলেটর স্কিনগুলির একটি সেট অন্তর্ভুক্ত রয়েছে যা আপনি বিভিন্ন স্ক্রীন আকার এবং রেজোলিউশনে আপনার অ্যাপ্লিকেশনের মডেলিংয়ের জন্য ব্যবহার করতে পারেন। এমুলেটর স্কিনগুলি হল:

    • QVGA (240x320, কম ঘনত্ব, ছোট পর্দা)
    • WQVGA (240x400, কম ঘনত্ব, স্বাভাবিক পর্দা)
    • FWQVGA (240x432, কম ঘনত্ব, স্বাভাবিক পর্দা)
    • HVGA (320x480, মাঝারি ঘনত্ব, স্বাভাবিক পর্দা)
    • WVGA800 (480x800, উচ্চ ঘনত্ব, স্বাভাবিক পর্দা)
    • WVGA854 (480x854 উচ্চ ঘনত্ব, স্বাভাবিক পর্দা)

    সমস্ত অ্যান্ড্রয়েড-চালিত ডিভাইসে সঠিকভাবে প্রদর্শন করে এবং কাজ করে এমন একটি অ্যাপ্লিকেশন কীভাবে বিকাশ করা যায় সে সম্পর্কে আরও তথ্যের জন্য, একাধিক স্ক্রিন সমর্থন করা দেখুন।

    বিকাশকারী বৈশিষ্ট্য

    নীচের বিভাগগুলি ডাউনলোডযোগ্য Android 2.0 প্ল্যাটফর্ম উপাদান দ্বারা অফার করা নতুন বিকাশকারী বৈশিষ্ট্যগুলি সম্পর্কে তথ্য প্রদান করে৷

    পিঁপড়া সমর্থন

    • ডিবাগ- এবং রিলিজ-মোড অ্যাপ্লিকেশন সাইনিং। রিলিজ-মোড সাইনিং zipalign অপ্টিমাইজেশানের জন্য সমন্বিত সমর্থন অন্তর্ভুক্ত করে। আরও তথ্যের জন্য, আপনার অ্যাপ্লিকেশনগুলিতে স্বাক্ষর করা দেখুন।
    • এমা ইন্সট্রুমেন্টেশন প্রজেক্টের (কোড কভারেজ) জন্য সমর্থন সহ নতুন এন্ট বিল্ড সিস্টেম যুক্ত করে।

    ফ্রেমওয়ার্ক API

    নীচের বিভাগগুলি Android 2.0 প্ল্যাটফর্ম দ্বারা প্রদত্ত অ্যাপ্লিকেশন ফ্রেমওয়ার্ক API সম্পর্কে তথ্য প্রদান করে৷

    API স্তর

    অ্যান্ড্রয়েড 2.0 প্ল্যাটফর্ম ফ্রেমওয়ার্ক API এর একটি আপডেট সংস্করণ সরবরাহ করে। পূর্ববর্তী সংস্করণগুলির মতো, অ্যান্ড্রয়েড 2.0 API-কে একটি পূর্ণসংখ্যা শনাক্তকারী বরাদ্দ করা হয়েছে — 5 — যা সিস্টেমেই সংরক্ষিত থাকে। এই আইডেন্টিফায়ার, যাকে "API লেভেল" বলা হয়, সেটি সিস্টেমকে সঠিকভাবে নির্ধারণ করতে দেয় যে একটি অ্যাপ্লিকেশন সিস্টেমের সাথে সামঞ্জস্যপূর্ণ কিনা, অ্যাপ্লিকেশন ইনস্টল করার আগে।

    আপনার অ্যাপ্লিকেশানে Android 2.0-এ প্রবর্তিত APIগুলি ব্যবহার করতে, আপনাকে আপনার অ্যাপ্লিকেশনের ম্যানিফেস্টে <uses-sdk> উপাদানের বৈশিষ্ট্যগুলির মধ্যে সঠিক মান, "5" সেট করতে হবে।

    এপিআই লেভেল কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য, এপিআই লেভেল ডকুমেন্ট দেখুন।

    API পরিবর্তনের সারাংশ

    ব্লুটুথ

    • ব্লুটুথ চালু/বন্ধ করুন
    • ডিভাইস এবং পরিষেবা আবিষ্কার
    • RFCOMM ব্যবহার করে একটি দূরবর্তী ডিভাইসের সাথে সংযোগ করুন এবং ডেটা পাঠান/গ্রহণ করুন
    • RFCOMM পরিষেবার বিজ্ঞাপন দিন এবং আগত RFCOMM সংযোগের জন্য শুনুন

    অ্যাডাপ্টার সিঙ্ক করুন

    • যেকোনো ব্যাকএন্ডের সাথে সংযোগ করতে সিঙ্ক অ্যাডাপ্টারের জন্য নতুন APIs

    অ্যাকাউন্ট ম্যানেজার

    • অনুমোদন টোকেন/পাসওয়ার্ড নিরাপদে সঞ্চয় এবং অ্যাক্সেস করতে কেন্দ্রীভূত অ্যাকাউন্ট ম্যানেজার API

    পরিচিতি

    • নতুন পরিচিতি API যা একাধিক অ্যাকাউন্ট থেকে ডেটার জন্য অনুমতি দেয়
    • নতুন কুইক কন্টাক্ট ফ্রেমওয়ার্ক এপিআই ডেভেলপারদের তাদের অ্যাপে যোগাযোগ ব্যাজ তৈরি করতে সক্ষম করে। ব্যাজটিতে ক্লিক করলে এক ক্লিকে ব্যক্তির সাথে যোগাযোগ করার উপায়গুলির একটি তালিকা সহ একটি উইন্ডো খোলে।

    ওয়েবভিউ

    • অপ্রচলিত ক্লাস: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry।

    ক্যামেরা

    • রঙের প্রভাব, দৃশ্য মোড, ফ্ল্যাশ মোড, ফোকাস মোড, সাদা ব্যালেন্স, ঘূর্ণন এবং অন্যান্য সেটিংসের জন্য নতুন পরামিতি।
    • জুম লেভেল পরিবর্তিত হলে ক্রিয়া সম্পাদনের জন্য নতুন জুমকলব্যাক ইন্টারফেস।

    মিডিয়া

    • মিডিয়াস্টোরে ঢোকানো হলে মিডিয়াস্ক্যানার এখন সমস্ত ছবির থাম্বনেইল তৈরি করে।
    • চাহিদা অনুযায়ী ছবি এবং ভিডিও থাম্বনেল পুনরুদ্ধার করার জন্য নতুন থাম্বনেইল API।

    অন্যান্য ফ্রেমওয়ার্ক

    • android.R.style-এ নতুন সিস্টেম থিমগুলি সহজেই বর্তমান সিস্টেম ওয়ালপেপারের উপরে ক্রিয়াকলাপগুলি প্রদর্শন করতে বা পটভূমিতে পূর্বের কার্যকলাপগুলিকে দৃশ্যমান রাখতে।
    • নতুন WallpaperManager API গুলি প্রতিস্থাপন করে এবং প্রসারিত করে ওয়ালপেপার APIগুলি যা পূর্বে প্রসঙ্গে ছিল, অ্যাপ্লিকেশনগুলিকে সিস্টেম ওয়ালপেপারের অনুরোধ এবং সেট করার অনুমতি দিতে৷
    • পরিষেবার জীবনচক্র সঠিকভাবে পরিচালনা করতে অ্যাপ্লিকেশনগুলিকে সাহায্য করার জন্য নতুন পরিষেবা APIগুলি, বিশেষত কম মেমরির পরিস্থিতিতে যেখানে একটি পরিষেবা চালানোর সময় মারা যেতে পারে।
      • Service.setForeground() অবচয় করা হয়েছে এবং এখন কার্যকরভাবে কোনো অপারেশন করে না। এটি একটি নতুন API দিয়ে প্রতিস্থাপিত হয়েছে, startForeground(), যা একটি চলমান বিজ্ঞপ্তিকে অগ্রভাগের অবস্থার সাথে যুক্ত করতে সাহায্য করে (এবং প্রয়োজন)।
    • MotionEvent এখন এটি সমর্থন করে এমন ডিভাইসগুলির জন্য একযোগে-স্পর্শ তথ্য প্রতিবেদন করতে পারে। একসাথে তিনটি পয়েন্টার ট্র্যাক করা যেতে পারে।
    • কী ইভেন্টে নতুন কী প্রেরণকারী API রয়েছে, অ্যাকশন-অন-আপ এবং দীর্ঘ প্রেস আচরণ বাস্তবায়নে সহায়তা করার জন্য, সেইসাথে কী প্রেসগুলি (ভার্চুয়াল কীগুলির জন্য) বাতিল করার জন্য একটি নতুন প্রক্রিয়া রয়েছে।
    • WindowManager.LayoutParams-এ নতুন ধ্রুবক রয়েছে যা একটি উইন্ডো প্রদর্শিত হলে স্ক্রীন জাগিয়ে তুলতে দেয় এবং স্ক্রীন লক করা থাকলেও উইন্ডোটি দেখায়। এটি অ্যালার্ম ঘড়ির মতো জিনিসগুলিকে আরও পরিষ্কারভাবে প্রয়োগ করতে অ্যাপ্লিকেশনগুলিকে অনুমতি দেয় যা ডিভাইসটিকে জাগানো উচিত৷
    • নতুন ইন্টেন্ট API যেগুলি ডিভাইসের ডকিং অবস্থা সম্প্রচার করে এবং ডিভাইসটিকে ডেস্কটপ বা গাড়ির ডকে রাখা হলে অ্যাপ্লিকেশনগুলিকে বিশেষ ক্রিয়াকলাপ চালু করার অনুমতি দেয়৷

    কী-আপে সম্পাদিত মূল ঘটনা

    Android 2.0 এমন ডিভাইসগুলিতে চালানোর জন্য ডিজাইন করা হয়েছে যেগুলি বাস্তব কীগুলির পরিবর্তে হোম, মেনু, ব্যাক এবং অনুসন্ধানের জন্য ভার্চুয়াল কীগুলি ব্যবহার করে৷ এই ডিভাইসগুলিতে সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা সমর্থন করার জন্য, অ্যান্ড্রয়েড প্ল্যাটফর্ম এখন কী-ডাউনের পরিবর্তে কী-ডাউন/কী-আপ জোড়ার জন্য কী-আপে এই বোতামগুলি কার্যকর করে। এটি দুর্ঘটনাজনিত বোতাম ইভেন্টগুলি প্রতিরোধ করতে সহায়তা করে এবং ব্যবহারকারীকে বোতাম এলাকা টিপতে দেয় এবং তারপরে কোনও ইভেন্ট তৈরি না করেই এটি থেকে টেনে আনতে দেয়৷

    আচরণের এই পরিবর্তনটি শুধুমাত্র আপনার অ্যাপ্লিকেশনকে প্রভাবিত করবে যদি এটি বোতাম ইভেন্টগুলিকে বাধা দেয় এবং কী-আপের পরিবর্তে কী-ডাউনে একটি পদক্ষেপ নেয়। বিশেষ করে যদি আপনার অ্যাপ্লিকেশানটি ব্যাক কীটি বাধা দেয়, আপনার নিশ্চিত হওয়া উচিত যে আপনার অ্যাপ্লিকেশনটি মূল ঘটনাগুলি সঠিকভাবে পরিচালনা করছে৷

    সাধারণভাবে, একটি অ্যাপ্লিকেশনে ব্যাক কীটি বাধা দেওয়ার সুপারিশ করা হয় না, তবে, যদি আপনার অ্যাপ্লিকেশনটি তা করে থাকে এবং এটি কী-আপের পরিবর্তে কী-ডাউনে কিছু অ্যাকশন আহ্বান করে, তাহলে আপনার কোড পরিবর্তন করা উচিত।

    যদি আপনার অ্যাপ্লিকেশন Android 2.0 (API লেভেল 5) এ প্রবর্তিত API ব্যবহার করে, তাহলে আপনি কী-ইভেন্ট জোড়া পরিচালনার জন্য নতুন API এর সুবিধা নিতে পারেন:

    • আপনি যদি একটি কার্যকলাপ বা ডায়ালগে BACK কীটি আটকাচ্ছেন, শুধুমাত্র নতুন onBackPressed() পদ্ধতি প্রয়োগ করুন।
    • আপনি যদি একটি ভিউতে BACK কীটি বাধা দিচ্ছেন, তাহলে আপনার কী-ডাউনে (নতুন startTracking() পদ্ধতির মাধ্যমে কী ইভেন্টটি ট্র্যাক করা উচিত, তারপর কী আপ-এ অ্যাকশনটি চালু করুন৷ এখানে একটি প্যাটার্ন আপনি ব্যবহার করতে পারেন:
    • কোটলিন

      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);
          }
      

    আপনি যদি একটি লিগ্যাসি অ্যাপ্লিকেশন আপডেট করতে চান যাতে এটির ব্যাক কী হ্যান্ডলিং অ্যান্ড্রয়েড 2.0 এবং পুরানো প্ল্যাটফর্ম উভয় সংস্করণের জন্য সঠিকভাবে কাজ করে, আপনি উপরে দেখানো পদ্ধতির মতো একটি পদ্ধতি ব্যবহার করতে পারেন। আপনার কোড কী-ডাউনে টার্গেট বোতাম ইভেন্ট ধরতে পারে, কী ইভেন্ট ট্র্যাক করতে একটি পতাকা সেট করতে পারে এবং তারপরে কী-আপে ইভেন্টটি ধরতে পারে, যদি ট্র্যাকিং পতাকা সেট করা থাকে তবে পছন্দসই ক্রিয়া সম্পাদন করে। এছাড়াও আপনি ফোকাস পরিবর্তনগুলি দেখতে চাইবেন এবং ফোকাস অর্জন/হারানোর সময় ট্র্যাকিং পতাকাটি সাফ করতে চাইবেন৷

    API পার্থক্য রিপোর্ট

    পূর্ববর্তী সংস্করণের তুলনায় অ্যান্ড্রয়েড 2.0 (এপিআই লেভেল 5) এ API পরিবর্তনগুলির একটি বিশদ দৃশ্যের জন্য, API পার্থক্য রিপোর্ট দেখুন।