टेस्ट बनाने के अलावा, यह भी ज़रूरी है कि आप कोड को लिंट टूल की मदद से चलाएं. इससे यह पक्का करने में मदद मिलती है कि आपके कोड में कोई स्ट्रक्चरल समस्या नहीं है. इससे यह भी पक्का किया जा सकता है कि आपका ऐप्लिकेशन, फ़ंक्शन से जुड़ी ज़रूरी शर्तों को पूरा करता हो. लिंट टूल की मदद से, खराब तरीके से स्ट्रक्चर किया गया कोड ढूंढने में मदद मिलती है. इससे आपके Android ऐप्लिकेशन की विश्वसनीयता और परफ़ॉर्मेंस पर असर पड़ सकता है. साथ ही, आपके कोड को बनाए रखना मुश्किल हो सकता है. हमारा सुझाव है कि ऐप्लिकेशन पब्लिश करने से पहले, लिंट से मिली गड़बड़ियों को ठीक कर लें.
उदाहरण के लिए, अगर आपकी एक्सएमएल रिसॉर्स फ़ाइलों में ऐसे नेमस्पेस हैं जिनका इस्तेमाल नहीं किया गया है, तो इससे जगह भर जाती है और बेवजह प्रोसेसिंग करनी पड़ती है. स्ट्रक्चर से जुड़ी अन्य समस्याओं की वजह से भी कोड सही तरीके से नहीं चल पाता. जैसे, ऐसे एलिमेंट का इस्तेमाल करना जो अब काम नहीं करते या ऐसे एपीआई कॉल करना जो टारगेट एपीआई के वर्शन के साथ काम नहीं करते. Lint की मदद से, इन समस्याओं को ठीक किया जा सकता है.
लिंटिंग की परफ़ॉर्मेंस को बेहतर बनाने के लिए, अपने कोड में एनोटेशन भी जोड़े जा सकते हैं.
Android सीएलआई
Android का सीएलआई डाउनलोड करनाअपनी फ़ाइल का विश्लेषण करने के लिए, Android CLI का इस्तेमाल करना
उदाहरण के लिए, गड़बड़ियों, चेतावनियों, और लिंट की समस्याओं के लिए अपनी फ़ाइल का विश्लेषण करने के लिए,
android studio analyze-file कमांड का इस्तेमाल करें.android studio analyze-file <path>खास जानकारी
Android Studio में, कोड स्कैन करने वाला एक टूल उपलब्ध है. इसे लिंट कहा जाता है. यह टूल, ऐप्लिकेशन को एक्ज़ीक्यूट किए बिना या टेस्ट केस लिखे बिना, आपके कोड की स्ट्रक्चरल क्वालिटी से जुड़ी समस्याओं का पता लगाने और उन्हें ठीक करने में आपकी मदद कर सकता है. टूल से पता लगाई गई हर समस्या की जानकारी, मैसेज और गंभीरता के लेवल के साथ दी जाती है. इससे आपको उन ज़रूरी सुधारों को प्राथमिकता देने में मदद मिलती है जिन्हें करना ज़रूरी है. किसी समस्या के गंभीरता के लेवल को कम करके, उन समस्याओं को अनदेखा किया जा सकता है जो आपके प्रोजेक्ट के लिए ज़रूरी नहीं हैं. इसके अलावा, किसी समस्या के गंभीरता के लेवल को बढ़ाकर, खास समस्याओं को हाइलाइट किया जा सकता है.
लिंट टूल, आपकी Android प्रोजेक्ट की सोर्स फ़ाइलों में संभावित गड़बड़ियों की जांच करता है. साथ ही, यह सही तरीके से काम करने, सुरक्षा, परफ़ॉर्मेंस, इस्तेमाल में आसानी, सुलभता, और अंतरराष्ट्रीयकरण के लिए ऑप्टिमाइज़ेशन में सुधार करता है. Android Studio का इस्तेमाल करते समय, ऐप्लिकेशन बनाने पर कॉन्फ़िगर किए गए लिंट और IDE की जांचें अपने-आप शुरू हो जाती हैं. हालांकि, इस पेज पर बताए गए तरीके से, जांचों को मैन्युअल तरीके से शुरू किया जा सकता है या कमांड लाइन से लिंट को शुरू किया जा सकता है.
Android Studio का इस्तेमाल करते समय, इसमें मौजूद लिंट टूल आपके कोड की जांच करता है. चेतावनी और गड़बड़ियों को दो तरीकों से देखा जा सकता है:
- एडिटर विंडो में पॉप-अप टेक्स्ट के तौर पर. लिंट को कोई समस्या मिलने पर, वह समस्या वाले कोड को पीले रंग से हाइलाइट करता है. ज़्यादा गंभीर समस्याओं के लिए, यह कोड को लाल रंग से अंडरलाइन करता है.
- कोड > कोड की जांच करें पर क्लिक करने पर, आपको लिंट जांच के नतीजे विंडो में यह विकल्प दिखेगा.
ध्यान दें: Android Studio में कोड कंपाइल होने पर, IntelliJ के अतिरिक्त कोड की जांच की जाती है. इससे कोड की समीक्षा को आसान बनाया जा सकता है. Android Studio को अप-टू-डेट रखें, ताकि लिंट के नए नियम और जांच उपलब्ध हों.
पहली इमेज में दिखाया गया है कि लिंट टूल, ऐप्लिकेशन की सोर्स फ़ाइलों को कैसे प्रोसेस करता है.
- ऐप्लिकेशन के सोर्स फ़ाइलें
- सोर्स फ़ाइलों में वे फ़ाइलें शामिल होती हैं जिनसे आपका Android प्रोजेक्ट बनता है. इनमें Kotlin और XML फ़ाइलें, आइकॉन, और ProGuard कॉन्फ़िगरेशन फ़ाइलें शामिल हैं.
lint.xmlफ़ाइल- यह एक कॉन्फ़िगरेशन फ़ाइल है. इसका इस्तेमाल करके, उन सभी लिंट चेक के बारे में बताया जा सकता है जिन्हें आपको शामिल नहीं करना है. साथ ही, समस्या की गंभीरता के लेवल को अपनी पसंद के मुताबिक बनाया जा सकता है.
- लिंट टूल
- यह एक स्टैटिक कोड स्कैनिंग टूल है. इसे अपने Android प्रोजेक्ट पर, कमांड लाइन से या Android Studio में चलाया जा सकता है. लिंट टूल, स्ट्रक्चरल कोड से जुड़ी समस्याओं की जांच करता है. इनसे आपके Android ऐप्लिकेशन की क्वालिटी और परफ़ॉर्मेंस पर असर पड़ सकता है.
- लिंट चेकिंग के नतीजे
- Android Studio में, कंसोल या Inspection Results विंडो में जाकर, लिंट के नतीजे देखे जा सकते हैं. अगर कमांड लाइन से
lintचलाया जाता है, तो नतीजेbuild/फ़ोल्डर में लिखे जाते हैं. ज़्यादा जानकारी के लिए, मैन्युअल तरीके से जांच करना सेक्शन देखें.
कमांड लाइन से लिंट चलाना
अगर Android Studio या Gradle का इस्तेमाल किया जा रहा है, तो अपने प्रोजेक्ट के लिए lint टास्क को शुरू करने के लिए, Gradle रैपर का इस्तेमाल करें. इसके लिए, अपने प्रोजेक्ट की रूट डायरेक्ट्री से इनमें से कोई एक कमांड डालें:
ध्यान दें: Android Gradle प्लगिन को जितना हो सके उतना अप-टू-डेट रखें, ताकि Lint के नए नियमों का इस्तेमाल किया जा सके.
- Windows पर:
gradlew lint
- Linux या macOS पर:
./gradlew lint
आपको इससे मिलता-जुलता आउटपुट दिखेगा:
> Task :app:lintDebug Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results-debug.html
लिंट टूल की जांच पूरी होने के बाद, यह लिंट रिपोर्ट के एक्सएमएल और एचटीएमएल वर्शन के पाथ उपलब्ध कराता है. इसके बाद, एचटीएमएल रिपोर्ट पर जाएं और उसे अपने ब्राउज़र में खोलें. जैसा कि इमेज 2 में दिखाया गया है.
अगर आपके प्रोजेक्ट में बिल्ड वैरिएंट शामिल हैं, तो लिंट सिर्फ़ डिफ़ॉल्ट वैरिएंट की जांच करता है. अगर आपको किसी दूसरे वैरिएंट पर लिंट चलाना है, तो आपको वैरिएंट के नाम को कैपिटल लेटर में लिखना होगा. साथ ही, इसके पहले lint लगाना होगा.
./gradlew lintRelease
ध्यान दें: लिंट, आपके बिल्ड के हिस्से के तौर पर अपने-आप नहीं चलता. हमारा सुझाव है कि आप लगातार इंटिग्रेशन बिल्ड के हिस्से के तौर पर, साफ़ तौर पर लिंट चलाएं. इससे आपको अपने मौजूदा सोर्स कोड को बनाते समय, लिंट की नई जांचें दिखेंगी.
कमांड लाइन से Gradle टास्क चलाने के बारे में ज़्यादा जानने के लिए, कमांड लाइन से अपना ऐप्लिकेशन बनाएं लेख पढ़ें.
स्टैंडअलोन टूल का इस्तेमाल करके लिंट चलाना
अगर Android Studio या Gradle का इस्तेमाल नहीं किया जा रहा है, तो स्टैंडअलोन lint टूल का इस्तेमाल करने के लिए, Android SDK कमांड-लाइन टूल इंस्टॉल करें. android_sdk/cmdline-tools/version/bin/lint पर जाकर, लिंट टूल ढूंढें.
ध्यान दें: अगर Gradle प्रोजेक्ट पर स्टैंडअलोन टूल चलाने की कोशिश की जाती है, तो गड़बड़ी होती है. Gradle प्रोजेक्ट पर लिंट चलाने के लिए, आपको हमेशा gradle lint (Windows पर) या ./gradlew
lint (macOS या Linux पर) का इस्तेमाल करना चाहिए.
किसी प्रोजेक्ट डायरेक्ट्री में मौजूद फ़ाइलों की सूची के लिए, लिंट चलाने के लिए इस कमांड का इस्तेमाल करें:
lint [flags] <project directory>
उदाहरण के लिए, myproject डायरेक्ट्री और इसकी सबडायरेक्ट्री में मौजूद फ़ाइलों को स्कैन करने के लिए, यह कमांड जारी की जा सकती है. समस्या का आईडी MissingPrefix
लिंट को सिर्फ़ उन एक्सएमएल एट्रिब्यूट को स्कैन करने के लिए कहता है जिनमें Android नेमस्पेस प्रीफ़िक्स मौजूद नहीं है.
lint --check MissingPrefix myproject
टूल के साथ काम करने वाले फ़्लैग और कमांड-लाइन आर्ग्युमेंट की पूरी सूची देखने के लिए, यहां दिया गया निर्देश इस्तेमाल करें:
lint --help
यहां दिए गए उदाहरण में, Earthquake नाम के प्रोजेक्ट के लिए lint कमांड चलाने पर कंसोल का आउटपुट दिखाया गया है:
$ lint Earthquake Scanning Earthquake: ............................................................................................................................... Scanning Earthquake (Phase 2): ....... AndroidManifest.xml:23: Warning: <uses-sdk> tag appears after <application> tag [ManifestOrder] <uses-sdk android:minSdkVersion="7" /> ^ AndroidManifest.xml:23: Warning: <uses-sdk> tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes] <uses-sdk android:minSdkVersion="7" /> ^ res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder] 0 errors, 4 warnings
उदाहरण के तौर पर दिए गए आउटपुट में, तीन चेतावनियां और कोई गड़बड़ी नहीं दिखाई गई है.
दो चेतावनियां, प्रोजेक्ट की AndroidManifest.xml फ़ाइल से जुड़ी हैं:
ManifestOrderUsesMinSdkAttributes
एक चेतावनी res डायरेक्ट्री से जुड़ी है:
IconMissingDensityFolder.
चेतावनी छिपाने के लिए लिंट को कॉन्फ़िगर करना
डिफ़ॉल्ट रूप से, लिंट स्कैन चलाने पर टूल उन सभी समस्याओं की जांच करता है जिनके लिए लिंट काम करता है. लिंट की जांच के लिए, समस्याओं को सीमित किया जा सकता है. साथ ही, समस्याओं के लिए गंभीरता के लेवल असाइन किए जा सकते हैं. उदाहरण के लिए, कुछ ऐसी समस्याओं के लिए लिंट की जांच को बंद किया जा सकता है जो आपके प्रोजेक्ट के लिए काम की नहीं हैं. साथ ही, लिंट को कॉन्फ़िगर किया जा सकता है, ताकि वह कम गंभीर समस्याओं की रिपोर्ट कम गंभीरता वाले लेवल पर दे.
गंभीरता के लेवल ये हैं:
enabledisableयाignoreinformationalwarningerrorfatal
अलग-अलग लेवल के लिए, लिंट की जांच को कॉन्फ़िगर किया जा सकता है:
- पूरी दुनिया में (पूरे प्रोजेक्ट के लिए)
- प्रोजेक्ट मॉड्यूल
- प्रोडक्शन मॉड्यूल
- टेस्ट मॉड्यूल
- फ़ाइल खोलो
- क्लास हैरारकी
- वर्शन कंट्रोल सिस्टम (वीसीएस) के स्कोप
लिंट फ़ाइल को कॉन्फ़िगर करना
lint.xml फ़ाइल में जाकर, लिंट की जांच से जुड़ी प्राथमिकताएं सेट की जा सकती हैं. अगर आपको यह फ़ाइल मैन्युअल तरीके से बनानी है, तो इसे अपने Android प्रोजेक्ट की रूट डायरेक्ट्री में रखें.
lint.xml फ़ाइल में, <lint> पैरंट टैग होता है. इसमें एक या उससे ज़्यादा चाइल्ड <issue> एलिमेंट होते हैं. Lint, हर <issue> के लिए यूनीक id एट्रिब्यूट वैल्यू तय करता है:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --> </lint>
किसी समस्या के गंभीरता के लेवल को बदलने या समस्या के लिए लिंट की जांच बंद करने के लिए,
<issue> टैग में गंभीरता एट्रिब्यूट सेट करें.
अहम जानकारी: लिंट की सुविधा के साथ काम करने वाली समस्याओं और उनसे जुड़े आईडी की पूरी सूची देखने के लिए, lint --list कमांड चलाएं. --list विकल्प को स्टैंडअलोन लिंट टूल से चलाना होगा.
lint.xml फ़ाइल का सैंपल
यहां lint.xml फ़ाइल का कॉन्टेंट दिखाया गया है:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- Disable the ComposableNaming check in this project --> <issue id="ComposableNaming" severity="ignore" /> <!-- Ignore the ComposeUnrememberedState issue in the specified files --> <issue id="ComposeUnrememberedState"> <ignore path="src/main/java/com/example/myapp/MainActivity.kt" /> <ignore path="src/main/java/com/example/myapp/ui/components/SpecialButton.kt" /> </issue> <!-- Ignore the ComposeModifierMissing issue in the specified file --> <issue id="ComposeModifierMissing"> <ignore path="src/main/java/com/example/myapp/ui/screens/HomeScreen.kt" /> </issue> <!-- Change the severity of hardcoded strings to "error" --> <issue id="HardcodedText" severity="error" /> </lint>
इस उदाहरण में दिखाया गया है कि अलग-अलग तरह की समस्याओं को कैसे कॉन्फ़िगर किया जाता है. ComposableNaming चेक पूरी तरह से बंद हो जाता है. साथ ही, ComposeUnrememberedState चेक सिर्फ़ उन फ़ाइलों में बंद होता है जिनके बारे में <ignore ... /> एलान में बताया गया है.
Kotlin और एक्सएमएल सोर्स फ़ाइलों के लिए, लिंट की जांच को कॉन्फ़िगर करना
प्राथमिकताएं डायलॉग में जाकर, Kotlin और XML सोर्स फ़ाइलों के लिए लिंट की जांच करने की सुविधा बंद की जा सकती है:
- Windows पर, फ़ाइल > सेटिंग या macOS या Linux पर, Android Studio > प्राथमिकताएं चुनें.
- एडिटर > जांचें चुनें.
- इसे बंद करने के लिए, सही सोर्स फ़ाइल से चुने का निशान हटाएं.
इन सेटिंग को आईडीई या अलग-अलग प्रोजेक्ट के लिए सेट किया जा सकता है. इसके लिए, सही प्रोफ़ाइल चुनें.
Kotlin में लिंट चेकिंग को कॉन्फ़िगर करना
अपने Android प्रोजेक्ट में किसी क्लास या फ़ंक्शन के लिए, खास तौर पर लिंट की जांच बंद करने के लिए, उस कोड में @SuppressLint एनोटेशन जोड़ें.
यहां दिए गए उदाहरण में, किसी फ़ंक्शन में NewApi समस्या के लिए लिंट की जांच बंद करने का तरीका बताया गया है. लिंट टूल, इस क्लास के अन्य फ़ंक्शन में NewApi समस्या की जांच करता रहता है.
@SuppressLint("NewApi") fun logNotificationChannelInfo() { // Uses NotificationChannel (requires API 26+) ... }
इसे किसी भी कंपोज़ेबल पर लागू किया जा सकता है. यहां दिए गए कोड स्निपेट में बताया गया है कि किसी भी कंपोज़ेबल पर NewApi की जांच को कैसे बंद किया जा सकता है.
@SuppressLint("NewApi") @Composable fun MyComposable{ ... }
यहां दिए गए उदाहरण में, FeedProvider क्लास में मौजूद ParserError समस्या के लिए, लिंट की जांच बंद करने का तरीका बताया गया है:
@SuppressLint("ParserError") class FeedProvider : ContentProvider() {
फ़ाइल में लिंट से जुड़ी सभी समस्याओं की जांच को बंद करने के लिए, all कीवर्ड का इस्तेमाल करें:
@SuppressLint("all")
किसी भी कंपोज़ेबल फ़ंक्शन पर लिंट चेक को बंद करने के लिए, इसी एनोटेशन का इस्तेमाल किया जा सकता है.
एक्सएमएल में लिंट की जांच करने की सुविधा कॉन्फ़िगर करना
अपनी एक्सएमएल फ़ाइलों के कुछ सेक्शन के लिए, लिंट चेकिंग की सुविधा बंद करने के लिए tools:ignore एट्रिब्यूट का इस्तेमाल करें. lint.xml फ़ाइल में यहां दी गई नेमस्पेस वैल्यू डालें, ताकि लिंट टूल एट्रिब्यूट को पहचान सके:
namespace xmlns:tools="http://schemas.android.com/tools"यहां दिए गए उदाहरण में बताया गया है कि strings.xml फ़ाइल के <resources> एलिमेंट में मौजूद UnusedResources समस्या के लिए, लिंट की जांच करने की सुविधा को कैसे बंद किया जा सकता है. ignore एट्रिब्यूट, पैरंट एलिमेंट के उन चाइल्ड एलिमेंट से इनहेरिट किया जाता है जिनमें एट्रिब्यूट को एलान किया गया है. इस उदाहरण में, सभी शामिल <string> एलिमेंट के लिए लिंट चेक भी बंद है:
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="UnusedResources" > <string name="app_name">My App</string> <string name="unused_string">Unused String</string> </resources>
एक से ज़्यादा समस्याओं को बंद करने के लिए, कॉमा लगाकर अलग किए गए स्ट्रिंग में उन समस्याओं की सूची बनाएं जिन्हें बंद करना है. उदाहरण के लिए:
tools:ignore="NewApi,StringFormatInvalid"
एक्सएमएल एलिमेंट में, लिंट से जुड़ी सभी समस्याओं की जांच को बंद करने के लिए, all
कीवर्ड का इस्तेमाल करें:
tools:ignore="all"
Gradle की मदद से, lint के विकल्प कॉन्फ़िगर करना
Android Gradle प्लगिन की मदद से, कुछ लिंट विकल्प कॉन्फ़िगर किए जा सकते हैं. जैसे, कौनसी जांचें चलानी हैं या किन जांचों को अनदेखा करना है. इसके लिए, मॉड्यूल-लेवल की build.gradle फ़ाइल में
lint{} ब्लॉक का इस्तेमाल करें.
नीचे दिए गए कोड स्निपेट में, कॉन्फ़िगर की जा सकने वाली कुछ प्रॉपर्टी दिखाई गई हैं:
Kotlin
android { ... lint { // Turns off checks for the issue IDs you specify. disable += "TypographyFractions" + "TypographyQuotes" // Turns on checks for the issue IDs you specify. These checks are in // addition to the default lint checks. enable += "RtlHardcoded" + "RtlCompat" + "RtlEnabled" // To enable checks for only a subset of issue IDs and ignore all others, // list the issue IDs with the 'check' property instead. This property overrides // any issue IDs you enable or disable using the properties above. checkOnly += "NewApi" + "InlinedApi" // If set to true, turns off analysis progress reporting by lint. quiet = true // If set to true (default), stops the build if errors are found. abortOnError = false // If set to true, lint only reports errors. ignoreWarnings = true // If set to true, lint also checks all dependencies as part of its analysis. // Recommended for projects consisting of an app with library dependencies. checkDependencies = true } } ...
Groovy
android { ... lint { // Turns off checks for the issue IDs you specify. disable 'TypographyFractions','TypographyQuotes' // Turns on checks for the issue IDs you specify. These checks are in // addition to the default lint checks. enable 'RtlHardcoded','RtlCompat', 'RtlEnabled' // To enable checks for only a subset of issue IDs and ignore all others, // list the issue IDs with the 'check' property instead. This property overrides // any issue IDs you enable or disable using the properties above. checkOnly 'NewApi', 'InlinedApi' // If set to true, turns off analysis progress reporting by lint. quiet true // If set to true (default), stops the build if errors are found. abortOnError false // If set to true, lint only reports errors. ignoreWarnings true // If set to true, lint also checks all dependencies as part of its analysis. // Recommended for projects consisting of an app with library dependencies. checkDependencies true } } ...
लिंट के वे सभी तरीके जो किसी समस्या के लिए दिए गए गंभीरता के लेवल को बदल देते हैं, वे कॉन्फ़िगरेशन के क्रम का पालन करते हैं. उदाहरण के लिए, finalizeDsl() में किसी समस्या को गंभीर के तौर पर सेट करने से, मुख्य डीएसएल में उसे बंद करने की सेटिंग बदल जाती है.
चेतावनी की बेसलाइन बनाना
अपने प्रोजेक्ट में मौजूद चेतावनियों के मौजूदा सेट का स्नैपशॉट लिया जा सकता है. इसके बाद, इस स्नैपशॉट का इस्तेमाल आने वाले समय में होने वाली जांच के लिए बेसलाइन के तौर पर किया जा सकता है. इससे सिर्फ़ नई समस्याओं की जानकारी मिलेगी. बेसलाइन स्नैपशॉट की मदद से, बिल्ड को फ़ेल करने के लिए लिंट का इस्तेमाल किया जा सकता है. इसके लिए, आपको पहले सभी मौजूदा समस्याओं को ठीक करने की ज़रूरत नहीं होती.
बेसलाइन स्नैपशॉट बनाने के लिए, अपने प्रोजेक्ट की build.gradle फ़ाइल में यह बदलाव करें:
Kotlin
android { lint { baseline = file("lint-baseline.xml") } }
Groovy
android { lintOptions { baseline file("lint-baseline.xml") } }
इस लाइन को पहली बार जोड़ने पर, lint-baseline.xml फ़ाइल बनाई जाती है, ताकि आपके बेसलाइन को सेट किया जा सके. इसके बाद, टूल सिर्फ़ फ़ाइल को पढ़ते हैं, ताकि बेसलाइन तय की जा सके. अगर आपको नई बेसलाइन बनानी है, तो फ़ाइल को मैन्युअल तरीके से मिटाएं. इसके बाद, इसे फिर से बनाने के लिए, लिंट को फिर से चलाएं.
इसके बाद, IDE से लिंट चलाने के लिए, Code > Inspect Code को चुनें. इसके अलावा, कमांड लाइन से लिंट चलाने के लिए, यहां दिया गया तरीका अपनाएं. आउटपुट में, lint-baseline.xml फ़ाइल की जगह की जानकारी प्रिंट की जाती है. आपके सेटअप के लिए फ़ाइल की जगह, यहां दिखाई गई जगह से अलग हो सकती है:
$ ./gradlew lintDebug -Dlint.baselines.continue=true ... Wrote XML report to file:///app/lint-baseline.xml Created baseline file /app/lint-baseline.xml
lint चलाने पर, lint-baseline.xml फ़ाइल में मौजूद सभी मौजूदा समस्याएं रिकॉर्ड हो जाती हैं. मौजूदा समस्याओं के सेट को बेसलाइन कहा जाता है. अगर आपको lint-baseline.xml
फ़ाइल को दूसरों के साथ शेयर करना है, तो उसे वर्शन कंट्रोल में चेक इन करें.
बेसलाइन को पसंद के मुताबिक बनाना
अगर आपको बेसलाइन में सिर्फ़ कुछ तरह की समस्याएं जोड़नी हैं, तो अपने प्रोजेक्ट की build.gradle फ़ाइल में बदलाव करके, जोड़ने के लिए समस्याएं तय करें. इसके लिए, यह तरीका अपनाएं:
Kotlin
android { lint { checkOnly += "NewApi" + "HandlerLeak" baseline = file("lint-baseline.xml") } }
Groovy
android { lintOptions { checkOnly 'NewApi', 'HandlerLeak' baseline file("lint-baseline.xml") } }
अगर आपने बेसलाइन बनाने के बाद, कोडबेस में कोई नई चेतावनी जोड़ी है, तो लिंट सिर्फ़ हाल ही में जोड़े गए बग की सूची बनाता है.
बेसलाइन से जुड़ी चेतावनी
जब कोई बेसलाइन लागू होती है, तो आपको एक सूचना वाली चेतावनी मिलती है. इसमें बताया जाता है कि एक या उससे ज़्यादा समस्याओं को फ़िल्टर कर दिया गया है, क्योंकि वे बेसलाइन में शामिल हैं. इस चेतावनी से आपको यह याद रखने में मदद मिलती है कि आपने बेसलाइन कॉन्फ़िगर की है और आपको किसी समय सभी समस्याएं ठीक करनी होंगी.
सूचना देने वाली यह चेतावनी, उन समस्याओं को भी ट्रैक करती है जिनकी अब शिकायत नहीं की जाती. इस जानकारी से आपको पता चलता है कि आपने समस्याओं को ठीक कर लिया है या नहीं. इसलिए, आपके पास बेसलाइन को फिर से बनाने का विकल्प होता है, ताकि बिना किसी गड़बड़ी के, समस्या को वापस आने से रोका जा सके.
ध्यान दें: आईडीई में बैच मोड में जांच करने पर, बेसलाइन चालू हो जाती हैं. हालांकि, जब कोई फ़ाइल बदली जा रही होती है, तब बैकग्राउंड में चलने वाली इन-एडिटर जांचों के लिए, बेसलाइन को नज़रअंदाज़ कर दिया जाता है. ऐसा इसलिए है, क्योंकि बेसलाइन का इस्तेमाल तब किया जाता है, जब किसी कोडबेस में पहले से ही कई चेतावनियां मौजूद हों. हालांकि, आपको कोड में बदलाव करते समय, समस्याओं को स्थानीय तौर पर ठीक करना हो.
मैन्युअल तरीके से जांच करना
कॉन्फ़िगर किए गए लिंट और अन्य आईडीई की जांच को मैन्युअल तरीके से चलाने के लिए, कोड > कोड की जांच करें को चुनें. जांच के नतीजे, जांच के नतीजे विंडो में दिखते हैं.
जांच का दायरा और प्रोफ़ाइल सेट करना
आपको जिन फ़ाइलों का विश्लेषण करना है उन्हें चुनें (जांच का स्कोप). इसके बाद, आपको जिन जांचों को चलाना है उन्हें चुनें (जांच की प्रोफ़ाइल). इसके लिए, यह तरीका अपनाएं:
- Android व्यू में, अपना प्रोजेक्ट खोलें. इसके बाद, वह प्रोजेक्ट, फ़ोल्डर या फ़ाइल चुनें जिसका विश्लेषण करना है.
- मेन्यू बार में जाकर, कोड > कोड की जांच करें को चुनें.
जांच का दायरा तय करें डायलॉग बॉक्स में, सेटिंग की समीक्षा करें.
तीसरी इमेज. जांच के दायरे की सेटिंग देखें. जांच का दायरा तय करें डायलॉग बॉक्स में दिखने वाले विकल्प अलग-अलग होते हैं. ये इस बात पर निर्भर करते हैं कि आपने कोई प्रोजेक्ट, फ़ोल्डर या फ़ाइल चुनी है या नहीं:
- किसी प्रोजेक्ट, फ़ाइल या डायरेक्ट्री को चुनने पर, जांच का दायरा तय करें डायलॉग बॉक्स में, चुने गए प्रोजेक्ट, फ़ाइल या डायरेक्ट्री का पाथ दिखता है.
- एक से ज़्यादा प्रोजेक्ट, फ़ाइल या डायरेक्ट्री चुनने पर, जांच का दायरा तय करें डायलॉग में, चुनी गई फ़ाइलें के लिए चुना गया रेडियो बटन दिखता है.
आपको किस चीज़ की जांच करनी है, यह बदलने के लिए, किसी दूसरे रेडियो बटन को चुनें. जांच का दायरा तय करें डायलॉग बॉक्स में मौजूद सभी फ़ील्ड के बारे में जानने के लिए, जांच का दायरा तय करें डायलॉग बॉक्स देखें.
- जांच की प्रोफ़ाइल में जाकर, वह प्रोफ़ाइल चुनें जिसका इस्तेमाल करना है.
जांच करने के लिए, ठीक है पर क्लिक करें.
चौथी इमेज में, कोड की जांच करें सुविधा का इस्तेमाल करके, लिंट और अन्य आईडीई की जांच के नतीजे दिखाए गए हैं:
चौथी इमेज. जांच के नतीजे. समस्या का समाधान देखने के लिए, कोई समस्या चुनें. -
जांच के नतीजे पैनल में, गड़बड़ी की कैटगरी, टाइप या समस्याएं बड़ा करके और चुनकर, जांच के नतीजे देखें.
जांच रिपोर्ट पैनल में, गड़बड़ी की कैटगरी, टाइप या जांच के नतीजे पैनल में चुनी गई समस्या की जांच रिपोर्ट दिखती है. साथ ही, इसमें गड़बड़ी का नाम और उसकी जगह दिखती है. जहां लागू हो वहां जांच की रिपोर्ट में अन्य जानकारी भी दिखती है. जैसे, समस्या की खास जानकारी. इससे आपको समस्या ठीक करने में मदद मिलती है.
जांच के नतीजे वाले पैन के ट्री व्यू में, किसी कैटगरी, टाइप या समस्या पर राइट क्लिक करके संदर्भ मेन्यू दिखाएं.
संदर्भ के हिसाब से, ये काम किए जा सकते हैं:
- सोर्स पर जाएं.
- चुने गए आइटम को शामिल न करें और शामिल करें.
- समस्याओं को छिपाना.
- सेटिंग में बदलाव करें.
- निरीक्षण की सूचनाएं मैनेज करें.
- जांच को फिर से चलाएं.
टूलबार बटन, कॉन्टेक्स्ट मेन्यू आइटम, और जांच रिपोर्ट फ़ील्ड की जानकारी के लिए, जांच के नतीजों वाली टूल विंडो देखें.
कस्टम स्कोप का इस्तेमाल करना
Android Studio में दिए गए कस्टम स्कोप में से किसी एक का इस्तेमाल इस तरह करें:
- जांच का दायरा तय करें डायलॉग बॉक्स में, कस्टम स्कोप को चुनें.
अपने विकल्प दिखाने के लिए, कस्टम स्कोप सूची पर क्लिक करें:
पांचवीं इमेज. वह कस्टम स्कोप चुनें जिसे आपको इस्तेमाल करना है. - सभी जगहें: सभी फ़ाइलें.
- प्रोजेक्ट फ़ाइलें: मौजूदा प्रोजेक्ट में मौजूद सभी फ़ाइलें.
- प्रोजेक्ट की सोर्स फ़ाइलें: सिर्फ़ मौजूदा प्रोजेक्ट की सोर्स फ़ाइलें.
- प्रोजेक्ट की प्रोडक्शन फ़ाइलें: सिर्फ़ मौजूदा प्रोजेक्ट की प्रोडक्शन फ़ाइलें.
- प्रोजेक्ट की टेस्ट फ़ाइलें: सिर्फ़ मौजूदा प्रोजेक्ट की टेस्ट फ़ाइलें.
- स्क्रैच और कंसोल: सिर्फ़ वे स्क्रैच फ़ाइलें और कंसोल जो आपने मौजूदा प्रोजेक्ट में खोले हैं.
- हाल ही में देखी गई फ़ाइलें: सिर्फ़ मौजूदा प्रोजेक्ट में हाल ही में देखी गई फ़ाइलें.
- मौजूदा फ़ाइल: आपके मौजूदा प्रोजेक्ट की सिर्फ़ मौजूदा फ़ाइल. यह तब दिखता है, जब आपने कोई फ़ाइल या फ़ोल्डर चुना हो.
- चुनी गई डायरेक्ट्री: आपके मौजूदा प्रोजेक्ट में सिर्फ़ मौजूदा फ़ोल्डर. यह तब दिखता है, जब आपने कोई फ़ोल्डर चुना हो.
- क्लास का क्रम: इस विकल्प को चुनने और ठीक है पर क्लिक करने पर, एक डायलॉग बॉक्स दिखता है. इसमें मौजूदा प्रोजेक्ट की सभी क्लास होती हैं. डायलॉग बॉक्स में, नाम के हिसाब से खोजें फ़ील्ड का इस्तेमाल करके, उन क्लास को फ़िल्टर करें और चुनें जिनकी जांच करनी है. अगर आपने क्लास की सूची को फ़िल्टर नहीं किया है, तो कोड की जांच करने वाली सुविधा, सभी क्लास की जांच करेगी.
- ठीक है पर क्लिक करें.
अगर आपने प्रोजेक्ट के लिए वीसीएस कॉन्फ़िगर किया है, तो आपके पास सिर्फ़ उन फ़ाइलों में खोजने का विकल्प भी होता है जिनमें बदलाव किया गया है.
कस्टम स्कोप बनाना
जब आपको फ़ाइलों और डायरेक्ट्री के ऐसे कलेक्शन की जांच करनी हो जो उपलब्ध कस्टम स्कोप में शामिल नहीं है, तो कस्टम स्कोप बनाया जा सकता है:
- जांच का दायरा तय करें डायलॉग बॉक्स में, कस्टम स्कोप को चुनें.
कस्टम स्कोप सूची के बाद मौजूद तीन बिंदुओं पर क्लिक करें.
छठी इमेज. 'इंस्पेक्शन का दायरा तय करें' डायलॉग बॉक्स. आपको स्कोप डायलॉग दिखेगा.
सातवीं इमेज. कस्टम स्कोप बनाएं. - नया स्कोप तय करने के लिए, डायलॉग बॉक्स में सबसे ऊपर बाईं ओर मौजूद
बटन पर क्लिक करें. - इसके बाद, दिखने वाली स्कोप जोड़ें सूची में, स्थानीय चुनें.
कोड की जांच करें सुविधा के लिए, प्रोजेक्ट में लोकल और शेयर किए गए, दोनों स्कोप का इस्तेमाल किया जाता है. शेयर किया गया स्कोप, प्रोजेक्ट की उन अन्य सुविधाओं के साथ भी इस्तेमाल किया जा सकता है जिनमें स्कोप फ़ील्ड होता है. उदाहरण के लिए, इस्तेमाल की गई जगहें ढूंढें की सेटिंग बदलने के लिए, सेटिंग में बदलाव करें
पर क्लिक करने पर, आपको एक डायलॉग दिखेगा. इसमें स्कोप फ़ील्ड होगा. यहां जाकर, शेयर किया गया स्कोप चुना जा सकता है.
आठवीं इमेज. इस्तेमाल के उदाहरण ढूंढें डायलॉग बॉक्स से, शेयर किया गया कोई स्कोप चुनें. - स्कोप को कोई नाम दें और ठीक है पर क्लिक करें.
स्कोप डायलॉग के दाईं ओर मौजूद पैनल में, ऐसे विकल्प दिखते हैं जिनकी मदद से कस्टम स्कोप तय किया जा सकता है.
- सूची में से, प्रोजेक्ट चुनें.
उपलब्ध प्रोजेक्ट की सूची दिखती है.
ध्यान दें: प्रोजेक्ट या पैकेज के लिए कस्टम स्कोप बनाया जा सकता है. दोनों के लिए एक ही तरीका अपनाएं.
प्रोजेक्ट फ़ोल्डर को बड़ा करें. इसके बाद, वह आइटम चुनें जिसे आपको कस्टम स्कोप में जोड़ना है. साथ ही, यह चुनें कि आपको उसे शामिल करना है या नहीं.
नौवीं इमेज. कस्टम स्कोप तय करें. - शामिल करें: इस फ़ोल्डर और इसकी फ़ाइलों को शामिल करें. हालांकि, इसके किसी भी सब-फ़ोल्डर को शामिल न करें.
- सब-फ़ोल्डर भी शामिल करें: इस फ़ोल्डर और इसकी फ़ाइलों के साथ-साथ, इसके सबफ़ोल्डर और उनकी फ़ाइलों को भी शामिल करें.
- शामिल न करें: इस फ़ोल्डर और इसकी फ़ाइलों को शामिल न करें. हालांकि, इसके किसी भी सब-फ़ोल्डर को शामिल न करें.
- सब-फ़ोल्डर और फ़ाइलें शामिल न करें: इस विकल्प को चुनने पर, इस फ़ोल्डर और इसकी फ़ाइलों के साथ-साथ इसके सब-फ़ोल्डर और उनकी फ़ाइलों को भी शामिल नहीं किया जाता.
दसवीं इमेज में दिखाया गया है कि main फ़ोल्डर को शामिल किया गया है. साथ ही, java और res फ़ोल्डर को बार-बार शामिल किया गया है. नीले रंग से पता चलता है कि फ़ोल्डर को आंशिक रूप से शामिल किया गया है. वहीं, हरे रंग से पता चलता है कि फ़ोल्डर और फ़ाइलों को बार-बार शामिल किया गया है.
दसवीं इमेज. कस्टम स्कोप के लिए पैटर्न का उदाहरण. - अगर आपने java फ़ोल्डर चुना है और Exclude Recursively पर क्लिक किया है, तो java फ़ोल्डर और उसके अंदर मौजूद सभी फ़ोल्डर और फ़ाइलों से हरे रंग का हाइलाइट हट जाएगा.
- अगर आपने हरे रंग से हाइलाइट की गई MainActivity.kt फ़ाइल को चुना और छोड़ें पर क्लिक किया, तो MainActivity.kt अब हरे रंग से हाइलाइट नहीं होगी. हालांकि, java फ़ोल्डर में मौजूद बाकी सभी फ़ाइलें हरे रंग से हाइलाइट रहेंगी.
- ठीक है पर क्लिक करें. कस्टम स्कोप, सूची में सबसे नीचे दिखता है.
निरीक्षण प्रोफ़ाइलों की समीक्षा करना और उनमें बदलाव करना
Android Studio में, लिंट और अन्य जांच प्रोफ़ाइलों का एक कलेक्शन होता है. इन्हें Android अपडेट के ज़रिए अपडेट किया जाता है. इन प्रोफ़ाइलों का इस्तेमाल उसी तरह किया जा सकता है जैसे वे हैं. इसके अलावा, इनके नाम, ब्यौरे, गंभीरता के स्तर, और स्कोप में बदलाव किया जा सकता है. आपके पास किसी ग्रुप में मौजूद सभी प्रोफ़ाइलों या किसी एक प्रोफ़ाइल को चालू और बंद करने का विकल्प भी होता है.
जांच की सेटिंग ऐक्सेस करने के लिए:
- फ़ाइल > सेटिंग चुनें. (Windows पर) या Android Studio > Preferences (macOS या Linux पर).
- एडिटर > जांचें चुनें.
-
निरीक्षण पैनल में, उन निरीक्षणों की सूची दिखती है जिनके लिए यह सुविधा उपलब्ध है. साथ ही, उनकी जानकारी भी दिखती है.
ग्यारहवीं इमेज. इनके बारे में जानकारी: निरीक्षण की सुविधा और उनके ब्यौरे. प्रोफ़ाइल सूची को चुनें, ताकि डिफ़ॉल्ट (Android Studio) और प्रोजेक्ट के लिए डिफ़ॉल्ट (चालू प्रोजेक्ट) की जांच के बीच टॉगल किया जा सके.
ज़्यादा जानकारी के लिए, IntelliJ का प्रोफ़ाइलें मैनेज करना पेज देखें.
बाएं पैनल में मौजूद जांच सूची में, टॉप-लेवल की प्रोफ़ाइल कैटगरी चुनें या किसी ग्रुप को बड़ा करें और कोई प्रोफ़ाइल चुनें.
प्रोफ़ाइल कैटगरी चुनने पर, उस कैटगरी में मौजूद सभी जांचों में एक साथ बदलाव किया जा सकता है.
- स्कीमा ऐक्शन दिखाएं
सूची को चुनें. इससे आपको जांचों को कॉपी करने, उनका नाम बदलने, उनमें जानकारी जोड़ने, उन्हें एक्सपोर्ट करने, और इंपोर्ट करने की सुविधा मिलती है. - जब आपका काम पूरा हो जाए, तो ठीक है पर क्लिक करें.