সেন্সর

অ্যান্ড্রয়েড সেন্সর HAL আইকন

অ্যান্ড্রয়েড সেন্সর অ্যাপ্লিকেশনগুলোকে একটি মোবাইল ডিভাইসের অন্তর্নিহিত ভৌত সেন্সরগুলোতে অ্যাক্সেস দেয়। এগুলো হলো ডেটা-প্রদানকারী ভার্চুয়াল ডিভাইস, যা sensors.h বা সেন্সর হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) দ্বারা সংজ্ঞায়িত।

অ্যান্ড্রয়েড সেন্সর বলতে কী বোঝায়?

অ্যান্ড্রয়েড সেন্সরগুলো হলো ভার্চুয়াল ডিভাইস, যা একগুচ্ছ ভৌত সেন্সর—যেমন অ্যাক্সেলেরোমিটার, জাইরোস্কোপ, ম্যাগনেটোমিটার, ব্যারোমিটার, আর্দ্রতা, চাপ, আলো, প্রক্সিমিটি এবং হার্ট রেট সেন্সর—থেকে প্রাপ্ত ডেটা সরবরাহ করে।

ডেটা প্রদানকারী ভৌত ডিভাইসগুলোর তালিকায় ক্যামেরা, ফিঙ্গারপ্রিন্ট সেন্সর, মাইক্রোফোন এবং টাচ স্ক্রিন অন্তর্ভুক্ত নয়। এই ডিভাইসগুলোর নিজস্ব রিপোর্টিং ব্যবস্থা রয়েছে; এই বিভাজনটি ইচ্ছাধীন, তবে সাধারণত অ্যান্ড্রয়েড সেন্সরগুলো কম ব্যান্ডউইথের ডেটা প্রদান করে। উদাহরণস্বরূপ, একটি অ্যাক্সেলেরোমিটারের জন্য “100hz x 3 চ্যানেল”, যেখানে একটি ক্যামেরার জন্য “25hz x 8 MP x 3 চ্যানেল” বা একটি মাইক্রোফোনের জন্য “44kHz x 1 চ্যানেল” ব্যবহৃত হয়।

অ্যান্ড্রয়েড নির্ধারণ করে না যে বিভিন্ন ফিজিক্যাল সেন্সরগুলো সিস্টেম অন চিপ (SoC)-এর সাথে কীভাবে সংযুক্ত থাকবে।

  • প্রায়শই, সেন্সর চিপগুলো একটি সেন্সর হাবের মাধ্যমে এসওসির (SoC) সাথে সংযুক্ত থাকে, যা স্বল্প শক্তিতে ডেটা পর্যবেক্ষণ ও প্রক্রিয়াকরণের সুযোগ করে দেয়।
  • প্রায়শই ট্রান্সপোর্ট মেকানিজম হিসেবে ইন্টার-ইন্টিগ্রেটেড সার্কিট (I2C) বা সিরিয়াল পেরিফেরাল ইন্টারফেস (SPI) ব্যবহার করা হয়।
  • বিদ্যুৎ খরচ কমাতে, কিছু আর্কিটেকচার স্তরক্রমিক হয়, যেখানে অ্যাপ্লিকেশন-স্পেসিফিক ইন্টিগ্রেটেড সার্কিটে (ASIC - যেমন অ্যাক্সেলেরোমিটার চিপে গতি শনাক্তকরণ) কিছু ন্যূনতম প্রক্রিয়াকরণ করা হয় এবং মাইক্রোকন্ট্রোলারে (যেমন সেন্সর হাবে পদক্ষেপ শনাক্তকরণ) আরও বেশি কাজ করা হয়।
  • নির্ভুলতা, শক্তি, মূল্য এবং প্যাকেজের আকারের বৈশিষ্ট্যের উপর ভিত্তি করে আর্কিটেকচার বেছে নেওয়ার দায়িত্ব ডিভাইস প্রস্তুতকারকের। আরও তথ্যের জন্য সেন্সর স্ট্যাক দেখুন।
  • বিদ্যুৎ সাশ্রয়ের জন্য ব্যাচিং ক্ষমতা একটি গুরুত্বপূর্ণ বিবেচ্য বিষয়। আরও তথ্যের জন্য ব্যাচিং দেখুন।

প্রতিটি অ্যান্ড্রয়েড সেন্সরের একটি "টাইপ" থাকে, যা নির্দেশ করে সেন্সরটি কীভাবে কাজ করে এবং কী ডেটা সরবরাহ করে।

  • অফিসিয়াল অ্যান্ড্রয়েড সেন্সর টাইপগুলো sensors.h ফাইলে SENSOR_TYPE_… নামে সংজ্ঞায়িত করা আছে।
    • অধিকাংশ সেন্সরেরই একটি আনুষ্ঠানিক সেন্সর টাইপ থাকে।
    • এই প্রকারগুলো অ্যান্ড্রয়েড এসডিকে-তে নথিভুক্ত করা আছে।
    • এই ধরনের সেন্সরগুলির আচরণ অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS)-এ পরীক্ষা করা হয়।
  • যদি কোনো নির্মাতা একটি অ্যান্ড্রয়েড ডিভাইসে নতুন ধরনের কোনো সেন্সর যুক্ত করে, তবে সেটিকে নির্দেশ করার জন্য সে তার নিজস্ব একটি অস্থায়ী টাইপ নির্ধারণ করতে পারে।
    • এই প্রকারগুলো নথিভুক্ত নয়, তাই অ্যাপ্লিকেশন ডেভেলপারদের এগুলো ব্যবহার করার সম্ভাবনা কম; কারণ হয় তারা এগুলো সম্পর্কে জানেন না, অথবা জানেন যে এগুলো খুব কমই উপস্থিত থাকে (শুধুমাত্র এই নির্দিষ্ট নির্মাতার কিছু ডিভাইসে)।
    • CTS দ্বারা তাদের পরীক্ষা করা হয় না।
    • অ্যান্ড্রয়েড একবার এই ধরনের সেন্সরের জন্য একটি আনুষ্ঠানিক সেন্সর টাইপ নির্ধারণ করে দিলে, নির্মাতাদের অবশ্যই তাদের নিজস্ব অস্থায়ী টাইপ ব্যবহার করা বন্ধ করে তার পরিবর্তে আনুষ্ঠানিক টাইপটি ব্যবহার করতে হবে। এর ফলে, আরও বেশি অ্যাপ্লিকেশন ডেভেলপার এই সেন্সরটি ব্যবহার করবে।
  • ডিভাইসটিতে উপস্থিত সমস্ত সেন্সরের তালিকা HAL ইমপ্লিমেন্টেশন দ্বারা রিপোর্ট করা হয়।
    • একই ধরনের একাধিক সেন্সর থাকতে পারে। যেমন, দুটি প্রক্সিমিটি সেন্সর বা দুটি অ্যাক্সেলেরোমিটার।
    • অধিকাংশ অ্যাপ্লিকেশনই একটি নির্দিষ্ট ধরণের কেবল একটি সেন্সরের জন্য অনুরোধ করে। উদাহরণস্বরূপ, কোনো অ্যাপ্লিকেশন ডিফল্ট অ্যাক্সেলেরোমিটারের জন্য অনুরোধ করলে, সেটি তালিকার প্রথম অ্যাক্সেলেরোমিটারটি পাবে।
    • সেন্সরগুলোকে প্রায়শই ওয়েক-আপ এবং নন-ওয়েক-আপ জোড়ায় সংজ্ঞায়িত করা হয়, যেখানে উভয় সেন্সরই একই ধরনের হয়, কিন্তু তাদের ওয়েক-আপ বৈশিষ্ট্যের কারণে তারা ভিন্ন হয়।

অ্যান্ড্রয়েড সেন্সরগুলো ধারাবাহিক সেন্সর ইভেন্টের মাধ্যমে ডেটা সরবরাহ করে।

প্রতিটি ইভেন্টে রয়েছে:

  • যে সেন্সরটি এটি তৈরি করেছে তার একটি হ্যান্ডেল
  • SystemClock.elapsedRealtimeNanos() এর উপর ভিত্তি করে, যে টাইমস্ট্যাম্পে ইভেন্টটি শনাক্ত বা পরিমাপ করা হয়েছিল।
  • এবং কিছু ডেটা

রিপোর্ট করা ডেটার ব্যাখ্যা সেন্সরের ধরনের উপর নির্ভর করে। প্রতিটি সেন্সরের ধরনের জন্য কী ডেটা রিপোর্ট করা হয়, সে সম্পর্কে বিস্তারিত জানতে সেন্সরের ধরনের সংজ্ঞাগুলো দেখুন।

বিদ্যমান নথিপত্র

ডেভেলপারদের লক্ষ্য করে

নির্মাতাদের লক্ষ্য করে

  • সংক্ষিপ্ত বিবরণ
    • এই সেন্সর পৃষ্ঠা এবং এর উপ-পৃষ্ঠাগুলো।
  • হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL)
  • অ্যান্ড্রয়েড সিডিডি (সামঞ্জস্য সংজ্ঞা নথি)
    • /compatibility/android-cdd.pdf
    • সেন্সর সম্পর্কিত বিভাগগুলো দেখুন।
    • সিডিডি (CDD) বেশ নমনীয়, তাই উচ্চ মানের সেন্সর নিশ্চিত করার জন্য শুধু সিডিডি-র শর্তাবলী পূরণ করাই যথেষ্ট নয়।