আপনার তাত্ক্ষণিক অ্যাপের আকার কমিয়ে দিন

Google Play Instant একটি ওয়েব লিঙ্কের ট্যাপে সমৃদ্ধ, স্থানীয় অভিজ্ঞতা প্রদান করে৷ লোকেরা আপফ্রন্ট ইনস্টলেশন ছাড়াই আপনার অ্যাপটি অনুভব করতে পারে, একটি উচ্চ স্তরের এবং ব্যস্ততার গুণমান সক্ষম করে৷ একটি সাধারণ মোবাইল ওয়েবপৃষ্ঠার মতো দ্রুত একটি তাত্ক্ষণিক অ্যাপ লোড করতে, যদিও, আপনাকে একটি সুগঠিত, দক্ষ তাত্ক্ষণিক অ্যাপ তৈরি করতে হবে। আপনার তাত্ক্ষণিক অ্যাপের বাইনারি যত ছোট হবে, এটি তত দ্রুত লোড হবে এবং ব্যবহারকারীর অভিজ্ঞতা তত মসৃণ হবে৷

এই দস্তাবেজটি একটি মসৃণ তাত্ক্ষণিক অ্যাপ অভিজ্ঞতা সক্ষম করতে আপনার অ্যাপের গঠন এবং বাইনারি আকার পরিচালনা করার জন্য সর্বোত্তম অনুশীলনগুলিকে প্রকাশ করে৷ আপনার ইনস্টলযোগ্য অ্যাপের সুবিধার জন্য আপনি এই একই অনুশীলনগুলি প্রয়োগ করতে পারেন।

একাধিক বৈশিষ্ট্য মডিউল মধ্যে রিফ্যাক্টর

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

আপনি বৈশিষ্ট্য মডিউল তৈরি করার সময়, বেস বৈশিষ্ট্য মডিউল যতটা সম্ভব ছোট রাখুন। বিশেষ করে, আপনার অ্যাপের সেই অংশগুলিতে গভীর মনোযোগ দিন যেগুলির জন্য আপনার নির্ভরশীল লাইব্রেরিতে অ্যাক্সেস প্রয়োজন৷ যদি শুধুমাত্র একটি বৈশিষ্ট্য মডিউল একটি প্রদত্ত লাইব্রেরি ব্যবহার করে, সেই লাইব্রেরিটিকে বৈশিষ্ট্য মডিউলে আমদানি করুন, বেস বৈশিষ্ট্য মডিউল নয়। মনে রাখবেন যে, একটি নির্দিষ্ট বৈশিষ্ট্য মডিউলের জন্য একটি তাত্ক্ষণিক অ্যাপ্লিকেশন প্রকাশ করতে, সেই বৈশিষ্ট্য মডিউলের মোট আকার এবং বেস বৈশিষ্ট্য মডিউলটি অবশ্যই 15 MB এর কম হতে হবে।

সেরা অনুশীলন

আপনার অ্যাপ রিফ্যাক্টর করার সময়, নিম্নলিখিত সেরা অনুশীলনগুলি মনে রাখুন:

উভয় ধরনের অ্যাপের জন্য একই কোডবেস ব্যবহার করুন
আপনি আপনার ইনস্টল করা অ্যাপ্লিকেশন এবং আপনার তাত্ক্ষণিক অ্যাপ্লিকেশন উভয় তৈরি করতে একই মডুলার কোডবেস ব্যবহার করে আপনার অ্যাপের প্রকল্প পরিচালনা প্রক্রিয়া সহজ করতে পারেন৷
একাধিক বৈশিষ্ট্য মডিউল জন্য ডিজাইন
এমনকি যদি আপনার অ্যাপের শুধুমাত্র একটি ওয়ার্কফ্লো থাকে এবং আপাতত শুধুমাত্র একটি ফিচার মডিউলের প্রয়োজন হয়, তবুও একাধিক ফিচার মডিউলের জন্য ডিজাইন করা একটি ভালো ধারণা। এইভাবে, আপনি আসল বৈশিষ্ট্য মডিউলের আকারকে প্রভাবিত না করে আপনার অ্যাপে বিদ্যমান মডিউল যোগ করতে পারেন।
শুরুতে বৈশিষ্ট্য মডিউল আকার সীমা উপর ফোকাস করবেন না
বৈশিষ্ট্য মডিউল আকার সীমা স্থানীয়ভাবে নির্মিত বাইনারি প্রযোজ্য নয়. এছাড়াও আপনি অভ্যন্তরীণ পরীক্ষার ট্র্যাকের মাধ্যমে একটি তাত্ক্ষণিক অ্যাপ প্রকাশ করতে পারেন, যা বৈশিষ্ট্য মডিউল আকারে 15 এমবি সীমা প্রয়োগ করে। শুধুমাত্র আলফা এবং উৎপাদন ট্র্যাক 15 MB সীমা প্রয়োগ করে৷

অ্যাপ রিসোর্স আপডেট করুন

কিছু অ্যাপ্লিকেশান, বিশেষ করে যেগুলির দীর্ঘ কোডবেস ইতিহাস রয়েছে, সেগুলিতে সংস্থান রয়েছে যা আপনার অ্যাপের বাইনারিগুলি আর ব্যবহার করে না৷ আপনি আপনার অ্যাপের মডিউলগুলিকে ছোট করার উপায়গুলি সন্ধান করার সময়, অপ্রয়োজনীয় কোডের নিম্নলিখিত সাধারণ উত্সগুলি বিবেচনা করুন৷

ইমেজ ফাইল আকার হ্রাস

আপনি PNG এর পরিবর্তে WebP ফাইল ফর্ম্যাট ব্যবহার করে আপনার অ্যাপের অঙ্কনযোগ্য মোট আকার উল্লেখযোগ্যভাবে কমাতে পারেন। Google Play Instant স্বচ্ছতা এবং ক্ষতিহীন কম্প্রেশন সহ WebP-এর জন্য সম্পূর্ণ সমর্থন প্রদান করে, তাই ছবির গুণমান একই থাকে।

যদি সম্ভব হয়, অন্যান্য PNG ছবি ব্যবহার করার জন্য সমস্ত পশ্চাদগামী সামঞ্জস্যের প্রয়োজনীয়তাগুলি সরান৷ আপনি যদি PNG ছবিগুলি ব্যবহার করতে চান, তাহলে সেগুলিকে আপনার অ্যাপ তৈরি এবং ইনস্টল করতে ব্যবহৃত মডিউলে রাখুন৷

অব্যবহৃত ভাষাগুলি সরান

যদি আপনার অ্যাপ একাধিক ভাষা সমর্থন করে, তাহলে যতটা সম্ভব স্থানীয়কৃত সম্পদ কমিয়ে দিন। আপনি যদি একটি "অ্যাপ কম্প্যাট" লাইব্রেরি ব্যবহার করেন, যেমন android.support.v7.appcompat ব্যবহার করেন তাহলে এই ধাপটি সম্পূর্ণ করার জন্য বিশেষভাবে উপযোগী। এই লাইব্রেরিতে অনেক ভাষায় বার্তা রয়েছে, যার মধ্যে কিছু আপনার অ্যাপ সমর্থন নাও করতে পারে।

আরও জানতে, অব্যবহৃত বিকল্প সংস্থানগুলি, বিশেষ করে অব্যবহৃত ভাষাগুলি কীভাবে সরিয়ে ফেলা যায় তা দেখুন।

অতিরিক্ত ফাইল সরান

আপনার অ্যাপ হয়তো আর কিছু সম্পদ ব্যবহার করবে না যা আপনি আপনার প্রকল্পে আমদানি করেছেন। এই সংস্থানগুলি সরাতে সাহায্য করার জন্য, Android স্টুডিওতে এই নির্দিষ্ট পরিস্থিতির জন্য একটি লিন্ট চেক রয়েছে। টুলটি ব্যবহার করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. Control+Alt+Shift+I ( Mac OS-এ Command+Alt+Shift+I ) টিপুন।
  2. প্রদর্শিত ডায়ালগে, "unused resources" টাইপ করুন।
  3. সম্পদ ব্যবহার পরিদর্শন প্রক্রিয়া শুরু করতে অব্যবহৃত সম্পদ বিকল্পটি নির্বাচন করুন।

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

অব্যবহৃত লাইব্রেরি সরান

একটি অ্যাপের পরিধি বাড়ার সাথে সাথে এটি আশ্চর্যজনক সংখ্যক নির্ভরতা গ্রহণ করতে পারে, বিশেষ করে নিম্নলিখিত ধরনেরগুলির মধ্যে একটি:

  • নেটিভ লাইব্রেরি: যে লাইব্রেরিগুলিতে নেটিভ কোড থাকে যেগুলি আপনার ইনস্ট্যান্ট অ্যাপ কখনই চলে না।
  • ট্রানজিটিভ নির্ভরতা: লাইব্রেরি যার উপর আপনার অ্যাপের আমদানি করা লাইব্রেরি নির্ভর করে।

অ্যান্ড্রয়েড স্টুডিওতে আপনার অ্যাপের প্রজেক্টে কোনো বহিরাগত নির্ভরতা শনাক্ত করার জন্য বেশ কিছু দরকারী টুল রয়েছে:

বহিরাগত লাইব্রেরি

অ্যান্ড্রয়েড স্টুডিওর প্রজেক্ট ভিউতে একটি বহিরাগত লাইব্রেরি বিভাগ রয়েছে।

এই বিভাগে নেটিভ কোড এবং সমস্ত ট্রানজিটিভ নির্ভরতা সহ আপনার অ্যাপ ব্যবহার করে এমন প্রতিটি লাইব্রেরি রয়েছে। এই দৃশ্যে, আপনার অ্যাপের প্রয়োজন নেই এমন অব্যবহৃত বা নকল লাইব্রেরিগুলি সন্ধান করুন৷

APK বিশ্লেষক

আপনি তাত্ক্ষণিক অ্যাপ বিল্ড সহ বিভিন্ন বিল্ডের তুলনা করতে APK বিশ্লেষক টুল ব্যবহার করতে পারেন।

আপনার অ্যাপের কোন লাইব্রেরিগুলির প্রয়োজন নেই তা নির্ধারণ করার পরে, আপনার Gradle বিল্ড ফাইলে নিম্নলিখিতগুলির অনুরূপ লাইন যোগ করে সেগুলিকে বাদ দিন:

<feature_module>/build.gradle

গ্রোভি

dependencies {
    implementation('some-important-but-large-library') {
        exclude group: 'com.example.imgtools', module: 'native'
    }
}

কোটলিন

dependencies {
    implementation('some-important-but-large-library') {
        exclude(group = "com.example.imgtools", module = "native")
    }
}

আপনার অ্যাপের নির্ভরতার মোট আমদানির আকার কমানোর বিষয়ে আরও তথ্যের জন্য, নির্ভরতা ব্যবস্থাপনার জন্য গ্রেডলের নির্দেশিকা দেখুন।

সম্পদের ক্লাউড ডেলিভারি বাস্তবায়ন করুন

আপনি যদি আকারকে আরও নিচে সঙ্কুচিত করতে চান, তাহলে আপনাকে সম্পদের ক্লাউড ডেলিভারির উপর নির্ভর করতে হতে পারে।