API লেভেল: ৫
Android 2.0 হল একটি প্রধান প্ল্যাটফর্ম রিলিজ যা ২০০৯ সালের নভেম্বর থেকে Android-চালিত হ্যান্ডসেটে ডেপ্লয় করা যায়। এই রিলিজে ব্যবহারকারী ও ডেভেলপারদের জন্য নতুন ফিচার এবং Android ফ্রেমওয়ার্ক API-তে পরিবর্তন অন্তর্ভুক্ত আছে।
ডেভেলপারদের জন্য, Android 2.0 প্ল্যাটফর্ম Android SDK-এর জন্য ডাউনলোডযোগ্য কম্পোনেন্ট হিসেবে উপলভ্য। ডাউনলোড করা যাবে এমন প্ল্যাটফর্মে সম্পূর্ণভাবে মানানসই Android লাইব্রেরি ও সিস্টেম ইমেজ, ইমুলেটর স্কিনের সেট, স্যাম্পেল অ্যাপ্লিকেশন ও আরও অনেক কিছু অন্তর্ভুক্ত থাকে। ডাউনলোড করা যায় এমন প্ল্যাটফর্মটি সম্পূর্ণভাবে নিয়ম মেনে চলে এবং এতে কোনও এক্সটার্নাল লাইব্রেরি নেই।
Android 2.0 প্ল্যাটফর্মে ডেভেলপমেন্ট বা টেস্টিং শুরু করতে, Android SDK এবং AVD ম্যানেজার টুল ব্যবহার করে আপনার SDK-তে প্ল্যাটফর্মটি ডাউনলোড করুন।
প্ল্যাটফর্ম হাইলাইট
ব্যবহারকারীর জন্য নতুন ফিচার এবং প্ল্যাটফর্ম হাইলাইটের তালিকা দেখতে, Android 2.0 প্ল্যাটফর্ম হাইলাইট ডকুমেন্ট দেখুন।
বিল্ট-ইন অ্যাপ্লিকেশন
ডাউনলোড করা যাবে এমন প্ল্যাটফর্মে অন্তর্ভুক্ত সিস্টেম ইমেজ এই বিল্ট-ইন অ্যাপ্লিকেশনগুলি প্রদান করে:
|
|
স্থান
ডাউনলোড করা যাবে এমন প্ল্যাটফর্মে অন্তর্ভুক্ত সিস্টেম ইমেজ বিভিন্ন ধরনের বিল্ট-ইন লোকেল প্রদান করে। কিছু ক্ষেত্রে, লোকেলগুলির জন্য অঞ্চল-নির্দিষ্ট স্ট্রিং উপলভ্য। অন্যান্য ক্ষেত্রে, ভাষার ডিফল্ট ভার্সন ব্যবহার করা হয়। Android 2.0 সিস্টেম ইমেজে উপলভ্য ভাষাগুলি নিচে তালিকাভুক্ত করা হয়েছে (ভাষা_দেশ/অঞ্চল লোকেল ডেসক্রিপ্টর সহ)।
|
|
লোকালাইজ করা UI স্ট্রিং, সেটিংসের মাধ্যমে অ্যাক্সেসযোগ্য লোকেলের সাথে ম্যাচ করে।
ইমুলেটর স্কিন
ডাউনলোড করা যাবে এমন প্ল্যাটফর্মে ইমুলেটর স্কিনের একটি সেট অন্তর্ভুক্ত থাকে যা আপনি বিভিন্ন স্ক্রিন সাইজ এবং রেজোলিউশনে আপনার অ্যাপ্লিকেশন মডেল করার জন্য ব্যবহার করতে পারেন। ইমুলেটর স্কিনগুলি হল:
- QVGA (২৪০x৩২০, লো ডেনসিটি, ছোট স্ক্রিন)
- WQVGA (২৪০x৪০০, লো ডেনসিটি, সাধারণ স্ক্রিন)
- FWQVGA (২৪০x৪৩২, কম ডেনসিটি, সাধারণ স্ক্রিন)
- HVGA (৩২০x৪৮০, মাঝারি ডেনসিটি, সাধারণ স্ক্রিন)
- WVGA800 (৪৮০x৮০০, হাই ডেনসিটি, সাধারণ স্ক্রিন)
- WVGA854 (480x854 হাই ডেনসিটি, সাধারণ স্ক্রিন)
Android দ্বারা পরিচালিত সব ডিভাইসে সঠিকভাবে কাজ করে ও ডিসপ্লে দেখায় এমন অ্যাপ্লিকেশন কীভাবে ডেভেলপ করতে হয় সেই সম্পর্কে আরও জানতে, একাধিক স্ক্রিন সাপোর্ট করা দেখুন।
ডেভেলপার ফিচার
ডাউনলোড করা যাবে এমন Android 2.0 প্ল্যাটফর্ম কম্পোনেন্টের মাধ্যমে অফার করা নতুন ডেভেলপার ফিচার সম্পর্কে নিচের বিভাগগুলি তথ্য প্রদান করে।
Ant সহায়তা
- ডিবাগ- এবং রিলিজ-মোড অ্যাপ্লিকেশন সাইনিং। রিলিজ-মোড সাইনিংয়ে
zipalignঅপ্টিমাইজেশনের জন্য ইন্টিগ্রেটেড সহায়তা অন্তর্ভুক্ত থাকে। আরও তথ্যের জন্য, আপনার অ্যাপ্লিকেশন সাইন করা দেখুন। - Emma ইন্সট্রুমেন্টেশন প্রোজেক্টের (কোড কভারেজ) জন্য সহায়তা সহ নতুন Ant বিল্ড সিস্টেম যোগ করে।
Framework API
Android 2.0 প্ল্যাটফর্মের মাধ্যমে প্রদান করা অ্যাপ্লিকেশন ফ্রেমওয়ার্ক API সম্পর্কে নিচের বিভাগগুলি তথ্য প্রদান করে।
API লেভেল
Android 2.0 প্ল্যাটফর্ম ফ্রেমওয়ার্ক API-এর আপডেট করা ভার্সন প্রদান করে। আগের ভার্সনের মতো, Android 2.0 API-কে একটি পূর্ণসংখ্যা শনাক্তকারী — 5 — অ্যাসাইন করা হয়েছে যা সিস্টেমে স্টোর করা থাকে। এই শনাক্তকারীকে "API লেভেল" বলা হয়, যা সিস্টেমকে অ্যাপ্লিকেশন ইনস্টল করার আগে, সেটি সিস্টেমের সাথে মানানসই কিনা তা সঠিকভাবে নির্ধারণ করতে দেয়।
আপনার অ্যাপ্লিকেশনে Android 2.0-এ চালু করা API ব্যবহার করতে, আপনাকে
আপনার অ্যাপ্লিকেশনের ম্যানিফেস্টে <uses-sdk>
এলিমেন্টের অ্যাট্রিবিউটে সঠিক ভ্যালু, "৫" সেট করতে হবে।
API লেভেল কীভাবে ব্যবহার করতে হয় সেই সম্পর্কে আরও তথ্য পেতে, API লেভেল ডকুমেন্ট দেখুন।
API পরিবর্তন সংক্রান্ত সারসংক্ষেপ
ব্লুটুথ
- ব্লুটুথ চালু/বন্ধ করুন
- ডিভাইস ও পরিষেবা ডিসকভারি
- RFCOMM ব্যবহার করে রিমোট ডিভাইসের সাথে কানেক্ট করা এবং ডেটা পাঠানো/গ্রহণ করা
- RFCOMM পরিষেবার বিজ্ঞাপন দিন এবং ইনকামিং RFCOMM কানেকশন শুনুন
সিঙ্ক অ্যাডাপ্টার
- যেকোনও ব্যাকএন্ডের সাথে কানেক্ট করার জন্য সিঙ্ক অ্যাডাপ্টারের নতুন API
অ্যাকাউন্ট ম্যানেজার
- নিরাপদে অথ টোকেন/পাসওয়ার্ড স্টোর ও অ্যাক্সেস করার জন্য সেন্ট্রালাইজড অ্যাকাউন্ট ম্যানেজার API
পরিচিতি
- নতুন পরিচিতি API যা একাধিক অ্যাকাউন্ট থেকে ডেটা অ্যাক্সেস করার অনুমতি দেয়
- নতুন কুইক কন্ট্যাক্ট ফ্রেমওয়ার্ক API ডেভেলপারদের তাদের অ্যাপে কন্ট্যাক্ট ব্যাজ তৈরি করতে দেয়। ব্যাজে ক্লিক করলে একটি উইন্ডো খোলে যেখানে এক ক্লিকে ব্যক্তির সাথে যোগাযোগ করার উপায়ের তালিকা থাকে।
ওয়েব দর্শন
- বাতিল করা ক্লাস: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
ক্যামেরা
- কালার এফেক্ট, সিন মোড, ফ্ল্যাশ মোড, ফোকাস মোড, হোয়াইট ব্যালেন্স, রোটেশন ও অন্যান্য সেটিংসের জন্য নতুন প্যারামিটার।
- জুম লেভেল পরিবর্তন করা হলে অ্যাকশন পারফর্ম করার জন্য নতুন ZoomCallback ইন্টারফেস।
মিডিয়া
- MediaStore-এ সব ছবি যোগ করার সময় MediaScanner এখন সেগুলির থাম্বনেল তৈরি করে।
- চাহিদা অনুযায়ী ছবি ও ভিডিও থাম্বনেল ফিরিয়ে আনার জন্য নতুন থাম্বনেল API।
অন্যান্য ফ্রেমওয়ার্ক
- বর্তমান সিস্টেম ওয়ালপেপারের উপরে সহজেই অ্যাক্টিভিটি দেখাতে বা ব্যাকগ্রাউন্ডে আগের অ্যাক্টিভিটি দৃশ্যমান রাখতে android.R.style-এ নতুন সিস্টেম থিম।
- নতুন WallpaperManager API, আগে Context-এ থাকা ওয়ালপেপার API-কে প্রতিস্থাপন ও এক্সটেন্ড করে, যাতে অ্যাপ্লিকেশন সিস্টেম ওয়ালপেপারের জন্য অনুরোধ ও সেট করতে পারে।
- নতুন সার্ভিস API যা অ্যাপ্লিকেশনকে সঠিকভাবে সার্ভিস লাইফ-সাইকেল ম্যানেজ করতে সাহায্য করে, বিশেষ করে কম মেমরির পরিস্থিতিতে যেখানে কোনও সার্ভিস চলাকালীন বন্ধ হয়ে যেতে পারে।
- Service.setForeground() বন্ধ করে দেওয়া হয়েছে এবং এখন এটি কোনও অপারেশন কার্যকরভাবে পারফর্ম করে না। এটি একটি নতুন API, startForeground() দ্বারা প্রতিস্থাপিত হয়েছে, যা ফোরগ্রাউন্ড স্ট্যাটাসের সাথে একটি চলমান বিজ্ঞপ্তি যুক্ত করতে সাহায্য করে (এবং প্রয়োজন)।
- MotionEvent এখন এমন ডিভাইসের জন্য একই সাথে টাচ করার তথ্য রিপোর্ট করতে পারে যা এটি সাপোর্ট করে। একসাথে সর্বাধিক তিনটি পয়েন্টার ট্র্যাক করা যাবে।
- KeyEvent-এ নতুন কী ডিসপ্যাচিং API আছে, যা অ্যাকশন-অন-আপ এবং বেশিক্ষণ প্রেস করে রাখার আচরণ প্রয়োগ করতে সাহায্য করে, এর পাশাপাশি কী প্রেস (ভার্চুয়াল কী-এর জন্য) বাতিল করার নতুন মেকানিজমও আছে।
- WindowManager.LayoutParams-এ নতুন কনস্ট্যান্ট আছে যা কোনও উইন্ডোকে স্ক্রিন চালু করার অনুমতি দেয় যখন এটি দেখানো হয় এবং স্ক্রিন লক করা থাকলেও উইন্ডোটি দেখায়। এটি অ্যাপ্লিকেশানগুলিকে অ্যালার্ম ঘড়ির মতো জিনিসগুলি আরও পরিষ্কারভাবে প্রয়োগ করার অনুমতি দেয় যা ডিভাইসকে জাগিয়ে তোলে৷
- নতুন ইনটেন্ট API যা ডিভাইসের ডকিং স্টেট ব্রডকাস্ট করে এবং ডিভাইসটি ডেস্কটপ বা কার ডকে রাখা হলে অ্যাপ্লিকেশনগুলিকে বিশেষ অ্যাক্টিভিটি চালু করার অনুমতি দেয়।
কী-আপে মূল ইভেন্ট এক্সিকিউট করা হয়েছে
Android 2.0 এমন ডিভাইসে চালানোর জন্য ডিজাইন করা হয়েছে যা ফিজিক্যাল কী-এর পরিবর্তে HOME, MENU, BACK ও SEARCH-এর জন্য ভার্চুয়াল কী ব্যবহার করে। এইসব ডিভাইসে ব্যবহারকারীদের সেরা অভিজ্ঞতা প্রদান করতে, Android প্ল্যাটফর্ম এখন key-down-এর পরিবর্তে key-down/key-up পেয়ারের জন্য key-up-এ এইসব বোতাম এক্সিকিউট করে। এটি বোতামে ভুল করে প্রেস করা আটকায় এবং ব্যবহারকারীকে বোতামের জায়গায় প্রেস করে সেখান থেকে টেনে বের করে আনার সুবিধা দেয়, যার ফলে কোনও ইভেন্ট তৈরি হয় না।
এই পরিবর্তন আপনার অ্যাপ্লিকেশনে তখনই প্রভাব ফেলবে যদি এটি বোতাম ইভেন্ট ইন্টারসেপ্ট করে এবং কী-আপের পরিবর্তে কী-ডাউনে অ্যাকশন নেয়। বিশেষ করে আপনার অ্যাপ্লিকেশন যদি BACK কী ইন্টারসেপ্ট করে, তাহলে আপনাকে নিশ্চিত করতে হবে যে আপনার অ্যাপ্লিকেশন কী ইভেন্টগুলি সঠিকভাবে ম্যানেজ করছে।
সাধারণত, কোনও অ্যাপ্লিকেশনে BACK কী ইন্টারসেপ্ট করার সাজেশন দেওয়া হয় না, তবে, আপনার অ্যাপ্লিকেশন যদি এটি করে এবং কী-আপের পরিবর্তে কী-ডাউনে কিছু অ্যাকশন ইনভোক করে, তাহলে আপনার কোড পরিবর্তন করা উচিত।
আপনার অ্যাপ্লিকেশন যদি Android 2.0 (API লেভেল ৫)-এ চালু করা API ব্যবহার করে, তাহলে আপনি কী-ইভেন্ট পেয়ার ম্যানেজ করার জন্য নতুন API-এর সুবিধা নিতে পারবেন:
- আপনি কোনও অ্যাক্টিভিটি বা ডায়ালগে BACK কী ইন্টারসেপ্ট করলে, শুধু
নতুন
onBackPressed()পদ্ধতি প্রয়োগ করুন। - আপনি যদি কোনও ভিউতে BACK কী ইন্টারসেপ্ট করেন, তাহলে আপনার কী-ডাউনে কী ইভেন্ট ট্র্যাক করা উচিত (নতুন
startTracking()পদ্ধতির মাধ্যমে), তারপর কী-আপে অ্যাকশনটি চালু করুন। এখানে একটি প্যাটার্ন দেওয়া হল যা আপনি ব্যবহার করতে পারেন:
Kotlin
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); }
আপনি যদি কোনও লিগ্যাসি অ্যাপ্লিকেশন আপডেট করতে চান যাতে Android 2.0 এবং পুরনো প্ল্যাটফর্ম ভার্সন, দুটির ক্ষেত্রেই BACK কী সঠিকভাবে কাজ করে, তাহলে আপনি উপরে দেখানো পদ্ধতির মতো একটি পদ্ধতি ব্যবহার করতে পারেন। আপনার কোড কী-ডাউনে টার্গেট বোতাম ইভেন্ট ধরতে পারে, কী ইভেন্ট ট্র্যাক করার জন্য একটি ফ্ল্যাগ সেট করতে পারে এবং তারপরে কী-আপে ইভেন্টটি ধরতে পারে, ট্র্যাকিং ফ্ল্যাগ সেট করা থাকলে কাঙ্ক্ষিত অ্যাকশনটি কার্যকর করতে পারে। এছাড়াও, আপনি ফোকাস পরিবর্তন দেখতে এবং ফোকাস পাওয়া/হারানোর সময় ট্র্যাকিং ফ্ল্যাগ মুছে দিতে চাইবেন।
API পার্থক্য সংক্রান্ত রিপোর্ট
আগের ভার্সনের তুলনায় Android 2.0 (API লেভেল 5)-এ API-তে হওয়া পরিবর্তন বিস্তারিতভাবে দেখতে, API-এর পার্থক্য সংক্রান্ত রিপোর্ট দেখুন।