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

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

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

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

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

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

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

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

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

خيارات متقدّمة: استبعاد الملفات الثنائية غير المستخدَمة في "حزمة تعلّم الآلة"

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

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