ব্যাটারি হিস্টোরিয়ান টুলটি সময়ের সাথে সাথে একটি ডিভাইসের ব্যাটারি খরচ সম্পর্কে অন্তর্দৃষ্টি প্রদান করে। একটি সিস্টেম-ব্যাপী স্তরে, টুলটি একটি HTML উপস্থাপনায় সিস্টেম লগ থেকে পাওয়ার-সম্পর্কিত ইভেন্টগুলিকে কল্পনা করে। একটি অ্যাপ-নির্দিষ্ট স্তরে, টুলটি বিভিন্ন ধরনের ডেটা প্রদান করে যা আপনাকে ব্যাটারি-ড্রেনিং অ্যাপের আচরণ শনাক্ত করতে সাহায্য করতে পারে।
ব্যাটারি-ব্যবহারের ধরণগুলি সম্পর্কে জানতে আপনি ব্যাটারি হিস্টোরিয়ান ব্যবহার করতে পারেন এমন কিছু উপায় এই নথিতে বর্ণনা করা হয়েছে। ব্যাটারি হিস্টোরিয়ান রিপোর্ট করে সিস্টেম-ওয়াইড ডেটা কীভাবে পড়তে হয় তা ব্যাখ্যা করে ডকুমেন্টটি শুরু হয়। তারপরে, এটি এমন উপায়গুলি উপস্থাপন করে যাতে আপনি ব্যাটারি খরচ সম্পর্কিত আপনার নিজের অ্যাপের আচরণ নির্ণয় এবং সমস্যা সমাধানের জন্য ব্যাটারি হিস্টোরিয়ান ব্যবহার করতে পারেন৷ শেষ পর্যন্ত, এটি এমন পরিস্থিতিতে বিভিন্ন টিপস অফার করে যেখানে ব্যাটারি হিস্টোরিয়ান বিশেষভাবে উপযোগী হতে পারে।
সিস্টেম-ওয়াইড ভিউ ব্যবহার করুন
ব্যাটারি হিস্টোরিয়ান টুলটি সময়ের সাথে সাথে ব্যাটারি খরচের সাথে তাদের সম্পর্ক সহ বিভিন্ন অ্যাপ এবং সিস্টেম আচরণের একটি সিস্টেম-ব্যাপী ভিজ্যুয়ালাইজেশন প্রদান করে। চিত্র 1-এ দেখানো এই দৃশ্যটি আপনাকে আপনার অ্যাপের সাথে পাওয়ার ব্যবহারের সমস্যাগুলি নির্ণয় এবং সনাক্ত করতে সাহায্য করতে পারে।
![ব্যাটারি হিস্টোরিয়ানের সিস্টেম-ব্যাপী ইভেন্টের প্রদর্শন যা পাওয়ার খরচকে প্রভাবিত করে।](https://developer.android.com/static/topic/performance/images/generic-timeline.png?authuser=4&hl=bn)
এই চিত্রে বিশেষ আগ্রহের বিষয় হল কালো, অনুভূমিক, নিম্নমুখী প্রবণতা রেখা যা ব্যাটারি স্তরের প্রতিনিধিত্ব করে, যা y-অক্ষে পরিমাপ করা হয়। উদাহরণস্বরূপ, ব্যাটারি লেভেল লাইনের একেবারে শুরুতে, আনুমানিক সকাল 6:50 এ, ভিজ্যুয়ালাইজেশন ব্যাটারি স্তরে তুলনামূলকভাবে খাড়া ড্রপ দেখায়।
চিত্র 2 ডিসপ্লের সেই অংশের একটি ক্লোজ-আপ প্রদান করে।
![মোটামুটি সকাল 6:50 থেকে 7:20 AM পর্যন্ত ব্যাটারি হিস্টোরিয়ান টাইমলাইনের একটি ক্লোজ-আপ।](https://developer.android.com/static/topic/performance/images/s-generic-closeup.png?authuser=4&hl=bn)
ব্যাটারি লেভেল লাইনের একেবারে শুরুতে, ব্যাটারি তীব্রভাবে হ্রাস পাওয়ার সাথে সাথে, ডিসপ্লে তিনটি জিনিস ঘটছে তা দেখায়: CPU চলছে, একটি অ্যাপ একটি ওয়েকলক অর্জন করেছে এবং স্ক্রিন চালু রয়েছে। এইভাবে, ব্যাটারি হিস্টোরিয়ান আপনাকে বুঝতে সাহায্য করে যে ব্যাটারি খরচ বেশি হলে কী ঘটছে। তারপরে আপনি আপনার অ্যাপে এই আচরণগুলি লক্ষ্য করতে পারেন এবং আপনি করতে পারেন এমন সম্পর্কিত অপ্টিমাইজেশন আছে কিনা তা তদন্ত করতে পারেন।
সিস্টেম-ব্যাপী ভিজ্যুয়ালাইজেশন অন্যান্য ক্লুও প্রদান করতে পারে। উদাহরণস্বরূপ, যদি এটি দেখায় যে মোবাইল রেডিওটি প্রায়শই বন্ধ এবং চালু করা হচ্ছে, তাহলে বুদ্ধিমান শিডিউলিং API যেমন JobScheduler বা Firebase Job Dispatcher-এর মাধ্যমে এই আচরণটি অপ্টিমাইজ করার সুযোগ থাকতে পারে।
পরবর্তী বিভাগটি ব্যাখ্যা করে যে কীভাবে আপনার নিজের অ্যাপের জন্য নির্দিষ্ট আচরণ এবং ঘটনা তদন্ত করতে হয়।
অ্যাপ-নির্দিষ্ট ডেটা দেখুন
সিস্টেম-ওয়াইড ভিউ দ্বারা প্রদত্ত ম্যাক্রো-লেভেল ডেটা ছাড়াও, ব্যাটারি হিস্টোরিয়ান আপনার ডিভাইসে চলমান প্রতিটি অ্যাপের জন্য নির্দিষ্ট ডেটার টেবিল এবং কিছু ভিজ্যুয়ালাইজেশনও প্রদান করে। সারণী তথ্য অন্তর্ভুক্ত:
- ডিভাইসে অ্যাপটির আনুমানিক শক্তি ব্যবহার।
- নেটওয়ার্ক তথ্য।
- Wakelocks.
- সেবা।
- প্রক্রিয়া তথ্য।
টেবিল আপনার অ্যাপ সম্পর্কে ডেটার দুটি মাত্রা প্রদান করে। প্রথমে, আপনি অন্যান্য অ্যাপের তুলনায় আপনার অ্যাপের পাওয়ার ব্যবহারের র্যাঙ্ক কোথায় তা দেখতে পারেন। এটি করতে, টেবিলের অধীনে ডিভাইস পাওয়ার এস্টিমেট টেবিলে ক্লিক করুন। এই উদাহরণটি Pug Power নামক একটি কাল্পনিক অ্যাপ পরীক্ষা করে।
![কোন অ্যাপগুলি সবচেয়ে বেশি শক্তি খরচ করে তা খতিয়ে দেখা হচ্ছে।](https://developer.android.com/static/topic/performance/images/app-rankings.png?authuser=4&hl=bn)
চিত্র 3-এর সারণীটি প্রকাশ করে যে Pug Power হল এই ডিভাইসে ব্যাটারি পাওয়ারের নবম বৃহত্তম গ্রাহক এবং তৃতীয় বৃহত্তম অ্যাপ যা OS-এর অংশ নয়৷ এই ডেটা পরামর্শ দেয় যে এই অ্যাপটি গভীর তদন্ত বহন করে।
একটি নির্দিষ্ট অ্যাপের জন্য ডেটা খুঁজতে, ভিজ্যুয়ালাইজেশনের বাম পাশে অবস্থিত অ্যাপ নির্বাচনের অধীনে দুটি ড্রপডাউন মেনুর নিচের অংশে প্যাকেজের নাম লিখুন।
![একটি নির্দিষ্ট অ্যাপে প্রবেশ করা হচ্ছে যার ডেটা দেখতে হবে।](https://developer.android.com/static/topic/performance/images/dropdown.png?authuser=4&hl=bn)
আপনি যখন একটি নির্দিষ্ট অ্যাপ নির্বাচন করেন, তখন সিস্টেম-ব্যাপী ডেটার পরিবর্তে অ্যাপ-নির্দিষ্ট ডেটা প্রদর্শন করতে নিম্নলিখিত ডেটা ভিজ্যুয়ালাইজেশন বিভাগগুলি পরিবর্তিত হয়:
- সিঙ্ক ম্যানেজার।
- ফোরগ্রাউন্ড প্রক্রিয়া।
- ইউজারস্পেস ওয়েকলক।
- শীর্ষ অ্যাপ।
- কাজের সময়সূচি।
- অ্যাক্টিভিটি ম্যানেজার প্রো.
SyncManager এবং JobScheduler ভিজ্যুয়ালাইজেশনগুলি অবিলম্বে এটিকে স্পষ্ট করে তোলে যদি আপনার অ্যাপ সিঙ্ক করে এবং প্রয়োজনের চেয়ে বেশি ঘন ঘন কাজগুলি সম্পাদন করে। এটি করার মাধ্যমে, তারা দ্রুত উন্নত ব্যাটারির কর্মক্ষমতার জন্য আপনার অ্যাপের আচরণ অপ্টিমাইজ করার একটি সুযোগ প্রকাশ করতে পারে।
আপনি অ্যাপ-নির্দিষ্ট ভিজ্যুয়ালাইজেশন ডেটার আরও একটি অংশও পেতে পারেন, Userspace Wakelock । বাগ রিপোর্টে এই তথ্য অন্তর্ভুক্ত করতে, আপনার টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ডটি লিখুন:
$ adb shell dumpsys batterystats --enable full-wake-history
চিত্র 5 এবং 6 পগ পাওয়ারের জন্য ডেটা দেখায়: চিত্র 5 অ্যাপ-নির্দিষ্ট ডেটার ভিজ্যুয়ালাইজেশন দেখায় এবং চিত্র 6 সংশ্লিষ্ট ট্যাবুলার ডেটা দেখায়।
![কাল্পনিক অ্যাপ পগ পাওয়ারের জন্য ডেটার ভিজ্যুয়ালাইজেশন।](https://developer.android.com/static/topic/performance/images/pug-visualization.png?authuser=4&hl=bn)
ভিজ্যুয়ালাইজেশনের দিকে নজর দিলে তাৎক্ষণিকভাবে স্পষ্ট কিছু দেখা যায় না। JobScheduler লাইন দেখায় যে অ্যাপটিতে কোন কাজ নির্ধারিত নেই। SyncManager লাইন দেখায় যে অ্যাপটি কোনো সিঙ্ক করেনি।
যাইহোক, ট্যাবুলার ডেটার ওয়েকেলকস সেগমেন্টের পরীক্ষায় দেখা যায় যে পগ পাওয়ার মোট এক ঘন্টার বেশি ওয়েকলক অর্জন করে। এই অস্বাভাবিক এবং ব্যয়বহুল আচরণ অ্যাপের উচ্চ স্তরের পাওয়ার খরচের জন্য দায়ী হতে পারে। তথ্যের এই অংশটি বিকাশকারীকে এমন একটি অঞ্চলকে লক্ষ্য করতে সহায়তা করে যেখানে অপ্টিমাইজেশন ব্যাপকভাবে সাহায্য করার সম্ভাবনা রয়েছে। এই ক্ষেত্রে, কেন অ্যাপটি এত বেশি ওয়েকলক সময় অর্জন করে এবং কীভাবে বিকাশকারী এই আচরণটি উন্নত করতে পারে?
অন্যান্য ক্ষেত্রে যেখানে ব্যাটারি ইতিহাসবিদ সাহায্য করতে পারেন
আরও অনেক ক্ষেত্রে রয়েছে যেখানে ব্যাটারি হিস্টোরিয়ান আপনাকে ব্যাটারি আচরণের উন্নতির সুযোগ নির্ণয় করতে সাহায্য করতে পারে। উদাহরণস্বরূপ, ব্যাটারি হিস্টোরিয়ান আপনাকে বলতে পারে যে আপনার অ্যাপটি হল:
- অতিরিক্ত ঘনঘন (প্রতি 10 সেকেন্ড বা তার কম) ওয়েকআপ অ্যালার্ম ফায়ার করুন।
- ক্রমাগত একটি জিপিএস লক রাখা।
- প্রতি 30 সেকেন্ড বা তার কম সময়ে কাজের সময় নির্ধারণ করা।
- সময়সূচী প্রতি 30 সেকেন্ড বা তার কম সময়ে সিঙ্ক হয়।
- আপনার প্রত্যাশার চেয়ে বেশি ঘন ঘন সেলুলার রেডিও ব্যবহার করা।