এই ডকুমেন্টটি নেভিগেশন SDK ব্যবহার করে তৈরি করা মোবাইল নেভিগেশন অ্যাপে বিদ্যুৎ খরচ কীভাবে অপ্টিমাইজ করা যায় তার সর্বোত্তম অনুশীলনগুলি বর্ণনা করে। একই সাথে, এই অনুশীলনগুলি ব্যবহার করার সময় বিবেচনা করা উচিত এমন ট্রেড-অফগুলিও এটি বর্ণনা করে। বিশেষ করে, এই ডকুমেন্টটি নিম্নলিখিত বিষয়গুলি অন্তর্ভুক্ত করে:
- উচ্চ-বিদ্যুৎ ব্যবহারের উৎস , সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত স্থান পেয়েছে।
- ফ্রেম রেট থেকে শুরু করে গুরুত্বের ক্রমানুসারে বিদ্যুৎ খরচ অপ্টিমাইজ করার কৌশল ।
- আপনার অ্যাপ ব্যবহারকারীদের নেভিগেট করার সময় তাদের ডিভাইস ব্যবহার কীভাবে পরিচালনা করতে হয় তা শিক্ষিত করার জন্য শেষ-ব্যবহারকারী কৌশল ।
আপনার নেভিগেশন অ্যাপটি কেন অপ্টিমাইজ করবেন?
তাদের পরিস্থিতির উপর নির্ভর করে, আপনার অ্যাপ ব্যবহারকারীরা দীর্ঘ সময়ের জন্য নেভিগেশন নির্দেশিকা চালাতে পারেন। উদাহরণস্বরূপ, ড্রাইভার এবং ডেলিভারি কুরিয়াররা অপরিচিত অঞ্চলে অ্যাসাইনমেন্ট সম্পন্ন করার জন্য দীর্ঘ সময় ধরে কাজ করতে পারে। এই ক্ষেত্রে, তারা অ্যাপ-মধ্যস্থ পালাক্রমে নির্দেশিকার উপর অনেক বেশি নির্ভর করে। এর ফলে কিছু সাধারণ সমস্যা দেখা দেয়:
- ব্যাটারির চার্জ শেষ হওয়া এবং চার্জারের সহজলভ্যতা । অতিরিক্ত নেভিগেশন ব্যবহারের ফলে ডিভাইসের ব্যাটারি প্রত্যাশার চেয়ে দ্রুত শেষ হতে পারে। যদিও অনেক ব্যবহারকারী গাড়িতে তাদের ডিভাইস চার্জ করে এই সমস্যা সমাধান করতে পারেন, কিন্তু দুই চাকার গাড়ির চালকরা তা করতে পারেন না।
- তাপের কারণে ডিভাইস থ্রটলিং । এমনকি যারা ক্রমাগত তাদের ডিভাইস চার্জ করেন তাদেরও সমস্যার সম্মুখীন হতে পারেন। দীর্ঘ সময় ধরে উচ্চ বিদ্যুৎ খরচের ফলে ডিভাইসটি গরম হতে পারে, যার ফলে তাপীয় থ্রটলিং এবং পরবর্তীতে কর্মক্ষমতা হ্রাস পেতে পারে।
টার্ন-বাই-টার্ন নেভিগেশন অ্যাপগুলি স্ক্রিন, জিপিএস এবং সেল টাওয়ারের সাথে রেডিও যোগাযোগের মতো পাওয়ার-হেভি ফিচারের উপর নির্ভর করে, তাই আপনার মোবাইল অ্যাপের পাওয়ার ব্যবহার অপ্টিমাইজ করা একটি সেরা অনুশীলন। অতিরিক্তভাবে, আপনার লক্ষ্য দর্শকদের পাওয়ার ব্যবহারের চাহিদা বিবেচনা করা উচিত যাতে আপনি কর্মক্ষমতা এবং পাওয়ার খরচ অপ্টিমাইজ করার মধ্যে উপযুক্ত লেনদেন করতে পারেন।
কোনটি সবচেয়ে বেশি বিদ্যুৎ খরচ করে?
এই বিভাগটি উচ্চ বিদ্যুৎ খরচের সাথে সম্পর্কিত অ্যাপ-মধ্যস্থ কার্যকলাপগুলিকে দুটি বিভাগে ভাগ করে:
- স্ক্রিন রেন্ডারিং
- অবস্থান আপডেট
স্ক্রিন রেন্ডারিং
মোবাইল নেভিগেশন অ্যাপগুলিতে স্ক্রিন রেন্ডারিং সাধারণত সবচেয়ে বেশি বিদ্যুৎ খরচ করে। ডিভাইসটি যখনই স্ক্রিনে একটি মানচিত্র এবং অন্যান্য UI উপাদান আঁকে, তখন এটি GPU এবং CPU প্রক্রিয়াকরণের উপর নির্ভর করে। একইভাবে, যখন ব্যবহারকারী দীর্ঘ সময় ধরে সেই স্ক্রিনটি চালু রাখেন, তখন এটিও বেশি বিদ্যুৎ খরচ করে।
কিছু ক্ষেত্রে, আপনি এমন ড্রাইভার বা রাইডারদের কাছ থেকে উচ্চ শক্তি খরচ আশা করতে পারেন যারা নেভিগেট করার জন্য দৃশ্যমান মানচিত্রের উপর নির্ভর করে, বিশেষ করে যদি তারা অনেক ঘন্টা ধরে একটানা অ্যাপটি ব্যবহার করে। এই পরিস্থিতিতে, অ্যাপটি স্ক্রিনে উচ্চ হারে রেন্ডারিং সম্পাদন করে কারণ মানচিত্রটি তখন রিয়েল টাইমে আপডেট হয়। কিছু ক্ষেত্রে, স্ক্রিনটি প্রায় ক্রমাগত পুনরায় আঁকা যেতে পারে, বিশেষ করে যখন ব্যবহারকারী একটি অবস্থান থেকে অন্য স্থানে না থামিয়ে গাড়ি চালান।
অবস্থান আপডেট
স্ক্রিন রেন্ডারিং ছাড়াও, আরও দুটি নেভিগেশন কার্যকলাপ ডিভাইসের শক্তি খরচ করে:
- রেডিও সেল টাওয়ার এবং জিপিএস ব্যবহার
- অবস্থান আপডেট এবং শেয়ারিং, যেমন একটি ETA প্রদান করা বা বহরে থাকা কোনও গাড়ির অবস্থান রিপোর্ট করা।
জিপিএস এবং সেল রেডিও যোগাযোগ উভয়ই বিদ্যুৎ-ক্ষুধার্ত স্টার্ট-আপ অপারেশনের উপর নির্ভর করে: জিপিএসকে অবশ্যই স্যাটেলাইট খুঁজে বের করতে হবে এবং সেল রেডিওগুলিকে টাওয়ারগুলির সাথে আলোচনা করে একটি সংযোগ স্থাপন করতে হবে। এই কারণে, নেভিগেশনের সময় এগুলি মূলত অবিচ্ছিন্নভাবে চলে, যদিও সেল রেডিওগুলি স্টার্ট আপ খরচ কমানোর জন্য 20-30 সেকেন্ডের জন্য সক্রিয় থাকে। অপারেটিং সিস্টেম এই সেটিংসগুলি নিয়ন্ত্রণ করে যা আপনি আপনার অ্যাপে সহজেই কনফিগার করতে পারবেন না।
লোকেশন আপডেটের ক্ষেত্রে, অপ্রত্যাশিত কারণের উপর ভিত্তি করে বিদ্যুৎ ব্যবহার পরিবর্তিত হয়। উদাহরণস্বরূপ, ডিভাইস এবং সেলুলার বেস স্টেশনের মধ্যে দূরত্ব বিদ্যুৎ ব্যবহার নির্ধারণ করে, কারণ টাওয়ার পরিবর্তন এড়াতে ডিভাইসটি নেভিগেশন চালিয়ে যাওয়ার জন্য প্রয়োজনীয় ন্যূনতম সিগন্যাল ব্যবহার করবে। অতএব, দুর্বল সংযোগযুক্ত এলাকায় নেভিগেট করা ডিভাইস বেস স্টেশনের কাছাকাছি থাকা ডিভাইসের চেয়ে বেশি বিদ্যুৎ ব্যবহার করবে। অতিরিক্তভাবে, কিছু অ্যাপ কেন্দ্রীয় ফ্লিট ম্যানেজমেন্ট পরিষেবার সাথে অবস্থান আপডেট শেয়ার করতে পারে এবং তাই এটি সম্পন্ন করার জন্য সার্ভারের সাথে যোগাযোগ করতে হবে।
আপনার অ্যাপের পাওয়ার ব্যবহার অপ্টিমাইজ করুন
নেভিগেশন অ্যাপগুলিতে পাওয়ার ব্যবহার অপ্টিমাইজ করার চ্যালেঞ্জ হল এই অ্যাপগুলি পাওয়ার-ক্ষুধার্ত রিসোর্সের উপর ব্যাপকভাবে নির্ভর করে, যা স্ক্রিনের ব্যবহার সীমাবদ্ধ করার মতো ট্রেডঅফ না করেই প্রভাব কমানোর জন্য আপনার বিকল্পগুলিকে সীমিত করে। এই বিভাগটি আপনার অ্যাপ অপ্টিমাইজ করার সময় আপনি যে পদ্ধতিগুলি নিতে পারেন তার একটি তালিকা প্রদান করে, সবচেয়ে কার্যকর থেকে কম কার্যকর পর্যন্ত।
ফ্রেম রেট পরিবর্তন করুন
স্ক্রিনটি ফ্রেম রেট নামে পরিচিত একটি ফ্রিকোয়েন্সিতে যা দেখাচ্ছে তা আপডেট করে। ফ্রেম রেট সাধারণত ফ্রেম পার সেকেন্ড (FPS) তে পরিমাপ করা হয়। যেহেতু স্ক্রিন রেন্ডারিং অনেক CPU বা GPU ব্যবহার করে, তাই বিদ্যুৎ খরচ বাঁচাতে আপনি ফ্রেম রেট কমাতে পারেন।
ফ্রেম রেট কমানোর ক্ষেত্রে একটি সুবিধা হলো, স্ক্রিন রেন্ডারিং কম মসৃণ দেখাতে পারে, বিশেষ করে যদি ম্যাপ ঘন ঘন আপডেট হয়। ম্যাপ জুম ইন করার সময়, ব্যবহারকারী যখন উচ্চ গতিতে ভ্রমণ করেন, অথবা যখন গতি বা দিক অনেক বেশি পরিবর্তন করেন তখন এটি সবচেয়ে স্পষ্ট হতে পারে।
ফ্রেম রেট পরিবর্তন করার বিষয়ে আরও জানতে অ্যান্ড্রয়েড মিডিয়া ডেভ সেন্টার ডেভেলপার ডকুমেন্টেশনের ফ্রেম রেট বিভাগটি দেখুন।
মানচিত্র ছাড়াই নেভিগেট করুন
ব্যবহারকারীরা তাদের ডিভাইসের স্ক্রিনের উজ্জ্বলতা কীভাবে সেট করবেন বা কতক্ষণ স্ক্রিন চালু রাখবেন তা আপনি নিয়ন্ত্রণ করতে পারবেন না, তবে আপনি মানচিত্র ছাড়াই নেভিগেশন নির্দেশিকার জন্য একটি বিকল্প প্রদান করতে পারেন। এটি ব্যবহারকারীদের শক্তি সংরক্ষণের জন্য সেই বিকল্পটি বেছে নেওয়ার অনুমতি দেবে। উদাহরণস্বরূপ, যদি ড্রাইভাররা নিয়মিত একই এলাকায় কাজ করে, তাহলে তাদের প্রায়শই মানচিত্র-ভিত্তিক নির্দেশিকার প্রয়োজন নাও হতে পারে। মানচিত্র ছাড়াই নেভিগেশন সক্ষম করা যেতে পারে নেভিগেশন SDK-তে একটি গন্তব্য সেট করে এবং নির্দেশিকা শুরু করে কিন্তু মানচিত্র প্রদর্শন না করে।
নেভিগেশন UI লুকানোর জন্য, NavigationView অথবা SupportNavigationFragment যোগ করবেন না, অথবা যদি আপনি ইতিমধ্যেই এটি করে থাকেন, তাহলে যে কোডটি যোগ করে তা সরিয়ে ফেলুন। নিম্নলিখিত কোডটি Navigation SDK Android ডেমো অ্যাপ থেকে পরিবর্তিত হয়েছে এবং নেভিগেশন UI যোগ করে এমন কোডটি সরাতে মন্তব্যের ব্যবহার দেখায়:
//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);
নেভিগেশন SDK রাস্তার ভাঙা স্থান, ETA এবং অবশিষ্ট যাত্রার দূরত্ব আপডেট করতে থাকবে এবং ড্রাইভার এগিয়ে যাওয়ার সাথে সাথে আপনার অ্যাপটি SDK দ্বারা উত্থাপিত সমস্ত ইভেন্টে সাবস্ক্রাইব করতে পারবে। এটি প্রতিটি ব্যবহারের ক্ষেত্রে উপযুক্ত নয় এবং অবশ্যই এমন ক্ষেত্রে ভাল পরামর্শ নয় যেখানে ড্রাইভারকে মানচিত্র দেখতে এবং ভিজ্যুয়াল নির্দেশিকা অনুসরণ করতে হবে। নিম্নলিখিত স্ক্রিনশটগুলি সক্রিয় নেভিগেশনের সময় মানচিত্রের দৃশ্য টগল করার পাশাপাশি তুলনা দেখায়।
![]() | ![]() |
একটি অন্ধকার মানচিত্র শৈলী ব্যবহার করুন
স্ক্রিনে মানচিত্র রেন্ডার করার জন্য প্রয়োজনীয় শক্তির পরিমাণ কমাতে একটি অন্ধকার থিম ব্যবহার করে মানচিত্রটি স্টাইল করার কথা বিবেচনা করুন।
নেভিগেশন SDK অ্যান্ড্রয়েডের জন্য Google Maps SDK ব্যবহার করে তার মানচিত্র রেন্ডার করে, যেখানে আপনার অ্যাপে যেকোনো নন-নেভিগেশন ম্যাপ ভিউ স্টাইল করার বিকল্প রয়েছে। নেভিগেশন ভিউ ফোর্সিং ডার্ক মোডকেও সমর্থন করে। স্ক্রিনের ধরণের পার্থক্যের কারণে এটি প্রতিটি ডিভাইসে একইভাবে প্রভাবিত নাও হতে পারে, তবে কিছু ক্ষেত্রে সম্ভাব্য পাওয়ার সাশ্রয়ের সুযোগ করে দেয়। সাম্প্রতিক একটি গবেষণায় দেখা গেছে যে কিছু স্ক্রিনে ডার্ক মোড দ্বারা কত বিদ্যুৎ সাশ্রয় করা হয় তা নির্ভর করে স্ক্রিনটি শুরুতে কতটা উজ্জ্বল তার উপর। উদাহরণস্বরূপ, ডার্ক মোড পূর্ণ উজ্জ্বলতায় সেট করা স্ক্রিনগুলিতে বেশি বিদ্যুৎ সাশ্রয় করে, যে স্ক্রিনগুলির উজ্জ্বলতা ইতিমধ্যেই সর্বোচ্চ 30-50% এ সামঞ্জস্য করা হয়েছে তার তুলনায়। আপনার অ্যাপগুলির জন্য ডার্ক মোড ব্যবহার করার সময় এটি বিবেচনা করা গুরুত্বপূর্ণ, কারণ পাওয়ার সাশ্রয় শেষ ব্যবহারকারী তাদের স্ক্রিনের উজ্জ্বলতা কীভাবে সেট করে তার সাথে সম্পর্কিত হবে।
নেভিগেশন UI পরিবর্তন সম্পর্কে আরও জানতে নেভিগেশন UI পরিবর্তন দেখুন। 
আপনার মানচিত্রের জন্য একটি অন্ধকার শৈলী তৈরি করতে, একটি JSON শৈলী সহ MapStyleOptions অবজেক্ট ব্যবহার করুন যা আপনার পছন্দের অন্ধকার মানচিত্র শৈলীর প্রতিনিধিত্ব করে। https://mapstyle.withgoogle.com/ এ লিগ্যাসি স্টাইলিং সম্পাদক ব্যবহার করে লিগ্যাসি JSON শৈলী তৈরি করা যেতে পারে।
জিপিএস লোকেশন আপডেট ফ্রিকোয়েন্সি পরিবর্তন করুন
ডিভাইস থেকে প্রেরিত লোকেশন আপডেট থেকে পাওয়ার ব্যবহারের কথা বিবেচনা করার সময়, ট্রান্সমিশনে প্রেরিত ডেটার পরিমাণের চেয়ে লোকেশন আপডেটের ফ্রিকোয়েন্সির উপর বেশি মনোযোগ দিন।
এটি এমন কিছু নয় যা আপনি সরাসরি নেভিগেশন SDK-তে নিয়ন্ত্রণ করতে পারবেন, তবে যদি আপনার অ্যান্ড্রয়েড অ্যাপ স্বাধীনভাবে অবস্থানের জন্য অনুরোধ করে, তাহলে আপনার অ্যান্ড্রয়েড ডেভেলপার ডকুমেন্টেশনের " অপ্টিমাইজ লোকেশন ফর ব্যাটারি" নিবন্ধে দেওয়া পরামর্শটি বিবেচনা করা উচিত। জিপিএস-বহির্ভূত অবস্থান উৎস (সেল এবং ওয়াইফাই) ব্যবহারের ক্ষেত্রেও একই পরামর্শ প্রযোজ্য।
আপনার ব্যবহারকারীদের শিক্ষিত করুন
আপনার অ্যাপের ব্যবহারকারীরা তাদের বিদ্যুৎ খরচ কীভাবে অপ্টিমাইজ করবেন তা জানতে চাইতে পারেন। তাদের অ্যাপের বিদ্যুৎ খরচ কমাতে সাহায্য করার জন্য, আপনার ব্যবহারকারীদের নিম্নলিখিতগুলি করার পরামর্শ দিন:
- ফোন লক করো।
- নেভিগেশন অ্যাপটি ব্যাকগ্রাউন্ডে রাখুন
- সম্ভব হলে মানচিত্র ছাড়াই নেভিগেশন ব্যবহার করুন
- OLED এবং AMOLED স্ক্রিনের জন্য ডার্ক মোড ব্যবহার করে অথবা অভিযোজিত উজ্জ্বলতা সক্ষম করে স্ক্রিনের উজ্জ্বলতা হ্রাস করুন
- ডিভাইসটি ঠান্ডা রাখুন
- গাড়ির ভেতরে ওয়াই-ফাই থাকলে সংযোগ করুন
বিদ্যুৎ খরচ পরিমাপ করুন
বিদ্যুৎ খরচ পরিমাপ করার জন্য আপনি পেশাদার-গ্রেড সরঞ্জাম ব্যবহার করতে পারেন, তবে এগুলি পাওয়া প্রায়শই কঠিন বা ব্যয়বহুল। অ্যান্ড্রয়েড স্টুডিওতে পাওয়ার প্রোফাইলার এবং এক্সকোড অর্গানাইজারের ব্যাটারি ব্যবহারের ফলকের মতো অ্যাপ এবং আইডিই প্রোফাইলিং সরঞ্জামগুলি বিদ্যুৎ খরচ পরিমাপ করে, তবে ব্যাকগ্রাউন্ড প্রক্রিয়াগুলির প্রভাব অপসারণ করা বা পরিমাপের জন্য একটি পারফরম্যান্স বেসলাইন সেট করা কঠিন হতে পারে। কিছু ক্ষেত্রে ডিভাইসের সীমাবদ্ধতা প্রয়োজনীয় ডেটাতে অ্যাক্সেস পেতে বাধা দিতে পারে।
আপনি বিশেষ উদ্দেশ্যে পাওয়ার মনিটরিং হার্ডওয়্যার ব্যবহার করতে পারেন এবং ব্যাটারি সংযোগ কনফিগারেশন পরিবর্তন করতে পারেন, এবং এটি করতে আপনাকে সাহায্য করার জন্য বাণিজ্যিক পণ্য এবং পরিষেবা বিদ্যমান। মনে রাখবেন যে এইভাবে ডিভাইসগুলি পরিবর্তন করলে ডিভাইসের ওয়ারেন্টি বাতিল হতে পারে।

