Winscope Perfetto ট্রেসে নির্দিষ্ট অবস্থা খুঁজে পেতে SQL ব্যবহার করুন। প্রশ্নগুলি চালানোর জন্য এবং সারণীকৃত ফলাফলগুলি কল্পনা করতে Winscope UI-তে গ্লোবাল সার্চ ভিউয়ার ব্যবহার করুন:
চিত্র 1. অনুসন্ধান দর্শক ট্যাব.
সার্চ ভিউয়ার আপনাকে পারফেটো ট্রেসে কাস্টম এসকিউএল কোয়েরি লিখতে এবং চালাতে দেয় এবং সাম্প্রতিক ও সংরক্ষিত প্রশ্নগুলি অ্যাক্সেস করতে দেয়। Winscope SurfaceFlinger এবং লেনদেন ট্রেস অনুসন্ধানে সহায়তা করার জন্য বিশেষ SQL ভিউ প্রদান করে।
সমস্ত দর্শনের জন্য নিম্নলিখিত নিয়মগুলি ব্যবহার করুন:
property
এবংflat_property
কলামের জন্য:- সম্পত্তির নামগুলি সাপের ক্ষেত্রে রয়েছে, উদাহরণস্বরূপ
LayerProto
থেকেvisible_region
। একটি ডট নোটেশন নেস্টেড বৈশিষ্ট্যগুলিকে উপস্থাপন করতে ব্যবহৃত হয়, উদাহরণস্বরূপ,
visible_region.rect
।property
পুনরাবৃত্ত ক্ষেত্রগুলিকে বর্গাকার বন্ধনী দিয়ে আলাদা করা হয়:উদাহরণস্বরূপ, বারবার
visible_region.rect
ফিল্ডের দুটি উদাহরণের মধ্যে,top
ক্ষেত্রটিvisible_region.rect[0].top
এবংvisible_region.rect[1].top
দ্বারা উপস্থাপন করা হয়।flat_property
পুনরাবৃত্তি করা ক্ষেত্রগুলি আলাদা করা যায় না:উদাহরণস্বরূপ,
visible_region.rect
বারবার ফিল্ডের দুটি উদাহরণের মধ্যে,top
ক্ষেত্রটি উভয় ক্ষেত্রেইvisible_region.rect.top
দ্বারা উপস্থাপন করা হয়।
- সম্পত্তির নামগুলি সাপের ক্ষেত্রে রয়েছে, উদাহরণস্বরূপ
value
এবংprevious_value
কলামের জন্য:- বুলিয়ান মান
'0'
(False
) বা'1'
(True
) দ্বারা উপস্থাপিত হয়।
- বুলিয়ান মান
SurfaceFlinger SQL ভিউ
SurfaceFlinger প্রোটো ডেটা এই ফর্ম্যাটগুলি ব্যবহার করে:
লেয়ার ডেটা
LayerProto
ফরম্যাটে থাকে।স্তরবিন্যাস রুট ডেটা
LayersSnapshotProto
বিন্যাসে আছে।
স্তর ডেটা অনুসন্ধান করতে, sf_layer_search
ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:
কলাম | বর্ণনা |
---|---|
state_id | লেয়ারটি যে এন্ট্রির ইউনিক আইডি |
ts | লেয়ারটি যে এন্ট্রির টাইমস্ট্যাম্প |
layer_id | লেয়ার আইডি |
parent_id | পিতামাতার লেয়ার আইডি |
layer_name | স্তরের নাম |
property | পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং |
flat_property | সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয় |
value | স্ট্রিং বিন্যাসে সম্পত্তি মান |
previous_value | স্ট্রিং বিন্যাসে পূর্ববর্তী এন্ট্রি থেকে সম্পত্তির মান |
অনুক্রমের রুট ডেটা অনুসন্ধান করতে, sf_hierarchy_root_search
ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:
কলাম | বর্ণনা |
---|---|
state_id | এন্ট্রির অনন্য আইডি |
ts | প্রবেশের টাইমস্ট্যাম্প |
property | পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং |
flat_property | সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয় |
value | স্ট্রিং বিন্যাসে সম্পত্তি মান |
previous_value | স্ট্রিং বিন্যাসে পূর্ববর্তী এন্ট্রি থেকে সম্পত্তির মান |
উদাহরণ প্রশ্ন
সমস্ত ফ্রেম খুঁজুন যেখানে
IME
স্তরের বৈধ স্ক্রীন সীমা রয়েছে:SELECT ts, value, previous_value FROM sf_layer_search WHERE layer_name like 'IME%' AND property='screen_bounds.bottom' AND value<='24000'
Taskbar
স্তরেরcolor.a
পরিবর্তন করে এমন সমস্ত ফ্রেম খুঁজুন:SELECT ts, value, previous_value FROM sf_layer_search WHERE layer_name like 'Taskbar%' AND property='color.a' AND value!=previous_value
এমন সব ফ্রেম খুঁজুন যেখানে
Wallpaper
নিচের সীমা 2400 এর কম বা সমান:SELECT ts, value, previous_value FROM sf_layer_search WHERE layer_name LIKE 'Wallpaper%' AND property='bounds.bottom' AND cast_int!(value) <= 2400
একটি বৈধ স্তর স্ট্যাকের সাথে প্রদর্শনের জন্য সমস্ত বৈশিষ্ট্য তালিকাভুক্ত করুন:
SELECT STATE.* FROM sf_hierarchy_root_search STATE_WITH_DISPLAY_ON INNER JOIN sf_hierarchy_root_search STATE ON STATE.state_id = STATE_WITH_DISPLAY_ON.state_id AND STATE_WITH_DISPLAY_ON.flat_property='displays.layer_stack' AND STATE_WITH_DISPLAY_ON.value!='4294967295' AND STATE.property LIKE CONCAT( SUBSTRING( STATE_WITH_DISPLAY_ON.property, 0, instr(STATE_WITH_DISPLAY_ON.property, ']') ), '%' )
লেনদেন SQL ভিউ
লেনদেনের প্রোটো ডেটা TransactionTraceEntry
ফর্ম্যাট ব্যবহার করে।
লেনদেনের ডেটা অনুসন্ধান করতে, transactions_search
ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:
কলাম | বর্ণনা |
---|---|
state_id | প্রোটো সম্পত্তি যে এন্ট্রির অনন্য আইডি |
ts | প্রোটো সম্পত্তি যে এন্ট্রির টাইমস্ট্যাম্প |
transaction_id | উপলব্ধ থাকলে লেনদেন আইডি |
property | পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং |
flat_property | সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয় |
value | স্ট্রিং বিন্যাসে সম্পত্তি মান |
উদাহরণ প্রশ্ন
লেয়ার x অবস্থানকে -54.0 এ পরিবর্তন করতে একটি লেনদেন প্রয়োগ করা হয়েছে এমন ফ্রেমটি খুঁজুন:
SELECT ts, transaction_id, value FROM transactions_search WHERE flat_property='transactions.layer_changes.x' AND value='-54.0'
ImeContainer
স্তর যোগ করা হয়েছে যেখানে ফ্রেম খুঁজুন:SELECT ts FROM transactions_search WHERE flat_property='added_layers.name' AND value='ImeContainer'
রূপান্তর SQL ভিউ
ট্রানজিশন প্রোটো ডেটা ShellTransition
ফর্ম্যাট ব্যবহার করে।
ট্রানজিশন ডেটা অনুসন্ধান করতে, transitions_search
ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:
কলাম | বর্ণনা |
---|---|
ts | পাঠানোর সময় - যদি পাওয়া যায় তবে পাঠানোর সময় ফিরে আসে, অন্যথায় 0 |
transition_id | ট্রানজিশন আইডি |
property | পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং |
flat_property | সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয় |
value | স্ট্রিং বিন্যাসে সম্পত্তি মান |
উদাহরণ প্রশ্ন
DefaultMixedHandler
দ্বারা পরিচালিত ট্রানজিশনের বৈশিষ্ট্য খুঁজুন:
SELECT
PROPS.ts,
PROPS.transition_id,
PROPS.property,
PROPS.value
FROM transitions_search HANDLER_MATCH
INNER JOIN transitions_search PROPS
ON HANDLER_MATCH.transition_id = PROPS.transition_id
WHERE HANDLER_MATCH.property = 'handler'
AND HANDLER_MATCH.value LIKE "%DefaultMixedHandler"
ORDER BY PROPS.transition_id, PROPS.property
ViewCapture SQL ভিউ
ভিউক্যাপচার প্রোটো ডেটা View
ফরম্যাট ব্যবহার করে।
ViewCapture ডেটা অনুসন্ধান করতে, viewcapture_search
ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:
কলাম | বর্ণনা |
---|---|
state_id | যে রাজ্যের ভিউটি সেই রাজ্যের অনন্য আইডি৷ |
ts | রাজ্যের টাইমস্ট্যাম্প যে ভিউ এর অন্তর্গত |
package_name | প্যাকেজের নাম |
window_name | জানালার নাম |
class_name | ক্লাসের নাম দেখুন |
property | পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং |
flat_property | সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয় |
value | স্ট্রিং বিন্যাসে সম্পত্তি মান |
previous_value | স্ট্রিং বিন্যাসে পূর্ববর্তী অবস্থা থেকে সম্পত্তি মান |
উদাহরণ প্রশ্ন
যখন SearchContainerView
y-দিক থেকে সরানো হয়েছে তখন সমস্ত অবস্থা খুঁজুন:
SELECT * FROM viewcapture_search
WHERE class_name LIKE '%SearchContainerView'
AND flat_property='translation_y'
AND value!=previous_value
প্রোটোলগ এসকিউএল টেবিল
ProtoLog প্রোটো ডেটা ProtoLogMessage
ফর্ম্যাট ব্যবহার করে। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:
কলাম | বর্ণনা |
---|---|
ts | লগের টাইমস্ট্যাম্প |
level | লগ লেভেল |
tag | লগিং গ্রুপ ট্যাগ |
message | লগ বার্তা |
stacktrace | স্ট্যাকট্রেস (যদি পাওয়া যায়) |
location | কোড অবস্থান যেখান থেকে বার্তাটি আসে |
উদাহরণ প্রশ্ন
transition
ধারণকারী একটি বার্তা সহ সমস্ত লগ খুঁজুন:SELECT ts, message, location FROM protolog WHERE message LIKE '%transition%'
বৈধ লেনদেন আইডি রয়েছে এমন সমস্ত লগ খুঁজুন:
CREATE PERFETTO VIEW valid_tx_ids AS SELECT DISTINCT transaction_id FROM transactions_search WHERE transaction_id IS NOT NULL AND transaction_id != '0'; SELECT TRANS.transaction_id, message FROM valid_tx_ids TRANS INNER JOIN protolog LOGS ON LOGS.message LIKE CONCAT('%', TRANS.transaction_id, '%');
প্রশ্ন চালান
যখন আপনি বাম প্যানেল ব্যবহার করেন, ট্রেস অনুসন্ধান শুরু হয়। এটি কয়েক সেকেন্ড সময় নেয়। এটি শুরু হওয়ার সময়, টাইমলাইন উপলব্ধ নেই৷
ট্রেস অনুসন্ধান শুরু হওয়ার পরে, অনুসন্ধান বাক্সে একটি ক্যোয়ারী লিখুন এবং অনুসন্ধান কোয়েরি চালান ক্লিক করুন বা এটি চালানোর জন্য আপনার কীবোর্ডে এন্টার টিপুন।
শেষ হলে, ফলাফলের সারণী মধ্যম প্যানেলে দেখায়। আপনার ক্যোয়ারীটি অনুসন্ধান বাক্সের নীচে প্রদর্শিত হবে, সেশনগুলির মধ্যে ক্যোয়ারী সংরক্ষণ করার জন্য একটি ক্ষেত্র রয়েছে৷
আপনি বাম প্যানেলে সংরক্ষিত ট্যাবে ক্লিক করে সংরক্ষিত প্রশ্নগুলি অ্যাক্সেস করতে পারেন এবং সাম্প্রতিক ট্যাবে ক্লিক করে সম্প্রতি চালানো প্রশ্নগুলি অ্যাক্সেস করতে পারেন:
চিত্র 2. অনুসন্ধান দর্শক বাম প্যানেল.
ফলাফল
সমস্ত ক্যোয়ারী সারণিযুক্ত ফলাফল প্রদান করে, লগ-ভিত্তিক ট্রেস ভিউয়ারের মত ইন্টারেক্টিভ আচরণ সহ একটি স্ক্রোলযোগ্য দৃশ্যে দেখানো হয়, যেমন লেনদেন এবং প্রোটোলগ:
চিত্র 3. দর্শক ফলাফল অনুসন্ধান করুন.
ফলাফল সারণিতে একটি ts
কলাম থাকলে, সেই কলামের মানগুলিকে টাইমস্ট্যাম্প হিসাবে ব্যাখ্যা করা হয় এবং এন্ট্রির একটি নতুন সারি হিসাবে টাইমলাইন ওভারলেতে যোগ করা হয়। এই সারিতে ক্লিক করুন এবং এন্ট্রিগুলির মধ্যে নেভিগেট করতে আপনার বাম এবং ডান তীর কীগুলি ব্যবহার করুন:
চিত্র 4. টাইমলাইন অনুসন্ধান করুন।