অ্যান্ড্রয়েড 2.3 API

API স্তর: 9

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

API ওভারভিউ

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

এসআইপি-ভিত্তিক ভিওআইপি

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

SIP API android.net.sip প্যাকেজে উপলব্ধ। মূল শ্রেণী হল SipManager , যা অ্যাপ্লিকেশনগুলি SIP প্রোফাইল সেট আপ এবং পরিচালনা করতে ব্যবহার করে, তারপর অডিও কল শুরু করে এবং অডিও কল গ্রহণ করে। একবার একটি অডিও কল প্রতিষ্ঠিত হলে, অ্যাপ্লিকেশনগুলি কলগুলিকে নিঃশব্দ করতে, স্পিকার মোড চালু করতে, DTMF টোন পাঠাতে এবং আরও অনেক কিছু করতে পারে৷ অ্যাপ্লিকেশানগুলি জেনেরিক এসআইপি সংযোগ তৈরি করতে SipManager ব্যবহার করতে পারে।

প্ল্যাটফর্মের অন্তর্নিহিত SIP স্ট্যাক এবং পরিষেবাগুলি প্রস্তুতকারক এবং সংশ্লিষ্ট ক্যারিয়ারের বিবেচনার ভিত্তিতে ডিভাইসগুলিতে উপলব্ধ। এই কারণে, ব্যবহারকারীদের কাছে কলিং কার্যকারিতা প্রকাশ করার আগে SIP সমর্থন উপলব্ধ কিনা তা পরীক্ষা করতে অ্যাপ্লিকেশনগুলিকে isApiSupported() পদ্ধতি ব্যবহার করা উচিত।

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 পরিষেবাগুলি সরবরাহ করে যেগুলি ট্যাগগুলি যখন পরিসরে আসে তখন আবিষ্কার করতে ডিভাইস হার্ডওয়্যারের সাথে কাজ করে। একটি ট্যাগ আবিষ্কার করার পরে, প্ল্যাটফর্মটি একটি ইন্টেন্ট সম্প্রচারের মাধ্যমে অ্যাপ্লিকেশনগুলিকে অবহিত করে, ট্যাগের NDEF বার্তাগুলিকে অতিরিক্ত হিসাবে অভিপ্রায়ে যুক্ত করে৷ অ্যাপ্লিকেশানগুলি লক্ষ্যযুক্ত ট্যাগ এবং বার্তাগুলি চিনতে এবং পরিচালনা করতে ইন্টেন্ট ফিল্টার তৈরি করতে পারে। উদাহরণস্বরূপ, ইন্টেন্ট দ্বারা একটি ট্যাগ পাওয়ার পরে, অ্যাপ্লিকেশনগুলি এনডিইএফ বার্তাগুলি বের করে, সেগুলি সংরক্ষণ করে, ব্যবহারকারীকে সতর্ক করে বা অন্য উপায়ে সেগুলি পরিচালনা করে।

NFC API android.nfc প্যাকেজে উপলব্ধ। মূল ক্লাস হল:

  • NfcAdapter , যা ডিভাইসে NFC হার্ডওয়্যার প্রতিনিধিত্ব করে।
  • NdefMessage , যা একটি NDEF ডেটা বার্তাকে উপস্থাপন করে, একটি আদর্শ বিন্যাস যেখানে "রেকর্ড" বহনকারী ডেটা ডিভাইস এবং ট্যাগের মধ্যে প্রেরণ করা হয়। অ্যাপ্লিকেশনগুলি ACTION_TAG_DISCOVERED ইন্টেন্ট থেকে এই বার্তাগুলি পেতে পারে৷
  • NdefRecord , একটি NdefMessage এ বিতরণ করা হয়, যা ভাগ করা ডেটার ধরন বর্ণনা করে এবং ডেটা নিজেই বহন করে।

NFC যোগাযোগ ডিভাইস হার্ডওয়্যারে বেতার প্রযুক্তির উপর নির্ভর করে, তাই নির্দিষ্ট ডিভাইসে প্ল্যাটফর্মের NFC বৈশিষ্ট্যগুলির জন্য সমর্থন তাদের নির্মাতারা নির্ধারণ করে। বর্তমান ডিভাইসে NFC সমর্থন নির্ধারণ করতে, অ্যাপ্লিকেশনগুলি NfcAdapter জিজ্ঞাসা করতে isEnabled() কল করতে পারে৷ NFC API সর্বদা উপস্থিত থাকে, তবে অন্তর্নিহিত হার্ডওয়্যার সমর্থন নির্বিশেষে।

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 সমর্থন যোগ করে — জাইরোস্কোপ, ঘূর্ণন ভেক্টর, রৈখিক ত্বরণ, মাধ্যাকর্ষণ এবং ব্যারোমিটার। ডেভেলপাররা নতুন সেন্সর রিডিং ব্যবহার করে এমন অ্যাপ্লিকেশন তৈরি করতে পারে যা ডিভাইসের অবস্থান এবং গতিতে সুনির্দিষ্ট পরিবর্তনের জন্য দ্রুত এবং মসৃণভাবে সাড়া দেয়। সেন্সর এপিআই আগ্রহী অ্যাপ্লিকেশনগুলিতে জাইরোস্কোপ এবং অন্যান্য সেন্সর পরিবর্তনগুলি রিপোর্ট করে, সেগুলি অ্যাপ্লিকেশন ফ্রেমওয়ার্ক বা নেটিভ কোডে চলছে কিনা।

মনে রাখবেন যে কোনও নির্দিষ্ট ডিভাইসে উপলব্ধ হার্ডওয়্যার সেন্সরগুলির নির্দিষ্ট সেট ডিভাইস প্রস্তুতকারকের বিবেচনার ভিত্তিতে পরিবর্তিত হয়।

বিকাশকারীরা Google Play-তে ফিল্টার করার অনুরোধ করতে পারে, যেমন তাদের অ্যাপ্লিকেশনগুলি ব্যবহারকারীদের কাছে আবিষ্কারযোগ্য নয় যাদের ডিভাইসগুলি একটি জাইরোস্কোপ সেন্সর অফার করে না। এটি করতে, অ্যাপ্লিকেশন ম্যানিফেস্টে <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true"> যোগ করুন।

API বিবরণের জন্য, Sensor দেখুন।

একাধিক ক্যামেরা সমর্থন

অ্যাপ্লিকেশনগুলি এখন ফটো বা ভিডিও ক্যাপচারের জন্য ডিভাইসে উপলব্ধ যে কোনও ক্যামেরা ব্যবহার করতে পারে৷ Camera উপলব্ধ ক্যামেরার সংখ্যা এবং প্রতিটির অনন্য বৈশিষ্ট্যগুলির জন্য অ্যাপ্লিকেশনগুলিকে জিজ্ঞাসা করতে দেয়৷

  • New Camera.CameraInfo ক্লাস একটি ক্যামেরার অবস্থানগত বৈশিষ্ট্য (অরিয়েন্টেশন, সামনের দিকে বা পিছনের দিকে) সঞ্চয় করে।
  • Camera ক্লাসে নতুন getNumberOfCameras() এবং getCameraInfo() পদ্ধতিগুলি উপলব্ধ ক্যামেরাগুলির জন্য অ্যাপ্লিকেশনগুলিকে জিজ্ঞাসা করতে দেয় এবং তাদের প্রয়োজনীয় ক্যামেরাটি খুলতে দেয়৷
  • নতুন get() পদ্ধতি অ্যাপ্লিকেশনগুলিকে একটি নির্দিষ্ট ক্যামেরার জন্য একটি CamcorderProfile পুনরুদ্ধার করতে দেয়।
  • নতুন getJpegEncodingQualityParameter() অ্যাপ্লিকেশনগুলিকে একটি নির্দিষ্ট ক্যামেরার জন্য স্থির-ইমেজ ক্যাপচার মানের স্তর পেতে দেয়।

সামনের দিকের ক্যামেরা অ্যাক্সেস করার জন্য নমুনা কোড দেখতে, ApiDemos নমুনা অ্যাপ্লিকেশনটিতে CameraPreview.java দেখুন।

ক্যামেরা API এছাড়াও যোগ করে:

  • ক্যামেরার জন্য নতুন প্যারামিটার, যার মধ্যে ফোকাস দূরত্ব, ফোকাস মোড, এবং প্রাকদর্শন fps সর্বাধিক/নূন্যতম। ক্যামেরা প্যারামিটার পাওয়ার জন্য নতুন getFocusDistances() , getPreviewFpsRange() , এবং getSupportedPreviewFpsRange() এর পাশাপাশি প্রিভিউ ফ্রেমরেট সেট করার জন্য setPreviewFpsRange()

মিশ্রযোগ্য অডিও প্রভাব

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

  • নতুন android.media.audiofx প্যাকেজ অডিও প্রভাব অ্যাক্সেস করার জন্য API প্রদান করে।
  • অ্যান্ড্রয়েড অডিও ফ্রেমওয়ার্ক দ্বারা প্রদত্ত অডিও প্রভাব নিয়ন্ত্রণের জন্য নতুন AudioEffect হল বেস ক্লাস।
  • নতুন অডিও সেশন আইডি যা একটি অ্যাপ্লিকেশনকে AudioTrack বা MediaPlayer একটি উদাহরণের সাথে অডিও প্রভাবগুলির একটি সেট সংযুক্ত করতে দেয়৷
  • নতুন AudioTrack ক্লাস কনস্ট্রাক্টর যা আপনাকে একটি নির্দিষ্ট সেশন আইডি সহ একটি AudioTrack তৈরি করতে দেয়। নতুন attachAuxEffect() , getAudioSessionId() , এবং setAuxEffectSendLevel() পদ্ধতি।
  • নতুন attachAuxEffect() , getAudioSessionId() , setAudioSessionId(int) , এবং setAuxEffectSendLevel() পদ্ধতি এবং সমর্থনকারী প্রকারগুলি৷

অডিও প্রভাবের জন্য নমুনা কোড দেখতে, ApiDemos নমুনা অ্যাপ্লিকেশনে AudioFxDemo.java দেখুন।

মিডিয়া ফ্রেমওয়ার্ক আরও যোগ করে:

  • JPEG ফাইলের জন্য EXIF ​​মেটাডেটাতে উচ্চতা ট্যাগের জন্য নতুন সমর্থন। EXIF উচ্চতা ট্যাগের মান পুনরুদ্ধার করার জন্য নতুন পদ্ধতি getAltitude() পদ্ধতি।
  • নতুন setOrientationHint() পদ্ধতি একটি অ্যাপ্লিকেশনকে ভিডিও ক্যাপচারের সময় MediaRecorder ওরিয়েন্টেশন জানাতে দেয়।

ডাউনলোড ম্যানেজার

প্ল্যাটফর্মটিতে একটি নতুন DownloadManager সিস্টেম পরিষেবা রয়েছে যা দীর্ঘ-চলমান HTTP ডাউনলোডগুলি পরিচালনা করে। অ্যাপ্লিকেশনগুলি একটি নির্দিষ্ট গন্তব্য ফাইলে একটি URI ডাউনলোড করার অনুরোধ করতে পারে। DownloadManager পটভূমিতে ডাউনলোড পরিচালনা করবে, HTTP মিথস্ক্রিয়াগুলির যত্ন নেবে এবং ব্যর্থতার পরে বা সংযোগ পরিবর্তন এবং সিস্টেম রিবুট জুড়ে ডাউনলোডগুলি পুনরায় চেষ্টা করবে।

  • অ্যাপ্লিকেশনগুলি getSystemService(String) কল করে এবং DOWNLOAD_SERVICE পাস করে DownloadManager ক্লাসের একটি উদাহরণ পেতে পারে। যে অ্যাপ্লিকেশনগুলি এই API-এর মাধ্যমে ডাউনলোডের অনুরোধ করে সেগুলিকে ACTION_NOTIFICATION_CLICKED এর জন্য একটি সম্প্রচার রিসিভার নিবন্ধন করা উচিত, ব্যবহারকারী যখন কোনও বিজ্ঞপ্তিতে বা ডাউনলোড UI থেকে চলমান ডাউনলোডে ক্লিক করেন তখন যথাযথভাবে পরিচালনা করতে৷
  • DownloadManager.Request ক্লাস একটি অ্যাপ্লিকেশনকে একটি নতুন ডাউনলোডের অনুরোধ করার জন্য প্রয়োজনীয় সমস্ত তথ্য প্রদান করতে দেয়, যেমন অনুরোধ URI এবং ডাউনলোড গন্তব্য। একটি অনুরোধ URI হল একমাত্র প্রয়োজনীয় প্যারামিটার। মনে রাখবেন যে ডিফল্ট ডাউনলোড গন্তব্য হল একটি ভাগ করা ভলিউম যেখানে সিস্টেমটি আপনার ফাইলটি মুছে ফেলতে পারে যদি এটিকে সিস্টেম ব্যবহারের জন্য জায়গা পুনরুদ্ধার করতে হয়। একটি ডাউনলোডের ক্রমাগত সঞ্চয়স্থানের জন্য, বাহ্যিক সঞ্চয়স্থানে একটি ডাউনলোড গন্তব্য নির্দিষ্ট করুন ( setDestinationUri(Uri) দেখুন)।
  • DownloadManager.Query ক্লাস এমন পদ্ধতিগুলি প্রদান করে যা একটি অ্যাপ্লিকেশানকে সক্রিয় ডাউনলোডের জন্য অনুসন্ধান এবং ফিল্টার করতে দেয়৷

স্ট্রিক্টমোড

ডেভেলপারদের তাদের অ্যাপ্লিকেশনের কর্মক্ষমতা নিরীক্ষণ এবং উন্নত করতে সাহায্য করার জন্য, প্ল্যাটফর্মটি StrictMode নামে একটি নতুন সিস্টেম সুবিধা অফার করে। যখন একটি অ্যাপ্লিকেশনে প্রয়োগ করা হয়, তখন স্ট্রিক্টমোড দুর্ঘটনাজনিত ডিস্ক বা নেটওয়ার্ক কার্যকলাপের বিকাশকারীকে ক্যাচ করে এবং অবহিত করে যা অ্যাপ্লিকেশনের কার্যক্ষমতা হ্রাস করতে পারে, যেমন অ্যাপ্লিকেশনের প্রধান থ্রেডে ঘটে যাওয়া কার্যকলাপ (যেখানে UI অপারেশনগুলি গ্রহণ করা হয় এবং অ্যানিমেশনগুলিও সংঘটিত হয়)। বিকাশকারীরা স্ট্রিক্টমোডে উত্থাপিত নেটওয়ার্ক এবং ডিস্ক ব্যবহারের সমস্যাগুলি মূল্যায়ন করতে পারে এবং প্রয়োজনে সেগুলি সংশোধন করতে পারে, মূল থ্রেডটিকে আরও প্রতিক্রিয়াশীল রেখে এবং ব্যবহারকারীদের কাছে ANR ডায়ালগগুলি দেখানো থেকে বাধা দেয়।

  • StrictMode হল মূল শ্রেণী এবং এটি সিস্টেম এবং VM এর সাথে প্রধান ইন্টিগ্রেশন পয়েন্ট। ক্লাসটি থ্রেড এবং VM নীতিগুলি পরিচালনা করার জন্য সুবিধার পদ্ধতি প্রদান করে যা উদাহরণে প্রযোজ্য।
  • StrictMode.ThreadPolicy এবং StrictMode.VmPolicy আপনি যে নীতিগুলি সংজ্ঞায়িত করেন এবং থ্রেড এবং VM দৃষ্টান্তে প্রয়োগ করেন সেগুলি ধরে রাখে৷

কিভাবে আপনার অ্যাপ্লিকেশন অপ্টিমাইজ করতে StrictMode ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য, android.os.StrictMode এ ক্লাস ডকুমেন্টেশন এবং নমুনা কোড দেখুন।

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

  • ওভারস্ক্রোলের জন্য সমর্থন
    • ভিউ এবং উইজেটে ওভারস্ক্রোল করার জন্য নতুন সমর্থন। ভিউতে, অ্যাপ্লিকেশনগুলি একটি প্রদত্ত দৃশ্যের জন্য ওভারস্ক্রোল সক্ষম/অক্ষম করতে পারে, ওভারস্কোল মোড সেট করতে পারে, ওভারস্ক্রোল দূরত্ব নিয়ন্ত্রণ করতে পারে এবং ওভারস্ক্রোলিংয়ের ফলাফলগুলি পরিচালনা করতে পারে।
    • উইজেটে, অ্যাপ্লিকেশনগুলি ওভারস্ক্রোল বৈশিষ্ট্য যেমন অ্যানিমেশন, স্প্রিংব্যাক এবং ওভারস্ক্রোল দূরত্ব নিয়ন্ত্রণ করতে পারে। আরও তথ্যের জন্য, android.view.View এবং android.widget.OverScroller দেখুন।
    • ViewConfiguration getScaledOverflingDistance() এবং getScaledOverscrollDistance() পদ্ধতিও প্রদান করে।
    • ওভারস্ক্রোল আচরণ নিয়ন্ত্রণের জন্য <ListView> উপাদানগুলির জন্য নতুন overScrollMode , overScrollFooter এবং overScrollHeader বৈশিষ্ট্য।
  • স্পর্শ ফিল্টারিং জন্য সমর্থন
    • স্পর্শ ফিল্টারিংয়ের জন্য নতুন সমর্থন, যা একটি অ্যাপ্লিকেশনকে দৃশ্যের নিরাপত্তা উন্নত করতে দেয় যা সংবেদনশীল কার্যকারিতায় অ্যাক্সেস প্রদান করে। উদাহরণস্বরূপ, স্পর্শ ফিল্টারিং ব্যবহারকারীর ক্রিয়াকলাপের নিরাপত্তা নিশ্চিত করার জন্য উপযুক্ত যেমন অনুমতির অনুরোধ মঞ্জুর করা, কেনাকাটা করা বা বিজ্ঞাপনে ক্লিক করা। বিস্তারিত জানার জন্য, দেখুন ক্লাস ডকুমেন্টেশন দেখুন।
    • ভিউ এলিমেন্টের জন্য নতুন filterTouchesWhenObscured অ্যাট্রিবিউট, যা ঘোষণা করে যে ভিউয়ের উইন্ডোটি অন্য দৃশ্যমান উইন্ডো দ্বারা অস্পষ্ট হলে স্পর্শ ফিল্টার করা হবে কিনা। "true" তে সেট করা হলে, ভিউটির উইন্ডোর উপরে টোস্ট, ডায়ালগ বা অন্য উইন্ডো প্রদর্শিত হলে ভিউটি স্পর্শ পাবে না। বিস্তারিত জানার জন্য নিরাপত্তা ডকুমেন্টেশন দেখুন .

    স্পর্শ ফিল্টারিংয়ের নমুনা কোড দেখতে, ApiDemos নমুনা অ্যাপ্লিকেশনটিতে SecureView.java দেখুন।

  • উন্নত ইভেন্ট ম্যানেজমেন্ট
    • ইনপুট ইভেন্টের জন্য নতুন বেস ক্লাস, InputEvent । ক্লাসটি এমন পদ্ধতিগুলি সরবরাহ করে যা অ্যাপ্লিকেশনগুলিকে ইভেন্টের অর্থ নির্ধারণ করতে দেয়, যেমন ইনপুট ডিভাইসের জন্য অনুসন্ধান করে যেটি থেকে ইভেন্টটি শুরু হয়েছে৷ KeyEvent এবং MotionEvent হল InputEvent এর সাবক্লাস।
    • ইনপুট ডিভাইসের জন্য নতুন বেস ক্লাস, InputDevice । ক্লাস একটি নির্দিষ্ট ইনপুট ডিভাইসের ক্ষমতা সম্পর্কে তথ্য সঞ্চয় করে এবং এমন পদ্ধতি সরবরাহ করে যা অ্যাপ্লিকেশনগুলিকে একটি ইনপুট ডিভাইস থেকে ইভেন্টগুলিকে কীভাবে ব্যাখ্যা করতে হয় তা নির্ধারণ করতে দেয়।
  • উন্নত গতি ঘটনা
    • MotionEvent API "পয়েন্টার আইডি" তথ্য অন্তর্ভুক্ত করার জন্য প্রসারিত করা হয়েছে, যা অ্যাপ্লিকেশনগুলিকে পৃথক আঙ্গুলগুলি উপরে এবং নীচে সরানোর সাথে সাথে ট্র্যাক রাখতে দেয়৷ ক্লাসটি বিভিন্ন পদ্ধতি যুক্ত করে যা একটি অ্যাপ্লিকেশনকে মোশন ইভেন্টগুলির সাথে দক্ষতার সাথে কাজ করতে দেয়।
    • ইনপুট সিস্টেমে এখন নতুন পয়েন্টার আইডি তথ্যের সাথে মোশন ইভেন্ট তৈরি করার জন্য যুক্তি আছে, নতুন পয়েন্টার ডাউন হওয়ায় শনাক্তকারীকে সংশ্লেষিত করে। সিস্টেমটি একটি মোশন ইভেন্টের সময় আলাদাভাবে একাধিক পয়েন্টার আইডি ট্র্যাক করে এবং পয়েন্টারের শেষ এবং পরবর্তী সেটের মধ্যে দূরত্ব মূল্যায়ন করে পয়েন্টারগুলির যথাযথ ধারাবাহিকতা নিশ্চিত করে।
  • পাঠ্য নির্বাচন নিয়ন্ত্রণ
    • একটি নতুন setComposingRegion পদ্ধতি একটি অ্যাপ্লিকেশনকে বর্তমান স্টাইল বজায় রেখে পাঠ্য রচনার একটি অঞ্চলকে পাঠ্য হিসাবে চিহ্নিত করতে দেয়। একটি getSelectedText পদ্ধতি অ্যাপ্লিকেশনে নির্বাচিত পাঠ্য ফিরিয়ে দেয়। পদ্ধতিগুলি BaseInputConnection , InputConnection , এবং InputConnectionWrapper এ উপলব্ধ।
    • <TextView> -এর জন্য নতুন textSelectHandle , textSelectHandleLeft , textSelectHandleRight , এবং textSelectHandleWindowStyle বৈশিষ্ট্যগুলি রেফারেন্স ড্রয়েবলের জন্য যা পাঠ্য-নির্বাচন অ্যাঙ্কর এবং ধারণকারী উইন্ডোর শৈলী প্রদর্শন করতে ব্যবহৃত হবে।
  • কার্যকলাপ নিয়ন্ত্রণ
    • ActivityInfo অ্যাক্টিভিটি অরিয়েন্টেশন পরিচালনার জন্য নতুন ধ্রুবক যোগ করে: SCREEN_ORIENTATION_FULL_SENSOR , SCREEN_ORIENTATION_REVERSE_LANDSCAPE , SCREEN_ORIENTATION_REVERSE_PORTRAIT , SCREEN_ORIENTATION_SENSOR_LANDSCAPE , এবং SCREEN_ORIENTATION_SENSOR_PORTRAIT
    • ActivityManager.RunningAppProcessInfoimportance ক্ষেত্রের জন্য নতুন ধ্রুবক IMPORTANCE_PERCEPTIBLE । মানটি নির্দেশ করে যে একটি নির্দিষ্ট প্রক্রিয়া এমন কিছু চালাচ্ছে যা ব্যবহারকারীর কাছে সক্রিয়ভাবে উপলব্ধিযোগ্য বলে বিবেচিত হয়। একটি উদাহরণ হল একটি অ্যাপ্লিকেশন যা ব্যাকগ্রাউন্ড মিউজিক প্লেব্যাক করছে।
    • Activity.setPersistent(বুলিয়ান) পদ্ধতিটি একটি অ্যাক্টিভিটিকে স্থায়ী হিসাবে চিহ্নিত করার পদ্ধতিটি এখন অবমূল্যায়িত করা হয়েছে এবং বাস্তবায়ন একটি নো-অপ।
  • বিজ্ঞপ্তি পাঠ্য এবং আইকন শৈলী
  • অতিরিক্ত বড় স্ক্রীন

    প্ল্যাটফর্মটি এখন অতিরিক্ত বড় স্ক্রীনের আকার সমর্থন করে, যেমন ট্যাবলেট ডিভাইসে পাওয়া যেতে পারে। বিকাশকারীরা নির্দেশ করতে পারে যে তাদের অ্যাপ্লিকেশনগুলি তাদের ম্যানিফেস্ট ফাইলগুলিতে একটি <supports screens ... android:xlargeScreens="true"> উপাদান যোগ করে অতিরিক্ত বড় স্ক্রীনের আকার সমর্থন করার জন্য ডিজাইন করা হয়েছে৷ অ্যাপ্লিকেশানগুলি অতিরিক্ত বড় স্ক্রিনের জন্য নির্দিষ্ট সংস্থান ট্যাগ করতে একটি নতুন রিসোর্স কোয়ালিফায়ার, xlarge ব্যবহার করতে পারে। অতিরিক্ত বড় এবং অন্যান্য স্ক্রীন মাপ কিভাবে সমর্থন করবেন তার বিশদ বিবরণের জন্য, একাধিক স্ক্রীন সমর্থন করা দেখুন।

    গ্রাফিক্স

    • android.opengl.GLES20 ক্লাসে অবশিষ্ট OpenGL ES 2.0 পদ্ধতি glDrawElements() এবং glVertexAttribPointer() যোগ করে।
    • YV12 পিক্সেল ফর্ম্যাটের জন্য সমর্থন যোগ করে, একটি প্ল্যানার 4:2:0 YCrCb ফর্ম্যাট৷

    বিষয়বস্তু প্রদানকারী

    • অ্যালার্ম সেট করা বা অ্যালার্ম পরিচালনা করার জন্য নতুন AlarmClock প্রদানকারীর ক্লাস। প্রদানকারীর একটি ACTION_SET_ALARM ইন্টেন্ট অ্যাকশন এবং অতিরিক্তগুলি রয়েছে যা একটি অ্যালার্ম ঘড়ি অ্যাপ্লিকেশনে একটি নতুন অ্যালার্ম সেট করতে একটি কার্যকলাপ শুরু করতে ব্যবহার করা যেতে পারে৷ যে অ্যাপ্লিকেশনগুলি SET_ALARM অভিপ্রায় পেতে চায় তাদের এমন একটি কার্যকলাপ তৈরি করা উচিত যার জন্য SET_ALARM অনুমতির প্রয়োজন৷ যে অ্যাপ্লিকেশনগুলি একটি নতুন অ্যালার্ম তৈরি করতে চায় তাদের ব্যবহার করা উচিত Context.startActivity() , যাতে ব্যবহারকারীর কাছে কোন অ্যালার্ম ঘড়ি অ্যাপ্লিকেশনটি ব্যবহার করতে হবে তা বেছে নেওয়ার বিকল্প থাকে৷
    • MediaStore একটি নতুন ইন্টেন্ট অ্যাকশন সমর্থন করে, PLAY_FROM_SEARCH , যা একটি অ্যাপ্লিকেশনকে মিউজিক মিডিয়া অনুসন্ধান করতে দেয় এবং সম্ভব হলে ফলাফল থেকে স্বয়ংক্রিয়ভাবে সামগ্রী চালাতে দেয়। উদাহরণস্বরূপ, একটি অ্যাপ্লিকেশন সঙ্গীত শোনার জন্য একটি ভয়েস স্বীকৃতি কমান্ডের ফলাফল হিসাবে এই অভিপ্রায়কে ফায়ার করতে পারে৷
    • MediaStore একটি নতুন MEDIA_IGNORE_FILENAME পতাকাও যোগ করে যা মিডিয়া স্ক্যানারকে নির্দেশিত ডিরেক্টরি এবং এর সাবডিরেক্টরিতে মিডিয়া উপেক্ষা করতে বলে৷ বিকাশকারীরা গ্যালারিতে গ্রাফিক্স উপস্থিত হওয়া এড়াতে এবং একইভাবে মিউজিক অ্যাপে অ্যাপ্লিকেশানের শব্দ এবং মিউজিককে দেখানো থেকে বিরত রাখতে এটি ব্যবহার করতে পারে।
    • Settings প্রদানকারী নতুন অ্যাক্টিভিটি অ্যাকশন APPLICATION_DETAILS_SETTINGS এবং MANAGE_ALL_APPLICATIONS_SETTINGS যোগ করে, যা একটি অ্যাপ্লিকেশানকে একটি নির্দিষ্ট অ্যাপ্লিকেশানের জন্য বিশদ স্ক্রীন দেখাতে দেয় বা অ্যাপ্লিকেশানগুলি পরিচালনার স্ক্রীন দেখাতে দেয়৷
    • পরিচিতির SIP (ইন্টারনেট টেলিফোনি) ঠিকানা সংরক্ষণের জন্য ContactsContract প্রদানকারী ContactsContract.CommonDataKinds.SipAddress ডেটা প্রকার যোগ করে।

    অবস্থান

    • LocationManager এখন অ্যাপ্লিকেশনের অনুরোধগুলিকে ট্র্যাক করে যার ফলে WorkSource অনুসারে ওয়েক লক বা ওয়াইফাই লক হয়, একটি সিস্টেম-পরিচালিত শ্রেণী যা অ্যাপ্লিকেশনটিকে সনাক্ত করে৷

      LocationManager পর্যায়ক্রমিক আপডেটের জন্য অনুরোধ করা সমস্ত ক্লায়েন্টদের ট্র্যাক রাখে এবং তাদের ন্যূনতম আপডেটের সময় সেট করার সময় একটি WorkSource প্যারামিটার হিসাবে তাদের প্রদানকারীদের তাদের সম্পর্কে বলে। নেটওয়ার্ক অবস্থান প্রদানকারী একটি অ্যাপ্লিকেশন দ্বারা শুরু করা ওয়েক এবং ওয়াইফাই লকগুলি ট্র্যাক করতে WorkSource ব্যবহার করে এবং এটিকে অ্যাপ্লিকেশনের ব্যাটারি ব্যবহারের সাথে যোগ করে যা অ্যাপ্লিকেশন পরিচালনায় প্রতিবেদন করা হয়েছে৷

    • LocationManager বেশ কিছু নতুন পদ্ধতি যোগ করে যা নির্দিষ্ট মানদণ্ডের উপর ভিত্তি করে পর্যায়ক্রমিক বা এককালীন অবস্থান আপডেট পেতে একটি কার্যকলাপ নিবন্ধন করতে দেয় (নীচে দেখুন)।
    • একটি নতুন Criteria ক্লাস একটি অ্যাপ্লিকেশনকে একটি অবস্থান প্রদানকারী নির্বাচন করার জন্য মানদণ্ডের একটি সেট নির্দিষ্ট করতে দেয়৷ উদাহরণস্বরূপ, প্রদানকারীদের যথার্থতা, শক্তির ব্যবহার, উচ্চতা, গতি এবং ভারবহন এবং আর্থিক খরচের রিপোর্ট করার ক্ষমতা অনুসারে অর্ডার করা যেতে পারে।

    স্টোরেজ

    • অ্যান্ড্রয়েড 2.3 একটি নতুন StorageManager যুক্ত করেছে যা OBB (অস্বচ্ছ বাইনারি ব্লব) ফাইলগুলিকে সমর্থন করে৷ যদিও OBB-এর জন্য প্ল্যাটফর্ম সমর্থন অ্যান্ড্রয়েড 2.3-এ উপলব্ধ, OBB ফাইলগুলি তৈরি এবং পরিচালনার জন্য ডেভেলপমেন্ট টুলগুলি 2011 সালের প্রথম দিকে উপলব্ধ হবে না।
    • অ্যান্ড্রয়েড 2.3 প্ল্যাটফর্ম এমন ডিভাইসগুলির জন্য অফিসিয়াল সমর্থন যোগ করে যেগুলি SD কার্ডগুলি অন্তর্ভুক্ত করে না (যদিও এটি ভার্চুয়াল SD কার্ড পার্টিশন প্রদান করে, যখন কোনও শারীরিক SD কার্ড উপলব্ধ থাকে না)৷ একটি সুবিধার পদ্ধতি, isExternalStorageRemovable() , অ্যাপ্লিকেশনগুলিকে একটি শারীরিক SD কার্ড উপস্থিত আছে কিনা তা নির্ধারণ করতে দেয়৷

    প্যাকেজ ম্যানেজার

    • হার্ডওয়্যার এবং সফ্টওয়্যার বৈশিষ্ট্য ঘোষণার জন্য নতুন ধ্রুবক। নীচে, নতুন বৈশিষ্ট্য ধ্রুবক বিভাগে তালিকাটি দেখুন।
    • PackageInfo নতুন firstInstallTime এবং lastUpdateTime ক্ষেত্র যোগ করে যা প্যাকেজ ইনস্টলেশন এবং শেষ আপডেটের সময় সংরক্ষণ করে।
    • একটি নির্দিষ্ট বিষয়বস্তু প্রদানকারী শ্রেণী সম্পর্কে জানা সমস্ত তথ্য পুনরুদ্ধারের জন্য নতুন getProviderInfo() পদ্ধতি।

    টেলিফোনি

    • TelephonyManager CDMA EVDO Rev B নেটওয়ার্ক প্রকার নির্দিষ্ট করার জন্য ধ্রুবক NETWORK_TYPE_EVDO_B যোগ করে।
    • নতুন getPsc() পদ্ধতি একটি UMTS নেটওয়ার্কে সার্ভিং সেলের প্রাথমিক স্ক্র্যাম্বলিং কোড প্রদান করে।

    অ্যাক্টিভিটি লাইফসাইকেলে নেটিভ অ্যাক্সেস, উইন্ডোজ

    Android 2.3 নেটিভ কোড ব্যবহার করে এমন অ্যাপ্লিকেশনগুলিতে API-এর একটি বিস্তৃত সেট প্রকাশ করে৷ এই ধরনের অ্যাপ্লিকেশনের জন্য আগ্রহের ফ্রেমওয়ার্ক ক্লাস অন্তর্ভুক্ত:

    • NativeActivity হল একটি নতুন ধরনের অ্যাক্টিভিটি ক্লাস, যার লাইফসাইকেল কলব্যাকগুলি সরাসরি নেটিভ কোডে প্রয়োগ করা হয়। একটি NativeActivity এবং এর অন্তর্নিহিত নেটিভ কোড অন্যান্য অ্যাক্টিভিটিগুলির মতোই সিস্টেমে চলে — বিশেষত এগুলি অ্যান্ড্রয়েড অ্যাপ্লিকেশনের সিস্টেম প্রক্রিয়ায় চলে এবং অ্যাপ্লিকেশনের প্রধান UI থ্রেডে কার্যকর করে এবং তারা অন্যান্য ক্রিয়াকলাপগুলির মতো একই লাইফসাইকেল কলব্যাকগুলি গ্রহণ করে৷
    • নতুন InputQueue ক্লাস এবং কলব্যাক ইন্টারফেস নেটিভ কোড ইভেন্ট সারি পরিচালনা করতে দেয়।
    • নতুন SurfaceHolder.Callback2 ইন্টারফেস নেটিভ কোডকে একটি SurfaceHolder পরিচালনা করতে দেয়।
    • Window নতুন takeInputQueue এবং takeSurface() পদ্ধতি নেটিভ কোড ইভেন্ট এবং পৃষ্ঠতল পরিচালনা করতে দেয়।

    নেটিভ কোডের সাথে কাজ করার বা NDK ডাউনলোড করার সম্পূর্ণ তথ্যের জন্য, Android NDK পৃষ্ঠাটি দেখুন।

    ডালভিক রানটাইম

    নতুন প্রকাশ উপাদান এবং বৈশিষ্ট্য

    • অ্যাপ্লিকেশন অতিরিক্ত বড় স্ক্রীন ফর্ম-ফ্যাক্টর সমর্থন করে কিনা তা নির্দেশ করতে <supports-screens> উপাদানের জন্য নতুন xlargeScreens বৈশিষ্ট্য। বিশদ বিবরণের জন্য, একাধিক স্ক্রিন সমর্থন করা দেখুন।
    • android:screenOrientation <activity> উপাদানের স্ক্রীন ওরিয়েন্টেশন বৈশিষ্ট্য:
      • "reverseLandscape" — অ্যাক্টিভিটি স্ক্রীনটিকে ল্যান্ডস্কেপ ওরিয়েন্টেশনে রাখতে চায়, স্বাভাবিক ল্যান্ডস্কেপ থেকে বিপরীত দিকে ঘুরিয়ে দেয়।
      • "reversePortrait" — অ্যাক্টিভিটি পোর্ট্রেট ওরিয়েন্টেশনে স্ক্রীন রাখতে চায়, স্বাভাবিক পোর্ট্রেট থেকে বিপরীত দিকে ঘুরিয়ে।
      • "sensorLandscape" — অ্যাক্টিভিটি ল্যান্ডস্কেপ ওরিয়েন্টেশনে স্ক্রীন রাখতে চায়, কিন্তু স্ক্রীনটি কোন দিকে মুখ করে তা পরিবর্তন করতে সেন্সর ব্যবহার করতে পারে।
      • "sensorPortrait" — অ্যাক্টিভিটি স্ক্রিনটিকে পোর্ট্রেট ওরিয়েন্টেশনে রাখতে চায়, কিন্তু স্ক্রীনটি কোন দিকে মুখ করে তা পরিবর্তন করতে সেন্সর ব্যবহার করতে পারে৷
      • "fullSensor" — ওরিয়েন্টেশন একটি ফিজিক্যাল ওরিয়েন্টেশন সেন্সর দ্বারা নির্ধারিত হয়: ডিসপ্লেটি ঘোরবে তার উপর ভিত্তি করে যে ব্যবহারকারী কীভাবে ডিভাইসটি সরান। ডিভাইসটি সাধারণত যা করবে তা নির্বিশেষে এটি 4টি সম্ভাব্য ঘূর্ণনের যেকোনো একটিকে অনুমতি দেয় (উদাহরণস্বরূপ কিছু ডিভাইস সাধারণত 180 ডিগ্রি ঘূর্ণন ব্যবহার করবে না)।

    নতুন অনুমতি

    • com.android.permission.SET_ALARM — ব্যবহারকারীর জন্য একটি অ্যালার্ম সেট করার জন্য একটি ইন্টেন্ট সম্প্রচার করতে একটি অ্যাপ্লিকেশনকে অনুমতি দেয়। SET_ALARM ইন্টেন্ট অ্যাকশন পরিচালনা করে এমন একটি কার্যকলাপের জন্য এই অনুমতির প্রয়োজন হবে।
    • android.permission.USE_SIP — একটি অ্যাপ্লিকেশনকে ইন্টারনেট কল করতে বা গ্রহণ করতে SIP API ব্যবহার করার অনুমতি দেয়।
    • android.permission.NFC — একটি অ্যাপ্লিকেশনকে NFC ট্যাগ পড়ার জন্য NFC API ব্যবহার করার অনুমতি দেয়।

    নতুন বৈশিষ্ট্য ধ্রুবক

    প্ল্যাটফর্মটি বেশ কয়েকটি নতুন হার্ডওয়্যার বৈশিষ্ট্য যুক্ত করে যা ডেভেলপাররা তাদের অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় হিসাবে ঘোষণা করতে পারে। এটি ডেভেলপারদের 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 — অ্যাপ্লিকেশনটি ডিভাইসে একটি SIP-ভিত্তিক VoIP পরিষেবা ব্যবহার করে।
    • android.hardware.touchscreen.multitouch.jazzhand — অ্যাপ্লিকেশনটি সম্পূর্ণ স্বাধীনভাবে পাঁচ বা তার বেশি পয়েন্ট ট্র্যাক করার জন্য ডিভাইসের স্ক্রিনে উন্নত মাল্টিপয়েন্ট মাল্টিটাচ ক্ষমতা ব্যবহার করে।

    বৈশিষ্ট্যগুলি কীভাবে ঘোষণা করবেন এবং ফিল্টারিংয়ের জন্য কীভাবে ব্যবহার করবেন সে সম্পর্কে সম্পূর্ণ তথ্যের জন্য, <uses-feature> -এর ডকুমেন্টেশন দেখুন।

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

    অ্যান্ড্রয়েড 2.3 (এপিআই লেভেল 9) এ সমস্ত API পরিবর্তনগুলির একটি বিশদ দর্শনের জন্য, API পার্থক্য রিপোর্ট দেখুন।

    API স্তর

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

    আপনার অ্যাপ্লিকেশানে Android 2.3 এ প্রবর্তিত API ব্যবহার করতে, আপনাকে Android 2.3 SDK প্ল্যাটফর্মে সরবরাহ করা Android লাইব্রেরির বিপরীতে অ্যাপ্লিকেশনটি কম্পাইল করতে হবে। আপনার প্রয়োজনের উপর নির্ভর করে, আপনাকে অ্যাপ্লিকেশনের ম্যানিফেস্টে <uses-sdk> উপাদানটিতে একটি android:minSdkVersion="9" অ্যাট্রিবিউট যোগ করতে হতে পারে। যদি আপনার অ্যাপ্লিকেশানটি শুধুমাত্র Android 2.3 এবং উচ্চতর সংস্করণে চালানোর জন্য ডিজাইন করা হয়, তাহলে অ্যাট্রিবিউট ঘোষণা করলে প্ল্যাটফর্মের পূর্ববর্তী সংস্করণগুলিতে অ্যাপ্লিকেশনটিকে ইনস্টল করা থেকে বাধা দেয়৷

    আরও তথ্যের জন্য, পড়ুন API স্তর কী?