আপনার অ্যাপের জন্য পাওয়ার খরচ অপ্টিমাইজ করুন

এই নথিটি নেভিগেশন SDK ব্যবহার করে তৈরি করা মোবাইল নেভিগেশন অ্যাপে কীভাবে আপনি পাওয়ার খরচ অপ্টিমাইজ করতে পারেন তার জন্য সর্বোত্তম অনুশীলনগুলি বর্ণনা করে৷ একই সময়ে, এটি এই অনুশীলনগুলি নিয়োগ করার সময় বিবেচনা করার জন্য ট্রেড-অফগুলি বর্ণনা করে৷ বিশেষ করে, এই নথিটি নিম্নলিখিতগুলি কভার করে:

  • উচ্চ-বিদ্যুত খরচের উত্স , সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত স্থান দেওয়া হয়েছে।
  • শক্তি খরচ অপ্টিমাইজ করার জন্য কৌশল , গুরুত্বের ক্রমানুসারে, ফ্রেম হার থেকে শুরু করে।
  • নেভিগেট করার সময় কীভাবে তাদের ডিভাইস ব্যবহার পরিচালনা করতে হয় তা আপনার অ্যাপ ব্যবহারকারীদের শিক্ষিত করার জন্য শেষ-ব্যবহারকারীর কৌশল

কেন আপনার নেভিগেশন অ্যাপ্লিকেশন অপ্টিমাইজ?

তাদের পরিস্থিতির উপর নির্ভর করে, আপনার অ্যাপ ব্যবহারকারীরা দীর্ঘ সময়ের জন্য নেভিগেশন নির্দেশিকা চালাতে পারে। উদাহরণস্বরূপ, ড্রাইভার এবং ডেলিভারি কুরিয়াররা দীর্ঘ সময় কাজ করতে পারে, অপরিচিত অঞ্চলে অ্যাসাইনমেন্ট সম্পূর্ণ করতে পারে। এই ক্ষেত্রে, তারা ইন-অ্যাপ-টার্ন-বাই-টার্ন গাইডেন্সের উপর অনেক বেশি নির্ভর করে। এর ফলে কিছু সাধারণ সমস্যা দেখা দেয়:

  • ব্যাটারি ড্রেন এবং চার্জার উপলব্ধতা । ভারী নেভিগেশন ব্যবহারের ফলে ডিভাইসের ব্যাটারি প্রত্যাশিত সময়ের চেয়ে দ্রুত নিষ্কাশন হতে পারে। যদিও অনেক ব্যবহারকারী গাড়িতে তাদের ডিভাইস চার্জ করে এটি মোকাবেলা করতে পারে, টু-হুইলার চালকরা তা করতে পারে না।
  • গরমের কারণে ডিভাইস থ্রটলিং । এমনকি যে ব্যবহারকারীরা তাদের ডিভাইস ক্রমাগত চার্জ করে তারা সমস্যার সম্মুখীন হতে পারে। দীর্ঘ সময় ধরে উচ্চ শক্তি খরচ ডিভাইসটিকে গরম করতে পারে, যার ফলে তাপীয় থ্রটলিং এবং পরবর্তী কার্যক্ষমতা হ্রাস পায়।

টার্ন-বাই-টার্ন নেভিগেশন অ্যাপ্লিকেশানগুলি শক্তি-ভারী বৈশিষ্ট্যগুলির উপর নির্ভর করে যেমন স্ক্রীন, জিপিএস, এবং সেল টাওয়ারের সাথে রেডিও যোগাযোগ, তাই আপনার মোবাইল অ্যাপের পাওয়ার ব্যবহার অপ্টিমাইজ করার জন্য এটি একটি সর্বোত্তম-অভ্যাস। অতিরিক্তভাবে, আপনার লক্ষ্য দর্শকদের পাওয়ার ব্যবহারের প্রয়োজনীয়তা বিবেচনা করা উচিত যাতে আপনি পারফরম্যান্স এবং অপ্টিমাইজিং পাওয়ার খরচের মধ্যে উপযুক্ত ট্রেডঅফ করতে পারেন।

কোনটি সবচেয়ে বেশি শক্তি খরচ করে?

এই বিভাগটি উচ্চ শক্তি খরচের সাথে যুক্ত অ্যাপ-মধ্যস্থ ক্রিয়াকলাপগুলিকে দুটি বিভাগে ভাগ করে:

  • স্ক্রীন রেন্ডারিং
  • অবস্থান আপডেট

স্ক্রীন রেন্ডারিং

স্ক্রীন রেন্ডারিং সাধারণত মোবাইল নেভিগেশন অ্যাপে সর্বোচ্চ শক্তি খরচ করে। প্রতিবার ডিভাইসটি স্ক্রিনে একটি মানচিত্র এবং অন্যান্য UI উপাদান আঁকে, এটি GPU এবং CPU প্রক্রিয়াকরণের উপর নির্ভর করে। একইভাবে, যখন ব্যবহারকারী সেই স্ক্রীনটি দীর্ঘ সময়ের জন্য ছেড়ে দেয়, তখন এটি আরও শক্তি ব্যবহার করে।

কিছু পরিমাণে, আপনি চালক বা রাইডারদের কাছ থেকে উচ্চ শক্তি খরচ আশা করতে পারেন যারা নেভিগেট করার জন্য একটি দৃশ্যমান মানচিত্রের উপর নির্ভর করে, বিশেষ করে যদি তারা অনেক ঘন্টা ধরে একটানা অ্যাপ ব্যবহার করে। এই পরিস্থিতিতে, অ্যাপটি স্ক্রিনে রেন্ডারিংয়ের উচ্চ হারও সম্পাদন করে কারণ মানচিত্রটি তখন রিয়েল টাইমে আপডেট হয়। কিছু ক্ষেত্রে, স্ক্রীনটি প্রায় অবিচ্ছিন্নভাবে পুনরায় আঁকতে পারে, বিশেষ করে যখন ব্যবহারকারী থামা ছাড়া অবস্থান থেকে অবস্থানে যান।

অবস্থান আপডেট

স্ক্রিন রেন্ডারিং ছাড়াও, দুটি অন্যান্য নেভিগেশন কার্যক্রম ডিভাইসের শক্তি ব্যবহার করে:

  • রেডিও সেল টাওয়ার এবং জিপিএস ব্যবহার
  • অবস্থান আপডেট এবং ভাগ করে নেওয়া, যেমন একটি ETA প্রদান করা বা একটি বহরে একটি গাড়ির অবস্থান রিপোর্ট করা।

GPS এবং সেল রেডিও যোগাযোগ উভয়ই শক্তি-ক্ষুধার্ত স্টার্ট-আপ ক্রিয়াকলাপগুলির উপর নির্ভর করে: GPS-কে অবশ্যই স্যাটেলাইটগুলি খুঁজে বের করতে হবে এবং সেল রেডিওগুলিকে অবশ্যই টাওয়ারগুলির সাথে আলোচনা করতে হবে এবং একটি সংযোগ স্থাপন করতে হবে৷ এই কারণে, তারা মূলত ন্যাভিগেশনের সময় অবিচ্ছিন্নভাবে চলে, যদিও সেল রেডিও 20-30 সেকেন্ডের জন্য সক্রিয় থাকে শুরুর খরচ কমানোর প্রয়াসে। অপারেটিং সিস্টেম এই সেটিংস নিয়ন্ত্রণ করে যা আপনি সহজেই আপনার অ্যাপে কনফিগার করতে পারবেন না।

অবস্থান আপডেটের জন্য, পাওয়ার ব্যবহার অপ্রত্যাশিত কারণের উপর ভিত্তি করে পরিবর্তিত হয়। উদাহরণস্বরূপ, ডিভাইস এবং সেলুলার বেস স্টেশনের মধ্যে দূরত্ব শক্তির ব্যবহার নির্ধারণ করে, যেহেতু টাওয়ার স্যুইচিং এড়াতে ডিভাইসটি নেভিগেশন চালিয়ে যাওয়ার জন্য প্রয়োজনীয় ন্যূনতম সংকেত ব্যবহার করবে। অতএব, দুর্বল সংযোগ সহ একটি এলাকায় নেভিগেট করা একটি ডিভাইস একটি বেস স্টেশনের কাছাকাছি থাকা একটির চেয়ে বেশি শক্তি ব্যবহার করবে। অতিরিক্তভাবে, কিছু অ্যাপ একটি কেন্দ্রীয় ফ্লিট ম্যানেজমেন্ট পরিষেবার সাথে লোকেশন আপডেট শেয়ার করতে পারে, এবং তাই এটি সম্পন্ন করার জন্য একটি সার্ভারের সাথে যোগাযোগ করতে হবে।

আপনার অ্যাপের পাওয়ার ব্যবহার অপ্টিমাইজ করুন

নেভিগেশন অ্যাপ্লিকেশানগুলিতে পাওয়ার ব্যবহার অপ্টিমাইজ করার চ্যালেঞ্জ হল যে এই অ্যাপগুলি শক্তি-ক্ষুধার্ত সংস্থানগুলির উপর অনেক বেশি নির্ভর করে, যা স্ক্রীনের ব্যবহার সীমাবদ্ধ করার মতো ট্রেডঅফ না করে প্রভাব কমানোর জন্য আপনার বিকল্পগুলিকে সীমিত করে। এই বিভাগটি আপনার অ্যাপটি অপ্টিমাইজ করার সময় আপনি যে পদ্ধতিগুলি গ্রহণ করতে পারেন তার একটি তালিকা প্রদান করে, যাতে সর্বাধিক থেকে কম প্রভাবশালী হয়৷

ফ্রেমের হার পরিবর্তন করুন

ফ্রেম রেট নামে পরিচিত ফ্রিকোয়েন্সিতে এটি কী দেখাচ্ছে তা স্ক্রিন আপডেট করে। ফ্রেমের হার সাধারণত ফ্রেম পার সেকেন্ডে (FPS) পরিমাপ করা হয়। যেহেতু স্ক্রিন রেন্ডারিং অনেক CPU বা GPU ব্যবহার করে, আপনি পাওয়ার খরচ বাঁচাতে ফ্রেম রেট কমাতে পারেন।

ফ্রেম রেট কমানোর সময় ট্রেডঅফ হল যে স্ক্রীন রেন্ডারিং কম মসৃণ দেখাতে পারে, বিশেষ করে যদি মানচিত্র ঘন ঘন আপডেট হয়। এটি সবচেয়ে সুস্পষ্ট হতে পারে যখন মানচিত্রটি উচ্চ বিশদ দেখানোর জন্য জুম করা হয়, যখন ব্যবহারকারী উচ্চ গতিতে ভ্রমণ করেন, বা যখন একটি বড় পরিমাণে গতি বা দিক পরিবর্তন করেন।

ফ্রেম রেট পরিবর্তন করার বিষয়ে আরও জানতে অ্যান্ড্রয়েড মিডিয়া ডেভলপার ডেভেলপার ডকুমেন্টেশনে ফ্রেম রেট বিভাগটি দেখুন।

শেষ ব্যবহারকারী কীভাবে তাদের ডিভাইসের স্ক্রিনের উজ্জ্বলতা সেট করে বা তারা কতক্ষণ তাদের স্ক্রীন চালু রাখে তা আপনি নিয়ন্ত্রণ করতে না পারলেও, আপনি একটি মানচিত্র ছাড়াই নেভিগেশন গাইডেন্সের জন্য একটি বিকল্প প্রদান করতে পারেন। এটি শেষ ব্যবহারকারীকে ক্ষমতা সংরক্ষণের জন্য সেই বিকল্পটি বেছে নেওয়ার অনুমতি দেবে। উদাহরণস্বরূপ, যদি ড্রাইভাররা নিয়মিত একই আশেপাশে কাজ করে, তাহলে তাদের প্রায়ই মানচিত্র-ভিত্তিক নির্দেশিকা প্রয়োজন নাও হতে পারে। একটি মানচিত্র ছাড়া নেভিগেশন একটি গন্তব্য সেট করে এবং নেভিগেশন SDK-তে নির্দেশিকা শুরু করে সক্ষম করা যেতে পারে কিন্তু একটি মানচিত্র প্রদর্শন না করে৷

নেভিগেশন UI লুকানোর জন্য, একটি NavigationView বা SupportNavigationFragment যোগ করবেন না, অথবা আপনি যদি এটি ইতিমধ্যেই করে থাকেন, তাহলে যে কোডটি যোগ করে সেটি সরিয়ে ফেলুন। নিম্নলিখিত কোডটি নেভিগেশন SDK অ্যান্ড্রয়েড ডেমো অ্যাপ থেকে সংশোধন করা হয়েছে এবং নেভিগেশন UI যোগ করে এমন কোডটি সরাতে মন্তব্যের ব্যবহার দেখায়:

//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment)   getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);

নেভিগেশন SDK রাস্তার স্ন্যাপ করা অবস্থান, ETA, এবং অবশিষ্ট যাত্রা দূরত্ব আপডেট করা চালিয়ে যাবে এবং ড্রাইভার এগিয়ে যাওয়ার সাথে সাথে আপনার অ্যাপটি এখনও SDK দ্বারা উত্থাপিত সমস্ত ইভেন্টে সদস্যতা নিতে পারে। এটি প্রতিটি ব্যবহারের ক্ষেত্রে উপযুক্ত নয় এবং ড্রাইভারকে মানচিত্রটি দেখতে এবং চাক্ষুষ নির্দেশিকা অনুসরণ করতে হবে এমন ক্ষেত্রে এটি অবশ্যই ভাল পরামর্শ নয়। নিম্নলিখিত স্ক্রিনশটগুলি সক্রিয় নেভিগেশনের সময় টগল করার মানচিত্র দৃশ্যগুলির পাশাপাশি একটি তুলনা চিত্রিত করে৷

মানচিত্র দৃশ্য দৃশ্যমান সহ চলমান ডেমো অ্যাপ।
চিত্র 1. নেভিগেশন SDK iOS ডেমো অ্যাপ ডেটা ব্যাক ডেমো দেখাচ্ছে
কোনো মানচিত্র দৃশ্য দৃশ্যমান ছাড়াই চলছে ডেমো অ্যাপ।
চিত্র 2. কোনো মানচিত্র দৃশ্য দৃশ্যমান ছাড়াই চলছে ডেমো অ্যাপ। অবশিষ্ট সময় এবং দূরত্ব নোট করুন, সেইসাথে রাস্তা-ছাড়া অবস্থান এখনও আপডেট করা হচ্ছে।

একটি অন্ধকার মানচিত্র শৈলী ব্যবহার করুন

স্ক্রিনে মানচিত্র রেন্ডার করার জন্য প্রয়োজনীয় শক্তির পরিমাণ কমাতে একটি অন্ধকার থিম ব্যবহার করার জন্য মানচিত্রের স্টাইলিং বিবেচনা করুন।

ন্যাভিগেশন SDK Android এর জন্য Google Maps SDK ব্যবহার করে তার মানচিত্র রেন্ডার করে, যেটিতে আপনার অ্যাপে ন্যাভিগেশন ম্যাপ ভিউ স্টাইল করার বিকল্প রয়েছে। নেভিগেশন ভিউ ফোর্সিং ডার্ক মোডকেও সমর্থন করে। স্ক্রিনের প্রকারের পার্থক্যের কারণে এটি প্রতিটি ডিভাইসকে একইভাবে প্রভাবিত করতে পারে না, তবে কিছু ক্ষেত্রে সম্ভাব্য শক্তি সঞ্চয় করার অনুমতি দেয়। একটি সাম্প্রতিক সমীক্ষায় দেখা গেছে যে কিছু স্ক্রিনে ডার্ক মোডের মাধ্যমে যে পরিমাণ শক্তি সংরক্ষণ করা হয় তা নির্ভর করে স্ক্রীনটি কতটা উজ্জ্বল হবে তার উপর। উদাহরণস্বরূপ, ডার্ক মোড পূর্ণ উজ্জ্বলতায় সেট করা স্ক্রিনের তুলনায় বেশি শক্তি সঞ্চয় করে যার উজ্জ্বলতা ইতিমধ্যেই সর্বাধিকের 30-50% এ সামঞ্জস্য করা হয়েছে। আপনার অ্যাপ্লিকেশানগুলির জন্য অন্ধকার মোড ব্যবহার করার সময় এটি বিবেচনা করা গুরুত্বপূর্ণ, কারণ শেষ ব্যবহারকারী কীভাবে তাদের স্ক্রিনের উজ্জ্বলতা সেট করে তার সাথে পাওয়ার সাশ্রয় হবে।

নেভিগেশন UI পরিবর্তন করার বিষয়ে আরও জানতে দেখুন নেভিগেশন UI পরিবর্তন করুন

একটি অন্ধকার মানচিত্র শৈলী সহ একটি iPhone 15 প্রোতে চলমান নেভিগেশন SDK-এর স্ক্রিনশট৷
চিত্র 3. নেভিগেশন SDK একটি অন্ধকার মানচিত্র শৈলীর সাথে কনফিগার করা হয়েছে৷

আপনার মানচিত্রের জন্য একটি অন্ধকার শৈলী তৈরি করতে, একটি JSON শৈলী সহ একটি MapStyleOptions অবজেক্ট ব্যবহার করুন যা আপনার পছন্দের অন্ধকার মানচিত্র শৈলীর প্রতিনিধিত্ব করে। লিগ্যাসি JSON শৈলীগুলি https://mapstyle.withgoogle.com/- এ লিগ্যাসি স্টাইলিং সম্পাদক ব্যবহার করে তৈরি করা যেতে পারে।

GPS অবস্থান আপডেট ফ্রিকোয়েন্সি পরিবর্তন করুন

ডিভাইস থেকে পাঠানো লোকেশন আপডেট থেকে পাওয়ার ব্যবহার বিবেচনা করার সময়, ট্রান্সমিশনে পাঠানো ডেটার পরিমাণের চেয়ে লোকেশন আপডেটের ফ্রিকোয়েন্সির উপর বেশি ফোকাস করুন।

এটি এমন কিছু নয় যা আপনি নেভিগেশন SDK-এ সরাসরি নিয়ন্ত্রণ করতে পারেন, কিন্তু আপনার Android অ্যাপ যদি স্বাধীনভাবে অবস্থানের অনুরোধ করে, তাহলে আপনার Android বিকাশকারী ডকুমেন্টেশনে ব্যাটারির জন্য অপ্টিমাইজ লোকেশন নিবন্ধের পরামর্শটি বিবেচনা করা উচিত। একই পরামর্শ নন-GPS অবস্থান উত্স (সেল এবং ওয়াইফাই) ব্যবহার করার জন্য প্রযোজ্য।

আপনার ব্যবহারকারীদের শিক্ষিত

আপনার অ্যাপের ব্যবহারকারীরা তাদের পাওয়ার খরচ অপ্টিমাইজ করতে জানতে চাইতে পারে। তাদের অ্যাপে পাওয়ার খরচ কমাতে সাহায্য করার জন্য, আপনার ব্যবহারকারীদের নিম্নলিখিত কাজ করার পরামর্শ দিন:

  • ফোন লক করুন
  • নেভিগেশন অ্যাপটি ব্যাকগ্রাউন্ডে রাখুন
  • সম্ভব হলে একটি মানচিত্র ছাড়া নেভিগেশন ব্যবহার করুন
  • OLED এবং AMOLED স্ক্রিনের জন্য ডার্ক মোড ব্যবহার করে বা অভিযোজিত উজ্জ্বলতা সক্ষম করে স্ক্রিনের উজ্জ্বলতা হ্রাস করুন
  • ডিভাইস ঠান্ডা রাখুন
  • উপলভ্য থাকলে গাড়ির মধ্যে ওয়াই-ফাই সংযোগ করুন
Android-এ ব্যাটারির আয়ু বাড়ানোর বিষয়ে শেষ-ব্যবহারকারীর পরামর্শের জন্য আপনার Android ডিভাইসের ব্যাটারি থেকে সর্বাধিক জীবন পান দেখুন৷ মনে রাখবেন যে এই পরামর্শের মধ্যে এমন ক্রিয়া রয়েছে যা একটি নেভিগেশন অ্যাপের কার্যকারিতাকে খারাপ করতে পারে যেমন এই নির্দেশিকায় আপনার অ্যাপের পাওয়ার ব্যবহার অপ্টিমাইজে আলোচনা করা হয়েছে৷

শক্তি খরচ পরিমাপ

আপনি বিদ্যুতের খরচ পরিমাপ করতে পেশাদার-গ্রেডের সরঞ্জামগুলি ব্যবহার করতে পারেন, তবে সেগুলি প্রাপ্ত করা প্রায়শই কঠিন বা ব্যয়বহুল। অ্যাপ্লিকেশান এবং IDE প্রোফাইলিং টুলস যেমন Android স্টুডিওতে পাওয়ার প্রোফাইলার এবং XCode অর্গানাইজারে ব্যাটারি ব্যবহার ফলক পাওয়ার খরচ পরিমাপ করে, তবে পটভূমি প্রক্রিয়াগুলির প্রভাব অপসারণ করা বা পরিমাপের জন্য একটি কর্মক্ষমতা বেসলাইন সেট করা কঠিন হতে পারে। কিছু ক্ষেত্রে ডিভাইসের বিধিনিষেধ প্রয়োজনীয় ডেটাতে অ্যাক্সেস পেতে বাধা দিতে পারে।

আপনি বিশেষ উদ্দেশ্য পাওয়ার মনিটরিং হার্ডওয়্যার ব্যবহার করতে পারেন এবং ব্যাটারি সংযোগ কনফিগারেশন পরিবর্তন করতে পারেন এবং এটি করতে আপনাকে সাহায্য করার জন্য বাণিজ্যিক পণ্য এবং পরিষেবা বিদ্যমান। মনে রাখবেন যে এইভাবে ডিভাইসগুলি পরিবর্তন করা ডিভাইসের ওয়ারেন্টি বাতিল করতে পারে।