DEX কোড অপ্টিমাইজেশন হলো অ্যান্ড্রয়েডের একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়, যা আপনার অ্যাপের কম্পাইলেশনের মান, আকার এবং পারফরম্যান্স নিরীক্ষণ ও উন্নত করতে সাহায্য করে। R8 বা বিকল্প টুল (যেমন ProGuard-কম্প্যাটিবল অপ্টিমাইজার বা সেকেন্ডারি DEX পোস্ট-প্রসেসর) ব্যবহার করে আপনার কোড অপ্টিমাইজ ও অবফাসকেট করলে তা আপনার অ্যাপের DEX সাইজ কমায়, রানটাইম পারফরম্যান্স উন্নত করে এবং এর মেমোরি ফুটপ্রিন্ট হ্রাস করে।
DEX বা ডালভিক এক্সিকিউটেবল ফাইলে আপনার অ্যাপ চালানোর জন্য ব্যবহৃত কম্পাইল করা কোড থাকে। এতে সাধারণত জাভা এবং কোটলিন কোড অন্তর্ভুক্ত থাকে, যা কম্পাইল করা C++ কোড বা .so ফাইলের থেকে ভিন্ন।
অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপ এবং গেমের জন্য DEX কোড অপ্টিমাইজেশন মেট্রিক্স রিপোর্ট করে, কিন্তু শুধুমাত্র সেইসব অ্যাপ এবং গেমের জন্য নির্ধারিত সীমা প্রয়োগ করে যেগুলো নির্দিষ্ট আকারের প্রয়োজনীয়তা পূরণ করে।
সমস্যাটি শনাক্ত করুন
আপনার অ্যাপের DEX কোড অপটিমাইজেশন লেভেল কম হলে Android vitals আপনাকে সতর্ক করতে পারে। এর মধ্যে R8 ব্যবহারকারী অ্যাপ এবং গেমের জন্য অবফাসকেশন, শ্রিংকিং এবং অপটিমাইজেশন অন্তর্ভুক্ত। যেসব অ্যাপ R8 ব্যবহার করে না, সেগুলোর ক্ষেত্রে Android vitals অপটিমাইজেশন, শ্রিংকিং এবং অবফাসকেশন রেট পরীক্ষা করার চেষ্টা করে, কিন্তু প্রয়োজনে বিকল্প হিসেবে অবফাসকেশন হিউরিস্টিকস ব্যবহার করে।
অপ্টিমাইজেশন স্থিতি নিরীক্ষণ করুন
আপনার অ্যাপ যখন কোড অপটিমাইজেশনের জন্য নির্ধারিত ন্যূনতম শতাংশ পূরণ করতে ব্যর্থ হয়, তখন প্লে কনসোলের মাধ্যমে আপনাকে সতর্ক করে অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের পারফরম্যান্স উন্নত করতে সাহায্য করতে পারে। শ্রিনকিং, অপটিমাইজেশন এবং অবফাসকেশনের বিস্তারিত সংজ্ঞার জন্য, “Use R8 Configuration Analyzer” দেখুন।
AGP ভার্সন ৮.১০ বা তার উচ্চতর সংস্করণের সর্বশেষ প্যাচ দিয়ে তৈরি অ্যাপগুলোর ক্ষেত্রে, এই শতাংশগুলো অন্তর্ভুক্ত r8.json ফাইল থেকে নেওয়া হয়।
AGP-এর নিম্নতর সংস্করণগুলির জন্য অথবা যেখানে r8.json ফাইলটি অন্তর্ভুক্ত থাকে না, সেখানে শতাংশগুলি গণনা করা হয় mapping.txt ফাইল থেকে (যদি সেটি অন্তর্ভুক্ত থাকে), অথবা ম্যাপিং ফাইলটি উপলব্ধ না থাকলে DEX হিউরিস্টিকস ব্যবহার করে।
যেসব অ্যাপ বিকল্প কোড অপটিমাইজার দিয়ে অপটিমাইজ করা হয়, সেগুলোর ক্ষেত্রে অ্যান্ড্রয়েড ভাইটালস অ্যাপ বান্ডেলে থাকা ক্লাস, মেথড এবং ফিল্ডের শতকরা হার অনুমান করার জন্য একটি বিশ্লেষণ করে।
মোট DEX আকারের ন্যূনতম
যদিও অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপের জন্য কোড অপ্টিমাইজেশন মেট্রিক্স গণনা করে, আপনি কেবল তখনই অ্যালার্ট পাবেন যদি আপনার অ্যাপ বান্ডেল নিম্নলিখিত মোট DEX আকারের প্রয়োজনীয়তাগুলি পূরণ করে:
- অ্যাপস : বান্ডেলটিতে অসংকুচিত আকার অনুযায়ী কমপক্ষে ১০ মেগাবাইট DEX কোড রয়েছে।
- গেমস : বান্ডেলটিতে অসংকুচিত আকারে পরিমাপকৃত কমপক্ষে ৫০ মেগাবাইট DEX কোড রয়েছে।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের DEX সাইজ প্রদর্শন করে, কিন্তু আপনি কমান্ড লাইন ব্যবহার করে স্থানীয়ভাবেও এটি পরিমাপ করতে পারেন:
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
আপনার স্কোর গণনা করার জন্য অ্যান্ড্রয়েড ভাইটালস যে সুনির্দিষ্ট মেটাডেটা ব্যবহার করে তা পরীক্ষা করতে, আপনার অ্যাপ বান্ডেল থেকে r8.json ফাইলটি এক্সট্র্যাক্ট করুন:
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json
DEX কোড অপ্টিমাইজেশন হলো অ্যান্ড্রয়েডের একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়, যা আপনার অ্যাপের কম্পাইলেশনের মান, আকার এবং পারফরম্যান্স নিরীক্ষণ ও উন্নত করতে সাহায্য করে। R8 বা বিকল্প টুল (যেমন ProGuard-কম্প্যাটিবল অপ্টিমাইজার বা সেকেন্ডারি DEX পোস্ট-প্রসেসর) ব্যবহার করে আপনার কোড অপ্টিমাইজ ও অবফাসকেট করলে তা আপনার অ্যাপের DEX সাইজ কমায়, রানটাইম পারফরম্যান্স উন্নত করে এবং এর মেমোরি ফুটপ্রিন্ট হ্রাস করে।
DEX বা ডালভিক এক্সিকিউটেবল ফাইলে আপনার অ্যাপ চালানোর জন্য ব্যবহৃত কম্পাইল করা কোড থাকে। এতে সাধারণত জাভা এবং কোটলিন কোড অন্তর্ভুক্ত থাকে, যা কম্পাইল করা C++ কোড বা .so ফাইলের থেকে ভিন্ন।
অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপ এবং গেমের জন্য DEX কোড অপ্টিমাইজেশন মেট্রিক্স রিপোর্ট করে, কিন্তু শুধুমাত্র সেইসব অ্যাপ এবং গেমের জন্য নির্ধারিত সীমা প্রয়োগ করে যেগুলো নির্দিষ্ট আকারের প্রয়োজনীয়তা পূরণ করে।
সমস্যাটি শনাক্ত করুন
আপনার অ্যাপের DEX কোড অপটিমাইজেশন লেভেল কম হলে Android vitals আপনাকে সতর্ক করতে পারে। এর মধ্যে R8 ব্যবহারকারী অ্যাপ এবং গেমের জন্য অবফাসকেশন, শ্রিংকিং এবং অপটিমাইজেশন অন্তর্ভুক্ত। যেসব অ্যাপ R8 ব্যবহার করে না, সেগুলোর ক্ষেত্রে Android vitals অপটিমাইজেশন, শ্রিংকিং এবং অবফাসকেশন রেট পরীক্ষা করার চেষ্টা করে, কিন্তু প্রয়োজনে বিকল্প হিসেবে অবফাসকেশন হিউরিস্টিকস ব্যবহার করে।
অপ্টিমাইজেশন স্থিতি নিরীক্ষণ করুন
আপনার অ্যাপ যখন কোড অপটিমাইজেশনের জন্য নির্ধারিত ন্যূনতম শতাংশ পূরণ করতে ব্যর্থ হয়, তখন প্লে কনসোলের মাধ্যমে আপনাকে সতর্ক করে অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের পারফরম্যান্স উন্নত করতে সাহায্য করতে পারে। শ্রিনকিং, অপটিমাইজেশন এবং অবফাসকেশনের বিস্তারিত সংজ্ঞার জন্য, “Use R8 Configuration Analyzer” দেখুন।
AGP ভার্সন ৮.১০ বা তার উচ্চতর সংস্করণের সর্বশেষ প্যাচ দিয়ে তৈরি অ্যাপগুলোর ক্ষেত্রে, এই শতাংশগুলো অন্তর্ভুক্ত r8.json ফাইল থেকে নেওয়া হয়।
AGP-এর নিম্নতর সংস্করণগুলির জন্য অথবা যেখানে r8.json ফাইলটি অন্তর্ভুক্ত থাকে না, সেখানে শতাংশগুলি গণনা করা হয় mapping.txt ফাইল থেকে (যদি সেটি অন্তর্ভুক্ত থাকে), অথবা ম্যাপিং ফাইলটি উপলব্ধ না থাকলে DEX হিউরিস্টিকস ব্যবহার করে।
যেসব অ্যাপ বিকল্প কোড অপটিমাইজার দিয়ে অপটিমাইজ করা হয়, সেগুলোর ক্ষেত্রে অ্যান্ড্রয়েড ভাইটালস অ্যাপ বান্ডেলে থাকা ক্লাস, মেথড এবং ফিল্ডের শতকরা হার অনুমান করার জন্য একটি বিশ্লেষণ করে।
মোট DEX আকারের ন্যূনতম
যদিও অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপের জন্য কোড অপ্টিমাইজেশন মেট্রিক্স গণনা করে, আপনি কেবল তখনই অ্যালার্ট পাবেন যদি আপনার অ্যাপ বান্ডেল নিম্নলিখিত মোট DEX আকারের প্রয়োজনীয়তাগুলি পূরণ করে:
- অ্যাপস : বান্ডেলটিতে অসংকুচিত আকার অনুযায়ী কমপক্ষে ১০ মেগাবাইট DEX কোড রয়েছে।
- গেমস : বান্ডেলটিতে অসংকুচিত আকারে পরিমাপকৃত কমপক্ষে ৫০ মেগাবাইট DEX কোড রয়েছে।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের DEX সাইজ প্রদর্শন করে, কিন্তু আপনি কমান্ড লাইন ব্যবহার করে স্থানীয়ভাবেও এটি পরিমাপ করতে পারেন:
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
আপনার স্কোর গণনা করার জন্য অ্যান্ড্রয়েড ভাইটালস যে সুনির্দিষ্ট মেটাডেটা ব্যবহার করে তা পরীক্ষা করতে, আপনার অ্যাপ বান্ডেল থেকে r8.json ফাইলটি এক্সট্র্যাক্ট করুন:
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json
DEX কোড অপ্টিমাইজেশন হলো অ্যান্ড্রয়েডের একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়, যা আপনার অ্যাপের কম্পাইলেশনের মান, আকার এবং পারফরম্যান্স নিরীক্ষণ ও উন্নত করতে সাহায্য করে। R8 বা বিকল্প টুল (যেমন ProGuard-কম্প্যাটিবল অপ্টিমাইজার বা সেকেন্ডারি DEX পোস্ট-প্রসেসর) ব্যবহার করে আপনার কোড অপ্টিমাইজ ও অবফাসকেট করলে তা আপনার অ্যাপের DEX সাইজ কমায়, রানটাইম পারফরম্যান্স উন্নত করে এবং এর মেমোরি ফুটপ্রিন্ট হ্রাস করে।
DEX বা ডালভিক এক্সিকিউটেবল ফাইলে আপনার অ্যাপ চালানোর জন্য ব্যবহৃত কম্পাইল করা কোড থাকে। এতে সাধারণত জাভা এবং কোটলিন কোড অন্তর্ভুক্ত থাকে, যা কম্পাইল করা C++ কোড বা .so ফাইলের থেকে ভিন্ন।
অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপ এবং গেমের জন্য DEX কোড অপ্টিমাইজেশন মেট্রিক্স রিপোর্ট করে, কিন্তু শুধুমাত্র সেইসব অ্যাপ এবং গেমের জন্য নির্ধারিত সীমা প্রয়োগ করে যেগুলো নির্দিষ্ট আকারের প্রয়োজনীয়তা পূরণ করে।
সমস্যাটি শনাক্ত করুন
আপনার অ্যাপের DEX কোড অপটিমাইজেশন লেভেল কম হলে Android vitals আপনাকে সতর্ক করতে পারে। এর মধ্যে R8 ব্যবহারকারী অ্যাপ এবং গেমের জন্য অবফাসকেশন, শ্রিংকিং এবং অপটিমাইজেশন অন্তর্ভুক্ত। যেসব অ্যাপ R8 ব্যবহার করে না, সেগুলোর ক্ষেত্রে Android vitals অপটিমাইজেশন, শ্রিংকিং এবং অবফাসকেশন রেট পরীক্ষা করার চেষ্টা করে, কিন্তু প্রয়োজনে বিকল্প হিসেবে অবফাসকেশন হিউরিস্টিকস ব্যবহার করে।
অপ্টিমাইজেশন স্থিতি নিরীক্ষণ করুন
আপনার অ্যাপ যখন কোড অপটিমাইজেশনের জন্য নির্ধারিত ন্যূনতম শতাংশ পূরণ করতে ব্যর্থ হয়, তখন প্লে কনসোলের মাধ্যমে আপনাকে সতর্ক করে অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের পারফরম্যান্স উন্নত করতে সাহায্য করতে পারে। শ্রিনকিং, অপটিমাইজেশন এবং অবফাসকেশনের বিস্তারিত সংজ্ঞার জন্য, “Use R8 Configuration Analyzer” দেখুন।
AGP ভার্সন ৮.১০ বা তার উচ্চতর সংস্করণের সর্বশেষ প্যাচ দিয়ে তৈরি অ্যাপগুলোর ক্ষেত্রে, এই শতাংশগুলো অন্তর্ভুক্ত r8.json ফাইল থেকে নেওয়া হয়।
AGP-এর নিম্নতর সংস্করণগুলির জন্য অথবা যেখানে r8.json ফাইলটি অন্তর্ভুক্ত থাকে না, সেখানে শতাংশগুলি গণনা করা হয় mapping.txt ফাইল থেকে (যদি সেটি অন্তর্ভুক্ত থাকে), অথবা ম্যাপিং ফাইলটি উপলব্ধ না থাকলে DEX হিউরিস্টিকস ব্যবহার করে।
যেসব অ্যাপ বিকল্প কোড অপটিমাইজার দিয়ে অপটিমাইজ করা হয়, সেগুলোর ক্ষেত্রে অ্যান্ড্রয়েড ভাইটালস অ্যাপ বান্ডেলে থাকা ক্লাস, মেথড এবং ফিল্ডের শতকরা হার অনুমান করার জন্য একটি বিশ্লেষণ করে।
মোট DEX আকারের ন্যূনতম
যদিও অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপের জন্য কোড অপ্টিমাইজেশন মেট্রিক্স গণনা করে, আপনি কেবল তখনই অ্যালার্ট পাবেন যদি আপনার অ্যাপ বান্ডেল নিম্নলিখিত মোট DEX আকারের প্রয়োজনীয়তাগুলি পূরণ করে:
- অ্যাপস : বান্ডেলটিতে অসংকুচিত আকার অনুযায়ী কমপক্ষে ১০ মেগাবাইট DEX কোড রয়েছে।
- গেমস : বান্ডেলটিতে অসংকুচিত আকারে পরিমাপকৃত কমপক্ষে ৫০ মেগাবাইট DEX কোড রয়েছে।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের DEX সাইজ প্রদর্শন করে, কিন্তু আপনি কমান্ড লাইন ব্যবহার করে স্থানীয়ভাবেও এটি পরিমাপ করতে পারেন:
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
আপনার স্কোর গণনা করার জন্য অ্যান্ড্রয়েড ভাইটালস যে সুনির্দিষ্ট মেটাডেটা ব্যবহার করে তা পরীক্ষা করতে, আপনার অ্যাপ বান্ডেল থেকে r8.json ফাইলটি এক্সট্র্যাক্ট করুন:
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json
DEX কোড অপ্টিমাইজেশন হলো অ্যান্ড্রয়েডের একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়, যা আপনার অ্যাপের কম্পাইলেশনের মান, আকার এবং পারফরম্যান্স নিরীক্ষণ ও উন্নত করতে সাহায্য করে। R8 বা বিকল্প টুল (যেমন ProGuard-কম্প্যাটিবল অপ্টিমাইজার বা সেকেন্ডারি DEX পোস্ট-প্রসেসর) ব্যবহার করে আপনার কোড অপ্টিমাইজ ও অবফাসকেট করলে তা আপনার অ্যাপের DEX সাইজ কমায়, রানটাইম পারফরম্যান্স উন্নত করে এবং এর মেমোরি ফুটপ্রিন্ট হ্রাস করে।
DEX বা ডালভিক এক্সিকিউটেবল ফাইলে আপনার অ্যাপ চালানোর জন্য ব্যবহৃত কম্পাইল করা কোড থাকে। এতে সাধারণত জাভা এবং কোটলিন কোড অন্তর্ভুক্ত থাকে, যা কম্পাইল করা C++ কোড বা .so ফাইলের থেকে ভিন্ন।
অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপ এবং গেমের জন্য DEX কোড অপ্টিমাইজেশন মেট্রিক্স রিপোর্ট করে, কিন্তু শুধুমাত্র সেইসব অ্যাপ এবং গেমের জন্য নির্ধারিত সীমা প্রয়োগ করে যেগুলো নির্দিষ্ট আকারের প্রয়োজনীয়তা পূরণ করে।
সমস্যাটি শনাক্ত করুন
আপনার অ্যাপের DEX কোড অপটিমাইজেশন লেভেল কম হলে Android vitals আপনাকে সতর্ক করতে পারে। এর মধ্যে R8 ব্যবহারকারী অ্যাপ এবং গেমের জন্য অবফাসকেশন, শ্রিংকিং এবং অপটিমাইজেশন অন্তর্ভুক্ত। যেসব অ্যাপ R8 ব্যবহার করে না, সেগুলোর ক্ষেত্রে Android vitals অপটিমাইজেশন, শ্রিংকিং এবং অবফাসকেশন রেট পরীক্ষা করার চেষ্টা করে, কিন্তু প্রয়োজনে বিকল্প হিসেবে অবফাসকেশন হিউরিস্টিকস ব্যবহার করে।
অপ্টিমাইজেশন স্থিতি নিরীক্ষণ করুন
আপনার অ্যাপ যখন কোড অপটিমাইজেশনের জন্য নির্ধারিত ন্যূনতম শতাংশ পূরণ করতে ব্যর্থ হয়, তখন প্লে কনসোলের মাধ্যমে আপনাকে সতর্ক করে অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের পারফরম্যান্স উন্নত করতে সাহায্য করতে পারে। শ্রিনকিং, অপটিমাইজেশন এবং অবফাসকেশনের বিস্তারিত সংজ্ঞার জন্য, “Use R8 Configuration Analyzer” দেখুন।
AGP ভার্সন ৮.১০ বা তার উচ্চতর সংস্করণের সর্বশেষ প্যাচ দিয়ে তৈরি অ্যাপগুলোর ক্ষেত্রে, এই শতাংশগুলো অন্তর্ভুক্ত r8.json ফাইল থেকে নেওয়া হয়।
AGP-এর নিম্নতর সংস্করণগুলির জন্য অথবা যেখানে r8.json ফাইলটি অন্তর্ভুক্ত থাকে না, সেখানে শতাংশগুলি গণনা করা হয় mapping.txt ফাইল থেকে (যদি সেটি অন্তর্ভুক্ত থাকে), অথবা ম্যাপিং ফাইলটি উপলব্ধ না থাকলে DEX হিউরিস্টিকস ব্যবহার করে।
যেসব অ্যাপ বিকল্প কোড অপটিমাইজার দিয়ে অপটিমাইজ করা হয়, সেগুলোর ক্ষেত্রে অ্যান্ড্রয়েড ভাইটালস অ্যাপ বান্ডেলে থাকা ক্লাস, মেথড এবং ফিল্ডের শতকরা হার অনুমান করার জন্য একটি বিশ্লেষণ করে।
মোট DEX আকারের ন্যূনতম
যদিও অ্যান্ড্রয়েড ভাইটালস সমস্ত অ্যাপের জন্য কোড অপ্টিমাইজেশন মেট্রিক্স গণনা করে, আপনি কেবল তখনই অ্যালার্ট পাবেন যদি আপনার অ্যাপ বান্ডেল নিম্নলিখিত মোট DEX আকারের প্রয়োজনীয়তাগুলি পূরণ করে:
- অ্যাপস : বান্ডেলটিতে অসংকুচিত আকার অনুযায়ী কমপক্ষে ১০ মেগাবাইট DEX কোড রয়েছে।
- গেমস : বান্ডেলটিতে অসংকুচিত আকারে পরিমাপকৃত কমপক্ষে ৫০ মেগাবাইট DEX কোড রয়েছে।
অ্যান্ড্রয়েড ভাইটালস আপনার অ্যাপের DEX সাইজ প্রদর্শন করে, কিন্তু আপনি কমান্ড লাইন ব্যবহার করে স্থানীয়ভাবেও এটি পরিমাপ করতে পারেন:
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
আপনার স্কোর গণনা করার জন্য অ্যান্ড্রয়েড ভাইটালস যে সুনির্দিষ্ট মেটাডেটা ব্যবহার করে তা পরীক্ষা করতে, আপনার অ্যাপ বান্ডেল থেকে r8.json ফাইলটি এক্সট্র্যাক্ট করুন:
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json