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

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

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

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

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

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

ML Kit की सुविधाओं को मांग पर उपलब्ध सुविधा मॉड्यूल में इस्तेमाल करने के लिए, अपने बेस apk की build.gradle फ़ाइल में, ML Kit playstore का डाइनैमिक फ़ीचर सपोर्ट, लाइब्रेरी डिपेंडेंसी शामिल करें.

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

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

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

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

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