کد خود را با بررسی لینت بهبود دهید

علاوه بر آزمایش‌های ساختمانی برای اطمینان از اینکه برنامه شما الزامات عملکردی خود را برآورده می‌کند، مهم است که کد را از طریق ابزار lint نیز اجرا کنید تا مطمئن شوید کد شما هیچ مشکل ساختاری ندارد. ابزار lint به یافتن کدهایی با ساختار ضعیف کمک می کند که می تواند بر قابلیت اطمینان و کارایی برنامه های Android شما تأثیر بگذارد و نگهداری کد شما را سخت تر کند. اکیداً توصیه می شود قبل از انتشار برنامه خود، خطاهایی را که پرز تشخیص می دهد اصلاح کنید.

به عنوان مثال، اگر فایل‌های منبع XML شما حاوی فضاهای نام استفاده نشده باشد، این فضا اشغال می‌کند و نیاز به پردازش غیر ضروری دارد. سایر مسائل ساختاری، مانند استفاده از عناصر منسوخ یا فراخوان‌های API که توسط نسخه‌های API هدف پشتیبانی نمی‌شوند، ممکن است منجر به عدم اجرای صحیح کد شوند. لینت می تواند به شما در رفع این مشکلات کمک کند.

برای بهبود عملکرد پرده‌بندی، می‌توانید حاشیه‌نویسی را نیز به کد خود اضافه کنید .

نمای کلی

Android Studio یک ابزار اسکن کد به نام lint ارائه می‌کند که می‌تواند به شما کمک کند بدون نیاز به اجرای برنامه یا نوشتن موارد تست، مشکلات مربوط به کیفیت ساختاری کد خود را شناسایی و اصلاح کنید. هر مشکلی که توسط این ابزار شناسایی می‌شود، با یک پیام توصیفی و یک سطح شدت گزارش می‌شود تا بتوانید بهبودهای حیاتی را که باید انجام شوند، اولویت‌بندی کنید. همچنین می توانید سطح شدت یک مشکل را کاهش دهید تا مسائلی را که به پروژه شما مرتبط نیستند نادیده بگیرید یا برای برجسته کردن مشکلات خاص، سطح شدت را افزایش دهید.

ابزار lint فایل‌های منبع پروژه اندروید شما را از نظر اشکالات احتمالی و بهبودهای بهینه‌سازی از نظر صحت، امنیت، عملکرد، قابلیت استفاده، دسترسی و بین‌المللی شدن بررسی می‌کند. هنگام استفاده از Android Studio، بازرسی های پیکربندی شده و IDE هنگام ساخت برنامه اجرا می شود. با این حال، همانطور که در این صفحه توضیح داده شده است، می توانید بازرسی ها را به صورت دستی اجرا کنید یا از خط فرمان، lint را اجرا کنید .

هنگامی که از Android Studio استفاده می کنید، ابزار لینت داخلی کد شما را بررسی می کند. شما می توانید هشدارها و خطاها را به دو صورت مشاهده کنید:

  • به عنوان متن پاپ آپ در پنجره ویرایشگر. هنگامی که lint مشکلی را پیدا می کند، کد مشکل را به رنگ زرد برجسته می کند. برای مسائل جدی تر، زیر کد را با رنگ قرمز خط می کشد.
  • وقتی روی Code > Inspect Code کلیک می‌کنید، در پنجره Inspection Results .

توجه: وقتی کد شما در Android Studio کامپایل می‌شود، بازرسی‌های کد IntelliJ اضافی برای ساده‌تر کردن بررسی کد اجرا می‌شود.

شکل 1 نشان می دهد که چگونه ابزار lint فایل های منبع برنامه را پردازش می کند.

گردش کار اسکن کد با ابزار lint.
شکل 1. گردش کار اسکن کد با ابزار lint.
فایل های منبع برنامه
فایل‌های منبع شامل فایل‌هایی هستند که پروژه اندروید شما را تشکیل می‌دهند، از جمله فایل‌های Kotlin، Java، و XML، نمادها و فایل‌های پیکربندی ProGuard.
فایل lint.xml
یک فایل پیکربندی که می‌توانید از آن برای تعیین هر گونه بررسی لنت که می‌خواهید حذف کنید و برای سفارشی کردن سطوح شدت مشکل استفاده کنید.
ابزار پرز
یک ابزار اسکن کد ایستا که می توانید در پروژه اندروید خود از خط فرمان یا در Android Studio اجرا کنید. ابزار lint مشکلات کد ساختاری را بررسی می کند که می تواند بر کیفیت و عملکرد برنامه اندروید شما تأثیر بگذارد.
نتایج بررسی پرز
می توانید نتایج را از lint در کنسول یا پنجره Inspection Results در Android Studio مشاهده کنید. اگر lint از خط فرمان اجرا کنید، نتایج در پوشه build/ نوشته می شود. برای جزئیات بیشتر، به بخش مربوط به اجرای بازرسی به صورت دستی مراجعه کنید.

lint را از خط فرمان اجرا کنید

اگر از Android Studio یا Gradle استفاده می کنید، با وارد کردن یکی از دستورات زیر از دایرکتوری ریشه پروژه خود، از بسته بندی Gradle برای فراخوانی وظیفه lint برای پروژه خود استفاده کنید:

  • در ویندوز:
    gradlew lint
    
  • در لینوکس یا macOS:
    ./gradlew lint
    

شما باید خروجی مشابه زیر را ببینید:

> Task :app:lintDebug
Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results-debug.html

هنگامی که ابزار lint بررسی های خود را کامل می کند، مسیرهایی را به نسخه های XML و HTML گزارش lint ارائه می دهد. سپس می توانید به گزارش HTML بروید و آن را در مرورگر خود باز کنید، همانطور که در شکل 2 نشان داده شده است.

نمونه گزارش HTML lint
شکل 2. نمونه گزارش لینت HTML.

اگر پروژه شما شامل انواع ساخت است، lint فقط نوع پیش فرض را بررسی می کند. اگر می‌خواهید lint را روی یک نوع متفاوت اجرا کنید، باید نام نوع را با حروف بزرگ بنویسید و پیشوند آن را با lint قرار دهید.

./gradlew lintRelease

برای کسب اطلاعات بیشتر در مورد اجرای وظایف Gradle از خط فرمان، ساختن برنامه خود را از خط فرمان بخوانید.

لینت را با استفاده از ابزار مستقل اجرا کنید

اگر از Android Studio یا Gradle استفاده نمی‌کنید، ابزارهای خط فرمان Android SDK را برای استفاده از ابزار مستقل لینت نصب کنید. ابزار lint را در android_sdk /cmdline-tools/ version /bin/lint پیدا کنید.

توجه: اگر بخواهید ابزار مستقل را روی یک پروژه Gradle اجرا کنید، خطا می دهد. همیشه باید از gradle lint (در ویندوز) یا ./gradlew lint (در macOS یا Linux) برای اجرای lint در پروژه Gradle استفاده کنید.

برای اجرای lint در برابر لیستی از فایل ها در دایرکتوری پروژه، از دستور زیر استفاده کنید:

lint [flags] <project directory>

به عنوان مثال، می توانید دستور زیر را برای اسکن فایل های زیر پوشه myproject و زیر شاخه های آن صادر کنید. شناسه مشکل MissingPrefix به lint می‌گوید که فقط ویژگی‌های XML را اسکن کند که پیشوند فضای نام Android را ندارند.

lint --check MissingPrefix myproject 

برای مشاهده لیست کامل پرچم ها و آرگومان های خط فرمان پشتیبانی شده توسط ابزار، از دستور زیر استفاده کنید:

lint --help

مثال زیر خروجی کنسول را هنگام اجرای دستور 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/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources]
res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder]
0 errors, 4 warnings

خروجی مثال چهار اخطار و هیچ خطایی را لیست می کند.

دو هشدار مربوط به فایل AndroidManifest.xml پروژه است:

  • ManifestOrder
  • UsesMinSdkAttributes
یک هشدار مربوط به فایل طرح بندی Preferences.xml است: UnusedResources .

یک هشدار مربوط به دایرکتوری res است: IconMissingDensityFolder .

پرز را برای سرکوب هشدارها پیکربندی کنید

به‌طور پیش‌فرض، هنگامی که اسکن پرز را اجرا می‌کنید، ابزار تمام مشکلاتی را که لینت پشتیبانی می‌کند بررسی می‌کند. همچنین می‌توانید مشکلات را برای بررسی لینت محدود کنید، و می‌توانید سطوح شدت را برای مشکلات تعیین کنید. برای مثال، می‌توانید بررسی پرزها را برای مسائل خاصی که به پروژه شما مرتبط نیستند، متوقف کنید، و می‌توانید پرزها را طوری پیکربندی کنید که مسائل غیر بحرانی را در سطح شدت پایین‌تر گزارش کند.

سطوح شدت عبارتند از:

  • enable
  • disable یا ignore
  • informational
  • warning
  • error
  • fatal

می توانید بررسی پرز را برای سطوح مختلف پیکربندی کنید:

  • جهانی (کل پروژه)
  • ماژول پروژه
  • ماژول تولید
  • ماژول تست
  • باز کردن فایل ها
  • سلسله مراتب طبقاتی
  • محدوده سیستم کنترل نسخه (VCS).

فایل lint را پیکربندی کنید

شما می توانید تنظیمات برگزیده بررسی پرز خود را در فایل lint.xml مشخص کنید. اگر این فایل را به صورت دستی ایجاد می کنید، آن را در پوشه اصلی پروژه اندروید خود قرار دهید.

فایل lint.xml از یک تگ والد <lint> تشکیل شده است که حاوی یک یا چند عنصر <issue> فرزند است. Lint یک مقدار مشخصه id منحصر به فرد برای هر <issue> تعریف می کند:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- list of issues to configure -->
</lint>

برای تغییر سطح شدت یک مشکل یا غیرفعال کردن بررسی پرز برای مشکل، ویژگی شدت را در تگ <issue> تنظیم کنید.

نکته: برای لیست کاملی از مشکلات پشتیبانی شده از lint و شناسه های مربوط به آنها، دستور lint --list اجرا کنید.

نمونه فایل lint.xml

مثال زیر محتویات یک فایل lint.xml را نشان می دهد:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the IconMissingDensityFolder check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

این مثال نشان می دهد که چگونه انواع مختلف مشکل گزارش شده است. بررسی IconMissingDensityFolder به طور کامل غیرفعال است و بررسی ObsoleteLayoutParam فقط در فایل‌های مشخص‌شده در اعلان‌های ضمیمه <ignore ... /> غیرفعال است.

بررسی پرز برای فایل‌های منبع Kotlin، Java و XML را پیکربندی کنید

می‌توانید بررسی پرز برای فایل‌های منبع Kotlin، Java و XML خود را در گفتگوی Preferences خاموش کنید:

  1. File > Settings (در ویندوز) یا Android Studio > Preferences (در macOS یا Linux) را انتخاب کنید.
  2. ویرایشگر > بازرسی ها را انتخاب کنید.
  3. برای غیرفعال کردن، فایل منبع مناسب را از حالت انتخاب خارج کنید.

می توانید با انتخاب نمایه مناسب، این موارد را برای IDE یا برای پروژه های جداگانه تنظیم کنید.

بررسی پرزها را در جاوا یا کاتلین پیکربندی کنید

برای غیرفعال کردن بررسی پرز به طور خاص برای یک کلاس یا متد در پروژه Android خود، حاشیه نویسی @SuppressLint را به آن کد اضافه کنید.

مثال زیر نشان می دهد که چگونه می توانید بررسی پرزها را برای مشکل NewApi در متد onCreate خاموش کنید. ابزار lint به بررسی مشکل NewApi در روش‌های دیگر این کلاس ادامه می‌دهد.

کاتلین

@SuppressLint("NewApi")
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main)

جاوا

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

همین کار را می توان در هر Composable انجام داد. قطعه کد زیر نشان می دهد که چگونه می توانید چک های NewApi را در هر Composable غیرفعال کنید.

کاتلین

  @SuppressLint("NewApi")
  @Composable
  fun MyComposable{
    ...
  }
  

مثال زیر نحوه غیرفعال کردن بررسی پرز برای مشکل ParserError در کلاس FeedProvider را نشان می دهد:

کاتلین

@SuppressLint("ParserError")
class FeedProvider : ContentProvider() {

جاوا

@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {

برای جلوگیری از بررسی همه مشکلات پرز در فایل، از کلمه کلیدی all استفاده کنید:

کاتلین

@SuppressLint("all")

جاوا

@SuppressLint("all")

شما می توانید از همان حاشیه نویسی برای سرکوب بررسی پرزها در هر تابع Composable استفاده کنید.

بررسی پرز در XML را پیکربندی کنید

از ویژگی tools:ignore برای غیرفعال کردن بررسی پرز برای بخش های خاصی از فایل های XML خود استفاده کنید. مقدار فضای نام زیر را در فایل lint.xml قرار دهید تا ابزار lint ویژگی را بشناسد:

namespace xmlns:tools="http://schemas.android.com/tools"

مثال زیر نشان می دهد که چگونه می توانید بررسی پرزها را برای مشکل UnusedResources در عنصر <LinearLayout> از یک فایل طرح بندی XML غیرفعال کنید. خصیصه ignore توسط عناصر فرزند عنصر والد به ارث می رسد که در آن ویژگی مشخص شده است. در این مثال، بررسی lint برای عنصر فرزند <TextView> نیز غیرفعال است:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="UnusedResources" >

    <TextView
        android:text="@string/auto_update_prompt" />
</LinearLayout>

برای غیرفعال کردن بیش از یک مسئله، موارد غیرفعال کردن را در یک رشته جدا شده با کاما فهرست کنید. به عنوان مثال:

tools:ignore="NewApi,StringFormatInvalid"

برای جلوگیری از بررسی تمام مشکلات پرز در عنصر XML، از کلمه کلیدی all استفاده کنید:

tools:ignore="all"

گزینه های پرز را با Gradle پیکربندی کنید

افزونه Android برای Gradle به شما امکان می‌دهد تا با استفاده از بلوک lint{} در فایل build.gradle در سطح ماژول، برخی از گزینه‌های lint را پیکربندی کنید، مانند اینکه کدام چک‌ها اجرا یا نادیده گرفته شوند.

قطعه کد زیر برخی از ویژگی هایی را که می توانید پیکربندی کنید نشان می دهد:

کاتلین

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
    }
}
...

شیار

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() غیرفعال کردن آن را در DSL اصلی لغو می کند.

یک خط پایه هشدار ایجاد کنید

می‌توانید از مجموعه هشدارهای فعلی پروژه خود یک عکس بگیرید، سپس از آن به‌عنوان پایه‌ای برای اجرای بازرسی‌های آینده استفاده کنید تا فقط مسائل جدید گزارش شوند. عکس فوری پایه به شما امکان می دهد بدون نیاز به بازگشت به عقب و رفع تمام مشکلات موجود ابتدا از lint برای شکست ساختن استفاده کنید.

برای ایجاد یک اسنپ شات پایه، فایل build.gradle پروژه خود را به صورت زیر تغییر دهید:

کاتلین

android {
    lint {
        baseline = file("lint-baseline.xml")
    }
}

شیار

android {
    lintOptions {
        baseline file("lint-baseline.xml")
    }
}

هنگامی که برای اولین بار این خط را اضافه می کنید، فایل lint-baseline.xml برای ایجاد خط پایه شما ایجاد می شود. از آن به بعد، ابزارها فقط فایل را می خوانند تا خط مبنا را تعیین کنند. اگر می خواهید یک خط پایه جدید ایجاد کنید، فایل را به صورت دستی حذف کنید و دوباره lint را اجرا کنید تا دوباره ایجاد شود.

سپس با انتخاب Code > Inspect Code یا از خط فرمان به صورت زیر، lint را از IDE اجرا کنید. خروجی محل فایل 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 پروژه خود به صورت زیر اضافه کنید، مشخص کنید:

کاتلین

android {
    lint {
        checkOnly += "NewApi" + "HandlerLeak"
        baseline = file("lint-baseline.xml")
    }
}

شیار

android {
    lintOptions {
        checkOnly 'NewApi', 'HandlerLeak'
        baseline file("lint-baseline.xml")
    }
}

اگر پس از ایجاد خط پایه، اخطار جدیدی را به پایگاه کد اضافه کنید، lint فقط اشکالات تازه معرفی شده را فهرست می کند.

هشدار پایه

هنگامی که یک خط پایه در حال اجرا است، یک هشدار اطلاعاتی دریافت می‌کنید که به شما می‌گوید یک یا چند مشکل فیلتر شده‌اند، زیرا در خط مبنا فهرست شده‌اند. این اخطار به شما کمک می‌کند به یاد داشته باشید که یک خط پایه را پیکربندی کرده‌اید و باید همه مشکلات را در مقطعی برطرف کنید.

این هشدار اطلاعاتی همچنین مواردی را که دیگر گزارش نمی‌شوند را پیگیری می‌کند. این اطلاعات به شما اطلاع می‌دهد که آیا واقعاً مشکلات را برطرف کرده‌اید، بنابراین می‌توانید به صورت اختیاری خط پایه را دوباره ایجاد کنید تا از بازگشت ناشناخته خطا جلوگیری کنید.

توجه: خطوط پایه زمانی فعال می‌شوند که بازرسی‌ها را در حالت دسته‌ای در IDE اجرا می‌کنید، اما برای بررسی‌های درون ویرایشگر که هنگام ویرایش فایل در پس‌زمینه اجرا می‌شوند، نادیده گرفته می‌شوند. این به این دلیل است که خطوط پایه برای مواردی در نظر گرفته شده است که یک پایگاه کد دارای تعداد زیادی اخطار موجود است، اما شما می‌خواهید هنگام لمس کد، مشکلات را به صورت محلی برطرف کنید.

بازرسی ها را به صورت دستی اجرا کنید

برای اجرای دستی lint پیکربندی شده و سایر بازرسی های IDE، Code > Inspect Code را انتخاب کنید. نتایج بازرسی در پنجره Inspection Results ظاهر می شود.

دامنه و نمایه بازرسی را تنظیم کنید

فایل هایی را که می خواهید تجزیه و تحلیل کنید ( حوزه بازرسی) و بازرسی هایی که می خواهید اجرا کنید ( نمایه بازرسی) را به صورت زیر انتخاب کنید:

  1. در نمای اندروید ، پروژه خود را باز کنید و پروژه، پوشه یا فایلی را که می خواهید آنالیز کنید انتخاب کنید.
  2. از نوار منو، Code > Inspect Code را انتخاب کنید.
  3. در گفتگوی Specify Inspection Scope ، تنظیمات را مرور کنید.

    محدوده بازرسی را مشخص کنید
    شکل 3. تنظیمات محدوده بازرسی را مرور کنید.

    گزینه هایی که در گفتگوی Specify Inspection Scope ظاهر می شوند بسته به اینکه پروژه، پوشه یا فایلی را انتخاب کرده اید متفاوت است:

    • هنگامی که یک پروژه، فایل یا دایرکتوری را انتخاب می کنید، کادر محاوره ای Specify Inspection Scope مسیر پروژه، فایل یا دایرکتوری را که انتخاب کرده اید نمایش می دهد.
    • هنگامی که بیش از یک پروژه، فایل یا دایرکتوری را انتخاب می کنید، کادر محاوره ای Specify Inspection Scope یک دکمه رادیویی انتخاب شده برای فایل های انتخاب شده را نمایش می دهد.

    برای تغییر موارد بازرسی، یکی از دکمه‌های رادیویی دیگر را انتخاب کنید. برای توضیح همه فیلدهای ممکن در گفتگوی Specify Inspection Scope به گفتگوی Specify Inspection Scope مراجعه کنید.

  4. در قسمت نمایه بازرسی ، نمایه ای را که می خواهید استفاده کنید انتخاب کنید.
  5. برای اجرای بازرسی روی OK کلیک کنید.

    شکل 4 لینت و سایر نتایج بازرسی IDE را از اجرای Inspect Code نشان می دهد:

    یک مشکل را انتخاب کنید تا حل آن را ببینید.
    شکل 4. نتایج بازرسی. برای مشاهده حل مشکل، مشکلی را انتخاب کنید.
  6. در قسمت Inspection Results ، با گسترش و انتخاب دسته‌ها، انواع یا مسائل خطا، نتایج بازرسی را مشاهده کنید.

    پنجره Inspection Report گزارش بازرسی را برای دسته خطا، نوع یا مشکل انتخاب شده در پنجره Inspection Results نمایش می دهد و نام و محل خطا را نمایش می دهد. در صورت لزوم، گزارش بازرسی اطلاعات دیگری مانند خلاصه مشکل را نمایش می‌دهد تا به شما در رفع مشکل کمک کند.

  7. در نمای درختی پنجره Inspection Results ، روی یک دسته، نوع یا موضوع کلیک راست کنید تا منوی زمینه نمایش داده شود.

    بسته به زمینه، می توانید:

    • پرش به منبع
    • موارد منتخب را حذف و شامل شود.
    • مشکلات را سرکوب کنید.
    • تنظیمات را ویرایش کنید.
    • هشدارهای بازرسی را مدیریت کنید
    • بازرسی را دوباره اجرا کنید

برای توضیحات دکمه‌های نوار ابزار، آیتم‌های منوی زمینه، و فیلدهای گزارش بازرسی، پنجره ابزار نتایج بازرسی را ببینید.

از یک محدوده سفارشی استفاده کنید

از یکی از محدوده های سفارشی ارائه شده در Android Studio به شرح زیر استفاده کنید:

  1. در گفتگوی Specify Inspection Scope ، محدوده سفارشی را انتخاب کنید.
  2. برای نمایش گزینه های خود، روی لیست محدوده سفارشی کلیک کنید:

    محدوده بازرسی را انتخاب کنید
    شکل 5. محدوده سفارشی مورد نظر خود را انتخاب کنید.
    • همه مکان ها: همه فایل ها.
    • فایل های پروژه: تمام فایل های موجود در پروژه فعلی.
    • فایل های منبع پروژه: فقط فایل های منبع پروژه فعلی.
    • فایل های تولید پروژه: فقط فایل های تولیدی در پروژه فعلی.
    • فایل های تست پروژه: فقط فایل های آزمایشی در پروژه فعلی.
    • خراش ها و کنسول ها: فقط فایل های خراش و کنسول هایی که در پروژه فعلی دارید باز می شوند.
    • Recently Viewed Files: فقط فایل هایی که اخیراً در پروژه فعلی مشاهده شده اند.
    • فایل فعلی: فقط فایل فعلی در پروژه فعلی شما. زمانی که فایل یا پوشه ای را انتخاب کرده اید ظاهر می شود.
    • Selected Directory: فقط پوشه فعلی در پروژه فعلی شما. وقتی پوشه ای را انتخاب کرده اید ظاهر می شود.
    • سلسله مراتب کلاس: هنگامی که این گزینه را انتخاب کرده و روی OK کلیک می کنید، یک گفتگو با تمام کلاس های پروژه فعلی ظاهر می شود. در گفتگو، از قسمت Search by Name برای فیلتر کردن و انتخاب کلاس‌های مورد بازرسی استفاده کنید. اگر لیست کلاس ها را فیلتر نکنید، بازرسی کد همه کلاس ها را بررسی می کند.

    اگر یک VCS برای پروژه پیکربندی شده‌اید، گزینه‌هایی برای محدود کردن جستجو فقط به فایل‌هایی که اصلاح شده‌اند نیز وجود دارد.

  3. روی OK کلیک کنید.

یک محدوده سفارشی ایجاد کنید

وقتی می‌خواهید مجموعه‌ای از فایل‌ها و دایرکتوری‌ها را که توسط هیچ یک از حوزه‌های سفارشی موجود در حال حاضر پوشش داده نمی‌شوند، بررسی کنید، می‌توانید یک محدوده سفارشی ایجاد کنید:

  1. در گفتگوی Specify Inspection Scope ، محدوده سفارشی را انتخاب کنید.
  2. روی سه نقطه بعد از لیست Custom Scope کلیک کنید.

    گفتگوی محدوده بازرسی را مشخص کنید
    شکل 6. گفتگوی محدوده بازرسی را مشخص کنید.

    گفتگوی Scopes ظاهر می شود.

    یک محدوده سفارشی ایجاد کنید
    شکل 7. یک محدوده سفارشی ایجاد کنید.
  3. را کلیک کنید در گوشه سمت چپ بالای دیالوگ را فشار دهید تا یک محدوده جدید تعریف کنید.
  4. در لیست Add Scope که ظاهر می شود، Local را انتخاب کنید.

    هر دو حوزه محلی و اشتراکی در داخل پروژه برای ویژگی Inspect Code استفاده می شوند. یک Shared Scope همچنین می‌تواند با سایر ویژگی‌های پروژه که دارای یک فیلد scope هستند استفاده شود. به عنوان مثال، وقتی روی ویرایش تنظیمات کلیک می کنید برای تغییر تنظیمات Find Usages ، گفتگوی حاصل دارای یک فیلد Scope است که در آن می توانید یک محدوده مشترک را انتخاب کنید.

    یک محدوده مشترک را از گفتگوی Find Usages انتخاب کنید
    شکل 8. یک محدوده مشترک را از گفتگوی Find Usages انتخاب کنید.
  5. دامنه را یک نام بگذارید و روی OK کلیک کنید.

    صفحه سمت راست گفتگوی Scopes با گزینه هایی پر می شود که به شما امکان می دهد محدوده سفارشی را تعریف کنید.

  6. از لیست، پروژه را انتخاب کنید.

    لیستی از پروژه های موجود ظاهر می شود.

    توجه: می توانید محدوده سفارشی برای پروژه ها یا بسته ها ایجاد کنید. مراحل یکسان است.

  7. پوشه های پروژه را گسترش دهید، آنچه را که می خواهید به محدوده سفارشی اضافه کنید انتخاب کنید و انتخاب کنید که آیا شامل یا حذف شود.

    محدوده سفارشی را تعریف کنید
    شکل 9. محدوده سفارشی را تعریف کنید.
    • Include : شامل این پوشه و فایل های آن می شود، اما هیچ یک از زیرپوشه های آن را شامل نمی شود.
    • Include Recursively : شامل این پوشه و فایل های آن و همچنین زیرپوشه ها و فایل های آن می شود.
    • Exclude : این پوشه و فایل های آن را حذف کنید، اما هیچ یک از زیرپوشه های آن را حذف نکنید.
    • Exclude Recursively : این پوشه و فایل‌های آن و همچنین زیرپوشه‌ها و فایل‌های آن را حذف کنید.

    شکل 10 نشان می دهد که پوشه اصلی گنجانده شده است و پوشه های java و res به صورت بازگشتی گنجانده شده اند. آبی نشان‌دهنده یک پوشه تا حدی است و سبز نشان‌دهنده پوشه‌ها و فایل‌های حاوی بازگشتی است.

    الگوی نمونه برای یک محدوده سفارشی
    شکل 10. الگوی نمونه برای یک محدوده سفارشی.
    • اگر پوشه java را انتخاب کنید و Exclude Recursively را کلیک کنید، هایلایت سبز روی پوشه جاوا و تمام پوشه ها و فایل های زیر آن حذف می شود.
    • اگر فایل MainActivity.kt را که با رنگ سبز مشخص شده انتخاب کنید و Exclude را کلیک کنید، MainActivity.kt دیگر سبز رنگ نمی شود، اما بقیه موارد زیر پوشه جاوا سبز باقی می ماند.
  8. روی OK کلیک کنید. محدوده سفارشی در پایین لیست ظاهر می شود.

نمایه های بازرسی را بررسی و ویرایش کنید

اندروید استودیو مجموعه‌ای از پرزها و دیگر پروفایل‌های بازرسی دارد که از طریق به‌روزرسانی‌های اندروید به‌روزرسانی می‌شوند. می توانید از این نمایه ها همانطور که هستند استفاده کنید یا نام، توضیحات، شدت و دامنه آنها را ویرایش کنید. همچنین می‌توانید کل گروه‌های پروفایل یا پروفایل‌های فردی را در یک گروه فعال و غیرفعال کنید.

برای دسترسی به تنظیمات بازرسی :

  1. فایل > تنظیمات را انتخاب کنید. (در ویندوز) یا Android Studio > Preferences (در macOS یا Linux).
  2. ویرایشگر > بازرسی ها را انتخاب کنید.
  3. صفحه بازرسی لیستی از بازرسی های پشتیبانی شده و توضیحات آنها را نشان می دهد.

    بازرسی های پشتیبانی شده و توضیحات آنها
    شکل 11. بازرسی های پشتیبانی شده و توضیحات آنها.
  4. لیست نمایه را انتخاب کنید تا بین بازرسی های پیش فرض (اندروید استودیو) و پروژه پیش فرض (پروژه فعال) جابه جا شوید.

    برای اطلاعات بیشتر، به صفحه پروفایل های IntelliJ Manage مراجعه کنید.

  5. در فهرست Inspections در سمت چپ، یک دسته پروفایل سطح بالا را انتخاب کنید یا یک گروه را گسترش دهید و یک نمایه خاص را انتخاب کنید.

    هنگامی که یک دسته نمایه را انتخاب می کنید، می توانید تمام بازرسی های آن دسته را به عنوان یک بازرسی واحد ویرایش کنید.

  6. Show Schema Actions را انتخاب کنید نمایش نماد اقدامات طرحواره فهرستی برای کپی کردن، تغییر نام، اضافه کردن توضیحات، صادرات و بازرسی واردات.
  7. وقتی کارتان تمام شد، روی OK کلیک کنید.