
অ্যান্ড্রয়েড সেন্সর অ্যাপ্লিকেশনগুলিকে একটি মোবাইল ডিভাইসের অন্তর্নিহিত ভৌত সেন্সরগুলিতে অ্যাক্সেস দেয়। এগুলি হল ডেটা-প্রদানকারী ভার্চুয়াল ডিভাইস যা 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()এর উপর ভিত্তি করে ইভেন্টটি সনাক্ত বা পরিমাপ করা হয়েছে এমন টাইমস্ট্যাম্প - এবং কিছু তথ্য
রিপোর্ট করা ডেটার ব্যাখ্যা সেন্সরের ধরণের উপর নির্ভর করে। প্রতিটি সেন্সর ধরণের জন্য কোন ডেটা রিপোর্ট করা হয়েছে তার বিশদ জানতে সেন্সর ধরণের সংজ্ঞাগুলি দেখুন।
বিদ্যমান ডকুমেন্টেশন
ডেভেলপারদের লক্ষ্য করে
- সংক্ষিপ্ত বিবরণ
- SDK রেফারেন্স
- স্ট্যাক ওভারফ্লো এবং টিউটোরিয়াল ওয়েবসাইট
- সেন্সর ডকুমেন্টেশনের অভাব থাকার কারণে, ডেভেলপাররা উত্তর খুঁজতে স্ট্যাক ওভারফ্লোর মতো প্রশ্নোত্তর ওয়েবসাইটের আশ্রয় নেন।
- কিছু টিউটোরিয়াল ওয়েবসাইটও বিদ্যমান, কিন্তু ব্যাচিং, উল্লেখযোগ্য গতি এবং গেম রোটেশন ভেক্টরের মতো সর্বশেষ বৈশিষ্ট্যগুলি কভার করে না।
- ওখানে দেওয়া উত্তরগুলো সবসময় সঠিক হয় না, এবং আরও ডকুমেন্টেশনের প্রয়োজন কোথায় তা দেখায়।
নির্মাতাদের লক্ষ্য করে
- সংক্ষিপ্ত বিবরণ
- এই সেন্সর পৃষ্ঠা এবং এর উপ-পৃষ্ঠাগুলি।
- হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL)
- /platform/hardware/libhardware/+/android16-qpr1-release/include/hardware/sensors.h
- "sensors.h" নামেও পরিচিত
- সত্যের উৎস। নতুন বৈশিষ্ট্য তৈরির সময় আপডেট করা প্রথম নথি।
- অ্যান্ড্রয়েড সিডিডি (সামঞ্জস্যতা সংজ্ঞা নথি)
- /সামঞ্জস্যতা/অ্যান্ড্রয়েড-সিডিডি.পিডিএফ
- সেন্সর সম্পর্কিত বিভাগগুলি দেখুন।
- সিডিডি নমনীয়, তাই উচ্চমানের সেন্সর নিশ্চিত করার জন্য সিডিডি প্রয়োজনীয়তা পূরণ করা যথেষ্ট নয়।