تأكيد تحسين الملفات الشخصية للشركات الناشئة

يمكنك التحقّق من عمل ملفات تعريف التشغيل باستخدام Android Studio أو الاطّلاع على البيانات الوصفية لإصدار R8.

التأكيد باستخدام "استوديو Android"

لتأكيد تحسين تنسيق DEX، استخدِم Android Studio لفتح حزمة APK و التحقّق من الفئات في ملفات DEX. تأكَّد من أنّ classes.dex الأساسي ليس مملوءًا بالكامل. إذا كان تطبيقك يتألف من ملف DEX واحد، يمكنك التحقّق مما إذا كان التطبيق يحتوي على ملفي DEX بعد تفعيل "ملف بدء التشغيل".

يحذرك Android Studio إذا لم تتوافق فئات بدء التشغيل مع ملف DEX واحد. للحصول على معلومات تشخيص تتضمّن عدد طرق التشغيل غير المُضمّنة في فئات التشغيل، تأكَّد من تحديث مُجمِّع R8 إلى الإصدار 8.3.36-dev على الأقل من خلال إجراء التغييرات التالية على ملف settings.gradle عند تطبيق ملف "ملف بدء التشغيل":

Kotlin

pluginManagement {
    buildscript {
        repositories {
            mavenCentral()
            maven {
                url = uri("https://storage.googleapis.com/r8-releases/raw")
            }
        }
        dependencies {
            classpath("com.android.tools:r8:8.3.6-dev")
        }
    }
}

Groovy

pluginManagement {
    buildscript {
        repositories {
            mavenCentral()
            maven {
                url uri('https://storage.googleapis.com/r8-releases/raw')
            }
        }
        dependencies {
            classpath 'com.android.tools:r8:8.3.6-dev"
        }
    }
}

احرص على إضافة --info بعد assembleRelease في الأمر التالي عند إنشاء التطبيق باستخدام Gradle.

./gradlew assembleRelease --info

بعد ذلك، يتم طباعة بيانات التشخيص على المحطة الطرفية.

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

التأكيد باستخدام البيانات الوصفية للحزمة

بدءًا من الإصدار 8.8 من AGP، تُخرج أداة R8 البيانات الوصفية في حِزمة تطبيق Android (AAB) التي يمكنك استخدامها للتحقّق مما إذا كان تحسين تنسيق DEX قد تم بنجاح. للتحقّق مما إذا كانت عملية التحسين قد نجحت، اتّبِع الخطوات التالية:

  1. إنشاء حزمة تطبيقك المتوافقة مع "مبادرة التطبيقات البسيطة":

    ./gradlew app:bundleRelease
    
  2. تأكَّد من توفّر ملف DEX واحد على الأقل يحتوي على النص "startup": true.

    1. افتح البيانات الوصفية:

      unzip -j -o path-to-aab BUNDLE-METADATA/com.android.tools/r8.json && jq .dexFiles r8.json
      

      قد يكون مسار الوصول إلى AAB على النحو التالي: app/build/outputs/bundle/release/app-release.aab.

    2. تحقَّق من النتيجة التي من المفترض أن تظهر على النحو التالي:

          inflating: r8.json
      [
        {
          "checksum": "f0b4b0ddb295812607f44efe03cf7a830056ccfddbdb81db3760d2281940e951",
          "startup": true
        }
      ]
      

    إذا ظهر لك الرمز "startup": false فقط في البيانات الوصفية، عليك تفعيل الملفات الشخصية لبدء التشغيل والتأكّد من عدم تشويشملف بدء التشغيل.

  3. تأكَّد من أنّ قيم SHA-256 من البيانات الوصفية تتطابق مع القيم الواردة في حزمة التطبيق القابلة للحمل (AAB). للحصول على قيم SHA-256 لجميع ملفات DEX، شغِّل ما يلي:

    unzip -o path-to-aab */dex/*.dex && sha256sum */dex/*
    

    من المفترض أن تظهر النتيجة على النحو التالي:

    Archive: app/build/outputs/bundle/release/myapp-release.aab
      inflating: base/dex/classes.dex
    f0b4b0ddb295812607f44efe03cf7a830056ccfddbdb81db3760d2281940e951  base/dex/classes.dex
    

    قارِن قيم التجزئة بقيم "المركم" من الخطوة 1. إذا لم تتطابق قيم SHA-256 ، قد تكون هناك خطوة تجميع تتداخل مع قدرة R8 على إخراج ملفات DEX.