অপ্টিমাইজেশন পরীক্ষা করুন এবং সমস্যা সমাধান করুন

আপনি অ্যাপ অপ্টিমাইজেশান সক্ষম করার পরে, আপনার অ্যাপটি উদ্দেশ্য অনুযায়ী কাজ করছে এবং R8 কনফিগারেশন আপনার প্রত্যাশা অনুযায়ী কাজ করছে কিনা তা পরীক্ষা করুন। সাধারণ পদক্ষেপগুলি নিম্নরূপ:

  1. আপনার অ্যাপের ক্রিটিক্যাল ইউজার যাত্রা (CUJs) পরীক্ষা করুন: উদাহরণস্বরূপ, নিশ্চিত করুন যে ব্যবহারকারীরা সাইন ইন করতে পারে এবং অন্যান্য গুরুত্বপূর্ণ কাজ করতে পারে।
  2. বেঞ্চমার্ক ব্যবহার করে কর্মক্ষমতা লাভ পরিমাপ করুন: অ্যাপ অপ্টিমাইজেশান সক্ষম করার আগে এবং পরে আপনার অ্যাপ বেঞ্চমার্ক করুন

আপনি সমস্যা খুঁজে পেলে, R8 আপনাকে সমস্যা সমাধানে সহায়তা করার জন্য সরঞ্জাম সরবরাহ করে। আপনি যদি R8 এর সাথে একটি সমস্যা সমাধান করতে অক্ষম হন তবে একটি বাগ ফাইল করুন

সাধারণ টিপস

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

  • অস্থায়ীভাবে অস্পষ্টতা বন্ধ করুন: R8 এর অপ্টিমাইজেশন প্রক্রিয়ার অংশ হিসাবে কোডকে অস্পষ্ট করে। অস্পষ্টতা সাধারণত ত্রুটির কারণ নয়, তবে অস্পষ্টতা ত্রুটিগুলিকে ডিবাগ করা আরও কঠিন করে তোলে। আপনাকে সমস্যাযুক্ত কোড চিহ্নিত করতে সাহায্য করার জন্য ‑dontobfuscate এবং ‑dontoptimize পতাকাগুলি Keep নিয়ম ফাইলে যোগ করুন৷
  • প্রতিফলনের জন্য চেক করুন: যদি আপনি একটি যেমন উপাদান ব্যতিক্রম মধ্যে চালানো যেমন

    Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate in the stack trace ,

    ব্যতিক্রমের অর্থ সাধারণত প্রশ্নে থাকা ক্ষেত্রটি প্রতিফলনের মাধ্যমে ব্যবহার করা হচ্ছে এবং আপনাকে একটি রাখার নিয়ম যোগ করতে হবে।

  • বাইটকোড পরিদর্শন করুন: বেশিরভাগ R8 সমস্যাগুলির জন্য বাইটকোড পরিদর্শন প্রয়োজন, যা আপনি APK বিশ্লেষকের মতো সরঞ্জামগুলির সাথে করতে পারেন।

কোন নিয়ম প্রয়োগ করা হয় তা পরীক্ষা করুন

আপনার প্রকল্প তৈরি করার সময় R8 প্রযোজ্য সমস্ত নিয়মের একটি সম্পূর্ণ রিপোর্ট আউটপুট করতে, আপনার অ্যাপের মডিউল proguard‑rules.pro ফাইলে নিম্নলিখিতগুলি অন্তর্ভুক্ত করুন:

-printconfiguration <output-dir>/<report-name>.txt

আপনি যে কোনো পাথ এবং ফাইলের নাম উল্লেখ করতে পারেন। আপনি যদি কোনো পাথ বা ফাইলের নাম উল্লেখ না করেন, তাহলে R8 <module-name>/build/outputs/mapping/<build-type>/configuration.txt এ নিয়ম রিপোর্ট আউটপুট করে।

কেন কোড রাখা হয়েছিল তা বুঝুন

আপনি যদি এমন রাখা কোড দেখতে পান যা আপনি সরানো হবে বলে আশা করেছিলেন, তাহলে কোডটি কেন রাখা হয়েছে তা বোঝার জন্য কনফিগারেশন বিকল্প ‑whyareyoukeeping ব্যবহার করুন। R8 রাখা কোড থেকে আপনার অ্যাপের এন্ট্রি পয়েন্টগুলির একটিতে একটি পাথ আউটপুট করে। আরও তথ্যের জন্য, প্রোগার্ড ম্যানুয়াল-এ ‑whyareyoukeeping ডকুমেন্টেশন' দেখুন।

মূল স্ট্যাক ট্রেস পুনরুদ্ধার করুন

R8 দ্বারা প্রসেস করা কোড বিভিন্ন উপায়ে পরিবর্তিত হয় যাতে স্ট্যাক ট্রেস আর আসল কোডকে বোঝায় না। উদাহরণস্বরূপ, লাইন সংখ্যা এবং ক্লাস এবং পদ্ধতির নাম পরিবর্তন হতে পারে। মূল স্ট্যাক ট্রেস পুনরুদ্ধার করতে, R8 রিট্রেস কমান্ড-লাইন টুল প্রদান করে, যা কমান্ড-লাইন টুলস প্যাকেজের সাথে বান্ডিল করা হয়।

রিট্রেস ব্যবহার করতে, এটিকে একটি ম্যাপিং ফাইল এবং একটি স্ট্যাক ট্রেস ফাইল দিন। ম্যাপিং ফাইল, যাকে বলা হয় mapping.txt , স্বয়ংক্রিয়ভাবে আপনার Android App Bundle (AAB) এর সাথে বান্ডিল করা হয়৷ আরও বিশদ বিবরণের জন্য, রিট্রেস ডকুমেন্টেশন এবং ক্র্যাশ স্ট্যাক ট্রেসগুলিকে কীভাবে অস্পষ্ট করা যায় সে সম্পর্কে প্লে কনসোল সহায়তা কেন্দ্র নিবন্ধটি দেখুন।