অ্যান্ড্রয়েড ডিডিএমএস (Dalvik Debug Monitor Server) http://developer.android.com/tools/debugging/ddms.html ) একটি বিস্তারিত করা নেটওয়ার্ক ব্যবহারের ট্যাব অন্তর্ভূক্ত করে যা এটাকে অনুসরন করতে সম্ভব করে যখন আপনার অ্যাপলিকেশন নেটওয়ার্ক রিকোয়েস্ট তৈরী করছে। এই টুল ব্যবহার করে, আপনি মনিটর করতে পারেন কীভাবে এবং কখন আপনার অ্যাপ ডাটা ট্রান্সফার করে এবং যথাযথভাবে মৌলিক কোড অপটিমাইজ করে।
ফিগার ৩ দেখায় প্রায় ১৫ সেকেন্ড পরপর অল্প পরিমান ডাটা ট্রান্সফার করার একটি প্যাটার্ন, যা পরামর্শ দেয় যে, প্রতিটা রিকোয়েস্ট বা আপলোড বান্ডল করা প্রিফেচ করতে কার্যকারিতা নাটকীয়বাবে উন্নত হতে পারে।
ফিগার ৩. DDMS দিয়ে নেটওয়ার্ক ব্যবহার ট্র্যাক করা
আপনার ডাটা ট্রান্সফারের ফ্রিকোয়েন্সি (পূনরাবৃত্তি) এবং প্রতিটা সংযোগের সময় ট্রান্সফার হওয়া ডাটার পরিমান মনিটর করার মাধ্যমে, আপনি আপনার অ্যাপলিকেশনের এলাকা চিহ্নিত করতে পারেন যা আরও ব্যাটারি-কার্যকারিতা তৈরী করতে পারে। সাধারনভাবে আপনি সংক্ষিপ্ত স্পাইক খুজতে পারেন যা বিলম্ব হতে পারে, অথবা যা একটি পরবর্তী ট্রান্সফার বিরত হওয়ার কারন ঘটায়।
স্পাইক ট্রান্সফারের কারন আরও ভালোভাবে চিহ্নিত করতে, ট্রাফিক স্টেট এপিআই পদ্ধতি TrafficStats.setThreadStatsTag()ব্যবহার করে একটি থ্রেডের মধ্যে থেকে ঘঠিত ডাটা ট্রান্সফারে ট্যাগ করতে আপনাকে অনুমোদন করে, ম্যানুয়ালি tagSocket()এবং untagSocket() ব্যবহার করে একক সকেট ট্যাগ করা অনুসরন করার মাধ্যমে। উদাহরণস্বরূপ:
TrafficStats.setThreadStatsTag(0xF00D);
TrafficStats.tagSocket(outputSocket);
// Transfer data using socket
TrafficStats.untagSocket(outputSocket);
চলতি getThreadStatsTag()ভ্যালুর উপর ভিত্তি করে অ্যাপাশে HttpClient এবং URLConnection লাইব্রেরী স্বয়ংক্রিয়ভাবে সকেট ট্যাগ করে । এই লাইব্রেরীগুলো সকেটকে ট্যাগ এবং আনট্যাগ করে যখন জীবন্ত-রাখা পুল এর মাধ্যমে রিসাইকেল করা হয়।
TrafficStats.setThreadStatsTag(0xF00D);
try {
// Make network request using HttpClient.execute()
} finally {
TrafficStats.clearThreadStatsTag();
}
অ্যান্ড্রয়েড ৪.০ সকেট ট্যাগিংকে সাপোর্ট করে, কিন্তু রিয়েল-টাইম স্ট্যাটস শুধূমাত্র অ্যান্ড্রয়েড ৪.০.৩ বা এর চেয়ে উপরের সংস্করণ দ্বার রান করা ডিভাইসে প্রদর্শিত হবে।