কমান্ড লাইনে সিস্টেম ট্রেস ক্যাপচার করা

systrace কমান্ড Systrace টুল চালু করে, যা আপনাকে সিস্টেম লেভেলে আপনার ডিভাইসে চলা সমস্ত প্রসেস জুড়ে টাইমিং তথ্য সংগ্রহ এবং পরীক্ষা করার অনুমতি দেয়।

এই ডকুমেন্ট থেকে জানা যাবে যে কীভাবে কমান্ড লাইন থেকে Systrace রিপোর্ট তৈরি করতে হয়। Android 9 (API লেভেল ২৮) বা তার পরবর্তী ভার্সনে চলা ডিভাইসে, আপনি সিস্টেম ট্রেসিং সিস্টেম অ্যাপ ব্যবহার করে Systrace রিপোর্টও তৈরি করতে পারবেন।

systrace রান করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

  1. Android Studio থেকে, লেটেস্ট Android SDK Tools ডাউনলোড ও ইনস্টল করুন।
  2. Python ইনস্টল করুন এবং আপনার ওয়ার্কস্টেশনের PATH এনভায়রনমেন্ট ভেরিয়েবলে এটি অন্তর্ভুক্ত করুন।
  3. আপনার PATH এনভায়রনমেন্ট ভেরিয়েবলে android-sdk/platform-tools/ যোগ করুন। এই ডিরেক্টরিতে Android ডিবাগ ব্রিজ বাইনারি (adb) আছে, যা systrace প্রোগ্রাম দ্বারা কল করা হয়।
  4. USB ডিবাগিং কানেকশন ব্যবহার করে আপনার ডেভেলপমেন্ট সিস্টেমের সাথে Android 4.3 (API লেভেল 18) বা তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইস কানেক্ট করুন।

systrace কমান্ডটি Android SDK টুল প্যাকেজে প্রদান করা হয় এবং এটি android-sdk/platform-tools/systrace/-এ থাকে।

সিনট্যাক্স

অ্যাপের জন্য HTML রিপোর্ট তৈরি করতে, আপনাকে নিম্নলিখিত সিনট্যাক্স ব্যবহার করে কমান্ড লাইন থেকে systrace রান করতে হবে:

python systrace.py [options] [categories]

যেমন, নিম্নলিখিত কমান্ডটি ডিভাইসের অ্যাক্টিভিটি রেকর্ড করতে systrace-কে কল করে এবং mynewtrace.html নামের একটি HTML রিপোর্ট তৈরি করে। অধিকাংশ ডিভাইসের জন্য এই বিভাগের তালিকাটি একটি যুক্তিসঙ্গত ডিফল্ট তালিকা।

$ python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
    binder_driver hal dalvik camera input res memory

পরামর্শ: আপনি যদি ট্রেস আউটপুটে টাস্কের নাম দেখতে চান, তাহলে আপনার কমান্ড প্যারামিটারে sched বিভাগটি অবশ্যই অন্তর্ভুক্ত করতে হবে।

আপনার কানেক্ট করা ডিভাইসে কাজ করে এমন বিভাগের তালিকা দেখতে, নিম্নলিখিত কমান্ড রান করুন:

$ python systrace.py --list-categories

আপনি কোনও বিভাগ বা বিকল্প নির্দিষ্ট না করলে, systrace একটি রিপোর্ট তৈরি করে যা উপলভ্য সব বিভাগ অন্তর্ভুক্ত করে এবং ডিফল্ট সেটিংস ব্যবহার করে। আপনি যে কানেক্ট করা ডিভাইস ব্যবহার করছেন তার উপর নির্ভর করে উপলভ্য বিভাগগুলি দেখানো হয়।

গ্লোবাল বিকল্প

গ্লোবাল বিকল্প বর্ণনা
-h | --help সহায়তা মেসেজ দেখুন।
-l | --list-categories আপনার কানেক্ট করা ডিভাইসে উপলভ্য ট্রেসিং বিভাগের তালিকা দেখায়।

কমান্ড ও কমান্ডের বিকল্প

কমান্ড ও বিকল্প বর্ণনা
-o file নির্দিষ্ট file-এ HTML ট্রেস রিপোর্ট লিখুন। আপনি এই বিকল্প নির্দিষ্ট না করলে, systrace আপনার রিপোর্ট systrace.py-এর মতো একই ডিরেক্টরিতে সেভ করে এবং এটির নাম trace.html রাখে।
-t N | --time=N N সেকেন্ডের জন্য ডিভাইসের অ্যাক্টিভিটি ট্রেস করুন। আপনি এই বিকল্প নির্দিষ্ট না করলে, systrace আপনাকে কমান্ড লাইন থেকে Enter কী প্রেস করে ট্রেস শেষ করার জন্য প্রম্পট করে।
-b N | --buf-size=N N কিলোবাইটের ট্রেস বাফার সাইজ ব্যবহার করুন। এই বিকল্পের সাহায্যে আপনি ট্রেস করার সময় সংগ্রহ করা ডেটার মোট সাইজ সীমিত করতে পারবেন।
-k functions
| --ktrace=functions
কমা দিয়ে আলাদা করা তালিকায় উল্লেখ করা নির্দিষ্ট কার্নেল ফাংশনের অ্যাক্টিভিটি ট্রেস করুন।
-a app-name
| --app=app-name
অ্যাপের জন্য ট্রেসিং চালু করুন, কমা দিয়ে আলাদা করা প্রসেসের নামের তালিকা হিসেবে উল্লেখ করা হয়েছে। অ্যাপে অবশ্যই Trace ক্লাস থেকে ট্রেসিং ইন্সট্রুমেন্টেশন কল থাকতে হবে। আপনার অ্যাপ প্রোফাইল করার সময় এই বিকল্পটি উল্লেখ করা উচিত— RecyclerView-এর মতো অনেক লাইব্রেরিতে ট্রেসিং ইনস্ট্রুমেন্টেশন কল অন্তর্ভুক্ত থাকে যা অ্যাপ-লেভেল ট্রেসিং চালু করলে প্রয়োজনীয় তথ্য প্রদান করে। আরও তথ্যের জন্য, কাস্টম ইভেন্ট নির্ধারণ করুন দেখুন।

Android 9 (API লেভেল ২৮) বা তার পরবর্তী ভার্সন চলছে এমন ডিভাইসে সব অ্যাপ ট্রেস করতে, কোটেশন চিহ্ন সহ ওয়াইল্ডকার্ড অক্ষর "*" পাস করুন।

--from-file=file-path লাইভ ট্রেস চালানোর পরিবর্তে, ফাইল থেকে একটি ইন্টার‍্যাক্টিভ HTML রিপোর্ট তৈরি করুন, যেমন TXT ফাইল যাতে কাঁচা ট্রেস ডেটা অন্তর্ভুক্ত থাকে।
-e device-serial
| --serial=device-serial
কানেক্ট করা নির্দিষ্ট ডিভাইসে ট্রেস পরিচালনা করুন, যা এর ডিভাইস সিরিয়াল নম্বর দ্বারা শনাক্ত করা হয়।
categories আপনার উল্লেখ করা সিস্টেম প্রসেসের জন্য ট্রেসিং তথ্য অন্তর্ভুক্ত করুন, যেমন গ্রাফিক্স রেন্ডার করে এমন সিস্টেম প্রসেসের জন্য gfx। আপনার কানেক্ট করা ডিভাইসে উপলভ্য পরিষেবার তালিকা দেখতে -l কমান্ডের সাথে systrace রান করতে পারবেন।