स्प्लैश स्क्रीन लागू करने की सुविधा को Android 12 और उसके बाद के वर्शन पर माइग्रेट करना

अगर आपने Android 11 या उससे पहले के वर्शन में, पसंद के मुताबिक स्प्लैश स्क्रीन को लागू किया है, तो अपने SplashScreen एपीआई से मदद लें पक्का करें कि यह Android 12 और उसके बाद के वर्शन में सही तरीके से दिखे.

Android 12 और इसके बाद के वर्शन में, सिस्टम Android सिस्टम के लिए डिफ़ॉल्ट स्प्लैश स्क्रीन चालू है ठंडा और गर्म सभी ऐप्लिकेशन के लिए शुरू होता है. डिफ़ॉल्ट रूप से, इस सिस्टम स्प्लैश स्क्रीन को आपके ऐप्लिकेशन के लॉन्चर आइकॉन एलिमेंट का इस्तेमाल करके बनाया गया है और आपके windowBackground थीम, अगर वह एक ही रंग वाली हो.

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

  • अगर आपकी मौजूदा स्प्लैश स्क्रीन को ऐसी कस्टम थीम जो android:windowBackground को बदल देती है, यह सिस्टम, आपकी पसंद के मुताबिक बनाई गई स्प्लैश स्क्रीन को डिफ़ॉल्ट Android सिस्टम से बदल देता है Android 12 और उसके बाद के वर्शन में स्प्लैश स्क्रीन. मुमकिन है कि यह आपके ऐप्लिकेशन के मुताबिक न हो अनुभव.

  • अगर आपकी मौजूदा स्प्लैश स्क्रीन को किसी खास Activity का इस्तेमाल करके लागू किया गया है, Android 12 या उसके बाद के वर्शन वाले डिवाइसों पर ऐप्लिकेशन लॉन्च करने पर डुप्लीकेट स्प्लैश स्क्रीन: सिस्टम की स्प्लैश स्क्रीन मौजूदा स्प्लैश स्क्रीन गतिविधि के बाद दिखेगा.

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

स्प्लैशस्क्रीन कंपैट लाइब्रेरी

SplashScreen एपीआई का इस्तेमाल सीधे तौर पर किया जा सकता है. हालांकि, हमारा सुझाव है कि आप Androidx SplashScreen कंपैट लाइब्रेरी आज़माएं. कंपनी, SplashScreen API का इस्तेमाल करती है. इसकी मदद से, साथ ही, पुराने सिस्टम के साथ काम करता है. साथ ही, इससे स्प्लैश स्क्रीन पर एक जैसा रंग-रूप दिखता है सभी Android वर्शन पर दिखाई देते हैं. इस दस्तावेज़ को कंपैट का इस्तेमाल करके लिखा गया है लाइब्रेरी.

अगर Android 11 और इससे पहले के वर्शन पर, सीधे तौर पर SplashScreen एपीआई का इस्तेमाल करके माइग्रेट किया जाता है आपकी स्प्लैश स्क्रीन माइग्रेशन से पहले की तरह ही दिखेगी. शुरू होने की तारीख Android 12 की स्प्लैश स्क्रीन के तौर पर, Android 12 का लुक और स्टाइल रखा गया है.

SplashScreen कंपैट लाइब्रेरी की मदद से माइग्रेट करने पर, सिस्टम यह दिखाता है Android के सभी वर्शन पर एक ही स्प्लैश स्क्रीन.

स्प्लैश स्क्रीन की सुविधा को लागू करने की सेटिंग को माइग्रेट करना

मौजूदा स्प्लैश स्क्रीन को माइग्रेट करने के लिए, यह तरीका अपनाएं Android 12 और उसके बाद के वर्शन पर लागू करने की सुविधा मिलती है.

यह प्रोसेस, माइग्रेट करने के किसी भी टाइप पर लागू होती है से. अगर आपको किसी खास Activity से माइग्रेट करना है, तो सबसे सही इस दस्तावेज़ में बताए गए तरीकों के बारे में बताया गया है. Activity की कस्टमाइज़ की गई स्प्लैश स्क्रीन. SplashScreen एपीआई, स्टार्टअप को भी कम करता है स्प्लैश स्क्रीन पर गतिविधि करने के दौरान दिखने वाला इंतज़ार का समय.

स्प्लैश स्क्रीन को माइग्रेट करने के लिए यह तरीका अपनाएं:

  1. build.gradle फ़ाइल में, अपना compileSdkVersion बदलें और शामिल करें डिपेंडेंसी में SplashScreen कंपेट लाइब्रेरी.

    build.gradle
    
    android {
       compileSdkVersion 31
       ...
    }
    dependencies {
       ...
       implementation 'androidx.core:core-splashscreen:1.0.0-beta02'
    }
    
  2. Theme.SplashScreen के माता-पिता के साथ कोई थीम बनाएं. मान तय करें postSplashScreenTheme को उस थीम में जोड़ें जिसका इस्तेमाल Activity को करना चाहिए और ड्रॉ करने लायक या ऐनिमेशन के लिए windowSplashScreenAnimatedIcon की वैल्यू ड्रॉ करने लायक है. दूसरे एट्रिब्यूट ज़रूरी नहीं हैं.

    <style name="Theme.App.Starting" parent="Theme.SplashScreen">
       <!-- Set the splash screen background, animated icon, and animation
       duration. -->
       <item name="windowSplashScreenBackground">@color/...</item>
    
       <!-- Use windowSplashScreenAnimatedIcon to add a drawable or an animated
            drawable. One of these is required. -->
       <item name="windowSplashScreenAnimatedIcon">@drawable/...</item>
       <!-- Required for animated icons. -->
       <item name="windowSplashScreenAnimationDuration">200</item>
    
       <!-- Set the theme of the Activity that directly follows your splash
       screen. This is required. -->
       <item name="postSplashScreenTheme">@style/Theme.App</item>
    </style>
    

    अगर आपको अपने आइकॉन के नीचे बैकग्राउंड का रंग जोड़ना है, तो Theme.SplashScreen.IconBackground थीम सेट करें और windowSplashScreenIconBackground एट्रिब्यूट की वैल्यू सबमिट करें.

  3. मेनिफ़ेस्ट में, शुरुआती गतिविधि की थीम को उस थीम से बदलें पिछले चरण में बनाएं.

    <manifest>
       <application android:theme="@style/Theme.App.Starting">
        <!-- or -->
            <activity android:theme="@style/Theme.App.Starting">
    ...
    
  4. कॉल करने से पहले, शुरुआती गतिविधि में installSplashScreen पर कॉल करें super.onCreate().

    Kotlin

    class MainActivity : Activity() {
    
       override fun onCreate(savedInstanceState: Bundle?) {
           // Handle the splash screen transition.
           val splashScreen = installSplashScreen()
    
           super.onCreate(savedInstanceState)
           setContentView(R.layout.main_activity)
    ...
    

    Java

    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
             // Handle the splash screen transition.
             SplashScreen splashScreen = SplashScreen.installSplashScreen(this);
    
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main_activity);
        }
    }
    

installSplashScreen, स्प्लैश स्क्रीन ऑब्जेक्ट दिखाता है. हालांकि, आपके पास ऐसा करने का विकल्प होता है इसका इस्तेमाल ऐनिमेशन को पसंद के मुताबिक बनाने के लिए या स्प्लैश स्क्रीन को ज़्यादा समय तक स्क्रीन पर रखने के लिए किया जाता है अवधि. ऐनिमेशन को पसंद के मुताबिक बनाने के बारे में ज़्यादा जानकारी के लिए, देखें स्प्लैश स्क्रीन को लंबे समय तक स्क्रीन पर दिखाना और स्प्लैश स्क्रीन को खारिज करने के लिए, ऐनिमेशन को पसंद के मुताबिक बनाएं.

पसंद के मुताबिक बनाई गई स्प्लैश स्क्रीन पर की गई गतिविधि को स्प्लैश स्क्रीन के हिसाब से बनाएं

Android 12 और उसके बाद के वर्शन के लिए स्प्लैश स्क्रीन पर माइग्रेट करने के बाद, यह तय करें कि करने के लिए, अपनी पिछली कस्टम स्प्लैश स्क्रीन Activity का इस्तेमाल करें. आपके पास ये हैं विकल्प:

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

कस्टम गतिविधि दिखाने से रोकें

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

Kotlin

  class RoutingActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        val splashScreen = installSplashScreen()
        super.onCreate(savedInstanceState)

        // Keep the splash screen visible for this Activity.
        splashScreen.setKeepOnScreenCondition { true }
        startSomeNextActivity()
        finish()
     }
   ...
  

Java

  public class RoutingActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      SplashScreen splashScreen = SplashScreen.installSplashScreen(this);

       super.onCreate(savedInstanceState);

       // Keep the splash screen visible for this Activity.
       splashScreen.setKeepOnScreenCondition(() -> true );
       startSomeNextActivity();
       finish();
    }
  ...
  

ब्रैंडिंग के लिए, पसंद के मुताबिक बनाई गई गतिविधि को बनाए रखना

अगर आपको ब्रैंडिंग से जुड़ी वजहों के लिए, पिछली स्प्लैश स्क्रीन Activity का इस्तेमाल करना है, तो सिस्टम स्प्लैश स्क्रीन से कस्टम स्प्लैश स्क्रीन पर ट्रांज़िशन किया जा सकता है स्प्लैश को खारिज करने के लिए, ऐनिमेशन को को कस्टमाइज़ करके Activity स्क्रीन का इस्तेमाल करें. हालांकि, अगर हो सके, तो इस स्थिति से बचना और SplashScreen का इस्तेमाल करना ही बेहतर है अपनी स्प्लैश स्क्रीन को ब्रैंड के तौर पर सेट करने के लिए एपीआई.

अगर आपको कोई डायलॉग दिखाना हो, तो हम उसे अगली कस्टम स्प्लैश स्क्रीन गतिविधि पर दिखाने का सुझाव दिया जा सकता है या पेज की मुख्य गतिविधि पर क्लिक करें.

कस्टम स्प्लैश स्क्रीन पर की गई गतिविधि को हटाना

आम तौर पर, हमारा सुझाव है कि आप अपनी पिछली कस्टम स्प्लैश स्क्रीन Activity को हटा दें इससे स्प्लैश स्क्रीन के दोहराव से बचा जा सकता है, ताकि काम करने की क्षमता को बढ़ाया जा सके. और स्प्लैश स्क्रीन लोड होने में लगने वाले समय को कम करें. ऐसी अलग-अलग तकनीकें हैं जो इसका इस्तेमाल करके, स्प्लैश स्क्रीन पर ग़ैर-ज़रूरी गतिविधियों को दिखाने से बचा जा सकता है.

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

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

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

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

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

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

पहली इमेज. यूज़र इंटरफ़ेस (यूआई) प्लेसहोल्डर दिखाए जा रहे हैं.