تحسين الرموز البرمجية باستخدام عمليات فحص الوبر

بالإضافة إلى إنشاء الاختبارات للتأكد من أنّ تطبيقك يلبي متطلباته الوظيفية، من المهم أيضًا أن تُشغِّل الرمز من خلال أداة Lint للمساعدة في ضمان عدم وجود أي مشاكل هيكلية في التعليمات البرمجية. تساعد أداة Lint في العثور على الرمز البرمجي ذي البنية الضعيفة التي يمكن أن تؤثر في موثوقية وفعالية تطبيقات Android، ما يؤدي إلى صعوبة صيانة الرمز البرمجي. ننصحك بشدة بتصحيح أي أخطاء يتم رصدها من خلال أداة Lint قبل نشر تطبيقك.

على سبيل المثال، إذا كانت ملفات موارد XML تحتوي على مساحات اسم غير مُستخدَمة، فسيشغل ذلك مساحة ويتطلب معالجة غير ضرورية. قد تؤدي المشاكل الهيكلية الأخرى، مثل استخدام العناصر المتوقّفة نهائيًا أو طلبات البيانات من واجهة برمجة التطبيقات التي لا تتوافق مع إصدارات واجهة برمجة التطبيقات المستهدفة، إلى تعذّر تشغيل الرمز بشكلٍ صحيح. يمكنك استخدام Lint في إزالة هذه المشاكل.

لتحسين أداء المحتوى المضمّن، يمكنك أيضًا إضافة تعليقات توضيحية إلى الرمز البرمجي.

نظرة عامة

يوفّر "استوديو Android" أداة لفحص الرموز تُسمى lint يمكنها مساعدتك في تحديد وتصحيح المشاكل المتعلقة بجودة بنية الرمز البرمجي بدون الحاجة إلى تنفيذ التطبيق أو كتابة حالات الاختبار. يتم الإبلاغ عن كل مشكلة تكتشفها الأداة من خلال رسالة وصفية ومستوى خطورة حتى تتمكن من تحديد أولويات التحسينات الهامة التي يلزم إجراؤها. يمكنك أيضًا خفض مستوى خطورة المشكلة لتجاهل المشكلات غير ذات الصلة بمشروعك أو رفع مستوى الخطورة لتسليط الضوء على مشكلات معينة.

تتحقّق أداة Lint من ملفات المصدر الخاصة بمشروع Android بحثًا عن الأخطاء المحتملة وتحسينات التحسين من أجل تصحيح الأخطاء والأمان والأداء وسهولة الاستخدام وتسهيل الاستخدام والانتشار على نطاق عالمي. عند استخدام "استوديو Android"، يتم تنفيذ عمليات فحص lint وIDE التي تم إعدادها عند إنشاء تطبيقك. ومع ذلك، يمكنك إجراء عمليات الفحص يدويًا أو تشغيل أداة lint من سطر الأوامر كما هو موضّح في هذه الصفحة.

تفحص أداة lint المدمجة الرمز الخاص بك أثناء استخدام "استوديو Android". يمكنك عرض التحذيرات والأخطاء بطريقتين:

  • كنص منبثق في نافذة المحرّر. عندما تجد أداة lint مشكلة، فإنها تبرز التعليمات البرمجية التي بها المشكلة باللون الأصفر. أما بالنسبة إلى المشاكل الأكثر خطورة، فيضع خط تحت الرمز باللون الأحمر.
  • في نافذة نتائج فحص الوبر عند النقر على الرمز > فحص الرمز.

ملاحظة: عند تجميع الرمز الخاص بك في "استوديو Android"، يتم تنفيذ عمليات فحص إضافية لرموز IntelliJ لتسهيل مراجعة الرموز.

يوضّح الشكل 1 كيفية معالجة أداة lint لملفات مصدر التطبيقات.

سير عمل مسح الرمز باستخدام أداة Lint
الشكل 1. سير عمل فحص الرمز باستخدام أداة Lint.
ملفات مصدر التطبيقات
تتألف الملفات المصدر من الملفات التي تشكّل مشروع Android الخاص بك، بما في ذلك ملفات Kotlin وJava وXML وملفات الإعداد الخاصة بـ ProGuard.
ملف lint.xml
ملف إعداد يمكنك استخدامه لتحديد أي عمليات تحقّق من أداة Lint تريد استبعادها وتخصيص مستويات خطورة المشاكل.
أداة الوبر
أداة لفحص الرموز الثابتة يمكنك تشغيلها على مشروع Android الخاص بك إما من سطر الأوامر أو في "استوديو Android". تتحقّق أداة Lint من مشاكل التعليمات البرمجية الهيكلية التي قد تؤثر في جودة وأداء تطبيق Android.
نتائج فحص الوبر
يمكنك عرض نتائج أداة Lint إما في وحدة التحكّم أو في نافذة نتائج الفحص في "استوديو Android". في حال تشغيل lint من سطر الأوامر، تتم كتابة النتائج في مجلد build/. لمزيد من التفاصيل، يمكنك الاطّلاع على القسم المتعلّق بإجراء عمليات الفحص يدويًا.

تشغيل أداة Lint من سطر الأوامر

إذا كنت تستخدم "استوديو Android" أو Gradle، استخدِم برنامج تضمين 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

عندما تكمل أداة Lint عمليات التحقّق الخاصة بها، توفّر مسارات إلى إصدارَي XML وHTML الخاصَّين بتقرير Lit. يمكنك بعد ذلك الانتقال إلى تقرير HTML وفتحه في المتصفّح، كما هو موضّح في الشكل 2.

نموذج تقرير HTML غير المرغوب فيه
الشكل 2. نموذج تقرير HTML Lint.

إذا كان مشروعك يتضمن صيغًا للإصدار، لن تتحقّق أداة lint إلا من الصيغة التلقائية فقط. إذا كنت تريد تشغيل أداة Lint على صيغة مختلفة، يجب كتابة اسم الصيغة بالأحرف اللاتينية الكبيرة وإضافة البادئة lint إليها.

./gradlew lintRelease

للاطّلاع على مزيد من المعلومات حول تشغيل مهام Gradle من سطر الأوامر، يمكنك الاطّلاع على مقالة إنشاء تطبيقك من سطر الأوامر.

تشغيل أداة Lint باستخدام الأداة المستقلة

إذا كنت لا تستخدم "استوديو Android" أو Gradle، يمكنك تثبيت أدوات سطر الأوامر لحزمة تطوير البرامج (SDK) لنظام التشغيل Android لاستخدام أداة Lint المستقلّة. حدِّد موقع أداة الوبر في android_sdk/cmdline-tools/version/bin/lint.

ملاحظة: إذا حاولت تشغيل الأداة المستقلة في مشروع Gradle، سيحدث خطأ. عليك دائمًا استخدام gradle lint (على نظام التشغيل Windows) أو ./gradlew lint (على نظام التشغيل macOS أو Linux) لتشغيل أداة Lint في مشروع Gradle.

لتشغيل أداة lint على قائمة بالملفات في دليل المشروع، استخدم الأمر التالي:

lint [flags] <project directory>

على سبيل المثال، يمكنك إصدار الأمر التالي لفحص الملفات ضمن دليل myproject وأدلته الفرعية. يطلب معرّف المشكلة MissingPrefix من أداة Lint فقط البحث عن سمات XML التي لا تتضمّن بادئة مساحة الاسم في Android.

lint --check MissingPrefix myproject 

للاطّلاع على القائمة الكاملة للعلامات ووسيطات سطر الأوامر التي توفّرها الأداة، استخدِم الأمر التالي:

lint --help

يوضح المثال التالي إخراج وحدة التحكم عند تشغيل أمر 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 لإيقاف التحذيرات

بشكل تلقائي، عند إجراء فحص أداة lint، تتحقق الأداة من جميع المشاكل التي تتوافق مع أداة lint. يمكنك أيضًا تقييد مشاكل التحقق من الوبر، ويمكنك تحديد مستويات خطورة للمشاكل. على سبيل المثال، يمكنك إيقاف فحص الوبر بحثًا عن مشاكل محددة لا صلة لها بمشروعك، ويمكنك ضبط أداة 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

يمكنك إيقاف التحقق من الوبر في ملفات مصدر Kotlin وJava وXML من خلال مربّع الحوار الإعدادات المفضّلة:

  1. اختَر ملف > الإعدادات (على نظام التشغيل Windows) أو استوديو Android > الإعدادات المفضّلة (على نظام التشغيل macOS أو Linux).
  2. اختَر أداة التعديل > عمليات الفحص.
  3. لإيقافه، ألغِ اختيار ملف المصدر المناسب.

يمكنك ضبطها في بيئة التطوير المتكاملة (IDE) أو لمشروعات فردية من خلال اختيار الملف الشخصي المناسب.

تهيئة التحقق من الوبر في Java أو Kotlin

لإيقاف ميزة "التحقق من الوبر" تحديدًا في فئة أو طريقة في مشروع Android، أضِف التعليق التوضيحي @SuppressLint إلى ذلك الرمز.

يعرض المثال التالي كيفية إيقاف التحقق من الوبر في مشكلة NewApi بطريقة onCreate. تواصل أداة Lint في البحث عن مشكلة 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);

ويمكن تحقيق الشيء نفسه على أي عنصر قابل للإنشاء. يعرض مقتطف الرمز التالي كيفية إيقاف عمليات التحقّق من NewApi على أي عنصر قابل للإنشاء.

Kotlin

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

يوضّح المثال التالي كيفية إيقاف التحقق من الوبر في مشكلة 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 حتى تتعرّف أداة lint على السمة:

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

يوضّح المثال التالي كيفية إيقاف التحقق من الوبر في مشكلة 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"

لإيقاف عملية التحقّق من جميع مشاكل البرامج غير المرغوب فيها في عنصر XML، استخدِم الكلمة الرئيسية all:

tools:ignore="all"

ضبط خيارات أداة Lint باستخدام Gradle

يتيح لك مكوّن Android الإضافي في Gradle إمكانية ضبط خيارات أداة Lint، مثل عمليات التحقّق التي يتم تشغيلها أو تجاهلها، وذلك باستخدام وحدة 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
    }
}
...

رائع

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 لمشروعك على النحو التالي:

Kotlin

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

رائع

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

عند إضافة هذا السطر لأول مرة، يتم إنشاء ملف lint-baseline.xml لإنشاء خط الأساس. من ذلك الحين فصاعدًا، تقرأ الأدوات الملف فقط لتحديد المتوقع. إذا كنت ترغب في إنشاء أساس جديد، فاحذف الملف يدويًا وقم بتشغيل أداة Lint مرة أخرى لإعادة إنشائه.

بعد ذلك، شغِّل أداة 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 الخاص بمشروعك على النحو التالي:

Kotlin

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

رائع

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

إذا أضفت أي تحذيرات جديدة إلى قاعدة الرموز بعد إنشاء خط الأساس، لا تدرج أداة Lint إلا الأخطاء التي تم إدخالها حديثًا.

تحذير أساسي

عندما يكون هناك خط أساس ساري المفعول، تحصل على تحذير إعلامي يخبرك بأنه تمت تصفية مشكلة واحدة أو أكثر لأنها مدرجة في المتوقع. يساعدك هذا التحذير على تذكر أنك قمت بإعداد خط أساس وبأنك بحاجة إلى حل جميع المشكلات في مرحلة ما.

يعمل هذا التحذير الإعلامي أيضًا على تتبُّع المشاكل التي لم يعُد يتم الإبلاغ عنها. تتيح لك هذه المعلومات معرفة ما إذا تم حلّ المشاكل، ويمكنك اختياريًا إعادة إنشاء خط الأساس لمنع ظهور الخطأ بدون أن يتم رصده.

ملاحظة: يتم تفعيل الإرشادات المرجعية عند إجراء عمليات الفحص في الوضع المجمّع في بيئة التطوير المتكاملة (IDE)، ولكن يتم تجاهلها في عمليات التحقّق داخل المحرّر التي يتم تشغيلها في الخلفية أثناء تعديل ملف. وهذا لأنّ المبادئ الأساسية مخصّصة للحالات التي يكون فيها قاعدة التعليمات البرمجية عددًا كبيرًا من التحذيرات الحالية، ولكنك تريد إصلاح المشاكل محليًا أثناء لمس الرمز.

إجراء عمليات الفحص يدويًا

لتشغيل عمليات فحص أداة lint التي تم ضبطها وغيرها من عمليات فحص IDE يدويًا، اختَر الرمز > فحص الرمز. تظهر نتائج الفحص في نافذة نتائج الفحص.

ضبط نطاق الفحص والملف الشخصي

اختَر الملفات التي تريد تحليلها (نطاق الفحص) وعمليات الفحص التي تريد إجراءها (الملف الشخصي للفحص) على النحو التالي:

  1. في طريقة العرض Android، افتح مشروعك واختَر المشروع أو المجلد أو الملف الذي تريد تحليله.
  2. من شريط القوائم، اختَر الرمز > فحص الرمز.
  3. في مربّع الحوار تحديد نطاق الفحص، راجِع الإعدادات.

    تحديد نطاق الفحص
    الشكل 3. يُرجى مراجعة إعدادات نطاق الفحص.

    تختلف الخيارات التي تظهر في مربّع الحوار تحديد نطاق الفحص بناءً على ما إذا اختَرت مشروعًا أو مجلدًا أو ملفًا:

    • عند اختيار مشروع أو ملف أو دليل، يعرض مربّع الحوار تحديد نطاق الفحص المسار إلى المشروع أو الملف أو الدليل الذي اخترته.
    • عند اختيار أكثر من مشروع أو ملف أو دليل واحد، يعرض مربّع الحوار تحديد نطاق الفحص زر اختيار محدّد للملفات المحدَّدة.

    لتغيير المعلومات المطلوب فحصها، اختَر أحد أزرار الاختيار الأخرى. يمكنك الاطّلاع على تحديد مربّع حوار نطاق الفحص للحصول على وصف لجميع الحقول المحتمَلة في مربّع الحوار تحديد نطاق الفحص.

  4. ضمن الملف الشخصي للفحص، اختَر الملف الشخصي الذي تريد استخدامه.
  5. انقر على حسنًا لإجراء الفحص.

    يوضّح الشكل 4 نتائج فحص IDE ونتائج IDE ونتائج فحص IDE من تشغيل رمز الفحص:

    اختَر مشكلة للاطّلاع على حلّها.
    الشكل 4. نتائج الفحص. اختَر مشكلة للاطّلاع على حلّها.
  6. في لوحة نتائج الفحص، يمكنك عرض نتائج الفحص من خلال توسيع واختيار فئات الأخطاء أو الأنواع أو المشاكل.

    تعرض لوحة تقرير الفحص تقرير الفحص لفئة الخطأ أو نوعه أو المشكلة التي تم اختيارها في لوحة نتائج الفحص، كما تعرض اسم الخطأ وموقعه. يعرض تقرير الفحص معلومات أخرى، مثل ملخّص عن المشكلة، حيثما أمكن ذلك، لمساعدتك في حل المشكلة.

  7. في العرض التدرّجي للوحة نتائج الفحص، انقر بزر الماوس الأيمن على فئة أو نوع أو مشكلة لعرض قائمة السياق.

    واعتمادًا على السياق، يمكنك:

    • الانتقال إلى المصدر
    • استبعاد العناصر المحدّدة وتضمينها
    • حل المسائل.
    • تعديل الإعدادات
    • إدارة تنبيهات الفحص
    • إعادة إجراء الفحص

للحصول على أوصاف لأزرار شريط الأدوات وعناصر قائمة السياق وحقول تقرير الفحص، يمكنك الاطّلاع على نافذة أداة نتائج الفحص.

استخدام نطاق مخصص

استخدِم أحد النطاقات المخصّصة المقدَّمة في "استوديو Android" على النحو التالي:

  1. في مربّع الحوار تحديد نطاق الفحص، اختَر نطاق مخصّص.
  2. انقر على قائمة النطاق المخصّص لعرض الخيارات:

    اختيار نطاق الفحص
    الشكل 5. اختَر النطاق المخصّص الذي تريد استخدامه.
    • كل الأماكن: كل الملفات
    • ملفات المشروع: كل الملفات في المشروع الحالي.
    • ملفات مصدر المشروع: الملفات المصدر فقط في المشروع الحالي
    • ملفات إنتاج المشروع: ملفات الإنتاج في المشروع الحالي فقط
    • ملفات اختبار المشروع: ملفات الاختبار في المشروع الحالي فقط
    • الخدوش ووحدات التحكّم: فقط ملفات المكافآت الفورية ووحدات التحكّم التي فتحتها في المشروع الحالي.
    • الملفات التي تم الاطّلاع عليها مؤخرًا: الملفات التي تم الاطّلاع عليها مؤخرًا في المشروع الحالي فقط
    • الملف الحالي: الملف الحالي فقط في مشروعك الحالي تظهر عندما يتم اختيار ملف أو مجلد.
    • الدليل المحدَّد: المجلد الحالي فقط في مشروعك الحالي. تظهر عند اختيار مجلد.
    • التسلسل الهرمي للفئة: عند تحديد هذا الخيار والنقر على حسنًا، سيظهر مربّع حوار يتضمّن كل الصفوف في المشروع الحالي. في مربّع الحوار، استخدِم الحقل البحث حسب الاسم لفلترة الصفوف المطلوب فحصها واختيارها. في حال عدم فلترة قائمة الفئات، يفحص فحص الرموز جميع الفئات.

    إذا سبق لك إعداد VCS للمشروع، يمكنك أيضًا حصر البحث بالملفات التي تم تعديلها فقط.

  3. انقُر على موافق.

إنشاء نطاق مخصّص

عندما تريد فحص مجموعة مختارة من الملفات والأدلة غير المشمولة في أي من النطاقات المخصّصة المتاحة حاليًا، يمكنك إنشاء نطاق مخصّص:

  1. في مربّع الحوار تحديد نطاق الفحص، اختَر نطاق مخصّص.
  2. انقر على النقاط الثلاث بعد قائمة النطاق المخصّص.

    تحديد مربّع الحوار الخاص بنطاق الفحص
    الشكل 6. حدِّد مربّع الحوار الخاص بنطاق الفحص.

    سيظهر مربّع الحوار النطاقات.

    إنشاء نطاق مخصّص
    الشكل 7. أنشِئ نطاقًا مخصّصًا.
  3. انقر على الزر في أعلى يمين مربّع الحوار لتحديد نطاق جديد.
  4. في قائمة إضافة نطاق التي تظهر، اختَر محلي.

    يتم استخدام كل من النطاقات المحلية والمشتركة في المشروع لميزة فحص الرمز. يمكن أيضًا استخدام النطاق المشترك مع ميزات المشروع الأخرى التي تحتوي على حقل نطاق. على سبيل المثال، عند النقر على تعديل الإعدادات لتغيير إعدادات البحث عن الاستخدامات، سيحتوي مربّع الحوار الناتج على حقل النطاق حيث يمكنك اختيار نطاق مشترك.

    اختيار نطاق مشترك من مربّع الحوار &quot;البحث عن الاستخدامات&quot;
    الشكل 8. اختَر نطاقًا مشتركًا من مربّع الحوار البحث عن الاستخدامات.
  5. أدخِل اسمًا للنطاق وانقر على حسنًا.

    تتم تعبئة الجزء الأيسر من مربّع الحوار النطاقات بالخيارات التي تتيح لك تحديد النطاق المخصّص.

  6. من القائمة، اختَر مشروع.

    تظهر قائمة بالمشاريع المتاحة.

    ملاحظة: يمكنك إنشاء النطاق المخصّص للمشاريع أو الحِزم. الخطوات هي نفسها.

  7. وسِّع مجلدات المشروع، واختَر ما تريد إضافته إلى النطاق المخصّص، واختَر ما إذا كنت تريد تضمينه أو استبعاده.

    تحديد نطاق مخصّص
    الشكل 9. تحديد نطاق مخصّص
    • تضمين: يمكنك تضمين هذا المجلد وملفاته، ولكن لا تُدرِج أي من مجلداته الفرعية.
    • التضمين بشكل متكرر: يمكنك تضمين هذا المجلد وملفاته بالإضافة إلى مجلداته الفرعية وملفاته.
    • استبعاد: استبعِد هذا المجلد وملفاته، ولكن لا تستثني أيًّا من مجلداته الفرعية.
    • الاستثناء المتكرر: استبعِد هذا المجلد وملفاته بالإضافة إلى مجلداته الفرعية وملفاته.

    يوضّح الشكل 10 أنّ المجلد الرئيسي مضمّن، وأنّ مجلدَي java وres يتم تضمينهما بشكل متكرّر. يشير اللون الأزرق إلى مجلد تم تضمينه جزئيًا، في حين يشير اللون الأخضر إلى المجلدات والملفات التي يتم تضمينها بشكل متكرر.

    مثال على النمط لنطاق مخصّص
    الشكل 10. مثال على نمط لنطاق مخصّص.
    • إذا اختَرت المجلد java وانقر على استبعاد بشكل متكرّر، سينتهي التظليل باللون الأخضر في المجلد java وجميع المجلدات والملفات ضمنه.
    • إذا اخترت ملف MainActivity.kt باللون الأخضر ونقرت على استبعاد، لن يتم تمييز MainActivity.kt باللون الأخضر، ولكن سيظل كل شيء آخر ضمن المجلد java باللون الأخضر.
  8. انقر على موافق. سيظهر النطاق المخصّص في أسفل القائمة.

مراجعة الملفات الشخصية للفحص وتعديلها

يتضمن "استوديو Android" مجموعة من ملفات الوبر والملفات الشخصية الأخرى للفحص التي يتم تحديثها من خلال تحديثات Android. يمكنك استخدام هذه الملفات الشخصية كما هي أو تعديل أسمائها وأوصافها ودرجة خطورتها ونطاقاتها. يمكنك أيضًا تفعيل مجموعات كاملة من الملفات الشخصية أو ملفات شخصية فردية داخل مجموعة وإيقافها.

للوصول إلى إعدادات عمليات الفحص:

  1. اختَر ملف > الإعدادات. (على نظام التشغيل Windows) أو استوديو Android > الإعدادات المفضّلة (على نظام التشغيل macOS أو Linux).
  2. اختَر أداة التعديل > عمليات الفحص.
  3. تعرض لوحة عمليات الفحص قائمة بعمليات الفحص المتوافقة وأوصافها.

    عمليات الفحص المتاحة وأوصافها
    الشكل 11. عمليات الفحص المتاحة وأوصافها
  4. اختَر قائمة الملف الشخصي للتبديل بين الفحص التلقائي (استوديو Android) والفحص التلقائي للمشروع (المشروع النشط).

    لمزيد من المعلومات، يمكنك الاطّلاع على صفحة إدارة الملفات الشخصية من IntelliJ.

  5. في قائمة عمليات الفحص في اللوحة اليمنى، اختَر فئة ملف شخصي في المستوى الأعلى أو وسِّع مجموعة واختَر ملفًا شخصيًا معيَّنًا.

    وعند اختيار فئة ملف شخصي، يمكنك تعديل جميع عمليات الفحص ضمن تلك الفئة كعملية فحص واحدة.

  6. اختَر قائمة إظهار إجراءات المخطط إظهار رمز إجراءات المخطط لنسخ عمليات الفحص وإعادة تسميتها وإضافة أوصاف إليها وتصديرها واستيرادها.
  7. عند الانتهاء، انقر على حسنًا.