تقليل حجم حِزم APK في تطبيق ML Kit لنظام التشغيل Android

قبل تفعيل تطبيق يستخدم نموذجًا من حزمة تعلّم الآلة على الجهاز فقط، ننصحك باتّباع النصائح الواردة في هذه الصفحة لتقليل حجم عملية تنزيل تطبيقك.

إنشاء تطبيقك على شكل "مجموعة حزمات تطبيق Android"

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

متقدّمة: نقل ميزات تعلُّم الآلة الاختيارية إلى وحدات الميزات الديناميكية

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

لكي تعمل ميزات "حزمة تعلُّم الآلة" في وحدة ميزات عند الطلب، يجب تضمين عنصر تابع لمكتبة دعم الميزات الديناميكية في Play Store الخاصة بـ "حزمة تعلُّم الآلة" في ملف build.gradle الخاص بحزمة APK الأساسية.

dependencies {
    // ...
    implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}

ويؤدي ذلك إلى منع المستخدمين من تنزيل نماذج تعلُّم الآلة الخاصة بتطبيقك بدون داعٍ، والتي يمكن أن تكون كبيرة الحجم.

خيارات متقدّمة: استبعاد ملفات ML Kit الثنائية غير المستخدَمة

تم تصميم "حزمة تعلُّم الآلة" لتتوافق مع بنية 32 بت و64 بت. إذا كان تطبيقك يتوافق مع وضع 32 بت فقط، مثلاً لأنّك تستخدم مكتبة توفّر فقط برامج ثنائية 32 بت، يمكنك استبعاد مكتبات حزمة تعلّم الآلة غير المستخدَمة من الإصدار على النحو التالي:

android {
  defaultConfig {
      ndk {
          // Don't package arm64-v8a or x86_64
          abiFilters 'armeabi-v7a', 'x86'
      }
  }
}