ব্যাকগ্রাউন্ড লোকেশন ব্যবহার ব্যাটারি লাইফকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে। অ্যান্ড্রয়েড ব্যাকগ্রাউন্ড লোকেশন সংগ্রহের সীমাবদ্ধতা সমর্থন করে, যা ডেভেলপারদের আরও ভাল ব্যাটারি দক্ষতার জন্য তাদের অ্যাপ্লিকেশনগুলিকে অপ্টিমাইজ করতে অনুরোধ করে৷ এই অপ্টিমাইজেশানগুলি সমস্ত ডিভাইসের জন্য উপকারী, তারা যে অ্যান্ড্রয়েড সংস্করণই চালাচ্ছে তা নির্বিশেষে৷
- পটভূমি অবস্থান সংগ্রহ থ্রোটল করা হয় এবং অবস্থান গণনা করা হয়, এবং ঘন্টায় মাত্র কয়েকবার বিতরণ করা হয়।
- Wi-Fi স্ক্যানগুলি আরও রক্ষণশীল, এবং যখন ডিভাইসটি একই স্ট্যাটিক অ্যাক্সেস পয়েন্টে সংযুক্ত থাকে তখন অবস্থান আপডেটগুলি গণনা করা হয় না৷
- জিওফেন্সিং প্রতিক্রিয়া দশ সেকেন্ড থেকে প্রায় দুই মিনিটে পরিবর্তিত হয়। এই পরিবর্তন ব্যাটারি কর্মক্ষমতা উন্নত করে - কিছু ডিভাইসে 10 গুণ পর্যন্ত ভাল।
প্রয়োজনীয় জ্ঞান
এই নথিটি নিম্নলিখিত APIগুলির সাথে পরিচিতি অনুমান করে:
- Google অবস্থান পরিষেবা। এই APIগুলি উচ্চতর নির্ভুলতা অফার করে এবং ফ্রেমওয়ার্ক অবস্থান APIগুলির তুলনায় একটি হালকা ব্যাটারির বোঝা চাপিয়ে দেয়৷
- ফিউজড লোকেশন প্রোভাইডার। এই এপিআই জিপিএস, ওয়াই-ফাই এবং সেল নেটওয়ার্কের পাশাপাশি অ্যাক্সিলোমিটার, জাইরোস্কোপ, ম্যাগনেটোমিটার এবং অন্যান্য সেন্সর থেকে সংকেতকে একত্রিত করে।
- জিওফেন্সিং , এই এপিআই ফিউজড লোকেশন প্রোভাইডার এপিআই-এর উপরে তৈরি করা হয়েছে এবং ব্যাটারি পারফরম্যান্সের জন্য অপ্টিমাইজ করা হয়েছে।
ব্যাটারি ড্রেন বুঝুন
অবস্থান সংগ্রহ এবং ব্যাটারি ড্রেন নিম্নলিখিত হিসাবে সম্পর্কিত:
- নির্ভুলতা: অবস্থানের ডেটার নির্ভুলতা। সাধারণভাবে, নির্ভুলতা যত বেশি, ব্যাটারি ড্রেন তত বেশি।
- ফ্রিকোয়েন্সি: কত ঘন ঘন অবস্থান গণনা করা হয়। যত ঘন ঘন অবস্থান গণনা করা হয়, তত বেশি ব্যাটারি ব্যবহৃত হয়।
- লেটেন্সি: কত দ্রুত লোকেশন ডেটা ডেলিভারি করা হয়। কম বিলম্বে সাধারণত বেশি ব্যাটারির প্রয়োজন হয়।
নির্ভুলতা
আপনি setPriority()
পদ্ধতি ব্যবহার করে অবস্থান নির্ভুলতা নির্দিষ্ট করতে পারেন, আর্গুমেন্ট হিসাবে নিম্নলিখিত মানগুলির মধ্যে একটি পাস করুন:
-
PRIORITY_HIGH_ACCURACY
সম্ভাব্য সর্বাধিক নির্ভুল অবস্থান প্রদান করে, যা প্রয়োজনীয় যতগুলি ইনপুট ব্যবহার করে গণনা করা হয় (এটি GPS, Wi-Fi, এবং সেল সক্ষম করে এবং বিভিন্ন ধরনের সেন্সর ব্যবহার করে) এবং উল্লেখযোগ্য ব্যাটারি নিষ্কাশনের কারণ হতে পারে৷ -
PRIORITY_BALANCED_POWER_ACCURACY
পাওয়ার জন্য অপ্টিমাইজ করার সময় সঠিক অবস্থান প্রদান করে৷ খুব কমই জিপিএস ব্যবহার করে। সাধারণত ডিভাইসের অবস্থান গণনা করতে Wi-Fi এবং সেল তথ্যের সংমিশ্রণ ব্যবহার করে। -
PRIORITY_LOW_POWER
মূলত সেল টাওয়ারের উপর নির্ভর করে এবং GPS এবং Wi-Fi ইনপুট এড়িয়ে যায়, ন্যূনতম ব্যাটারি ড্রেন সহ মোটা (শহর-স্তরের) নির্ভুলতা প্রদান করে। -
PRIORITY_NO_POWER
অন্যান্য অ্যাপ্লিকেশানগুলি থেকে নিষ্ক্রিয়ভাবে অবস্থানগুলি গ্রহণ করে যার জন্য অবস্থান ইতিমধ্যে গণনা করা হয়েছে৷
বেশিরভাগ অ্যাপের অবস্থানের চাহিদা মেটাতে সুষম শক্তি বা কম পাওয়ার বিকল্পগুলি ব্যবহার করুন। ফোরগ্রাউন্ডে চলা অ্যাপগুলির জন্য উচ্চ নির্ভুলতা সংরক্ষণ করুন এবং রিয়েল টাইম লোকেশন আপডেটের প্রয়োজন হয় (উদাহরণস্বরূপ, একটি ম্যাপিং অ্যাপ)।
ফ্রিকোয়েন্সি
আপনি দুটি পদ্ধতি ব্যবহার করে অবস্থানের ফ্রিকোয়েন্সি নির্দিষ্ট করতে পারেন:
- আপনার অ্যাপের অবস্থান গণনার জন্য ব্যবধান নির্দিষ্ট করতে
setinterval()
পদ্ধতি ব্যবহার করুন। - অন্যান্য অ্যাপের অবস্থান গ্রহণের জন্য ব্যবধান নির্দিষ্ট করতে
setFastestInterval()
পদ্ধতি ব্যবহার করুন।
setInterval()
ব্যবহার করার সময় সবচেয়ে বড় সম্ভাব্য মান পাস করুন। এটি ব্যাকগ্রাউন্ড লোকেশন সংগ্রহের জন্য বিশেষভাবে সত্য, যা প্রায়শই ব্যাটারি নিষ্কাশন করে। ফোরগ্রাউন্ড ব্যবহারের ক্ষেত্রে কয়েক সেকেন্ডের বিরতি সংরক্ষণ করুন।
Android 8.0 (API লেভেল 26) এ প্রবর্তিত ব্যাকগ্রাউন্ড লোকেশন সীমাগুলি এই কৌশলগুলিকে কার্যকর করে, কিন্তু আপনার অ্যাপের Android 7.0 (API লেভেল 24) এবং তার থেকে কম চলমান ডিভাইসগুলিতে এগুলি কার্যকর করার চেষ্টা করা উচিত।
লেটেন্সি
আপনি setMaxWaitTime()
পদ্ধতি ব্যবহার করে লেটেন্সি নির্দিষ্ট করতে পারেন, সাধারণত setInterval()
পদ্ধতিতে নির্দিষ্ট ব্যবধানের চেয়ে কয়েকগুণ বড় একটি মান পাস করে। এই সেটিং লোকেশন ডেলিভারি বিলম্বিত করে, এবং একাধিক লোকেশন আপডেট ব্যাচে বিতরণ করা হতে পারে। এই দুটি পরিবর্তন ব্যাটারি খরচ কমাতে সাহায্য করে।
যদি আপনার অ্যাপের অবিলম্বে একটি অবস্থান আপডেটের প্রয়োজন না হয়, তাহলে আপনাকে setMaxWaitTime()
পদ্ধতিতে সবচেয়ে বড় সম্ভাব্য মান পাস করা উচিত, কার্যকরভাবে আরও ডেটা এবং ব্যাটারির দক্ষতার জন্য লেটেন্সি ট্রেড করা।
জিওফেন্স ব্যবহার করার সময়, অ্যাপগুলিকে শক্তি সংরক্ষণের জন্য setNotificationResponsiveness()
পদ্ধতিতে একটি বড় মান পাস করা উচিত। পাঁচ মিনিট বা তার চেয়ে বড় মান বাঞ্ছনীয়।
আরও পড়া
আরও তথ্যের জন্য, নিম্নলিখিত নথিগুলি দেখুন:
- প্রস্তাবনাগুলি : এই নির্দেশিকাটি ব্যাটারি লাইফের উপর আপনার অ্যাপের প্রভাবকে উন্নত করতে ব্যবহার করতে পারেন এমন কিছু প্রস্তাবিত পদক্ষেপগুলিকে তুলে ধরে৷
- কেসগুলি ব্যবহার করুন : এই নির্দেশিকাটি বেশ কয়েকটি সাধারণ ব্যবহারের ক্ষেত্রে সরবরাহ করে যেখানে আপনি অবস্থান পরিষেবাগুলি ব্যবহার করতে পারেন এবং সেই ক্ষেত্রে আপনি কীভাবে ব্যাটারি লাইফের উপর প্রভাব অপ্টিমাইজ করতে পারেন৷