שיפור הקוד באמצעות בדיקות לאיתור שגיאות בקוד (lint)

בנוסף לבדיקות build כדי לוודא שהאפליקציה עומדת בדרישות הפונקציונליות שלה, חשוב גם להריץ את הקוד בכלי ה-lint כדי לוודא שאין בו בעיות מבניות. כלי ה-lint עוזר למצוא קוד בעל מבנה לקוי שעלול להשפיע על המהימנות והיעילות של אפליקציות Android, ולהקשות על התחזוקה של הקוד. מומלץ מאוד לתקן את כל השגיאות ש-lint מזהה לפני פרסום האפליקציה.

לדוגמה, אם קובצי המשאבים בפורמט XML מכילים מרחבי שמות שלא בשימוש, הם תופסים מקום ודורשים עיבוד מיותר. בעיות מבניות אחרות, כמו שימוש ברכיבים שהוצאו משימוש או קריאות ל-API שלא נתמכות בגרסאות ה-API היעד, עלולות לגרום לכך שהקוד לא יפעל כמו שצריך. אפשר להיעזר ב-lint כדי לפתור את הבעיות האלה.

כדי לשפר את הביצועים של איתור השגיאות בקוד, תוכלו גם להוסיף הערות לקוד.

סקירה כללית

ב-Android Studio יש כלי לסריקת קוד שנקרא lint, שיכול לעזור לכם לזהות ולתקן בעיות באיכות המבנה של הקוד בלי שתצטרכו להריץ את האפליקציה או לכתוב תרחישים לדוגמה. כל בעיה שזוהתה על ידי הכלי מדווחת עם תיאור ורמת חומרה, כדי שתוכלו לתת עדיפות לשיפורים הקריטיים שצריך לבצע. אפשר גם להוריד את רמת החומרה של בעיה כדי להתעלם מבעיות שלא רלוונטיות לפרויקט, או להעלות את רמת החומרה כדי להדגיש בעיות ספציפיות.

כלי ה-lint בודק את קובצי המקור של פרויקט Android כדי לאתר באגים פוטנציאליים ושיפורים באופטימיזציה של הדיוק, האבטחה, הביצועים, נוחות השימוש, הנגישות וההתאמה לשימוש ברחבי העולם. כשמשתמשים ב-Android Studio, בדיקות של איתור שגיאות בקוד ו-IDE שהוגדרו פועלות בזמן הפיתוח של האפליקציה. עם זאת, אפשר להריץ בדיקות באופן ידני או להריץ איתור שגיאות בקוד משורת הפקודה, כפי שמתואר בדף הזה.

כלי האיתור של שגיאות בקוד (lint) המובנה בודק את הקוד בזמן השימוש ב-Android Studio. אפשר להציג אזהרות ושגיאות בשתי דרכים:

  • כטקסט קופץ בחלון העריכה. כשהכלי מוצא בעיה, הוא מדגיש את הקוד הבעייתי בצהוב. בבעיות חמורות יותר, הקוד מודגש באדום.
  • בחלון Inspection Results של איתור השגיאות, כשלוחצים על Code > Inspect Code.

הערה: כשהקוד שלכם עובר הידור ב-Android Studio, מתבצעות בדיקות קוד נוספות של IntelliJ כדי לייעל את בדיקת הקוד. חשוב לוודא שגרסת Android Studio מעודכנת ככל האפשר, כדי לוודא שכללי הבדיקה והבדיקות האחרונים זמינים.

באיור 1 מוצג איך כלי האיתור של שגיאות בקוד מעבד את קובצי המקור של האפליקציה.

תהליך העבודה של סריקת קוד באמצעות הכלי לזיהוי שגיאות בקוד.
איור 1. תהליך העבודה לסריקת קוד באמצעות הכלי לאיתור שגיאות בקוד.
קובצי מקור של אפליקציות
קובצי המקור מורכבים מקבצים שמרכיבים את פרויקט Android שלכם, כולל קובצי Kotlin , Java ו-XML, סמלים וקובצי תצורה של ProGuard.
הקובץ lint.xml
קובץ תצורה שאפשר להשתמש בו כדי לציין בדיקות איתור שגיאות בקוד שרוצים להחריג, ולהתאים אישית את רמות החומרה של הבעיות.
כלי האיתור של שגיאות בקוד
כלי לסריקת קוד סטטי שאפשר להריץ בפרויקט Android משורת הפקודה או מ-Android Studio. כלי ה-lint בודק בעיות מבניות בקוד שעלולות להשפיע על האיכות והביצועים של אפליקציית Android.
תוצאות בדיקת השגיאות
אפשר להציג את התוצאות של איתור השגיאות במסוף או בחלון Inspection Results ב-Android Studio. אם מריצים את lint משורת הפקודה, התוצאות נכתבות לתיקייה build/. פרטים נוספים זמינים בקטע הפעלת בדיקות באופן ידני.

הרצת איתור שגיאות בקוד משורת הפקודה

אם אתם משתמשים ב-Android Studio או ב-Gradle, תוכלו להשתמש ב-Gradle wrapper כדי להפעיל את המשימה lint בפרויקט. לשם כך, מזינים אחת מהפקודות הבאות מתוך ספריית השורש של הפרויקט:

הערה: כדי להשתמש בכללי האיתור והסרה של שגיאות הקוד העדכניים ביותר, חשוב לוודא שהפלאגין של Android Gradle מעודכן.

  • ב-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

כשכלי האיתור של שגיאות הקוד מסיים את הבדיקות, הוא מספק נתיבים לגרסאות ה-XML וה-HTML של דוח האיתור. לאחר מכן תוכלו לנווט לדוח ה-HTML ולפתוח אותו בדפדפן, כפי שמוצג באיור 2.

דוח לדוגמה של איתור שגיאות בקוד HTML
איור 2. דוח לדוגמה של איתור שגיאות בקוד HTML.

אם הפרויקט כולל וריאנטים של גרסאות build, הבדיקה של איתור השגיאות תתבצע רק בוריאנטים שמוגדרים כברירת מחדל. כדי להריץ איתור שגיאות בקוד על וריאנט אחר, צריך להשתמש באותיות רישיות בשם הווריאנט ולהוסיף לו את הקידומת lint.

./gradlew lintRelease

הערה: בדיקת Lint לא פועלת באופן אוטומטי כחלק מה-build. מומלץ מאוד להריץ את ה-lint באופן מפורש כחלק מbuild של שילוב רצוף, כדי לראות את בדיקות ה-lint העדכניות ביותר בזמן ה-build של קוד המקור הקיים.

מידע נוסף על הפעלת משימות Gradle משורת הפקודה זמין במאמר פיתוח אפליקציות משורת הפקודה.

הפעלת איתור שגיאות באמצעות הכלי העצמאי

אם אתם לא משתמשים ב-Android Studio או ב-Gradle, תוכלו להתקין את כלים של Android SDK לשורת הפקודה כדי להשתמש בכלי ה-lint העצמאי. צריך לאתר את הכלי לאיתור שגיאות בקוד בכתובת android_sdk/cmdline-tools/version/bin/lint.

הערה: אם מנסים להריץ את הכלי העצמאי בפרויקט Gradle, מופיעה הודעת שגיאה. תמיד צריך להשתמש ב-gradle lint (ב-Windows) או ב-./gradlew lint (ב-macOS או ב-Linux) כדי להריץ איתור שגיאות בקוד בפרויקט Gradle.

כדי להריץ איתור שגיאות בקוד (lint) ברשימת קבצים בספריית פרויקט, משתמשים בפקודה הבאה:

lint [flags] <project directory>

לדוגמה, אפשר להשתמש בפקודה הבאה כדי לסרוק את הקבצים בספרייה myproject ובספריות המשנה שלה. מזהה הבעיה MissingPrefix מציין ל-lint לסרוק רק מאפייני XML שבהם חסרה התחילית של מרחב השמות של Android.

lint --check MissingPrefix myproject 

כדי לראות את הרשימה המלאה של הדגלים והארגומנטים בשורת הפקודה שנתמכים על ידי הכלי, אפשר להשתמש בפקודה הבאה:

lint --help

בדוגמה הבאה מוצג הפלט של מסוף ה-CLI כשמריצים את פקודת האיתור של שגיאות בקוד (lint) בפרויקט שנקרא Earthquake:

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

הגדרת איתור שגיאות בקוד כדי לדכא אזהרות

כברירת מחדל, כשמריצים סריקה לאיתור שגיאות בקוד, הכלי בודק את כל הבעיות שיש תמיכה בהן באיתור שגיאות בקוד. אפשר גם להגביל את הבעיות ש-lint בודק, ולהקצות רמות חומרה לבעיות. לדוגמה, אפשר לדכא את בדיקת האיתור של שגיאות בקוד לגבי בעיות ספציפיות שלא רלוונטיות לפרויקט, ואפשר להגדיר את האיתור של שגיאות בקוד כך שידווח על בעיות לא קריטיות ברמת חומרה נמוכה יותר.

רמות החומרה הן:

  • enable
  • disable או ignore
  • informational
  • warning
  • error
  • fatal

אפשר להגדיר בדיקת איתור שגיאות ברמות שונות:

  • ברמת הפרויקט כולו
  • מודול הפרויקט
  • מודול ייצור
  • מודול בדיקה
  • פתיחת קבצים
  • היררכיית הכיתות
  • היקפי הרשאות של מערכת לניהול גרסאות (VCS)

הגדרת קובץ ה-lint

אפשר לציין את ההעדפות לבדיקת שגיאות בקוד בקובץ lint.xml. אם יוצרים את הקובץ הזה באופן ידני, צריך למקם אותו בספריית השורש של פרויקט Android.

קובץ 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

אפשר להשבית את בדיקת ה-lint בקובצי המקור של Kotlin,‏ Java ו-XML בתיבת הדו-שיח Preferences:

  1. בוחרים באפשרות קובץ > הגדרות (ב-Windows) או Android Studio > העדפות (ב-macOS או ב-Linux).
  2. בוחרים באפשרות Editor (עריכה) > Inspections (בדיקות).
  3. כדי להשבית, מבטלים את הבחירה בקובץ המקור המתאים.

אפשר להגדיר את ההגדרות האלה ל-IDE או לפרויקטים ספציפיים על ידי בחירת הפרופיל המתאים.

הגדרת בדיקת שגיאות בקוד ב-Java או ב-Kotlin

כדי להשבית את בדיקת ה-lint במיוחד לכיתה או לשיטה בפרויקט Android, מוסיפים את ההערה @SuppressLint לקוד הזה.

בדוגמה הבאה מוסבר איך להשבית את בדיקת האיתור של שגיאות בקוד (lint) לגבי הבעיה NewApi בשיטה onCreate. כלי האיתור של שגיאות בקוד ממשיך לבדוק את הבעיה NewApi בשיטות אחרות של הכיתה הזו.

Kotlin

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

Java

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

אפשר לעשות את אותו הדבר בכל רכיב Composable. בקטע הקוד הבא מוסבר איך להשבית את הבדיקות של NewApi בכל רכיב Composable.

Kotlin

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

הדוגמה הבאה מראה איך להשבית את בדיקת האיתור של שגיאות בקוד (lint) לגבי הבעיה ParserError בכיתה FeedProvider:

Kotlin

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

Java

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

כדי לבטל את הבדיקה של כל בעיות האיתור בקוד בקובץ, משתמשים במילות המפתח all:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

אפשר להשתמש באותה הערה כדי למנוע בדיקות לאיתור שגיאות בקוד בכל פונקציה קומפוזבילית.

הגדרת בדיקת שגיאות בקוד ב-XML

המאפיין tools:ignore מאפשר להשבית את הבדיקה של שגיאות בקוד עבור קטעים ספציפיים בקובצי ה-XML. כדי שכלי האיתור של שגיאות בקוד יזהה את המאפיין, צריך להוסיף את ערך מרחב השמות הבא לקובץ lint.xml:

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

הדוגמה הבאה מראה איך משביתים את בדיקת ה-lint של הבעיה UnusedResources באובייקט <LinearLayout> בקובץ פריסה של XML. המאפיין ignore עובר בירושה לרכיבי הצאצאים של רכיב ההורה שבו המאפיין מוצהר. בדוגמה הזו, בדיקת האיתור של שגיאות בקוד מושבתת גם לאלמנט הצאצא <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"

כדי לבטל את הבדיקה של כל בעיות ה-lint ברכיב ה-XML, משתמשים במילות המפתח all:

tools:ignore="all"

הגדרת אפשרויות איתור שגיאות בקוד באמצעות Gradle

פלאגין Android Gradle מאפשר להגדיר אפשרויות מסוימות של איתור שגיאות בקוד, כמו בדיקות שרוצים להריץ או להתעלם מהן, באמצעות הבלוק lint{} בקובץ build.gradle ברמת המודול.

בקטע הקוד הבא מוצגים כמה מהתכונות שאפשר להגדיר:

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() מבטלת את ההשבתה שלה ב-DSL הראשי.

יצירת בסיס להתרעות

אתם יכולים ליצור קובץ snapshot של קבוצת האזהרות הנוכחית בפרויקט, ואז להשתמש ב-snapshot כבסיס לפעולות בדיקה עתידיות, כדי שידווחו רק על בעיות חדשות. קובץ snapshot של נקודת הבקרה מאפשר לכם להתחיל להשתמש ב-lint כדי לגרום ל-build להיכשל, בלי שתצטרכו לחזור אחורה ולטפל קודם בכל הבעיות הקיימות.

כדי ליצור קובץ snapshot של בסיס, משנים את הקובץ build.gradle של הפרויקט באופן הבא:

Kotlin

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

Groovy

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

כשמוסיפים את השורה הזו בפעם הראשונה, נוצר הקובץ lint-baseline.xml כדי להגדיר את נקודת הבקרה. לאחר מכן, הכלים קוראים את הקובץ רק כדי לקבוע את הבסיס. כדי ליצור קו בסיס חדש, צריך למחוק את הקובץ באופן ידני ולהריץ שוב את הבדיקה כדי ליצור אותו מחדש.

לאחר מכן, מריצים את ה-lint מה-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")
    }
}

מגניב

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

אם תוסיפו אזהרות חדשות לקוד אחרי שתיצרו את הבסיס, ה-lint יציג רק את הבאגים החדשים.

אזהרה לגבי ערך בסיס

כשערך הבסיס מתחיל לפעול, מקבלים אזהרה על כך שבעיה אחת או יותר סוננו כי הן רשומות בקבוצת הבסיס. האזהרה הזו עוזרת לזכור שהגדרתם ערך בסיס ושצריך לפתור את כל הבעיות בשלב מסוים.

האזהרה הזו משמשת גם למעקב אחרי בעיות שלא מדווחות יותר. המידע הזה מאפשר לכם לדעת אם הבעיות בפועל טופלו, כך שאפשר ליצור מחדש את הבסיס כדי למנוע חזרה של שגיאה ללא זיהוי.

הערה: ערכי הבסיס מופעלים כשמריצים בדיקות במצב אצווה בסביבת הפיתוח המשולבת (IDE), אבל המערכת מתעלמת מהם בבדיקות בכלי העריכה שפועלות ברקע כשעורכים קובץ. הסיבה לכך היא שערכי הבסיס מיועדים למקרים שבהם ב-codebase יש מספר גדול של אזהרות, אבל כדאי לתקן בעיות באופן מקומי כשנוגעים בקוד.

הרצת בדיקות באופן ידני

כדי להריץ באופן ידני בדיקות איתור שגיאות בקוד שהוגדרו ובדיקות אחרות של סביבת הפיתוח המשולבת, בוחרים באפשרות Code > Inspect Code. תוצאות הבדיקה מופיעות בחלון Inspection Results.

הגדרת היקף הבדיקה והפרופיל

בוחרים את הקבצים שרוצים לנתח (היקף הבדיקה) ואת הבדיקות שרוצים להריץ (פרופיל הבדיקה) באופן הבא:

  1. בתצוגה Android, פותחים את הפרויקט ובוחרים את הפרויקט, התיקייה או הקובץ שרוצים לנתח.
  2. בסרגל התפריטים, לוחצים על קוד > בדיקת קוד.
  3. בתיבת הדו-שיח Specify Inspection Scope, בודקים את ההגדרות.

    בדיקת ההגדרות של היקף הבדיקה
    איור 3. בודקים את ההגדרות של היקף הבדיקה.

    האפשרויות שמופיעות בתיבת הדו-שיח Spec Inspection Scope משתנות בהתאם לפרויקט, לתיקייה או לקובץ:

    • כשבוחרים פרויקט, קובץ או ספרייה, בתיבת הדו-שיח Specify Inspection Scope מוצגת הנתיב לפרויקט, לקובץ או לספרייה שבחרתם.
    • אם בוחרים יותר מפרויקט, קובץ או ספרייה אחת, בתיבת הדו-שיח Specify Inspection Scope יופיע לחצן בחירה Selected files.

    כדי לשנות את הבדיקה, בוחרים באחד מלחצני הבחירה האחרים. בתיאור של תיבת הדו-שיח Specify Inspection Scope מפורט תיאור של כל השדות האפשריים בתיבת הדו-שיח Specify Inspection Scope.

  4. בקטע Inspection profile (פרופיל הבדיקה), בוחרים את הפרופיל שבו רוצים להשתמש.
  5. לוחצים על OK כדי להריץ את הבדיקה.

    באיור 4 מוצגות תוצאות של איתור שגיאות בקוד (lint) ובדיקת IDE מהרצת בדיקת הקוד:

    בוחרים בעיה כדי לראות את הפתרון שלה.
    איור 4. התוצאות מהבדיקה. צריך לבחור בעיה כדי לראות את הפתרון שלה.
  6. בחלונית Inspection Results אפשר לראות את תוצאות הבדיקה על ידי הרחבה ובחירה של קטגוריות השגיאות, הסוגים או הבעיות.

    בחלונית Inspection Report מוצג דוח הבדיקה של קטגוריית השגיאה, הסוג או הבעיה שנבחרו בחלונית Inspection Results, ובשם ובמיקום של השגיאה. במקרים הרלוונטיים, בדוח הבדיקה מוצג מידע נוסף, כמו סיכום של הבעיה, שיעזור לכם לפתור אותה.

  7. בתצוגת העץ של החלונית תוצאות הבדיקה, לוחצים לחיצה ימנית על קטגוריה, סוג או בעיה כדי להציג את תפריט ההקשר.

    בהתאם להקשר, אפשר:

    • מעבר למקור.
    • החרגה וכלל של פריטים שנבחרו.
    • אפשר לפתור בעיות.
    • עורכים את ההגדרות.
    • ניהול התראות על בדיקות.
    • מפעילים מחדש את הבדיקה.

לתיאורים של הלחצנים בסרגל הכלים, הפריטים בתפריט ההקשר ושדות דוח הבדיקה, ראו חלון הכלי של תוצאות הבדיקה.

שימוש בהיקף מותאם אישית

צריך להשתמש באחד מההיקפים המותאמים אישית שסופקו ב-Android Studio באופן הבא:

  1. בתיבת הדו-שיח Specify Inspection Scope, בוחרים באפשרות Custom scope.
  2. לוחצים על הרשימה היקף מותאם אישית כדי להציג את האפשרויות שעומדות לרשותכם:

    צריך לבחור את היקף הבדיקה שבו רוצים להשתמש
    איור 5. בוחרים את ההיקף המותאם אישית שבו רוצים להשתמש.
    • כל המקומות: כל הקבצים.
    • קבצים בפרויקט: כל הקבצים בפרויקט הנוכחי.
    • קובצי מקור של הפרויקט: רק קובצי המקור בפרויקט הנוכחי.
    • קבצים בסביבת הייצור של הפרויקט: רק הקבצים בסביבת הייצור בפרויקט הנוכחי.
    • קבצי הבדיקה של הפרויקט: רק קובצי הבדיקה בפרויקט הנוכחי.
    • Scratches and Consoles: רק קובצי ה-scratch והמסופים שפתוחם בפרויקט הנוכחי.
    • קבצים שנצפו לאחרונה: רק קבצים שנצפו לאחרונה בפרויקט הנוכחי.
    • הקובץ הנוכחי: רק הקובץ הנוכחי בפרויקט הנוכחי. מופיע כשבוחרים קובץ או תיקייה.
    • Selected Directory (ספרייה שנבחרה): רק התיקייה הנוכחית בפרויקט הנוכחי. מופיע כשבוחרים תיקייה.
    • היררכיית כיתות: כשבוחרים באפשרות הזו ולוחצים על אישור, מופיעה תיבת דו-שיח עם כל הכיתות בפרויקט הנוכחי. בתיבת הדו-שיח, משתמשים בשדה Search by Name כדי לסנן ולבחור את הכיתות לבדיקה. אם לא מסננים את רשימת הכיתות, בדיקת הקוד תבדוק את כל הכיתות.
  3. אם הגדרתם מערכת VCS לפרויקט, יש גם אפשרויות להגבלת החיפוש רק לקובצים ששונו.

  4. לוחצים על אישור.

יצירת היקף בהתאמה אישית

אם רוצים לבדוק מבחר של קבצים ותיקיות שלא נכללים באף אחד מההיקפים המותאמים אישית הזמינים, אפשר ליצור היקף מותאם אישית:

  1. בתיבת הדו-שיח Specify Inspection Scope, בוחרים באפשרות Custom scope.
  2. לוחצים על שלוש הנקודות אחרי הרשימה Custom Scope.

    תיבת הדו-שיח Specify Inspection Scope
    איור 6. ציון של תיבת הדו-שיח 'היקף הבדיקה'.

    תיבת הדו-שיח Scopes מופיעה.

    יצירת היקף מותאם אישית
    איור 7. יצירת היקף מותאם אישית.
  3. לוחצים על הלחצן בפינה הימנית העליונה של תיבת הדו-שיח כדי להגדיר היקף חדש.
  4. ברשימה Add Scope שמופיעה, בוחרים באפשרות Local.

    ההיקפים המקומי והמשותף משמשים בפרויקט לתכונה בדיקת קוד. אפשר להשתמש בהיקף משותף גם עם תכונות אחרות של הפרויקט שיש להן שדה של היקף. לדוגמה, כשלוחצים על Edit Settings (עריכת ההגדרות) כדי לשנות את ההגדרות של Find Usages (חיפוש שימושים), בתיבת הדו-שיח שמופיעה מופיע השדה Scope (היקף), שבו אפשר לבחור היקף משותף.

    בוחרים היקף שיתוף בתיבת הדו-שיח &#39;חיפוש שימושים&#39;.
    איור 8. בוחרים היקף משותף מתיבת הדו-שיח Find Usages.
  5. נותנים היקף שם ולוחצים על OK.

    בחלונית השמאלית של תיבת הדו-שיח היקפים יופיעו אפשרויות שמאפשרות להגדיר את ההיקף המותאם אישית.

  6. ברשימה, בוחרים באפשרות Project.

    תוצג רשימה של הפרויקטים הזמינים.

    הערה: אפשר ליצור היקף מותאם אישית לפרויקטים או לחבילות. השלבים זהים.

  7. מרחיבים את תיקיות הפרויקט, בוחרים את מה שרוצים להוסיף להיקף המותאם אישית ובוחרים אם לכלול או להחריג אותו.

    הגדרת היקף מותאם אישית
    איור 9. מגדירים היקף מותאם אישית.
    • הכללה: כוללים את התיקייה הזו ואת הקבצים שלה, אבל לא כוללים את תיקיות המשנה שלה.
    • Include Recursively: הכללתה של התיקייה הזו והקבצים שלה, וגם של תיקיות המשנה שלה והקבצים שלהן.
    • החרגה: מחריגים את התיקייה הזו ואת הקבצים שלה, אבל לא מחריגים אף אחת מתיקיות המשנה שלה.
    • החרגה היררכית: החרגה של התיקייה הזו והקבצים שלה, וגם של תיקיות המשנה והקבצים שלהן.

    איור 10 מראה שהתיקייה הראשית נכללת, ושהתיקיות Java ו-res נכללות באופן רקורסיבי. כחול מציין תיקייה שכלולה חלקית, וירוק מציין תיקיות וקבצים שכלולים באופן רפלוקטיבי.

    דוגמה לדפוס להיקף מותאם אישית
    איור 10. דוגמה לדפוס להיקף מותאם אישית.
    • אם בוחרים בתיקייה java ולוחצים על Exclude Recursively, ההדגשה הירוקה תיעלם בתיקייה java ובכל התיקיות והקבצים שמתחתיה.
    • אם בוחרים בקובץ MainActivity.kt המודגש ירוק ולוחצים על Exclude, MainActivity.kt לא יודגש יותר בירוק, אבל כל שאר התוכן בתיקיית Java נשאר ירוק.
  8. לוחצים על אישור. ההיקף המותאם אישית מופיע בתחתית הרשימה.

בדיקה ועריכה של פרופילי בדיקה

ב-Android Studio יש מבחר של איתור שגיאות בקוד ופרופילי בדיקה אחרים שעודכנו באמצעות עדכוני Android. אפשר להשתמש בפרופילים האלה כפי שהם, או לערוך את השמות, התיאורים, רמות החומרה וההיקפים שלהם. אפשר גם להפעיל ולהשבית קבוצות שלמות של פרופילים או פרופילים ספציפיים בתוך קבוצה.

כדי לגשת להגדרות של הבדיקות:

  1. בוחרים באפשרות קובץ > הגדרות. (ב-Windows) או Android Studio > Preferences (ב-macOS או ב-Linux).
  2. בוחרים באפשרות עריכה > בדיקות.
  3. בחלונית Inspections מוצגת רשימה של הבדיקות הנתמכות והתיאורים שלהן.

    הבדיקות הנתמכות והתיאורים שלהן
    איור 11. הבדיקות הנתמכות והתיאורים שלהן.
  4. בוחרים ברשימה Profile כדי לעבור בין הבדיקות Default (Android Studio) ו-Project Default (הפרויקט הפעיל).

    למידע נוסף, אפשר לעיין בדף Manage profiles ב-IntelliJ.

  5. ברשימה בדיקות בחלונית הימנית, בוחרים קטגוריית פרופיל ברמה העליונה או מרחיבים קבוצה ובוחרים פרופיל ספציפי.

    כשבוחרים קטגוריה של פרופיל, אפשר לערוך את כל הבדיקות בקטגוריה הזו כבדיקה אחת.

  6. בוחרים ברשימה Show Schema Actions הצגת סמל של פעולות סכימה כדי להעתיק, לשנות שם, להוסיף תיאורים, לייצא ולייבא בדיקות.
  7. בסיום, לוחצים על אישור.