এই ডকুমেন্ট থেকে আপনি জানতে পারবেন যে Navigation SDK ব্যবহার করে তৈরি করা মোবাইল নেভিগেশন অ্যাপে ব্যাটারির চার্জের ব্যবহার কীভাবে অপ্টিমাইজ করবেন। একই সাথে, এই পদ্ধতিগুলি প্রয়োগ করার সময় বিবেচনা করার জন্য ট্রেড-অফগুলি বর্ণনা করে। বিশেষ করে, এই ডকুমেন্টে নিম্নলিখিত বিষয়গুলি কভার করা হয়েছে:
- বেশি বিদ্যুৎ খরচ হওয়ার সোর্স, সবচেয়ে বেশি থেকে সবচেয়ে কম হিসেবে র্যাঙ্ক করা হয়েছে।
- গুরুত্বের ক্রম অনুযায়ী, ব্যাটারি খরচ অপ্টিমাইজ করার কৌশল, ফ্রেম রেট দিয়ে শুরু।
- নেভিগেট করার সময় কীভাবে ডিভাইস ব্যবহার ম্যানেজ করতে হয় সেই বিষয়ে আপনার অ্যাপ ব্যবহারকারীদের শেখানোর জন্য ব্যবহারকারী-ভিত্তিক কৌশল।
আপনার নেভিগেশন অ্যাপ কেন অপ্টিমাইজ করবেন?
পরিস্থিতির উপর নির্ভর করে, আপনার অ্যাপ ব্যবহারকারীরা দীর্ঘ সময়ের জন্য নেভিগেশন নির্দেশিকা চালাতে পারেন। যেমন, ড্রাইভার ও ডেলিভারি কুরিয়ার দীর্ঘ সময় ধরে কাজ করতে পারেন, অপরিচিত এলাকায় অ্যাসাইনমেন্ট সম্পূর্ণ করতে পারেন। এইসব ক্ষেত্রে, তারা ইন-অ্যাপ এক এক করে নির্দেশনার উপর অনেক বেশি নির্ভর করে। এর ফলে কিছু সাধারণ সমস্যা দেখা দেয়:
- ব্যাটারির চার্জ শেষ হয়ে যাওয়া এবং চার্জারের উপলভ্যতা। নেভিগেশন বেশি ব্যবহার করলে ডিভাইসের ব্যাটারি প্রত্যাশার চেয়ে দ্রুত শেষ হয়ে যেতে পারে। অনেক ব্যবহারকারী গাড়িতে তাদের ডিভাইস চার্জ করে এই সমস্যার সমাধান করতে পারলেও, টু-হুইলার চালকরা তা করতে পারেন না।
- গরম হওয়ার কারণে ডিভাইসের পারফর্ম্যান্স কমে যাওয়া। এমনকি যেসব ব্যবহারকারী একটানা তাদের ডিভাইস চার্জ করেন, তারাও সমস্যার সম্মুখীন হতে পারেন। দীর্ঘ সময় ধরে বেশি পাওয়ার ব্যবহার করলে ডিভাইস গরম হয়ে যেতে পারে, যার ফলে থার্মাল থ্রটলিং এবং পারফর্ম্যান্সের ক্ষতি হতে পারে।
ধাপে ধাপে নেভিগেশন অ্যাপ স্ক্রিন, জিপিএস ও সেল টাওয়ারের সাথে রেডিও কমিউনিকেশনের মতো বেশি ব্যাটারি খরচ করে এমন ফিচারের উপর নির্ভর করে, তাই আপনার মোবাইল অ্যাপের ব্যাটারি ব্যবহার অপ্টিমাইজ করা একটি ভালো অভ্যাস। এছাড়াও, আপনার টার্গেট অডিয়েন্সের ব্যাটারি ব্যবহারের প্রয়োজনীয়তা বিবেচনা করা উচিত যাতে আপনি পারফর্ম্যান্স ও ব্যাটারি খরচ অপ্টিমাইজ করার মধ্যে উপযুক্ত ট্রেড-অফ করতে পারেন।
কোনটি সবচেয়ে বেশি বিদ্যুৎ খরচ করে?
এই বিভাগটি বেশি পাওয়ার খরচ করে এমন ইন-অ্যাপ অ্যাক্টিভিটিকে দুটি ভাগে ভাগ করে:
- স্ক্রিন রেন্ডারিং
- লোকেশন আপডেট
স্ক্রিন রেন্ডারিং
মোবাইল নেভিগেশন অ্যাপে স্ক্রিন রেন্ডারিংয়ের জন্য সাধারণত সবচেয়ে বেশি ব্যাটারি খরচ হয়। প্রতিবার ডিভাইস স্ক্রিনে ম্যাপ এবং অন্যান্য UI এলিমেন্ট দেখানোর সময়, এটি GPU এবং CPU প্রসেসিংয়ের উপর নির্ভর করে। একইভাবে, ব্যবহারকারী দীর্ঘ সময় ধরে স্ক্রিন চালু রাখলে, তাতেও বেশি বিদ্যুৎ খরচ হয়।
কিছু ক্ষেত্রে, আপনি আশা করতে পারেন যে ড্রাইভার বা রাইডাররা যারা নেভিগেট করার জন্য একটি দৃশ্যমান ম্যাপের উপর নির্ভর করে, বিশেষ করে যদি তারা একটানা অনেক ঘন্টা অ্যাপটি ব্যবহার করে, তাদের ক্ষেত্রে বেশি ব্যাটারি খরচ হবে। এই পরিস্থিতিতে, অ্যাপটি স্ক্রিনে আরও বেশি হারে রেন্ডার করে, কারণ ম্যাপটি তখন রিয়েল টাইমে আপডেট হয়। কিছু ক্ষেত্রে, স্ক্রিন প্রায় একটানা রিড্র হতে পারে, বিশেষ করে ব্যবহারকারী এক লোকেশন থেকে অন্য লোকেশনে না থেমে গাড়ি চালালে।
লোকেশন আপডেট
স্ক্রিন রেন্ডারিং ছাড়াও, আরও দুটি নেভিগেশন অ্যাক্টিভিটি ডিভাইসের পাওয়ার খরচ করে:
- রেডিও সেল টাওয়ার ও জিপিএস ব্যবহার
- লোকেশন আপডেট ও শেয়ারিং, যেমন ETA প্রদান করা বা ফ্লিটে থাকা কোনও গাড়ির পজিশন সম্পর্কে রিপোর্ট করা।
জিপিএস এবং সেল রেডিও কমিউনিকেশন, দুটিই বেশি ব্যাটারি খরচ করে এমন স্টার্ট-আপ অপারেশনের উপর নির্ভর করে: জিপিএস-কে অবশ্যই স্যাটেলাইট খুঁজে পেতে হবে এবং সেল রেডিওকে অবশ্যই টাওয়ারের সাথে নেগোশিয়েট করতে হবে এবং কানেকশন স্থাপন করতে হবে। এইসব কারণে, নেভিগেশনের সময় এগুলি মূলত একটানা চলতে থাকে, যদিও স্টার্ট আপ খরচ কমানোর চেষ্টায় সেল রেডিও ২০-৩০ সেকেন্ডের জন্য অ্যাক্টিভ থাকে। অপারেটিং সিস্টেম এইসব সেটিংস নিয়ন্ত্রণ করে যা আপনি অ্যাপে সহজে কনফিগার করতে পারবেন না।
লোকেশন আপডেট করার জন্য, অপ্রত্যাশিত বিষয়ের উপর ভিত্তি করে পাওয়ারের ব্যবহার পরিবর্তিত হয়। যেমন, ডিভাইস ও সেলুলার বেস স্টেশনের মধ্যে দূরত্ব ব্যাটারির ব্যবহার নির্ধারণ করে, কারণ টাওয়ার পরিবর্তন এড়াতে নেভিগেশন চালিয়ে যাওয়ার জন্য ডিভাইসটি প্রয়োজনীয় ন্যূনতম সিগন্যাল ব্যবহার করবে। তাই, খারাপ কানেক্টিভিটি আছে এমন এলাকায় নেভিগেট করা ডিভাইস, বেস স্টেশনের কাছাকাছি থাকা ডিভাইসের চেয়ে বেশি ব্যাটারি ব্যবহার করবে। এছাড়াও, কিছু অ্যাপ সেন্ট্রাল ফ্লিট ম্যানেজমেন্ট পরিষেবার সাথে লোকেশন আপডেট শেয়ার করতে পারে এবং তাই এটি করার জন্য সার্ভারের সাথে যোগাযোগ করতে হবে।
আপনার অ্যাপের পাওয়ার ব্যবহার অপ্টিমাইজ করা
নেভিগেশন অ্যাপে ব্যাটারির ব্যবহার অপ্টিমাইজ করার ক্ষেত্রে চ্যালেঞ্জ হল, এই অ্যাপগুলি ব্যাটারি বেশি খরচ করে এমন রিসোর্সের উপর অনেক বেশি নির্ভর করে, যার ফলে স্ক্রিনের ব্যবহার সীমিত করার মতো ট্রেড-অফ না করে প্রভাব কমানোর জন্য আপনার বিকল্পগুলি সীমিত হয়ে যায়। এই বিভাগে আপনার অ্যাপ অপ্টিমাইজ করার সময় আপনি যেসব পদ্ধতি অবলম্বন করতে পারেন তার একটি তালিকা দেওয়া হয়েছে। সবচেয়ে বেশি থেকে সবচেয়ে কম প্রভাবশালী পদ্ধতিগুলি ক্রমানুসারে সাজানো হয়েছে।
ফ্রেম রেট পরিবর্তন করা
স্ক্রিনে যা দেখানো হয় তা ফ্রেম রেট নামে পরিচিত ফ্রিকোয়েন্সিতে আপডেট করা হয়, সাধারণত ফ্রেম প্রতি সেকেন্ড (FPS) হিসেবে পরিমাপ করা হয়। স্ক্রিন রেন্ডারিংয়ের জন্য প্রচুর CPU ও GPU প্রসেসিংয়ের প্রয়োজন হয়, তাই আপনি ফ্রেম রেট কমিয়ে ব্যাটারি বাঁচাতে পারেন।
ফ্রেম রেট কমালে, ম্যাপ রেন্ডারিং এবং ইন্টার্যাক্টিভ জেসচার (যেমন প্যানিং, জুম করা বা ঘোরানো) কম মসৃণ মনে হতে পারে। রেসপন্সিভ ব্যবহারকারীর অভিজ্ঞতার সাথে পাওয়ারের কার্যকারিতা ব্যালেন্স করতে, আপনি একটি কম বেসলাইন ফ্রেম রেট রাখতে পারেন এবং অ্যাক্টিভ ব্যবহারকারীর ইন্টার্যাকশনের সময় এটি ডায়নামিকভাবে বুস্ট করতে পারেন।
ফ্রেম রেট পরিবর্তন করার ব্যাপারে আরও জানতে, Android Media Dev Center ডেভেলপার ডকুমেন্টেশনের ফ্রেম রেট বিভাগ দেখুন।
অটোমেটিক ফ্রেম রেট অ্যাডজাস্টমেন্ট
ভার্সন ৭.৮.০ থেকে শুরু করে, নেভিগেশন SDK অ্যাক্টিভ নেভিগেশনের সময় ম্যাপের ফ্রেম রেট অটোমেটিক অ্যাডজাস্ট করে যাতে পারফর্ম্যান্স উন্নত হয় এবং ব্যাটারি কম খরচ হয়। ডিভাইস পাওয়ার সেভিং মোডে প্রবেশ করলে, ম্যাপের ফ্রেম রেট কমে ১০ FPS হয়ে যায় এবং নেভিগেশন শেষ হলে বা পাওয়ার সেভিং মোড বন্ধ করা হলে ৬০ FPS-এ রিসেট হয়ে যায়।
ম্যাপ ছাড়াই নেভিগেট করুন
ব্যবহারকারী তার ডিভাইসের স্ক্রিনের উজ্জ্বলতা কীভাবে সেট করবেন বা কতক্ষণ স্ক্রিন চালু রাখবেন তা আপনি নিয়ন্ত্রণ করতে না পারলেও, ম্যাপ ছাড়াই নেভিগেশন গাইডেন্সের বিকল্প দিতে পারেন। এটি ব্যবহারকারীকে পাওয়ার সাশ্রয় করার জন্য সেই বিকল্প বেছে নেওয়ার অনুমতি দেবে। যেমন, ড্রাইভাররা যদি নিয়মিত একই এলাকায় কাজ করেন, তাহলে তাদের ম্যাপ-ভিত্তিক নির্দেশনার প্রয়োজন নাও হতে পারে। ম্যাপ ছাড়া নেভিগেশন গন্তব্য সেট করে এবং গাইডেন্স শুরু করে Navigation 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);
Navigation SDK, রোড স্ন্যাপ করা লোকেশন, ETA এবং বাকি থাকা যাত্রার দূরত্ব আপডেট করা চালিয়ে যাবে এবং আপনার অ্যাপ এখনও সব SDK-এর মাধ্যমে উত্থাপিত ইভেন্ট সাবস্ক্রাইব করতে পারবে, কারণ ড্রাইভার এগিয়ে চলেছে। এটি সব ক্ষেত্রে প্রযোজ্য নয় এবং যেসব ক্ষেত্রে ড্রাইভারকে ম্যাপ দেখতে হয় এবং ভিজ্যুয়াল নির্দেশিকা অনুসরণ করতে হয়, সেখানে এটি ভাল পরামর্শ নয়। নিম্নলিখিত স্ক্রিনশটগুলি অ্যাক্টিভ নেভিগেশনের সময় ম্যাপ ভিউ টগল করার পাশাপাশি তুলনা ব্যাখ্যা করে।
|
|
ডার্ক ম্যাপ স্টাইল ব্যবহার করুন
স্ক্রিনে ম্যাপ রেন্ডার করার জন্য প্রয়োজনীয় শক্তির পরিমাণ কমাতে, ডার্ক থিম ব্যবহার করার জন্য ম্যাপ স্টাইল করার কথা বিবেচনা করুন।
Navigation SDK, Android-এর জন্য Google Maps SDK ব্যবহার করে ম্যাপ রেন্ডার করে, যার মধ্যে আপনার অ্যাপে যেকোনও নন-নেভিগেশন ম্যাপ ভিউ স্টাইল করার বিকল্প থাকে। নেভিগেশন ভিউতে ডার্ক মোড চালু করার সুবিধাও রয়েছে। স্ক্রিনের ধরন আলাদা হওয়ার কারণে এটি প্রতিটি ডিভাইসে একই রকম প্রভাব নাও ফেলতে পারে, তবে কিছু ক্ষেত্রে সম্ভাব্য পাওয়ার সাশ্রয়ের অনুমতি দেয়। একটি সাম্প্রতিক সমীক্ষায় দেখা গেছে যে কিছু স্ক্রিনে ডার্ক মোড ব্যবহার করে কতটা ব্যাটারি সাশ্রয় করা যাবে তা নির্ভর করে স্ক্রিনটি কতটা উজ্জ্বল তার উপর। যেমন, স্ক্রিনের ব্রাইটনেস সম্পূর্ণ বাড়ানো থাকলে, ডার্ক মোড বেশি পাওয়ার সাশ্রয় করে। তবে, স্ক্রিনের ব্রাইটনেস আগে থেকেই ৩০-৫০% পর্যন্ত অ্যাডজাস্ট করা থাকলে, ডার্ক মোড ততটা পাওয়ার সাশ্রয় করে না। আপনার অ্যাপের জন্য ডার্ক মোড ব্যবহার করার সময় এটি বিবেচনা করা গুরুত্বপূর্ণ, কারণ ব্যবহারকারী তার স্ক্রিনের উজ্জ্বলতা কীভাবে সেট করেন তার উপর নির্ভর করে বিদ্যুৎ সাশ্রয় হবে।
নেভিগেশন UI পরিবর্তন করার ব্যাপারে আরও জানতে, নেভিগেশন UI পরিবর্তন করুন দেখুন।
আপনার ম্যাপের জন্য ডার্ক স্টাইল তৈরি করতে, MapStyleOptions অবজেক্টের সাথে JSON স্টাইল ব্যবহার করুন যা আপনার পছন্দের ডার্ক ম্যাপ স্টাইলকে দেখায়। https://mapstyle.withgoogle.com/-এ পুরনো স্টাইলিং এডিটর ব্যবহার করে পুরনো JSON স্টাইল তৈরি করা যেতে পারে।
জিপিএস লোকেশন আপডেট করার ফ্রিকোয়েন্সি পরিবর্তন করুন
ডিভাইস থেকে পাঠানো লোকেশন আপডেট থেকে পাওয়ারের ব্যবহার বিবেচনা করার সময়, ট্রান্সমিশনে পাঠানো ডেটার পরিমাণের চেয়ে লোকেশন আপডেটের ফ্রিকোয়েন্সির উপর বেশি ফোকাস করুন।
এটি এমন কিছু নয় যা আপনি সরাসরি Navigation SDK -তে নিয়ন্ত্রণ করতে পারবেন, তবে আপনার Android অ্যাপ যদি স্বাধীনভাবে লোকেশনের অনুরোধ করে, তাহলে আপনাকে Android ডেভেলপার ডকুমেন্টেশনের ব্যাটারির জন্য লোকেশন অপ্টিমাইজ করুন নিবন্ধে দেওয়া পরামর্শ বিবেচনা করতে হবে। জিপিএস ছাড়া অন্যান্য লোকেশন সোর্স (সেল ও ওয়াই-ফাই) ব্যবহার করার ক্ষেত্রেও একই পরামর্শ প্রযোজ্য।
আপনার ব্যবহারকারীদের শেখান
আপনার অ্যাপের ব্যবহারকারীরা হয়ত জানতে চাইবেন যে কীভাবে তারা ব্যাটারির চার্জ বাঁচাতে পারবেন। অ্যাপে ব্যাটারি খরচ কমাতে, আপনার ব্যবহারকারীদের নিম্নলিখিত কাজগুলি করতে বলুন:
- ফোন লক করুন
- নেভিগেশন অ্যাপ ব্যাকগ্রাউন্ডে রাখুন
- সম্ভব হলে ম্যাপ ছাড়াই নেভিগেশন ব্যবহার করুন
- OLED ও AMOLED স্ক্রিনের জন্য ডার্ক মোড ব্যবহার করে অথবা পরিবেশের আলো অনুযায়ী উজ্জ্বলতা ফিচার চালু করে স্ক্রিনের উজ্জ্বলতা কমানো
- ডিভাইসটি ঠান্ডা রাখুন
- গাড়ির ওয়াই-ফাই উপলভ্য থাকলে তার সাথে কানেক্ট করুন
বিদ্যুতের ব্যবহার পরিমাপ করুন
আপনি বিদ্যুৎ খরচ পরিমাপ করার জন্য পেশাদার-গ্রেড টুল ব্যবহার করতে পারেন, তবে এটি প্রায়শই পাওয়া কঠিন বা ব্যয়বহুল। অ্যাপ এবং IDE প্রোফাইলিং টুল যেমন Android Studio-তে Power Profiler এবং XCode Organizer-এ ব্যাটারি ব্যবহারের প্যানেল বিদ্যুৎ খরচ পরিমাপ করে, কিন্তু ব্যাকগ্রাউন্ড প্রসেসের প্রভাব সরানো বা পরিমাপ করার জন্য একটি পারফর্ম্যান্স বেসলাইন সেট করা কঠিন হতে পারে। কিছু ক্ষেত্রে, ডিভাইসের বিধিনিষেধের কারণে প্রয়োজনীয় ডেটা অ্যাক্সেস করা নাও যেতে পারে।
আপনি বিশেষ উদ্দেশ্যে পাওয়ার মনিটর করার হার্ডওয়্যার ব্যবহার করতে এবং ব্যাটারি কানেকশন কনফিগারেশন পরিবর্তন করতে পারেন এবং এটি করতে আপনাকে সাহায্য করার জন্য বাণিজ্যিক প্রোডাক্ট ও পরিষেবা রয়েছে। মনে রাখবেন যে এইভাবে ডিভাইস পরিবর্তন করলে ডিভাইসের ওয়ারেন্টি বাতিল হয়ে যেতে পারে।