প্যাকেজস্কোপ (পরীক্ষামূলক) দিয়ে নির্দিষ্ট প্যাকেজগুলি অপ্টিমাইজ করুন

আপনি packageScope ব্যবহার করে R8 ব্যবহার করে নির্দিষ্ট প্যাকেজগুলি অপ্টিমাইজ করতে পারেন। এটি এমন অ্যাপগুলির জন্য একটি ঐচ্ছিক প্রথম পদক্ষেপ হিসাবে ডিজাইন করা হয়েছে যারা এখনও R8 ব্যবহার করে না এবং ইতিমধ্যেই R8 ব্যবহার করে এমন অ্যাপগুলির জন্য সুপারিশ করা হয় না।

packageScope ব্যবহার করবেন কিনা তা বিবেচনা করুন

যদি আপনার অ্যাপটি ইতিমধ্যেই R8 ব্যবহার করে থাকে, তাহলে packageScope ব্যবহার করবেন না, কারণ এটি পারফরম্যান্স এবং অ্যাপের আকারের দিক থেকে একটি সাবঅপ্টিমাল কনফিগারেশন। পরিবর্তে, উন্নত Keep নিয়ম ব্যবহার করে অথবা, যদি সামঞ্জস্যতা মোড ব্যবহার করেন, তাহলে R8 এর ফুল মোডে মাইগ্রেট করে আপনার অ্যাপের R8 কনফিগারেশন উন্নত করুন।

যেসব অ্যাপ এখনও R8 ব্যবহার করে না, কিন্তু R8 গ্রহণ করছে, তাদের জন্য packageScope ব্যবহার করে ক্রমবর্ধমানভাবে ট্রানজিশন পরিচালনা করুন। যেহেতু R8 শক্তিশালী অপ্টিমাইজেশন প্রয়োগ করে যা অ্যাপের আচরণ পরিবর্তন করতে পারে, এই অপ্টিমাইজেশনগুলিকে নির্দিষ্ট প্যাকেজগুলিতে স্কোপ করে যা অপ্টিমাইজ করা নিরাপদ—যেমন AndroidX এবং Kotlin—আপনাকে ন্যূনতম ঝুঁকির সাথে কর্মক্ষমতা লাভ অর্জন করতে দেয়। আপনার অ্যাপ স্থিতিশীল হওয়ার পরে, আপনি ধীরে ধীরে আপনার বাকি কোডবেস এবং নির্ভরতাগুলিতে এই অপ্টিমাইজেশনগুলি প্রসারিত করতে পারেন, প্রতিটি পর্যায়ে স্থিতিশীলতার জন্য পরীক্ষা করতে পারেন।

পূর্বশর্ত

packageScope সাথে R8 ব্যবহার করার জন্য Android Gradle Plugin 9.0 বা তার পরবর্তী সংস্করণ প্রয়োজন।

অপ্টিমাইজেশন কনফিগার করুন

packageScope দিয়ে অপ্টিমাইজেশন সক্ষম করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন।

অপ্টিমাইজ করার জন্য লাইব্রেরি বেছে নিন

অপ্টিমাইজ করার জন্য লাইব্রেরিগুলি চিহ্নিত করুন। আমরা AndroidX এবং Kotlin লাইব্রেরিগুলি androidx.** , kotlin.** , এবং kotlinx.** দিয়ে শুরু করার পরামর্শ দিচ্ছি কারণ এগুলি স্থিতিশীল লাইব্রেরি যা R8 সামঞ্জস্যের জন্য কনফিগার করা হয়েছে।

প্যাকেজস্কোপের সাথে R8 ব্যবহারের জন্য সমর্থন সক্ষম করুন

আপনার প্রোজেক্টের gradle.properties ফাইলে নিম্নলিখিতটি যোগ করুন:

android.r8.gradual.support=true

অপ্টিমাইজেশন ব্লক সেট আপ করুন

আপনার মডিউল-স্তরের build.gradle.kts (অথবা build.gradle ) ফাইলে, আপনার রিলিজ বিল্ড কনফিগারেশনে একটি optimization ব্লক যোগ করুন। এই ব্লকের ভিতরে, আপনি যে নির্দিষ্ট প্যাকেজগুলি অপ্টিমাইজ করতে চান তার তালিকা তৈরি করতে packageScope ব্যবহার করুন। আপনার build.gradle.kts ফাইলে, আপনার প্যাকেজ তালিকা setOf() এ মুড়ে দিন।

কোটলিন

android {
  buildTypes {
    release {
      proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"),"proguard-rules.pro")
      optimization {
        enable = true
        packageScope = setOf("androidx.**","kotlin.**", "kotlinx.**")
      }
    }
  }
}

খাঁজকাটা

android {
  buildTypes {
    release {
      proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      optimization {
        enable = true
        packageScope = ["androidx.**", "kotlin.**", "kotlinx.**"]
      }
    }
  }
}

অপ্টিমাইজেশন পরীক্ষা করুন

packageScope ঘোষণা প্রয়োগ বা আপডেট করার পরে, আপনার অ্যাপটি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করে দেখুন যে কোনও অপ্রত্যাশিত ক্র্যাশ বা আচরণগত পরিবর্তন ঘটেনি।

নির্দিষ্ট প্যাকেজগুলি অপ্টিমাইজ করা থেকে আপনার সম্পূর্ণ অ্যাপটি অপ্টিমাইজ করার দিকে রূপান্তর

অপ্টিমাইজেশনের সুবিধা সর্বাধিক করার জন্য, আপনার লক্ষ্য রাখা উচিত ধীরে ধীরে আপনার সম্পূর্ণ অ্যাপে packageScope ব্যবহার থেকে R8 ব্যবহারে রূপান্তরিত হওয়া। এই প্রক্রিয়ায় আপনার অপ্টিমাইজেশন কভারেজ ক্রমশ প্রসারিত করা জড়িত:

  1. স্থিতিশীল লাইব্রেরি দিয়ে শুরু করুনpackageScope তালিকায় কেবলমাত্র বহুল ব্যবহৃত, স্থিতিশীল লাইব্রেরি অন্তর্ভুক্ত করে শুরু করুন যা R8 এর অপ্টিমাইজেশনের সাথে সামঞ্জস্যপূর্ণ। AndroidX এবং Kotlin লাইব্রেরি androidx.** , kotlin.** , এবং kotlinx.** দিয়ে শুরু করুন।
  2. ক্রমবর্ধমানভাবে প্যাকেজ যোগ করুন । ধীরে ধীরে packageScope এ নতুন প্যাকেজ প্রিফিক্স যোগ করুন:
    1. নির্ভরতা মূল্যায়ন করুন । আপনার অ্যাপের লাইব্রেরিগুলি পর্যালোচনা করুন। packageScope তালিকায় যোগ করার জন্য ভালো প্রার্থীদের মধ্যে রয়েছে অফিসিয়াল গুগল লাইব্রেরি (উদাহরণস্বরূপ, com.google.** ) এবং অন্যান্য শক্তিশালী লাইব্রেরি যেমন OkHttp (উদাহরণস্বরূপ, okhttp3.** এবং okio.** )। যেসব লাইব্রেরিতে ভারী প্রতিফলন, সিরিয়ালাইজেশন বা নেটিভ কোড কল (JNI) জড়িত নয়, সেগুলিকে অগ্রাধিকার দিন।
    2. প্যাকেজের আকারের উপর ভিত্তি করে অগ্রাধিকার নির্ধারণ করুন । আপনার অ্যাপের আকারে সবচেয়ে বড় অবদানকারী শনাক্ত করতে Android Studio এর APK বিশ্লেষক ব্যবহার করুন। 1. R8 বন্ধ করে একটি রিলিজ AAB বা APK তৈরি করুন। 1. এটি অ্যানালাইজারে খুলুন এবং dex ফাইলগুলি পরীক্ষা করুন। 1. আকার অনুসারে প্যাকেজগুলি সাজান। বৃহত্তম প্যাকেজগুলি অপ্টিমাইজেশনের জন্য বিনিয়োগের উপর সর্বোচ্চ রিটার্ন (ROI) অফার করে। এগুলিকে প্রথমে লক্ষ্য করলে আপনি প্রক্রিয়ার শুরুতে সবচেয়ে উল্লেখযোগ্য আকার হ্রাস পাবেন, যতক্ষণ না এই লাইব্রেরিগুলিতে অত্যধিক বিস্তৃত রাখার নিয়ম না থাকে। আরও তথ্যের জন্য বুদ্ধিমানের সাথে লাইব্রেরি নির্বাচন করুন দেখুন।
  3. আচরণগত পরিবর্তনগুলি যাচাই করুন । প্রতিটি নতুন প্যাকেজ প্রিফিক্স যোগ করার পরে, কোনও রিগ্রেশন বা অপ্রত্যাশিত আচরণ সনাক্ত এবং সমাধান করার জন্য ব্যাপক পরীক্ষা পরিচালনা করুন।
  4. অ্যাপ প্যাকেজগুলি শেষ পর্যন্ত যোগ করুন । যদি আপনার অ্যাপ প্যাকেজগুলি খুব বেশি প্রতিফলন ব্যবহার না করে, তাহলে packageScope এ অ্যাপ প্যাকেজগুলি অন্তর্ভুক্ত করুন এবং প্রয়োজন অনুসারে ক্রমবর্ধমানভাবে keep নিয়মগুলি যোগ করুন। যদি আপনার অ্যাপ প্যাকেজগুলি অনেক প্রতিফলন ব্যবহার করে, তাহলে packageScope এ প্যাকেজগুলি অন্তর্ভুক্ত করুন এবং প্রয়োজনীয় প্যাকেজগুলির জন্য প্যাকেজ-ওয়াইড keep নিয়মগুলি যোগ করুন। keep নিয়মগুলি পুনরায় সংশোধন করুন।
  5. আপনার সম্পূর্ণ অ্যাপে R8 ব্যবহার শুরু করুন । আপনার অ্যাপের বেশিরভাগ নির্ভরতা packageScope ঘোষণায় অন্তর্ভুক্ত হওয়ার পরে এবং আপনার অ্যাপটি স্থিতিশীল হওয়ার পরে, আপনার সম্পূর্ণ অ্যাপটিকে পূর্ণ মোডে অপ্টিমাইজ করতে packageScope সরিয়ে ফেলুন।