डिवाइस पर एमएल किट का इस्तेमाल करने वाले एमएल किट का इस्तेमाल करने वाले ऐप्लिकेशन को डिप्लॉय करने से पहले, अपने ऐप्लिकेशन का डाउनलोड साइज़ कम करने के लिए, इस पेज पर दी गई सलाह अपनाएं.
अपना ऐप्लिकेशन Android ऐप्लिकेशन बंडल के तौर पर बनाएं
अपने ऐप्लिकेशन को Android ऐप्लिकेशन बंडल के तौर पर बनाएं और डिप्लॉय करें, ताकि Google Play खास स्क्रीन डेंसिटी, सीपीयू आर्किटेक्चर, और भाषाओं के लिए APKs अपने-आप जनरेट कर सके. उपयोगकर्ताओं को सिर्फ़ वही APK डाउनलोड करने होंगे जो उनके डिवाइस कॉन्फ़िगरेशन से मेल खाते हैं. खास तौर पर, उपयोगकर्ताओं को सिर्फ़ उनके डिवाइस आर्किटेक्चर से मेल खाने वाले नेटिव कोड लाइब्रेरी डाउनलोड करने होंगे.
बेहतर: वैकल्पिक एमएल सुविधाओं को डाइनैमिक सुविधा मॉड्यूल में ले जाएं
अगर आप अपने ऐप्लिकेशन की किसी ऐसी सुविधा में ML किट का इस्तेमाल करते हैं जो उसका मुख्य मकसद नहीं है, तो अपने ऐप्लिकेशन को फिर से चालू करने के बारे में सोचें. इसके बाद, उस सुविधा और उसकी ML किट पर निर्भर करते हुए डाइनैमिक सुविधा वाले मॉड्यूल में ले जाएं.
एमएल किट की सुविधाएं, मांग पर मिलने वाले सुविधा मॉड्यूल में तब काम करें, जब आपके बेस APK की build.gradle
फ़ाइल में यह सुविधा मौजूद हो. यह सुविधा, ML किट की Play Store की डाइनैमिक सुविधा में, सहायता लाइब्रेरी की डिपेंडेंसी को शामिल करती है.
dependencies { // ... implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2' }
ऐसा करके, आप उपयोगकर्ताओं को अपने ऐप्लिकेशन के एमएल मॉडल को बेवजह डाउनलोड करने से रोक सकते हैं. ये मॉडल ज़्यादा बड़े हो सकते हैं.
बेहतर: इस्तेमाल न की गई एमएल किट बाइनरी को शामिल न करें
ML किट 32-बिट और 64-बिट आर्किटेक्चर, दोनों के लिए बनाई गई है. अगर आपका ऐप्लिकेशन सिर्फ़ 32-बिट मोड के साथ काम करता है—जैसे, लाइब्रेरी का इस्तेमाल करना, जो सिर्फ़ 32-बिट बाइनरी देती है, तो आप इस्तेमाल न की गई एमएल किट लाइब्रेरी को बिल्ड से हटा सकते हैं:
android { defaultConfig { ndk { // Don't package arm64-v8a or x86_64 abiFilters 'armeabi-v7a', 'x86' } } }