अपने 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'
      }
  }
}