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

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

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

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

نظرة عامة

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

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

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

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

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

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

سير عمل فحص الرموز البرمجية باستخدام أداة lint
الشكل 1. سير عمل فحص الرموز البرمجية باستخدام أداة lint
ملفات مصدر التطبيق
تتكون الملفات المصدر من ملفات تشكل مشروع Android، بما في ذلك ملفات Kotlin وJava وملفّات XML والرموز وملفات ضبط ProGuard.
ملف lint.xml
ملفّ إعدادات يمكنك استخدامه لتحديد أيّ عمليات تحقّق من الأخطاء النحوية تريد استبعادها وتخصيص مستويات خطورة المشاكل
أداة إزالة الأخطاء
أداة فحص الرموز الثابتة التي يمكنك تشغيلها على مشروع Android من سطر الأوامر أو في IDE Android Studio تتحقّق أداة lint من مشاكل البنية في الرموز البرمجية التي قد تؤثّر في جودة تطبيق Android وأدائه.
نتائج فحص أداة Lint
يمكنك عرض النتائج من 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.

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

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

./gradlew lintRelease

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

لمزيد من المعلومات عن تشغيل مهام 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 للإبلاغ عن المشكلات غير الحرجة على مستوى أقل خطورة.

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

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

لتغيير مستوى خطورة مشكلة أو إيقاف فحص أداة 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 ... /> المرفقة.

إعداد التحقّق من أداة Lint لملفات مصدر Kotlin وJava وXML

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

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

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

إعداد فحص أداة Lint في Java أو Kotlin

لإيقاف فحص Lint لصفّ أو طريقة معيّنة في مشروع Android، أضِف التعليق التوضيحي @SuppressLint إلى هذا الرمز.

يوضّح المثال التالي كيفية إيقاف فحص الأخطاء النحوية في NewApi المشكلة في طريقة onCreate. تواصل أداة Lint البحث عن مشكلة NewApi في طرق أخرى ضمن هذه الفئة.

KotlinJava
@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);

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

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

يوضّح المثال التالي كيفية إيقاف البحث عن أداة Lint لمشكلة ParserError في الفئة FeedProvider:

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

لإيقاف البحث عن جميع مشاكل أداة Lint في الملف، استخدِم الكلمة الرئيسية all:

KotlinJava
@SuppressLint("all")
@SuppressLint("all")

يمكنك استخدام التعليق التوضيحي نفسه لإيقاف عمليات فحص Lint في أي دالة قابلة للتعديل.

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

استخدِم سمة tools:ignore لإيقاف فحص الأخطاء في أقسام معيّنة من ملفات XML. ضَع قيمة مساحة الاسم التالية في ملف lint.xml كي تتعرّف أداة Lint على السمة:

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 نتائج فحص أداة Lint وغيرها من نتائج فحص بيئة التطوير المتكاملة (IDE) من تشغيل فحص الرمز:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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