আপনার স্প্ল্যাশ স্ক্রিন বাস্তবায়নকে Android 12 এবং পরবর্তীতে স্থানান্তর করুন

আপনি যদি অ্যান্ড্রয়েড 11 বা তার আগে একটি কাস্টম স্প্ল্যাশ স্ক্রিন প্রয়োগ করেন, তাহলে আপনার অ্যাপটি SplashScreen এপিআই-তে স্থানান্তর করুন যাতে এটি Android 12 এবং পরবর্তীতে সঠিকভাবে প্রদর্শিত হয় তা নিশ্চিত করতে সহায়তা করে।

অ্যান্ড্রয়েড 12 থেকে শুরু করে, সিস্টেমটি সমস্ত অ্যাপের জন্য ঠান্ডা এবং উষ্ণ শুরুতে অ্যান্ড্রয়েড সিস্টেম ডিফল্ট স্প্ল্যাশ স্ক্রীন প্রয়োগ করে। ডিফল্টরূপে, এই সিস্টেম স্প্ল্যাশ স্ক্রিনটি আপনার অ্যাপের লঞ্চার আইকন উপাদান এবং আপনার থিমের windowBackground ব্যবহার করে তৈরি করা হয়, যদি এটি একক রঙের হয়।

আপনি যদি আপনার অ্যাপ স্থানান্তর না করেন, তাহলে Android 12 এবং পরবর্তীতে আপনার অ্যাপ লঞ্চের অভিজ্ঞতা অবনমিত হতে পারে বা অনিচ্ছাকৃত ফলাফল হতে পারে।

  • যদি আপনার বিদ্যমান স্প্ল্যাশ স্ক্রিনটি একটি কাস্টম থিম ব্যবহার করে প্রয়োগ করা হয় যা android:windowBackground কে ওভাররাইড করে , সিস্টেমটি আপনার কাস্টম স্প্ল্যাশ স্ক্রীনটিকে Android 12 এবং পরবর্তীতে একটি ডিফল্ট Android সিস্টেম স্প্ল্যাশ স্ক্রীন দিয়ে প্রতিস্থাপন করে। এটি আপনার অ্যাপের অভিপ্রেত অভিজ্ঞতা নাও হতে পারে।

  • যদি আপনার বিদ্যমান স্প্ল্যাশ স্ক্রিনটি একটি ডেডিকেটেড Activity ব্যবহার করে প্রয়োগ করা হয়, তাহলে Android 12 বা তার পরে চলমান ডিভাইসগুলিতে আপনার অ্যাপ চালু করলে ডুপ্লিকেট স্প্ল্যাশ স্ক্রীন দেখা যায়: সিস্টেম স্প্ল্যাশ স্ক্রিন প্রদর্শন করে, তারপরে আপনার বিদ্যমান স্প্ল্যাশ স্ক্রিন কার্যকলাপ।

আপনি এই নথিতে বর্ণিত মাইগ্রেশন প্রক্রিয়া সম্পূর্ণ করার মাধ্যমে এই অধঃপতন বা অনিচ্ছাকৃত অভিজ্ঞতাগুলি প্রতিরোধ করতে পারেন। আপনি স্থানান্তরিত করার পরে, API স্টার্টআপের সময়কে উন্নত করে, স্প্ল্যাশ স্ক্রিন অভিজ্ঞতার উপর আপনাকে সম্পূর্ণ নিয়ন্ত্রণ দেয় এবং প্ল্যাটফর্মে অন্যান্য অ্যাপের সাথে আরও সামঞ্জস্যপূর্ণ লঞ্চ অভিজ্ঞতা তৈরি করে।

স্প্ল্যাশস্ক্রিন কমপ্যাট লাইব্রেরি

আপনি সরাসরি SplashScreen API ব্যবহার করতে পারেন, কিন্তু আমরা দৃঢ়ভাবে এর পরিবর্তে Androidx SplashScreen কম্প্যাট লাইব্রেরি ব্যবহার করার পরামর্শ দিই। কম্প্যাট লাইব্রেরি SplashScreen API ব্যবহার করে, পশ্চাদগামী-সামঞ্জস্যতা সক্ষম করে এবং সমস্ত Android সংস্করণ জুড়ে স্প্ল্যাশ স্ক্রীন প্রদর্শনের জন্য একটি সামঞ্জস্যপূর্ণ চেহারা এবং অনুভূতি তৈরি করে। এই নথিটি কম্প্যাট লাইব্রেরি ব্যবহার করে লেখা হয়েছে।

আপনি যদি সরাসরি SplashScreen API ব্যবহার করে মাইগ্রেশন করেন, তাহলে Android 11 এবং তার আগে আপনার স্প্ল্যাশ স্ক্রিনটি মাইগ্রেশনের আগের মতোই দেখাবে। অ্যান্ড্রয়েড 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. super.onCreate() কল করার আগে শুরুর কার্যকলাপে installSplashScreen কল করুন।

    কোটলিন

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

    জাভা

    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 ব্যবহার করতে পারেন তবে এটিকে রেন্ডার করা থেকে বিরত রাখতে পারেন৷ এটি করার ফলে স্প্ল্যাশ স্ক্রীন পরবর্তী কার্যকলাপে স্থানান্তরিত হয় এবং একটি মসৃণ রূপান্তর সমর্থন করে।

কোটলিন

  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()
     }
   ...
  

জাভা

  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 API ব্যবহার করা ভাল।

আপনি যদি একটি ডায়ালগ প্রদর্শন করতে চান, আমরা এটিকে পরবর্তী কাস্টম স্প্ল্যাশ স্ক্রীন কার্যকলাপে বা সিস্টেম স্প্ল্যাশ স্ক্রীনের পরে প্রধান কার্যকলাপে প্রদর্শন করার পরামর্শ দিই।

কাস্টম স্প্ল্যাশ স্ক্রিন কার্যকলাপ সরান

সাধারণত, আমরা স্প্ল্যাশ স্ক্রীনের ডুপ্লিকেশন এড়াতে, দক্ষতা বাড়াতে এবং স্প্ল্যাশ স্ক্রীন লোড হওয়ার সময় কমাতে আপনার পূর্ববর্তী কাস্টম স্প্ল্যাশ স্ক্রীন Activity সম্পূর্ণরূপে অপসারণ করার সুপারিশ করি। অপ্রয়োজনীয় স্প্ল্যাশ স্ক্রিন কার্যক্রম দেখানো এড়াতে আপনি ব্যবহার করতে পারেন এমন বিভিন্ন কৌশল রয়েছে।

  • আপনার উপাদান, মডিউল বা লাইব্রেরির জন্য অলস লোডিং ব্যবহার করুন। অ্যাপটি লঞ্চের সময় কাজ করার জন্য প্রয়োজনীয় নয় এমন উপাদান বা লাইব্রেরি লোড করা বা শুরু করা এড়িয়ে চলুন। অ্যাপের প্রয়োজন হলে সেগুলি পরে লোড করুন৷

    আপনার অ্যাপের সঠিকভাবে কাজ করার জন্য যদি সত্যিকারের কোনো উপাদানের প্রয়োজন হয়, তবে এটিকে লোড করুন শুধুমাত্র যখন এটির প্রয়োজন হয় এবং লঞ্চের সময় নয়, অথবা অ্যাপটি শুরু হওয়ার পরে এটি লোড করার জন্য একটি ব্যাকগ্রাউন্ড থ্রেড ব্যবহার করুন। আপনার Application.onCreate() যতটা সম্ভব হালকা রাখার চেষ্টা করুন।

    আপনি অ্যাপ্লিকেশন স্টার্টআপে উপাদানগুলি শুরু করতে অ্যাপ স্টার্টআপ লাইব্রেরি ব্যবহার করেও উপকৃত হতে পারেন। এটি করার সময়, সূচনা ক্রিয়াকলাপের জন্য সমস্ত প্রয়োজনীয় মডিউলগুলি এখনও লোড করা নিশ্চিত করুন এবং অলসভাবে লোড করা মডিউলগুলি উপলব্ধ যেখানে জ্যাঙ্কগুলি প্রবর্তন করবেন না।

  • স্থানীয়ভাবে অল্প পরিমাণ ডেটা লোড করার সময় একটি স্থানধারক তৈরি করুন। প্রস্তাবিত থিমিং পদ্ধতি ব্যবহার করুন এবং অ্যাপ প্রস্তুত না হওয়া পর্যন্ত রেন্ডারিং আটকে রাখুন। ব্যাকওয়ার্ড-সামঞ্জস্যপূর্ণ একটি স্প্ল্যাশ স্ক্রীন বাস্তবায়ন করতে, স্প্ল্যাশ স্ক্রীন অন-স্ক্রিন দীর্ঘ সময়ের জন্য রাখুন- এ বর্ণিত ধাপগুলি অনুসরণ করুন।

  • স্থানধারক দেখান। অনির্দিষ্ট সময়কাল সহ নেটওয়ার্ক-ভিত্তিক লোডের জন্য, স্প্ল্যাশ স্ক্রীনটি খারিজ করুন এবং অ্যাসিঙ্ক্রোনাস লোডিংয়ের জন্য স্থানধারক দেখান। লোডিং অবস্থা প্রতিফলিত বিষয়বস্তু এলাকায় সূক্ষ্ম অ্যানিমেশন প্রয়োগ করার কথা বিবেচনা করুন। নিশ্চিত করুন যে লোড করা বিষয়বস্তু কাঠামোটি কঙ্কালের কাঠামোর সাথে মেলে এবং সেইসাথে সামগ্রীটি লোড করার সময় একটি মসৃণ রূপান্তর সমর্থন করতে পারে৷

  • ক্যাশিং ব্যবহার করুন । যখন একজন ব্যবহারকারী প্রথমবার আপনার অ্যাপটি খোলে, আপনি নিচের চিত্রে দেখানো কিছু UI উপাদানের জন্য লোডিং সূচক দেখাতে পারেন। পরের বার যখন ব্যবহারকারী আপনার অ্যাপে ফিরে আসবে, আপনি আরও সাম্প্রতিক সামগ্রী লোড করার সময় এই ক্যাশে করা সামগ্রীটি দেখাতে পারেন৷

চিত্র 1. UI স্থানধারক দেখানো হচ্ছে।