Lint: بنیادی باتیں، Android منصوبوں کے لیے جامد تجزیہ کار

مصنف: IT Sectr اشاعت: 2026-02-13 مطالعے کا وقت: 10 منٹ

Android Lint — Android Studio اور Gradle میں شامل ایک جامد کوڈ تجزیہ کار جو Google کی سفارشات کے مطابق سورس فائلوں کی جانچ کرتا ہے۔ Lint تالیف سے پہلے ممکنہ غلطیاں ڈھونڈتا ہے: غیر استعمال شدہ وسائل، کارکردگی کے مسائل، میموری لیک اور API عدم مطابقت۔ یہ آلہ XML، Java اور Kotlin فائلوں کا تجزیہ کرتا ہے۔ مزید جانیں Android Lint Guide پر۔

اہم نکات

  • Android Lint — کوڈ کی جانچ کے لیے Android Studio اور Gradle میں شامل جامد تجزیہ کار
  • Lint جانچ — ایپ کی تالیف سے پہلے XML، Java اور Kotlin میں غلطیوں کا تجزیہ
  • lint.xml — Android منصوبے میں Lint قواعد کو حسب ضرورت بنانے کے لیے ترتیباتی فائل
  • Lint baseline — بتدریج اپنانے کے لیے موجودہ انتباہات کو منجمد کرنے کا طریقہ کار
  • CI انضمام — خودکار کوڈ کوالٹی کنٹرول کے لیے تعمیراتی سرور پر Lint چلانا

Lint کیا ہے — ایک جامد کوڈ تجزیہ کار؟

Android Lint ایک جامد تجزیہ کا آلہ ہے جو Android SDK اور Android Studio میں شامل ہے۔ Lint ایپلی کیشن کے سورس کوڈ کو بغیر چلائے اسکین کرتا ہے اور ان مسائل کو ڈھونڈتا ہے جنہیں مرتب نظر انداز کر دیتا ہے: غیر استعمال شدہ وسائل، غلط مقامی کاری، ممکنہ میموری لیک، minSdkVersion کے ساتھ API عدم مطابقت اور Google کی کارکردگی کی سفارشات کی خلاف ورزی۔

جامد تجزیہ ایک سافٹ ویئر تصدیق کا طریقہ ہے جس میں حقیقی کوڈ پر عمل درآمد کی ضرورت نہیں ہوتی۔ مرتب کے برعکس، جو صرف نحو اور اقسام کی جانچ کرتا ہے، ایک جامد تجزیہ کار منطقی غلطیاں، اینٹی پیٹرن اور بہترین طریقوں سے انحراف ڈھونڈتا ہے۔ Lint زمروں میں 200 سے زیادہ بلٹ ان جانچیں کرتا ہے: correctness, performance, security, accessibility, usability اور I18N۔

Lint متعدد سطحوں پر کام کرتا ہے: XML تجزیہ لے آؤٹ، وسائل (strings, colors, dimens)، مینی فیسٹ اور ترتیباتی فائلوں کی جانچ کرتا ہے۔ Java/Kotlin تجزیہ سورس کوڈ کو متروک API کالز، تھریڈنگ مسائل اور سیاق و سباق کے لیک کے لیے جانچتا ہے۔ Gradle تجزیہ ورژن مطابقت کے لیے تعمیراتی ترتیب کی جانچ کرتا ہے۔

Lint Android منصوبوں کے کوڈ کی جانچ کیسے کرتا ہے

Lint جانچ Android Studio (Analyze > Inspect Code) یا Gradle کمانڈ کے ذریعے شروع کی جاتی ہے: ./gradlew lint۔ نتیجہ build/reports/lint-results.html فولڈر میں HTML رپورٹ اور CI سسٹمز کے لیے XML رپورٹ ہے۔ Lint ہر فائل کا آزادانہ طور پر تجزیہ کرتا ہے، قواعد (Issues) کا ایک سیٹ لاگو کرتا ہے، ہر ایک کا منفرد ID، تفصیل، زمرہ اور سنگینی کی سطح ہوتی ہے۔

Lint سنگینی کی سطحیں: Error (غلطی — تعمیر کو روکتی ہے)، Warning (انتباہ — معیار کو متاثر کرتی ہے)، Informational (معلومات — حوالے کے لیے)، Ignore (بطور ڈیفالٹ نظر انداز کردہ)۔ سطحیں lint.xml میں ترتیب دی جاتی ہیں۔ Lint غلطیوں کو lintOptions.abortOnError true کے ذریعے Gradle تعمیر کو ناکام بنانے کے لیے ترتیب دیا جا سکتا ہے۔

groovy
android {
    lintOptions {
        abortOnError true
        checkAllWarnings true
        baselineFile file("lint-baseline.xml")
        htmlReport true
        xmlReport true
        lintConfig file("lint.xml")
    }
}

Lint baseline — ایک فائل جو موجودہ انتباہات کو قابل قبول قرار دیتی ہے۔ کمانڈ lint --baseline baseline.xml سے بنائی جاتی ہے۔ منصوبے میں baseline شامل کرنے کے بعد، Lint صرف نئے مسائل کی رپورٹ کرتا ہے۔ یہ سینکڑوں انتباہات والے پرانے منصوبے میں Lint متعارف کرانے کے لیے آسان ہے — ٹیم بتدریج غلطیوں کو درست کرتی ہے۔

ترتیباتی فائلوں میں Lint قواعد کی ترتیب

lint.xml — Lint قواعد کو حسب ضرورت بنانے کے لیے منصوبے کی جڑ میں ایک ترتیباتی فائل۔ یہ نظر انداز کردہ قواعد، سنگینی کی سطحیں اور مخصوص فائلوں یا ڈائریکٹریز کے لیے استثنیٰ متعین کرتی ہے۔ فائل دستی طور پر بنائی جاتی ہے اور منصوبے کے تمام ماڈیولز پر عالمی طور پر لاگو ہوتی ہے۔ lint.xml کے بغیر، تمام قواعد ڈیفالٹ ترتیبات کے ساتھ کام کرتی ہیں۔

xml
<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- غیر استعمال شدہ وسائل کی جانچ غیر فعال کریں -->
    <issue id="UnusedResources" severity="ignore" />

    <!-- سیاق و سباق کے لیک کی سنگینی بڑھائیں -->
    <issue id="StaticFieldLeak" severity="error" />

    <!-- تیار کردہ فائلوں میں نظر انداز کریں -->
    <issue id="MissingTranslation" severity="ignore">
        <ignore path="build/generated" />
    </issue>
</lint>

@SuppressLint — Java/Kotlin میں طریقہ یا کلاس کی سطح پر Lint کو غیر فعال کرنے کے لیے ایک تشریح۔ مثال: @SuppressLint("SetTextI18n") اس طریقہ کے لیے جہاں TextView میں متن متحرک طور پر سیٹ کیا جاتا ہے۔ @RequiresApi تشریح کسی طریقہ کے لیے کم از کم API سطح متعین کرتی ہے — Lint انتباہ جاری نہیں کرے گا اگر minSdk متعین کردہ قدر سے زیادہ ہو۔

CI/CD پائپ لائن میں Lint جانچ چلانا

Lint کا CI انضمام Android ڈیولپمنٹ میں ایک معیاری عمل ہے۔ کمانڈ ./gradlew lint تمام ماڈیولز پر تجزیہ چلاتی ہے اور رپورٹیں تیار کرتی ہے۔ CI/CD ترتیبات (Jenkins, GitLab CI, GitHub Actions) میں، Lint ہر pull request پر چلتا ہے۔ اگر غلطیاں پائی جاتی ہیں تو تعمیر ناکام ہو جاتی ہے اور ڈیویلپر کو Lint HTML رپورٹ کے ساتھ اطلاع ملتی ہے۔

yaml
lint-check:
  script:
    - ./gradlew lint
  artifacts:
    paths:
      - app/build/reports/lint-results.html
    when: always

Lint HTML رپورٹ میں زمرہ، قاعدہ ID، فائل، سطر اور تفصیل کے ساتھ تمام پائے گئے مسائل کا ایک جدول ہوتا ہے۔ رپورٹ CI سرور پر دستیاب ہوتی ہے یا تعمیراتی پیداوار کے طور پر شائع کی جاتی ہے۔ XML رپورٹ (lint-results.xml) کوڈ تجزیہ نظام (SonarQube, CodeClimate) کے ساتھ انضمام اور ٹریکرز (Jira, YouTrack) میں خودکار کام کی تخلیق کے لیے استعمال ہوتی ہے۔

Pull request میں Lint — GitHub Actions یا GitLab CI کو ترتیب دیں تاکہ MR/PR بننے پر Lint خودکار طور پر چلے۔ اگر Lint کو غلطیاں ملتی ہیں تو CI ناکامی کی کیفیت لوٹاتا ہے اور انضمام روک دیا جاتا ہے۔ یہ مسئلہ والے کوڈ کو مرکزی شاخ میں داخل ہونے سے روکتا ہے اور کوڈبیس کے معیار کو برقرار رکھتا ہے۔

Android میں Lint قواعد کے اہم زمرہ جات

Lint زمرہ جات Android ڈیولپمنٹ کے تمام پہلوؤں کا احاطہ کرتے ہیں۔ Google قواعد کو 12 زمروں میں تقسیم کرتا ہے، ہر ایک مخصوص قسم کے مسئلے کے لیے ذمہ دار ہے۔ سب سے اہم زمرے Correctness, Performance, Security اور Accessibility ہیں۔ ڈیویلپرز کو Lint کے ساتھ مؤثر طریقے سے کام کرنے کے لیے ہر زمرے کی اہم جانچوں کو جاننا ضروری ہے۔

مثال قاعدہ

زمرہتفصیل
Correctnessغلطیاں جو ایپلی کیشن کی فعالیت کو متاثر کرتی ہیںMissingPermission, WrongConstant
Performanceکارکردگی اور میموری کے مسائلUnusedResources, ViewHolder, DrawAllocation
Securityکمزوریاں اور حفاظتی خلاف ورزیاںExportedContentProvider, WorldReadableFiles
Accessibilityصارفین کے لیے رسائی کے مسائلContentDescription, TouchTargetSize
Usabilityاستعمال میں آسانی اور صارف کا تجربہNotSibling, BackButton, HardcodedText
I18Nبین الاقوامی اور مقامی کاریMissingTranslation, ExtraTranslation

کارکردگی کے قواعد عملی طور پر سب سے زیادہ مفید ہیں۔ UnusedResources XML میں اعلان کردہ لیکن کوڈ میں استعمال نہ ہونے والے وسائل کو ڈھونڈتا ہے۔ ViewHolder جانچتا ہے کہ RecyclAdapter میں ViewHolder پیٹرن استعمال ہوا ہے۔ DrawAllocation onDraw طریقہ میں آبجیکٹ بنانے کے بارے میں انتباہ کرتا ہے۔ ان مسائل کو درست کرنے سے APK کا سائز کم ہوتا ہے اور ایپلی کیشن تیز ہوتی ہے۔

حفاظتی قواعد شائع شدہ ایپلی کیشنز کے لیے لازمی ہیں۔ ExportedContentProvider جانچتا ہے کہ ContentProvider بغیر تحفظ کے برآمد تو نہیں کیا گیا۔ WorldReadableFiles تمام ایپلی کیشنز کے لیے قابل رسائل فائلیں بنانے کے بارے میں انتباہ کرتا ہے۔ AllowBackup مینی فیسٹ میں allowBackup پرچم کی جانچ کرتا ہے — ڈیٹا کی حفاظت کے لیے اسے غیر فعال کرنے کی سفارش کی جاتی ہے۔

اکثر پوچھے گئے سوالات

Lint اور مرتب میں کیا فرق ہے؟

مرتب نحو اور اقسام کی جانچ کرتا ہے، کوڈ کو عملدرآمد کے لیے بائٹ کوڈ میں ترجمہ کرتا ہے۔ Lint تالیف کے بغیر کوڈ کا تجزیہ کرتا ہے اور منطقی مسائل ڈھونڈتا ہے جنہیں مرتب نظر انداز کر دیتا ہے: غیر استعمال شدہ متغیرات، وسائل کا لیک، مقامی کاری کے مسائل، کارکردگی کی خلاف ورزیاں اور minSdkVersion کے ساتھ API عدم مطابقت۔ Lint مرتب کی تکمیل کرتا ہے لیکن اسے تبدیل نہیں کرتا۔

کوڈ میں کسی مخصوص Lint انتباہ کو کیسے غیر فعال کریں؟

XML فائلوں میں، قاعدہ ID کے ساتھ tools:ignore وصف استعمال کریں: tools:ignore="UnusedResources"۔ Java/Kotlin میں، کسی طریقہ یا کلاس پر @SuppressLint تشریح شامل کریں: @SuppressLint("SetTextI18n")۔ پوری ڈائریکٹری کے لیے، issue نوڈ اور severity="ignore" کے ساتھ lint.xml ترتیب دیں۔ پورے منصوبے کے لیے، ماڈیول کی جڑ میں lint.xml ترتیب دیں۔

Lint baseline کیا ہے اور اسے کیسے استعمال کریں؟

Lint baseline ایک XML فائل ہے جو موجودہ Lint انتباہات کو قابل قبول قرار دیتی ہے۔ یہ کمانڈ ./gradlew lint -Pbaseline یا build.gradle میں lintOptions.baselineFile کے ذریعے بنائی جاتی ہے۔ baseline شامل کرنے کے بعد، Lint صرف نئے مسائل کی رپورٹ کرتا ہے۔ یہ پرانے کوڈ والے منصوبوں میں Lint متعارف کرانے کے لیے آسان ہے — ٹیم بار بار غلطیوں کو درست کرتی ہے۔

کسٹم Lint قاعدہ کیسے بنائیں؟

com.android.tools.lint لائبریری سے lint-api اور lint-checks پر انحصار کے ساتھ ایک نیا Java/Kotlin ماڈیول بنائیں۔ مسائل ڈھونڈنے کے لیے Detector کلاس اور ان کی وضاحت کے لیے Issue کلاس لاگو کریں۔ ماڈیول کو JAR میں بنائیں، اسے اپنے Android منصوبے کے lintLibs فولڈر میں رکھیں۔ Android Studio خود بخود کسٹم قواعد کو اٹھا لے گا۔

Android منصوبوں میں Lint جانچ کیوں لازمی ہے؟

Lint وہ مسائل ڈھونڈتا ہے جو مرتب نہیں دیکھتا: سیاق و سباق کا لیک (Activity, Fragment)، minSdkVersion کے ساتھ API عدم مطابقت، Gradle ترتیبات کے مسائل، بہت بڑے PNG آئیکنز، مختلف زبانوں اور اسکرین ترتیبات کے لیے متبادل وسائل کی کمی۔ Google Play اشاعت سے پہلے Lint کی سفارش کرتا ہے۔ Lint کے بغیر، ایپ پرانے آلات پر کریش ہو سکتی ہے۔

خلاصہ

  • Android Lint — Android SDK اور Android Studio میں شامل ایک جامد کوڈ تجزیہ کار
  • Lint جانچ — ایپ کی تالیف سے پہلے XML, Java اور Kotlin میں ممکنہ غلطیوں کا تجزیہ
  • lint.xml — Android منصوبے میں Lint قواعد کو حسب ضرورت بنانے کے لیے ترتیباتی فائل
  • Lint baseline — بتدریج اپنانے کے لیے موجودہ انتباہات کو منجمد کرنے کا طریقہ کار
  • CI انضمام — تعمیراتی سرور پر Lint چلانا سنگین غلطیوں والی PRs کو روکتا ہے
  • Lint زمرے — Correctness, Performance, Security, Accessibility اور I18N
  • @SuppressLint — طریقہ یا کلاس کی سطح پر Lint کو غیر فعال کرنے کے لیے تشریح

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں