একটি অ্যাপ যদি ধীরে ধীরে সাড়া দেয়, চপি অ্যানিমেশন দেখায়, জমাট বাঁধে বা খুব বেশি শক্তি খরচ করে তাহলে তার কার্যক্ষমতা খারাপ বলে মনে করা হয়। পারফরম্যান্স সমস্যাগুলি সমাধান করার জন্য আপনার অ্যাপটি সিপিইউ, মেমরি, গ্রাফিক্স, নেটওয়ার্ক বা ডিভাইসের ব্যাটারির মতো সংস্থানগুলির অদক্ষ ব্যবহার করে এমন ক্ষেত্রগুলি সনাক্ত করা জড়িত৷
এই সমস্যাগুলি খুঁজে পেতে এবং সমাধান করতে, এই বিষয়ে বর্ণিত প্রোফাইলিং এবং বেঞ্চমার্কিং সরঞ্জাম এবং কৌশলগুলি ব্যবহার করুন৷ পারফরম্যান্স পরিমাপের কৌশল এবং নির্দিষ্ট সমস্যাগুলি সমাধান করতে এই কৌশলগুলি কীভাবে ব্যবহার করতে হয় তার উদাহরণগুলি শিখতে, কর্মক্ষমতা পরিমাপ দেখুন।
অ্যান্ড্রয়েড স্টুডিও সম্ভাব্য সমস্যাগুলি খুঁজে পেতে এবং কল্পনা করতে সহায়তা করার জন্য বেশ কয়েকটি প্রোফাইলিং সরঞ্জাম সরবরাহ করে:
- CPU প্রোফাইলার রানটাইম কর্মক্ষমতা সমস্যা ট্র্যাক ডাউন সাহায্য.
- মেমরি প্রোফাইলার মেমরি বরাদ্দ ট্র্যাক সাহায্য করে.
- এনার্জি প্রোফাইলার শক্তির ব্যবহার ট্র্যাক করে, যা ব্যাটারি নিষ্কাশনে অবদান রাখতে পারে।
এই টুলগুলি Android 5.0 (API স্তর 21) এবং উচ্চতর সংস্করণের সাথে সামঞ্জস্যপূর্ণ। টুলস সম্পর্কে আরও তথ্যের জন্য, ব্যবহারকারী গাইডের এই বিভাগে অন্যান্য পৃষ্ঠাগুলি দেখুন।
জেটপ্যাক বেঞ্চমার্ক লাইব্রেরিগুলি আপনার অ্যাপ্লিকেশনকে বিভিন্ন গুরুত্বপূর্ণ ক্রিয়াকলাপ পরিমাপ করার অনুমতি দেয়:
- ম্যাক্রোবেঞ্চমার্ক : গুরুত্বপূর্ণ কার্যক্ষমতা ব্যবহারের ক্ষেত্রে পরিমাপ করুন, অ্যাপ্লিকেশন স্টার্টআপ এবং পুনরায় অঙ্কন সহ যা UI অ্যানিমেশন বা স্ক্রলিংয়ের মতো ক্রিয়া দ্বারা ট্রিগার হয়।
- মাইক্রোবেঞ্চমার্ক : নির্দিষ্ট ফাংশনের CPU খরচ পরিমাপ করুন।
এই লাইব্রেরিগুলি সম্পর্কে আরও জানতে, বেঞ্চমার্ক আপনার অ্যাপ পৃষ্ঠাটি দেখুন।
প্রোফাইলেবল অ্যাপ্লিকেশন
Profileable
হল Android Q-এ প্রবর্তিত একটি ম্যানিফেস্ট কনফিগারেশন। এটি নির্দিষ্ট করতে পারে যে ডিভাইসের ব্যবহারকারী Android Studio, Simpleperf, এবং Perfetto-এর মতো টুলের মাধ্যমে এই অ্যাপ্লিকেশনটিকে প্রোফাইল করতে পারবে কিনা।
profileable
আগে, বেশিরভাগ ডেভেলপার অ্যান্ড্রয়েডে শুধুমাত্র ডিবাগযোগ্য অ্যাপ্লিকেশানগুলি প্রোফাইল করতে পারতেন, যা পার্শ্ব প্রতিক্রিয়া হিসাবে উল্লেখযোগ্য কর্মক্ষমতা খরচ যোগ করে৷ এই কর্মক্ষমতা খরচ প্রোফাইলিং ফলাফল বাতিল করতে পারে, বিশেষ করে যদি তারা সময়ের সাথে সম্পর্কিত হয়। সারণী 1 ডিবাগযোগ্য এবং প্রোফাইলযোগ্য অ্যাপগুলির মধ্যে পার্থক্যগুলিকে সংক্ষিপ্ত করে৷
বৈশিষ্ট্য | ডিবাগযোগ্য | প্রোফাইলেবল |
---|---|---|
মেমরি প্রোফাইলার | পূর্ণ | হ্যাঁ: না:
|
CPU প্রোফাইলার | পূর্ণ | হ্যাঁ:
না:
|
নেটওয়ার্ক প্রোফাইলার | হ্যাঁ | না |
এনার্জি প্রোফাইলার | হ্যাঁ | না |
পাওয়ার প্রোফাইলার | হ্যাঁ | হ্যাঁ |
ইভেন্ট মনিটর | হ্যাঁ | না |
Profileable
চালু করা হয়েছে যাতে বিকাশকারীরা তাদের অ্যাপগুলিকে প্রোফাইলিং সরঞ্জামগুলিতে তথ্য প্রকাশ করার অনুমতি দেওয়ার জন্য বেছে নিতে পারে, যখন খুব কম পারফরম্যান্স খরচ হয়। একটি প্রোফাইলযোগ্য APK হল মূলত একটি রিলিজ APK যার একটি লাইন <profileable android:shell="true"/>
ম্যানিফেস্ট ফাইলের <application>
বিভাগে যোগ করা হয়েছে।
স্বয়ংক্রিয়ভাবে একটি প্রোফাইলযোগ্য অ্যাপ তৈরি করুন এবং চালান
আপনি এক ক্লিকে একটি প্রোফাইলযোগ্য অ্যাপ কনফিগার করতে, তৈরি করতে এবং চালাতে পারেন৷ এই বৈশিষ্ট্যটির জন্য একটি ভার্চুয়াল বা শারীরিক পরীক্ষা ডিভাইস প্রয়োজন যা API লেভেল 29 বা উচ্চতর চালায় এবং Google Play আছে। বৈশিষ্ট্যটি ব্যবহার করতে, প্রোফাইল অ্যাপ আইকনের পাশের তীরটিতে ক্লিক করুন এবং দুটি বিকল্পের মধ্যে নির্বাচন করুন:
![এক-ক্লিক প্রোফাইলেবল বিল্ড মেনু।](https://developer.android.com/static/studio/images/one-click-profileable-build-menu.png?authuser=4&hl=bn)
কম ওভারহেড সহ প্রোফাইল 'অ্যাপ' CPU এবং মেমরি প্রোফাইলার শুরু করে। মেমরি প্রোফাইলারে, শুধুমাত্র রেকর্ড নেটিভ অ্যালোকেশন সক্রিয় করা হয়েছে।
সম্পূর্ণ ডেটা সহ প্রোফাইল 'অ্যাপ' সিপিইউ, মেমরি এবং এনার্জি প্রোফাইলার শুরু করে।
ম্যানুয়ালি একটি প্রোফাইলযোগ্য অ্যাপ তৈরি করুন এবং চালান
ম্যানুয়ালি একটি প্রোফাইলযোগ্য অ্যাপ্লিকেশন তৈরি করতে, আপনাকে প্রথমে একটি রিলিজ অ্যাপ্লিকেশন তৈরি করতে হবে এবং তারপরে এর ম্যানিফেস্ট ফাইলটি আপডেট করতে হবে, যা রিলিজ অ্যাপ্লিকেশনটিকে একটি প্রোফাইলযোগ্য অ্যাপ্লিকেশনে পরিণত করে। আপনি প্রোফাইলযোগ্য অ্যাপ্লিকেশনটি কনফিগার করার পরে, প্রোফাইলারটি চালু করুন এবং বিশ্লেষণ করার জন্য একটি প্রোফাইলযোগ্য প্রক্রিয়া নির্বাচন করুন।
একটি রিলিজ অ্যাপ তৈরি করুন
প্রোফাইলিংয়ের উদ্দেশ্যে একটি রিলিজ অ্যাপ্লিকেশন তৈরি করতে, নিম্নলিখিতগুলি করুন:
আপনার অ্যাপ্লিকেশনের
build.gradle
ফাইলে নিম্নলিখিত লাইনগুলি যোগ করে ডিবাগ কী দিয়ে আপনার অ্যাপ্লিকেশনটিতে স্বাক্ষর করুন৷ আপনার যদি ইতিমধ্যেই একটি কার্যকরী রিলিজ বিল্ড ভেরিয়েন্ট থাকে, তাহলে আপনি পরবর্তী ধাপে যেতে পারেন।buildTypes { release { signingConfig signingConfigs.debug } }
অ্যান্ড্রয়েড স্টুডিওতে, বিল্ড > বিল্ড ভেরিয়েন্ট নির্বাচন করুন... এবং রিলিজ ভেরিয়েন্ট নির্বাচন করুন।
প্রোফাইলে রিলিজ পরিবর্তন করুন
AndroidManifest.xml
ফাইলটি খুলে এবং<application>
এর মধ্যে নিম্নলিখিত যোগ করে আপনার রিলিজ অ্যাপ্লিকেশনটিকে উপরে থেকে একটি প্রোফাইলযোগ্য অ্যাপ্লিকেশনে রূপান্তর করুন। আরও বিশদ বিবরণের জন্য, মুক্তির জন্য আপনার আবেদন তৈরি করা দেখুন।<profileable android:shell="true"/>
SDK সংস্করণের উপর নির্ভর করে, আপনাকে অ্যাপ্লিকেশনের
build.gradle
ফাইলে নিম্নলিখিত লাইন যোগ করতে হতে পারে।aaptOptions { additionalParameters =["--warn-manifest-validation"] }
একটি প্রোফাইলযোগ্য অ্যাপ প্রোফাইল করুন
একটি প্রোফাইলযোগ্য অ্যাপ প্রোফাইল করতে, নিম্নলিখিতগুলি করুন:
ডেভেলপমেন্ট এমুলেটর বা ডিভাইস থেকে অ্যাপটি শুরু করুন।
অ্যান্ড্রয়েড স্টুডিওতে, দেখুন > টুল উইন্ডোজ > প্রোফাইলার নির্বাচন করে প্রোফাইলারটি চালু করুন।
অ্যাপ্লিকেশন চালু হওয়ার পরে, ক্লিক করুন
ড্রপডাউন মেনু দেখতে প্রোফাইলারে বোতাম। আপনার ডিভাইস নির্বাচন করুন, তারপরে অন্যান্য প্রোফাইলযোগ্য প্রক্রিয়াগুলির অধীনে অ্যাপ্লিকেশনটির এন্ট্রি নির্বাচন করুন।
প্রোফাইলার অ্যাপ্লিকেশন সংযুক্ত করা উচিত. শুধুমাত্র CPU এবং মেমরি প্রোফাইলার পাওয়া যায়, মেমরি প্রোফাইলারের জন্য সীমিত ক্ষমতা সহ।
সেশন
আপনি সেশন হিসাবে প্রোফাইলার ডেটা সংরক্ষণ করতে পারেন, যা আপনি Android স্টুডিও ছেড়ে না দেওয়া পর্যন্ত ধরে রাখা হয়৷ একাধিক সেশনে প্রোফাইলিং তথ্য রেকর্ড করে এবং তাদের মধ্যে স্যুইচ করে, আপনি বিভিন্ন পরিস্থিতিতে সম্পদের ব্যবহার তুলনা করতে পারেন।
- একটি নতুন সেশন শুরু করতে, একটি নতুন প্রোফাইলিং সেশন শুরু করুন ক্লিক করুন
বোতাম এবং প্রদর্শিত ড্রপডাউন মেনু থেকে একটি অ্যাপ প্রক্রিয়া নির্বাচন করুন।
- আপনি যখন একটি ট্রেস রেকর্ড করেন বা একটি হিপ ডাম্প ক্যাপচার করেন , তখন Android স্টুডিও সেই ডেটা (আপনার অ্যাপের নেটওয়ার্ক কার্যকলাপ সহ) বর্তমান সেশনে একটি পৃথক এন্ট্রি হিসাবে যোগ করে।
- বর্তমান সেশনে ডেটা যোগ করা বন্ধ করতে, বর্তমান প্রোফাইলিং সেশন বন্ধ করুন ক্লিক করুন
.
- অ্যান্ড্রয়েড স্টুডিওর পূর্ববর্তী রান থেকে এক্সপোর্ট করা ট্রেস আমদানি করতে, নতুন প্রোফাইলার সেশন শুরু করুন ক্লিক করুন
এবং ফাইল থেকে লোড নির্বাচন করুন।
পুরানো ডিভাইসগুলির জন্য অতিরিক্ত সমর্থন সক্ষম করুন (API স্তর <26)
অ্যান্ড্রয়েড 7.1 বা তার কম সংস্করণের সাথে একটি ডিভাইস চালানোর সময় আপনাকে অতিরিক্ত প্রোফাইলিং ডেটা দেখানোর জন্য, অ্যান্ড্রয়েড স্টুডিওকে অবশ্যই আপনার কম্পাইল করা অ্যাপে মনিটরিং লজিক ইনজেক্ট করতে হবে। এই অতিরিক্ত প্রোফাইলিং ডেটা নিম্নলিখিত অন্তর্ভুক্ত:
- সমস্ত প্রোফাইলার উইন্ডোতে ইভেন্ট টাইমলাইন
- মেমরি প্রোফাইলারে বরাদ্দকৃত বস্তুর সংখ্যা
- মেমরি প্রোফাইলারে আবর্জনা সংগ্রহের ঘটনা
- নেটওয়ার্ক প্রোফাইলারে সমস্ত প্রেরিত ফাইল সম্পর্কে বিশদ বিবরণ
পুরানো ডিভাইসগুলির জন্য অতিরিক্ত সমর্থন সক্ষম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- রান > কনফিগারেশন সম্পাদনা নির্বাচন করুন।
- বাম ফলকে আপনার অ্যাপ মডিউল নির্বাচন করুন।
- প্রোফাইলিং ট্যাবে ক্লিক করুন, এবং তারপরে পুরানো ডিভাইসগুলির জন্য অতিরিক্ত সমর্থন সক্ষম করুন চেক করুন (API স্তর < 26)।
- আবার আপনার অ্যাপ তৈরি করুন এবং চালান।
পুরানো ডিভাইসগুলির জন্য অতিরিক্ত সমর্থন সক্ষম করা বিল্ড প্রক্রিয়াটিকে ধীর করে তোলে, তাই আপনি যখন আপনার অ্যাপের প্রোফাইলিং শুরু করতে চান তখনই এটি সক্ষম করা উচিত।
স্বতন্ত্র প্রোফাইলার চালান
স্বতন্ত্র অ্যান্ড্রয়েড স্টুডিও প্রোফাইলারগুলি আপনাকে সম্পূর্ণ অ্যান্ড্রয়েড স্টুডিও আইডিই চালানো ছাড়াই আপনার অ্যাপ প্রোফাইল করতে দেয়।
স্বতন্ত্র প্রোফাইলারগুলি চালানোর জন্য, নিম্নলিখিতগুলি করুন:
- নিশ্চিত করুন যে প্রোফাইলারটি বর্তমানে অ্যান্ড্রয়েড স্টুডিওর ভিতরে চলছে না।
ইনস্টলেশন ডিরেক্টরিতে যান এবং
bin
ডিরেক্টরিতে নেভিগেট করুন:উইন্ডোজ/লিনাক্স :
studio-installation-folder /bin
macOS : স্বতন্ত্র প্রোফাইলার ব্যবহার macOS-এ সমর্থিত নয়।
- আপনার OS এর উপর নির্ভর করে
profiler.exe
বাprofiler.sh
চালান। অ্যান্ড্রয়েড স্টুডিও স্প্ল্যাশ স্ক্রিন প্রদর্শিত হবে। স্প্ল্যাশ স্ক্রিন অদৃশ্য হয়ে যাওয়ার পরে, একটি প্রোফাইলার উইন্ডো খোলে।