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

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

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

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

نظرة عامة

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

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

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

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

ملاحظة: عند تجميع الرمز البرمجي في "استوديو Android"، يتم تنفيذ عمليات فحص إضافية للرمز البرمجي في IntelliJ لتبسيط عملية مراجعة الرمز البرمجي. يجب تثبيت أحدث إصدار من Android Studio قدر الإمكان لضمان توفّر أحدث قواعد وعمليات فحص lint.

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

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

تشغيل lint من سطر الأوامر

إذا كنت تستخدم "استوديو Android" أو Gradle، استخدِم Gradle wrapper لتشغيل مهمة lint لمشروعك من خلال إدخال أحد الأوامر التالية من الدليل الجذر لمشروعك:

ملاحظة: يجب استخدام أحدث إصدار ممكن من مكوّن Gradle الإضافي لنظام Android لاستخدام أحدث قواعد 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

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

نموذج تقرير HTML lint
الشكل 2. نموذج تقرير HTML lint

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

./gradlew lintRelease

ملاحظة: لا يتم تشغيل Lint تلقائيًا كجزء من عملية الإنشاء. ننصح بشدة بتشغيل أداة lint بشكل صريح كجزء من عملية دمج مستمر حتى تتمكّن من الاطّلاع على أحدث عمليات فحص أداة lint عند إنشاء الرمز المصدر الحالي.

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

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

إذا كنت لا تستخدم Android Studio أو 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>

على سبيل المثال، يمكنك إصدار الأمر التالي لفحص الملفات ضمن 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 لإيقاف التحذيرات

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

في ما يلي مستويات الخطورة:

  • enable
  • disable أو ignore
  • informational
  • warning
  • error
  • fatal

يمكنك ضبط فحص الأخطاء النحوية لمستويات مختلفة:

  • على مستوى المشروع بأكمله
  • وحدة المشروع
  • وحدة الإنتاج
  • وحدة الاختبار
  • فتح الملفات
  • التدرّج الهرمي للفئة
  • نطاقات نظام التحكّم في الإصدارات (VCS)

ضبط ملف التدقيق

يمكنك تحديد الإعدادات المفضّلة لفحص الأخطاء في الملف lint.xml. إذا كنت تنشئ هذا الملف يدويًا، ضَعْه في الدليل الجذر لمشروع Android.

يتكوّن ملف lint.xml من علامة رئيسية <lint> تشمل عنصرًا واحدًا أو أكثر من العناصر الفرعية <issue>. تحدِّد أداة Lint قيمة فريدة لسمة id لكل <issue>:

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

لتغيير مستوى خطورة مشكلة معيّنة أو إيقاف فحص الأخطاء النحوية لهذه المشكلة، اضبط سمة severity في علامة <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 Studio > الإعدادات المفضّلة (على نظام التشغيل macOS أو Linux).
  2. اختَر المحرِّر > عمليات الفحص.
  3. لإيقاف هذه الميزة، أزِل العلامة من المربّع بجانب ملف المصدر المناسب.

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

ضبط ميزة التحقّق من الأخطاء في Java أو Kotlin

لإيقاف فحص Lint لصفّ أو طريقة معيّنة في مشروع 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 حتى تتعرّف أداة فحص الأخطاء على السمة:

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

يوضّح المثال التالي كيفية إيقاف فحص الأخطاء النحوية للخطأ UnusedResources في عنصر <LinearLayout> من ملف تنسيق XML. يتم توريث سمة ignore من خلال العناصر الفرعية للعنصر الرئيسي الذي تمّ الإعلان عن السمة فيه. في هذا المثال، تم أيضًا إيقاف فحص الأخطاء النحوية للعنصر child <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

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

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

لتنفيذ فحص الأخطاء البرمجية المُعدّة وعمليات فحص أخرى في IDE يدويًا، اختَر الرمز البرمجي > فحص الرمز البرمجي. تظهر نتائج الفحص في نافذة نتائج الفحص.

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

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

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

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

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

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

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

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

    يعرض الشكل 4 نتائج فحص الأخطاء ونتائج فحص IDE الأخرى من عملية تشغيل فحص الرمز البرمجي:

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

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

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

    استنادًا إلى السياق، يمكنك إجراء ما يلي:

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

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

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

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

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

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

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

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

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

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

    مربّع حوار &quot;تحديد نطاق الفحص&quot;
    الشكل 6. مربّع حوار "تحديد نطاق الفحص"

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

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

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

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

    تتم تعبئة اللوحة اليمنى من مربّع حوار النطاقات بخيارات تتيح لك تحديد النطاق المخصّص.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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