किसी ऐसे ऐप्लिकेशन को प्रोडक्शन में डिप्लॉय करने से पहले जो डिवाइस पर काम करने वाले ML Kit मॉडल का इस्तेमाल करता है, इस पेज पर दी गई सलाह को ध्यान में रखें. इससे आपके ऐप्लिकेशन का डाउनलोड साइज़ कम हो सकता है.
अपने ऐप्लिकेशन को Android ऐप्लिकेशन बंडल के तौर पर बनाना
अपने ऐप्लिकेशन को Android ऐप्लिकेशन बंडल के तौर पर बनाएं और डिप्लॉय करें. इससे Google Play, स्क्रीन की डेंसिटी, सीपीयू आर्किटेक्चर, और भाषाओं के हिसाब से APK अपने-आप जनरेट कर सकता है. उपयोगकर्ताओं को सिर्फ़ वे APK डाउनलोड करने होंगे जो उनके डिवाइस के कॉन्फ़िगरेशन के मुताबिक हों. साथ ही, सबसे अहम बात यह है कि उपयोगकर्ता सिर्फ़ वे नेटिव कोड लाइब्रेरी डाउनलोड करते हैं जो उनके डिवाइस के आर्किटेक्चर के मुताबिक हों.
बेहतर सेटिंग: ML की वैकल्पिक सुविधाओं को डाइनैमिक सुविधा वाले मॉड्यूल में ले जाना
अगर आपके ऐप्लिकेशन की किसी ऐसी सुविधा में ML Kit का इस्तेमाल किया जाता है जो उसका मुख्य मकसद नहीं है, तो अपने ऐप्लिकेशन को फिर से तैयार करने पर विचार करें. इससे उस सुविधा और उसकी ML Kit डिपेंडेंसी को डाइनैमिक सुविधा वाले मॉड्यूल में ले जाया जा सकता है.
अगर आपको ऑन-डिमांड सुविधा वाले मॉड्यूल में ML Kit की सुविधाओं का इस्तेमाल करना है, तो अपने बेस APK की build.gradle फ़ाइल में, ML Kit playstore डाइनैमिक सुविधा वाली सहायता लाइब्रेरी की डिपेंडेंसी शामिल करें.
dependencies { // ... implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2' }
ऐसा करने से, उपयोगकर्ता आपके ऐप्लिकेशन के ML मॉडल को बिना वजह डाउनलोड नहीं करेंगे. ये मॉडल बड़े हो सकते हैं.
बेहतर सेटिंग: 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' } } }