Android সেন্সর, অ্যাপ্লিকেশনকে মোবাইল ডিভাইসের অন্তর্নিহিত ফিজিক্যাল সেন্সর অ্যাক্সেস করার অনুমতি দেয়। এগুলি হল ডেটা প্রদানকারী ভার্চুয়াল ডিভাইস যা sensors.h, সেন্সর হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) দ্বারা সংজ্ঞায়িত করা হয়।
Android সেন্সর কী?
Android সেন্সর হল ভার্চুয়াল ডিভাইস যা একগুচ্ছ ফিজিক্যাল সেন্সর থেকে পাওয়া ডেটা প্রদান করে: অ্যাক্সিলরোমিটার, জাইরোস্কোপ, ম্যাগনেটোমিটার, ব্যারোমিটার, আর্দ্রতা, চাপ, আলো, নৈকট্য ও হার্ট রেট সেন্সর।
ডেটা প্রদানকারী ফিজিক্যাল ডিভাইসের তালিকায় ক্যামেরা, ফিঙ্গারপ্রিন্ট সেন্সর, মাইক্রোফোন ও টাচস্ক্রিন অন্তর্ভুক্ত নয়। এইসব ডিভাইসের নিজস্ব রিপোর্টিং মেকানিজম আছে; আলাদা করার বিষয়টি স্বেচ্ছামত, তবে সাধারণভাবে, Android সেন্সর কম ব্যান্ডউইথ ডেটা প্রদান করে। যেমন, অ্যাক্সিলরোমিটারের জন্য “১০০hz x ৩ চ্যানেল” বনাম ক্যামেরার জন্য “২৫hz x ৮ MP x ৩ চ্যানেল” অথবা মাইক্রোফোনের জন্য “৪৪kHz x ১ চ্যানেল”।
বিভিন্ন ফিজিক্যাল সেন্সর কীভাবে সিস্টেম অন চিপ (SoC)-এর সাথে কানেক্ট করা হয় তা Android নির্ধারণ করে না।
- প্রায়শই, সেন্সর চিপগুলি SoC-এর সাথে সেন্সর হাবের মাধ্যমে কানেক্ট করা হয়, যা ডেটার কিছু কম-পাওয়ার মনিটরিং ও প্রসেসিং করতে দেয়।
- প্রায়শই, ইন্টার-ইন্টিগ্রেটেড সার্কিট (I2C) বা সিরিয়াল পেরিফেরাল ইন্টারফেস (SPI) ট্রান্সপোর্ট মেকানিজম হিসেবে ব্যবহার করা হয়।
- পাওয়ার খরচ কমাতে, কিছু আর্কিটেকচার হল হায়ারার্কিক্যাল, যেখানে অ্যাপ্লিকেশন-নির্দিষ্ট ইন্টিগ্রেটেড সার্কিটে (ASIC - যেমন অ্যাক্সিলারোমিটার চিপে মোশন ডিটেকশন) কিছু ন্যূনতম প্রসেসিং করা হয় এবং মাইক্রোকন্ট্রোলারে (যেমন সেন্সর হাবে স্টেপ ডিটেকশন) আরও বেশি কিছু করা হয়।
- সঠিকতা, পাওয়ার, দাম এবং প্যাকেজ-সাইজের বৈশিষ্ট্যের উপর ভিত্তি করে আর্কিটেকচার বেছে নেওয়ার সিদ্ধান্ত ডিভাইস প্রস্তুতকারকের উপর নির্ভর করে। আরও তথ্যের জন্য সেন্সর স্ট্যাক দেখুন।
- পাওয়ার অপ্টিমাইজেশনের জন্য ব্যাচিং ক্ষমতা একটি গুরুত্বপূর্ণ বিষয়। আরও তথ্যের জন্য ব্যাচিং দেখুন।
প্রতিটি Android সেন্সরের একটি "ধরন" থাকে যা সেন্সরটি কীভাবে আচরণ করে এবং এটি কী ডেটা প্রদান করে তা দেখায়।
- অফিসিয়াল Android সেন্সরের
ধরন sensors.h-এ SENSOR_TYPE_… নামে সংজ্ঞায়িত করা হয়
- বেশিরভাগ সেন্সরের একটি অফিসিয়াল সেন্সর ধরন আছে।
- Android SDK-তে সেইসব ধরন ডকুমেন্ট করা আছে।
- Android কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS)-এ সেইসব ধরনের সেন্সরের আচরণ পরীক্ষা করা হয়।
- কোনও প্রস্তুতকারক Android
ডিভাইসে নতুন ধরনের সেন্সর ইন্টিগ্রেট করলে, প্রস্তুতকারক
সেটিকে উল্লেখ করার জন্য নিজস্ব সাময়িক ধরন নির্ধারণ করতে পারে।
- এইসব ধরন ডকুমেন্ট করা নেই, তাই অ্যাপ্লিকেশন ডেভেলপাররা এগুলি ব্যবহার করার সম্ভাবনা কম, কারণ তারা এগুলি সম্পর্কে জানেন না অথবা জানেন যে এগুলি খুব কমই থাকে (এই নির্দিষ্ট প্রস্তুতকারকের কিছু ডিভাইসে)।
- CTS-এর মাধ্যমে এগুলি পরীক্ষা করা হয় না।
- Android এই ধরনের সেন্সরের জন্য অফিসিয়াল সেন্সরের ধরন নির্ধারণ করলে, প্রস্তুতকারকদের অবশ্যই তাদের নিজস্ব সাময়িক ধরন ব্যবহার করা বন্ধ করতে হবে এবং পরিবর্তে অফিসিয়াল ধরন ব্যবহার করতে হবে। এইভাবে, সেন্সরটি আরও বেশি অ্যাপ্লিকেশন ডেভেলপারদের দ্বারা ব্যবহার করা হবে।
- HAL
ইমপ্লিমেন্টেশন ডিভাইসে উপস্থিত সব সেন্সরের তালিকা রিপোর্ট করে।
- একই ধরনের একাধিক সেন্সর থাকতে পারে। যেমন, দুটি প্রক্সিমিটি সেন্সর বা দুটি অ্যাক্সিলরোমিটার।
- অধিকাংশ অ্যাপ্লিকেশন নির্দিষ্ট ধরনের একটি মাত্র সেন্সরের জন্য অনুরোধ করে। যেমন, ডিফল্ট অ্যাকসিলরোমিটারের জন্য অনুরোধ করা কোনও অ্যাপ্লিকেশন তালিকায় প্রথম অ্যাকসিলরোমিটার পাবে।
- সেন্সরকে প্রায়ই ওয়েক-আপ এবং নন-ওয়েক-আপ জোড়া হিসেবে সংজ্ঞায়িত করা হয়, দুটি সেন্সরই একই ধরনের হলেও তাদের ওয়েক-আপ বৈশিষ্ট্যের ভিত্তিতে আলাদা করা হয়।
Android সেন্সর, সেন্সর ইভেন্টের সিরিজ হিসেবে ডেটা প্রদান করে।
প্রতিটি ইভেন্টে এগুলি থাকে:
- যে সেন্সর এটি জেনারেট করেছে তার হ্যান্ডেল
- যে টাইমস্ট্যাম্পে ইভেন্ট শনাক্ত বা পরিমাপ করা হয়েছে,
SystemClock.elapsedRealtimeNanos()-এর ভিত্তিতে - এবং কিছু ডেটা
রিপোর্ট করা ডেটার ব্যাখ্যা সেন্সরের ধরনের উপর নির্ভর করে। প্রতিটি সেন্সর ধরনের জন্য কী ডেটা রিপোর্ট করা হয় সেই বিষয়ে বিস্তারিত জানতে সেন্সর ধরন সংজ্ঞা দেখুন।
আগে থেকে থাকা ডকুমেন্টেশন
ডেভেলপারদের জন্য তৈরি করা হয়েছে
- এক নজরে
- SDK রেফারেন্স
- স্ট্যাক ওভারফ্লো ও টিউটোরিয়াল ওয়েবসাইট
- সেন্সর সংক্রান্ত ডকুমেন্টেশন কখনও কখনও পর্যাপ্ত না থাকার কারণে, ডেভেলপাররা উত্তর খোঁজার জন্য Stack Overflow-এর মতো প্রশ্নোত্তর ওয়েবসাইট ব্যবহার করতেন।
- কিছু টিউটোরিয়াল ওয়েবসাইটও আছে, কিন্তু ব্যাচিং, উল্লেখযোগ্য মোশন ও গেম রোটেশন ভেক্টরের মতো লেটেস্ট ফিচার সেখানে কভার করা হয় না।
- সেখানে দেওয়া উত্তর সবসময় সঠিক হয় না এবং কোথায় আরও ডকুমেন্টেশন প্রয়োজন তা দেখায়।
প্রস্তুতকারকদের জন্য টার্গেট করা হয়েছে
- এক নজরে
- এই সেন্সর পৃষ্ঠা এবং এর উপ-পৃষ্ঠা।
- হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL)
- /platform/hardware/libhardware/+/android17-release/include/hardware/sensors.h
- "sensors.h" নামেও পরিচিত
- সত্যের সোর্স। নতুন ফিচার ডেভেলপ করা হলে প্রথম ডকুমেন্ট আপডেট করতে হবে।
- Android CDD (Compatibility Definition Document)
- /compatibility/android-cdd.pdf
- সেন্সর সম্পর্কিত বিভাগ দেখুন।
- CDD-র শর্তাবলী শিথিল, তাই CDD-র শর্তাবলী পূরণ করলেই উচ্চ কোয়ালিটির সেন্সর নিশ্চিত করা যায় না।