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

डिवाइस पर एमएल किट का इस्तेमाल करने वाले किसी ऐप्लिकेशन को प्रोडक्शन में लगाने से पहले, अपने ऐप्लिकेशन का डाउनलोड साइज़ कम करने के लिए, इस पेज पर दी गई सलाह अपनाएं.

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

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

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

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

ML किट की सुविधाएं मांग पर उपलब्ध सुविधा मॉड्यूल में काम करें, इसके लिए आपके base apk की build.gradle फ़ाइल में, ML Kit Playstore की डाइनैमिक सुविधा के साथ काम करने वाली लाइब्रेरी डिपेंडेंसी शामिल है.

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

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

बेहतर सेटिंग: इस्तेमाल नहीं की गई ML किट बाइनरी को बाहर रखें

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

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