अपने ML Kit Android ऐप्लिकेशन के APKs का साइज़ कम करना

अगर आपको ML Kit के ऑन-डिवाइस मॉडल का इस्तेमाल करने वाले ऐप्लिकेशन को प्रोडक्शन में डिप्लॉय करना है, तो हमारा सुझाव है कि आप इस पेज पर दी गई सलाह को ध्यान में रखें. इससे आपके ऐप्लिकेशन का डाउनलोड साइज़ कम करने में मदद मिलेगी.

अपने ऐप्लिकेशन को Android ऐप्लिकेशन बंडल के तौर पर बनाना

अपने ऐप्लिकेशन को Android ऐप्लिकेशन बंडल के तौर पर बनाएं और डिप्लॉय करें, ताकि Google Play खास स्क्रीन डेंसिटी, सीपीयू आर्किटेक्चर, और भाषाओं के लिए अपने-आप APK जनरेट कर सके. लोगों को सिर्फ़ वे APK डाउनलोड करने होंगे जो उनके डिवाइस के कॉन्फ़िगरेशन से मेल खाते हैं. साथ ही, सबसे ज़रूरी बात यह है कि लोग सिर्फ़ उन नेटिव कोड लाइब्रेरी को डाउनलोड करते हैं जो उनके डिवाइस के आर्किटेक्चर से मेल खाती हैं.

ऐडवांस: एमएल की वैकल्पिक सुविधाओं को डाइनैमिक फ़ीचर मॉड्यूल में ले जाना

अगर आपने अपने ऐप्लिकेशन की किसी ऐसी सुविधा में ML Kit का इस्तेमाल किया है जो उसका मुख्य मकसद नहीं है, तो अपने ऐप्लिकेशन को फिर से तैयार करें. इससे उस सुविधा और ML Kit की डिपेंडेंसी को डाइनैमिक फ़ीचर मॉड्यूल में ले जाया जा सकेगा.

अगर आपको मांग पर उपलब्ध होने वाले फ़ीचर मॉड्यूल में ML Kit की सुविधाओं का इस्तेमाल करना है, तो अपने बेस APK की build.gradle फ़ाइल में, ML Kit की Play Store पर डाइनैमिक फ़ीचर के साथ काम करने वाली लाइब्रेरी की डिपेंडेंसी शामिल करें.

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

ऐसा करने से, उपयोगकर्ताओं को आपके ऐप्लिकेशन के एमएल मॉडल को गैर-ज़रूरी तौर पर डाउनलोड करने से रोका जा सकता है. ये मॉडल बड़े हो सकते हैं.

ऐडवांस: इस्तेमाल नहीं की गई ML Kit बाइनरी को बाहर रखें

ML Kit को 32-बिट और 64-बिट, दोनों आर्किटेक्चर के साथ काम करने के लिए बनाया गया है. अगर आपका ऐप्लिकेशन सिर्फ़ 32-बिट मोड के साथ काम करता है, तो इस्तेमाल न की गई ML Kit लाइब्रेरी को अपनी बिल्ड प्रोसेस से हटाया जा सकता है. उदाहरण के लिए, अगर आपने ऐसी लाइब्रेरी का इस्तेमाल किया है जो सिर्फ़ 32-बिट बाइनरी उपलब्ध कराती है, तो यह तरीका अपनाएं:

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