डीबगिंग और प्रोफाइलिंग
Android Studio के डीबगिंग और प्रोफाइलिंग टूल में दक्षता प्राप्त करें: breakpoints, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector और Layout Inspector।
डीबगिंग और प्रोफाइलिंग, CoddyKit पर Android Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Android Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Debugging का अवलोकन
डिबगिंग बग ढूँढ़ने और उन्हें ठीक करने की प्रक्रिया है। Android Studio शक्तिशाली उपकरण उपलब्ध कराता है:
- डीबगर — निष्पादन को रोकना, चर की जाँच करना और कोड को चरण-दर-चरण चलाना
- Logcat — डिवाइस से मिलने वाला रीयल-टाइम लॉग आउटपुट
- लेआउट इंस्पेक्टर — सक्रिय यूआई पदानुक्रम की जाँच करना
- Android Profiler — CPU, मेमोरी और नेटवर्क का विश्लेषण
- डेटाबेस इंस्पेक्टर — Room डेटाबेस को सक्रिय रूप से देखना और उनमें क्वेरी चलाना
Logcat — आपका पहला डीबगिंग उपकरण
Logcat में संदेश प्रिंट करने के लिए Log का उपयोग करें। अपने लॉग फ़िल्टर करने के लिए TAG का उपयोग करें:
import android.util.Log
class UserRepository {
companion object {
private const val TAG = "UserRepo"
}
fun fetchUsers() {
Log.d(TAG, "fetchUsers() called") // Debug
Log.i(TAG, "Fetching ${users.size} users") // Info
Log.w(TAG, "Cache is empty") // Warning
Log.e(TAG, "Network error: $exception") // Error
}
}Timber — बेहतर लॉगिंग
Timber, Log के ऊपर बना एक हल्का आवरण है, जो रिलीज़ बिल्ड से लॉग कॉल हटा देता है और कक्षा का नाम अपने-आप TAG के रूप में जोड़ देता है:
// app/build.gradle:
// implementation 'com.jakewharton.timber:timber:5.0.1'
// In Application.onCreate():
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
// Usage anywhere in the app (no TAG needed):
Timber.d("User loaded: %s", user.name)
Timber.e(exception, "Failed to fetch data")
Timber.w("Cache miss for key: %s", key)ब्रेकपॉइंट और डीबगर
Android Studio में ब्रेकपॉइंट का उपयोग करके डीबग करने के चरण:
- कोड की किसी पंक्ति के पास गटर (बायाँ हाशिया) पर क्लिक करें — एक लाल बिंदु दिखाई देगा
- Run के बजाय Debug (बग आइकन) से ऐप चलाएँ
- जब निष्पादन ब्रेकपॉइंट तक पहुँचता है, तो यह रुक जाता है
- Variables पैन में चरों की जाँच करें
- पंक्ति-दर-पंक्ति आगे बढ़ने के लिए Step Over (F8) और किसी फ़ंक्शन में प्रवेश करने के लिए Step Into (F7) का उपयोग करें
अभिव्यक्ति का मूल्यांकन करें
ब्रेकपॉइंट पर रुके होने के दौरान, वर्तमान दायरे में Kotlin कोड चलाने के लिए Evaluate Expression (Alt+F8) का उपयोग करें। ऐप को फिर से शुरू किए बिना अपनी धारणाओं की जाँच करें:
list.size,user.email.isNotBlank()की जाँच करें- किसी भी विधि को कॉल करें और लौटाया गया मान देखें
- जटिल ऑब्जेक्ट की उसी पंक्ति में जाँच करें
मेमोरी प्रोफाइलर
Memory Profiler से मेमोरी लीक ढूँढ़ें (View → Tool Windows → Profiler):
- समय के साथ हीप का आकार देखें — लगातार बढ़ना संभावित लीक का संकेत है
- GC को बलपूर्वक चलाएँ और देखें कि मेमोरी कम होती है या नहीं
- यह देखने के लिए हीप डंप लें कि कौन-से ऑब्जेक्ट सक्रिय हैं
- ऐसे Activity या Fragment इंस्टेंस ढूँढ़ें जिन्हें GC द्वारा हट जाना चाहिए था
LeakCanary — स्वचालित लीक पहचान
LeakCanary डीबग बिल्ड में मेमोरी लीक का अपने-आप पता लगाता है और उन्हें सूचनाओं के रूप में रिपोर्ट करता है:
// app/build.gradle:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
// That's it — no code changes needed!
// LeakCanary auto-installs via ContentProvider.
// When a leak is detected, it shows a notification with the leak trace.
// Common causes to watch for:
// - Static references to Context/Activity
// - Not releasing ViewBinding in onDestroyView()
// - Listeners registered to singletons but not unregisteredCPU प्रोफाइलर
CPU Profiler से प्रदर्शन की अड़चनें ढूँढ़ें:
- कोई कार्रवाई करते समय ट्रेस रिकॉर्ड करें
- यह देखने के लिए फ्लेम चार्ट देखें कि कौन-सी विधियाँ सबसे अधिक समय लेती हैं
- मुख्य थ्रेड पर लंबे समय तक चलने वाले कार्य ढूँढ़ें — इससे यूआई अस्थिर हो जाता है
- भारी गणना को
Dispatchers.IOयाDispatchers.Defaultपर स्थानांतरित करें
नेटवर्क इंस्पेक्टर
नेटवर्क इंस्पेक्टर आपके ऐप द्वारा की गई सभी HTTP कॉल को रीयल टाइम में दिखाता है:
- अनुरोध का URL, विधि, हेडर और बॉडी देखें
- प्रतिक्रिया का कोड, बॉडी और समय देखें
- धीमे या विफल अनुरोधों की पहचान करें
- यह OkHttp (जिसका उपयोग Retrofit करता है) के साथ पहले से काम करता है
इसे View → Tool Windows → App Inspection → Network Inspector से खोलें।
डेटाबेस इंस्पेक्टर
चल रहे डिवाइस पर अपने Room डेटाबेस की सक्रिय रूप से जाँच करें और उसमें क्वेरी चलाएँ:
- तालिकाएँ और उनकी सामग्री देखें
- कस्टम SQL क्वेरी चलाएँ
- ऐप का उपयोग करते समय डेटा में होने वाले बदलाव देखें
इसे App Inspection → Database Inspector से खोलें। यह API 26 और उसके बाद के संस्करणों पर Room के लिए काम करता है।
लेआउट इंस्पेक्टर
लेआउट इंस्पेक्टर आपके यूआई पदानुक्रम का सक्रिय 3D दृश्य दिखाता है:
- किसी भी व्यू को चुनकर उसकी विशेषताएँ (मार्जिन, पैडिंग, टेक्स्ट, रंग) देखें
- एक-दूसरे पर चढ़े हुए व्यू या गलत दृश्यता की पहचान करें
- अनुमान लगाए बिना लेआउट संबंधी समस्याओं को डीबग करें
इसे View → Tool Windows → Layout Inspector से खोलें। डिवाइस या एमुलेटर पर चल रहे ऐप से कनेक्ट करें।
StrictMode
StrictMode मुख्य थ्रेड पर गलती से होने वाले धीमे कार्यों (डिस्क रीड और नेटवर्क कॉल) का पता लगाता है और डीबग बिल्ड में ऐप के लॉग में उन्हें दर्ज करता है या ऐप को क्रैश कर देता है:
// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
StrictMode.setThreadPolicy(
StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog() // log violations instead of crashing
.build()
)
}त्वरित जाँच
कौन-सा उपकरण बिना अतिरिक्त कोड के Android के डीबग बिल्ड में मेमोरी लीक का अपने-आप पता लगाता है?
पुनरावलोकन: डिबगिंग और प्रोफाइलिंग
समस्याओं को कुशलतापूर्वक ढूँढ़ें और ठीक करें:
- Logcat + Timber — हल्की लॉगिंग, रिलीज़ में अपने-आप हटा दी जाती है
- ब्रेकपॉइंट + डीबगर — सक्रिय निष्पादन को रोककर उसकी जाँच करें
- Memory Profiler — हीप की बढ़ोतरी और लीक का पता लगाएँ
- LeakCanary — स्टैक ट्रेस के साथ स्वचालित लीक पहचान
- CPU Profiler — मुख्य थ्रेड पर धीमी विधियाँ ढूँढ़ें
- नेटवर्क इंस्पेक्टर — HTTP कॉल पर नज़र रखें
- डेटाबेस इंस्पेक्टर — Room में सक्रिय रूप से क्वेरी चलाएँ
- StrictMode — गलती से होने वाले मुख्य-थ्रेड IO का पता लगाएँ
बधाई हो — आपने Android Development का पूरा कोर्स पूरा कर लिया है!
एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 36
- पाठ
- 152
अक्सर पूछे जाने वाले प्रश्न
क्या “डीबगिंग और प्रोफाइलिंग” पाठ निःशुल्क है?
हाँ — Android Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “डीबगिंग और प्रोफाइलिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Android Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“डीबगिंग और प्रोफाइलिंग” में मैं क्या सीखूँगा?
Android Studio के डीबगिंग और प्रोफाइलिंग टूल में दक्षता प्राप्त करें: breakpoints, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector और Layout Inspector। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Android Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Android Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Android Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“डीबगिंग और प्रोफाइलिंग” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Android Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Android Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- JUnit के साथ यूनिट परीक्षण
- Mockito के साथ मॉकिंग
- Espresso के साथ UI परीक्षण
- डीबगिंग और प्रोफाइलिंग