Winscope Perfetto ট্রেসে নির্দিষ্ট স্টেট খুঁজে পেতে SQL ব্যবহার করুন। Winscope UI-এর গ্লোবাল সার্চ ভিউয়ার আপনাকে কোয়েরি চালাতে এবং সারণীবদ্ধ ফলাফল দেখতে দেয়:

চিত্র ১. অনুসন্ধান প্রদর্শক ট্যাব।
সার্চ ভিউয়ার আপনাকে পারফেটটো ট্রেসের উপর কাস্টম SQL কোয়েরি লিখতে ও চালাতে দেয়। আপনি সাম্প্রতিক এবং সংরক্ষিত কোয়েরিগুলোও অ্যাক্সেস করতে পারেন। উইনস্কোপ সারফেসফ্লিঙ্গার, ট্রানজ্যাকশন, ট্রানজিশন এবং ভিউক্যাপচার ট্রেস অনুসন্ধানে সাহায্য করার জন্য বিশেষায়িত SQL ভিউ প্রদান করে।
সকল ভিউয়ের জন্য নিম্নলিখিত নিয়মগুলো ব্যবহার করুন:
propertyএবংflat_propertyকলামগুলির জন্য:- প্রপার্টির নামগুলো স্নেক কেসে (snake case) লেখা হয়, যেমন
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দ্বারা উপস্থাপিত হয়।
- প্রপার্টির নামগুলো স্নেক কেসে (snake case) লেখা হয়, যেমন
valueএবংprevious_valueকলামের ক্ষেত্রে, বুলিয়ান মান0(False) বা1(True) দ্বারা প্রকাশ করা হয়।
উইনস্কোপ ট্রেস-নির্দিষ্ট টেবিলের ডেটার সাথে পারফেটটো args টেবিলের ডেটা যুক্ত করে এই ভিউগুলো তৈরি করে। আপনি সরাসরি এই টেবিলগুলো কোয়েরি করতে পারেন। args টেবিলে, key , flat_key , এবং display_value কলামগুলো যথাক্রমে property , flat_property , এবং value ভিউ কলামের অনুরূপ।
args টেবিল:
| কলাম | বর্ণনা |
|---|---|
arg_set_id | একগুচ্ছ আর্গুমেন্ট সংযুক্ত করতে ব্যবহৃত হয়। |
flat_key | প্রোটো বার্তা থেকে প্রাপ্ত প্রপার্টির নাম, পুনরাবৃত্ত ফিল্ডগুলো বিবেচনা না করে। |
key | প্রোটো বার্তা থেকে প্রপার্টির নাম, পুনরাবৃত্ত ক্ষেত্রগুলি বিবেচনা করে |
value_type | সম্পত্তির মান প্রকার |
int_value | প্রপার্টির মান, যদি মানের ধরণ পূর্ণসংখ্যা হয় |
string_value | প্রপার্টির মান, যদি মানের ধরণ স্ট্রিং হয় |
real_value | প্রপার্টির মান যদি মানের ধরণ বাস্তব হয় |
display_value | প্রপার্টির মান স্ট্রিং-এ রূপান্তর করা হয়েছে |
সারফেসফ্লিঙ্গার এসকিউএল ভিউ
সারফেসফ্লিঙ্গার প্রোটো ডেটা নিম্নলিখিত ফরম্যাটগুলো ব্যবহার করে:
- লেয়ার ডেটা
LayerProtoফরম্যাটে রয়েছে। - হায়ারার্কি রুট ডেটা
LayersSnapshotProtoফরম্যাটে থাকে।
লেয়ার ডেটা অনুসন্ধান করতে sf_layer_search ভিউটি ব্যবহার করুন। এই ভিউটিতে নিম্নলিখিত কলামগুলো অন্তর্ভুক্ত রয়েছে:
| কলাম | বর্ণনা |
|---|---|
state_id | যে এন্ট্রিতে লেয়ারটি অন্তর্ভুক্ত, তার সারি আইডি। |
ts | যে এন্ট্রিতে লেয়ারটি অন্তর্ভুক্ত, তার টাইমস্ট্যাম্প। |
layer_id | স্তর আইডি |
parent_id | প্যারেন্টের লেয়ার আইডি |
layer_name | স্তরের নাম |
is_visible | স্তর দৃশ্যমানতা |
property | পুনরাবৃত্ত ফিল্ডগুলির জন্য প্রপার্টির নাম অ্যাকাউন্টিং |
flat_property | প্রপার্টির নামে পুনরাবৃত্ত ফিল্ডগুলো বিবেচনা করা হচ্ছে না |
value | স্ট্রিং ফরম্যাটে প্রপার্টির মান |
previous_value | পূর্ববর্তী এন্ট্রি থেকে প্রাপ্ত প্রপার্টির মান স্ট্রিং ফরম্যাটে |
হায়ারার্কি রুট ডেটা অনুসন্ধান করতে, sf_hierarchy_root_search ভিউটি ব্যবহার করুন। এই ভিউটিতে নিম্নলিখিত কলামগুলি অন্তর্ভুক্ত রয়েছে:
| কলাম | বর্ণনা |
|---|---|
state_id | এন্ট্রির সারি আইডি |
ts | এন্ট্রির টাইমস্ট্যাম্প |
property | পুনরাবৃত্ত ফিল্ডগুলির জন্য প্রপার্টির নাম অ্যাকাউন্টিং |
flat_property | প্রপার্টির নামে পুনরাবৃত্ত ফিল্ডগুলো বিবেচনা করা হচ্ছে না |
value | স্ট্রিং ফরম্যাটে প্রপার্টির মান |
previous_value | পূর্ববর্তী এন্ট্রি থেকে প্রাপ্ত প্রপার্টির মান স্ট্রিং ফরম্যাটে |
উদাহরণ কোয়েরি
সেই সমস্ত ফ্রেম খুঁজুন যেখানে
IMEলেয়ারটি দৃশ্যমান:SELECT DISTINCT ts, layer_id, layer_name FROM sf_layer_search WHERE layer_name like 'IME%' AND is_visible=1সেই সমস্ত ফ্রেম খুঁজুন যেখানে
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নিম্নসীমা ২৪০০-এর কম বা সমান: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, ']') ), '%' )সেই সমস্ত ফ্রেম খুঁজুন যেখানে সোয়াইপ ব্যাক জেসচারটি দৃশ্যমান।
SELECT DISTINCT STATE.ts FROM sf_layer_search STATE WHERE STATE.layer_name LIKE 'EdgeBackGestureHandler%'
ডেটা টেবিল
সারফেসফ্লিঙ্গার ভিউগুলো নিম্নলিখিত অন্তর্নিহিত টেবিলগুলো ব্যবহার করে তৈরি করা হয়।
surfaceflinger_layers_snapshot :
| কলাম | বর্ণনা |
|---|---|
id | এন্ট্রির জন্য সারি আইডি |
ts | এন্ট্রির টাইমস্ট্যাম্প |
arg_set_id | args টেবিলের সারিগুলোকে এই এন্ট্রির সাথে যুক্ত করতে ব্যবহৃত আইডি। |
surfaceflinger_layer :
| কলাম | বর্ণনা |
|---|---|
id | লেয়ারের জন্য সারি আইডি |
snapshot_id | surfaceflinger_layers_snapshot এর এন্ট্রির সারি আইডি, যেটিতে লেয়ারটি অন্তর্ভুক্ত। |
arg_set_id | args টেবিলের সারিগুলোকে এই লেয়ারের সাথে যুক্ত করতে ব্যবহৃত আইডি। |
লেনদেন 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'
ডেটা টেবিল
ট্রানজ্যাকশনস এসকিউএল ভিউটি নিম্নলিখিত অন্তর্নিহিত টেবিলগুলো ব্যবহার করে তৈরি করা হয়।
surfaceflinger_transactions :
| কলাম | বর্ণনা |
|---|---|
id | এন্ট্রির জন্য সারি আইডি |
ts | এন্ট্রির টাইমস্ট্যাম্প |
arg_set_id | args টেবিলের সারিগুলোকে এই এন্ট্রির সাথে যুক্ত করতে ব্যবহৃত আইডি। |
vsync_id | এই এন্ট্রির সমস্ত লেনদেনের সাথে যুক্ত VSync ID |
android_surfaceflinger_transaction :
| কলাম | বর্ণনা |
|---|---|
id | লেনদেনের জন্য সারি আইডি |
snapshot_id | surfaceflinger_transactions থেকে প্রাপ্ত এন্ট্রির সারি আইডি, যেটিতে লেনদেনটি অন্তর্ভুক্ত। |
arg_set_id | এই ট্রানজ্যাকশনের সাথে args টেবিলের সারিগুলোকে সংযুক্ত করতে ব্যবহৃত আইডি। |
transaction_id | প্রোটো বার্তা থেকে নেওয়া লেনদেন আইডি |
pid | প্রোটো বার্তা থেকে নেওয়া লেনদেন পিআইডি |
uid | প্রোটো বার্তা থেকে নেওয়া লেনদেন UID |
layer_id | লেনদেনের সাথে সংশ্লিষ্ট লেয়ারের আইডি, যদি প্রযোজ্য হয় |
display_id | লেনদেনের সাথে যুক্ত ডিসপ্লের আইডি, যদি প্রযোজ্য হয় |
flags_id | android_surfaceflinger_transaction_flag থেকে সংশ্লিষ্ট ফ্ল্যাগগুলি পুনরুদ্ধার করতে ব্যবহৃত ID |
transaction_type | লেনদেনের ধরণ |
android_surfaceflinger_transaction_flag :
| কলাম | বর্ণনা |
|---|---|
flags_id | android_surfaceflinger_transaction এর একটি সারির মানের সাথে সঙ্গতিপূর্ণ। |
flag | অনূদিত পতাকা স্ট্রিং |
স্বতন্ত্র লেনদেনগুলো তাদের লেনদেনের ধরনের ওপর ভিত্তি করে বিভিন্ন প্রোটো মেসেজ ফরম্যাট থেকে args টেবিলে যুক্ত করা হয়:
-
LAYER_ADDED:LayerCreationArgsফরম্যাট -
LAYER_CHANGED:LayerStateবিন্যাস -
DISPLAY_ADDED:DisplayStateফরম্যাট -
DISPLAY_CHANGED:DisplayStateফরম্যাট -
LAYER_DESTROYED: কোনো আর্গুমেন্ট নেই -
LAYER_HANDLE_DESTROYED: কোনো আর্গুমেন্ট নেই -
DISPLAY_REMOVED: কোনো আর্গুমেন্ট নেই -
NOOP: কোনো আর্গুমেন্ট নেই
ট্রানজিশন SQL ভিউ
ট্রানজিশন প্রোটো ডেটা ShellTransition ফরম্যাট ব্যবহার করে।
ট্রানজিশন ডেটা অনুসন্ধান করতে, transitions_search ভিউটি ব্যবহার করুন। এই ভিউটিতে নিম্নলিখিত কলামগুলো অন্তর্ভুক্ত রয়েছে:
| কলাম | বর্ণনা |
|---|---|
ts | প্রেরণের সময়; উপলব্ধ থাকলে প্রেরণের সময়ে ফিরে যাবে, অন্যথায় 0 |
transition_id | প্রোটো বার্তা থেকে নেওয়া ট্রানজিশন আইডি |
property | পুনরাবৃত্ত ফিল্ডগুলির জন্য প্রপার্টির নাম অ্যাকাউন্টিং |
flat_property | প্রপার্টির নামে পুনরাবৃত্ত ফিল্ডগুলো বিবেচনা করা হচ্ছে না |
value | প্রোটো বার্তা থেকে নেওয়া লেনদেন UID |
উদাহরণ কোয়েরি
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
ডেটা টেবিল
ট্রানজিশনস ভিউটি নিম্নলিখিত অন্তর্নিহিত টেবিলগুলো ব্যবহার করে তৈরি করা হয়।
window_manager_shell_transitions :
| কলাম | বর্ণনা |
|---|---|
id | ট্রানজিশনের জন্য সারি আইডি |
ts | প্রেরণের সময়; উপলব্ধ থাকলে প্রেরণের সময়ে ফিরে যাবে, অন্যথায় 0 |
transition_id | প্রোটো বার্তা থেকে নেওয়া ট্রানজিশন আইডি |
arg_set_id | এই ট্রানজিশনের সাথে args টেবিলের সারিগুলোকে যুক্ত করতে ID ব্যবহার করা হয়। |
transition_type | প্রোটো বার্তা থেকে নেওয়া রূপান্তর প্রকার |
send_time_ns | প্রোটো বার্তা থেকে ট্রানজিশন পাঠানোর সময় নেওয়া হয়েছে |
dispatch_time_ns | প্রোটো বার্তা থেকে নেওয়া ট্রানজিশন প্রেরণের সময় |
duration_ns | রূপান্তরের সময়কাল, যদি শুরু এবং শেষের সময় উপলব্ধ থাকে |
handler | ট্রানজিশন হ্যান্ডলার: window_manager_shell_transition_handlers থেকে অনুবাদ পুনরুদ্ধার করুন |
status | রূপান্তরের অবস্থা: played , merged , বা aborted |
flags | প্রোটো বার্তা থেকে নেওয়া ট্রানজিশন ফ্ল্যাগ |
window_manager_shell_transition_handlers :
| কলাম | বর্ণনা |
|---|---|
handler_id | window_manager_shell_transitions এর handler কলামের মানের সাথে সংশ্লিষ্ট ID |
handler_name | স্ট্রিং অনুবাদ |
android_window_manager_shell_transition_participants :
| কলাম | বর্ণনা |
|---|---|
transition_id | কাঁচা প্রোটো বার্তা থেকে নেওয়া ট্রানজিশন আইডি |
layer_id | সারফেসফ্লিঙ্গার লেয়ার অংশগ্রহণকারীর আইডি |
window_id | উইন্ডো ম্যানেজার কন্টেইনার অংশগ্রহণকারীর আইডি |
ভিউক্যাপচার এসকিউএল ভিউ
ViewCapture প্রোটো ডেটা 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
ডেটা টেবিল
ViewCapture ভিউটি নিম্নলিখিত অন্তর্নিহিত টেবিলগুলো ব্যবহার করে তৈরি করা হয়।
android_viewcapture :
| কলাম | বর্ণনা |
|---|---|
id | এন্ট্রির জন্য সারি আইডি |
ts | এন্ট্রির টাইমস্ট্যাম্প |
arg_set_id | args টেবিলের সারিগুলোকে এই এন্ট্রির সাথে যুক্ত করতে ব্যবহৃত আইডি। |
android_viewcapture_view :
| কলাম | বর্ণনা |
|---|---|
id | ভিউটির জন্য সারি আইডি |
snapshot_id | android_viewcapture থেকে প্রাপ্ত এন্ট্রির সারি আইডি, যেটিতে ভিউটি অন্তর্ভুক্ত। |
arg_set_id | এই ভিউয়ের সাথে args টেবিলের সারিগুলোকে সংযুক্ত করতে ID ব্যবহার করা হয়। |
প্রোটোলগ এসকিউএল টেবিল
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, '%');
উইন্ডোম্যানেজার এসকিউএল ভিউ
WindowManager প্রোটো ডেটা শ্রেণিবদ্ধ WindowManagerServiceDumpProto ফরম্যাট ব্যবহার করে। আপনি যেকোনো WindowManager কন্টেইনারের প্রোপার্টিগুলো অনুসন্ধান করতে পারেন, যার মধ্যে অন্তর্ভুক্ত রয়েছে:
-
DisplayContentProto -
DisplayAreaProto -
TaskProto -
ActivityRecordProto -
WindowTokenProto -
WindowStateProto -
TaskFragmentProto -
WindowContainerProto
WindowManager ডেটা অনুসন্ধান করতে, wm_search ভিউটি ব্যবহার করুন। এই ভিউটিতে নিম্নলিখিত কলামগুলো অন্তর্ভুক্ত রয়েছে:
| কলাম | বর্ণনা |
|---|---|
state_id | কন্টেইনারটি যে রাজ্যের অন্তর্গত, সেই রাজ্যের সারি আইডি |
ts | কন্টেইনারটি যে রাজ্যের অন্তর্গত তার টাইমস্ট্যাম্প |
title | কন্টেইনার শিরোনাম |
token | কন্টেইনার টোকেন |
parent_token | প্যারেন্ট কন্টেইনার টোকেন |
is_visible | কন্টেইনারের দৃশ্যমানতা |
property | পুনরাবৃত্ত ফিল্ডগুলির জন্য প্রপার্টির নাম অ্যাকাউন্টিং |
flat_property | প্রপার্টির নামে পুনরাবৃত্ত ফিল্ডগুলো বিবেচনা করা হচ্ছে না |
value | স্ট্রিং ফরম্যাটে প্রপার্টির মান |
previous_value | পূর্ববর্তী অবস্থা থেকে প্রাপ্ত প্রপার্টির মান স্ট্রিং ফরম্যাটে |
উদাহরণ কোয়েরি
সেই সমস্ত স্টেটগুলি খুঁজুন যেখানে
LauncherActivityদৃশ্যমান:SELECT DISTINCT ts, title, token FROM wm_search WHERE title like '%LauncherActivity%' AND is_visible=1সেই সমস্ত অবস্থা খুঁজুন যেখানে
Wallpaperপৃষ্ঠটি নড়াচড়া করছে:SELECT ts, value, previous_value FROM wm_search WHERE title like '%Wallpaper%' AND property like '%surface_position%' AND value != previous_value
ডেটা টেবিল
WindowManager ভিউটি নিম্নলিখিত অন্তর্নিহিত টেবিলগুলো ব্যবহার করে তৈরি করা হয়।
android_windowmanager :
| কলাম | বর্ণনা |
|---|---|
id | এন্ট্রির জন্য সারি আইডি |
ts | এন্ট্রির টাইমস্ট্যাম্প |
arg_set_id | args টেবিলের সারিগুলোকে এই এন্ট্রির সাথে যুক্ত করতে ব্যবহৃত আইডি। |
android_windowmanager_windowcontainer :
| কলাম | বর্ণনা |
|---|---|
id | কন্টেইনারের জন্য সারি আইডি |
snapshot_id | android_windowmanager এর সেই এন্ট্রির সারি আইডি, যেটিতে কন্টেইনারটি অন্তর্ভুক্ত। |
arg_set_id | এই ভিউয়ের সাথে args টেবিলের সারিগুলোকে সংযুক্ত করতে ID ব্যবহার করা হয়। |
কোয়েরি চালান
আপনি সার্চ ভিউয়ারের বাম দিকে থাকা গ্লোবাল সার্চ প্যানেল ব্যবহার করে সার্চ কোয়েরি চালাতে পারেন।
আপনি যখন প্রথমবার গ্লোবাল সার্চ প্যানেলটি ব্যবহার করেন, তখন ট্রেস সার্চ চালু হয় এবং উইনস্কোপ হেল্পার SQL ভিউগুলো তৈরি করে। এতে কয়েক সেকেন্ড সময় লাগে। ট্রেস সার্চ চালু হওয়ার সময় টাইমলাইনটি পাওয়া যায় না।
কোয়েরি শুরু করতে, সার্চ বক্সে কোয়েরিটি লিখুন এবং 'Run Search Query'-তে ক্লিক করুন অথবা এটি চালানোর জন্য আপনার কিবোর্ডের এন্টার চাপুন।
কাজ শেষ হলে, ফলাফলের সারণিটি মাঝের প্যানেলে প্রদর্শিত হয়। আপনার কোয়েরিটি সার্চ বক্সের নিচে দেখা যায় এবং সেশনগুলোর মধ্যে কোয়েরিটি সংরক্ষণ করার জন্য একটি ফিল্ড থাকে।
আপনি বাম প্যানেলে থাকা 'Saved ' ট্যাবে ক্লিক করে সংরক্ষিত কোয়েরিগুলো দেখতে পারেন, এবং 'Recent' ট্যাবে ক্লিক করে সম্প্রতি চালানো কোয়েরিগুলো দেখতে পারেন:

চিত্র ২। অনুসন্ধান প্রদর্শকের বাম প্যানেল।
ফলাফল
সমস্ত কোয়েরি সারণীবদ্ধ ফলাফল প্রদান করে, যা ট্রানজ্যাকশনস এবং প্রোটোলগ-এর মতো লগ-ভিত্তিক ট্রেস ভিউয়ারগুলির অনুরূপ ইন্টারেক্টিভ আচরণ সহ একটি স্ক্রোলযোগ্য ভিউতে দেখানো হয়:

চিত্র ৩. অনুসন্ধান দর্শকের ফলাফল।
ফলাফল টেবিলে যদি একটি ts কলাম থাকে, তাহলে সেই কলামের মানগুলিকে টাইমস্ট্যাম্প হিসাবে গণ্য করা হয় এবং টাইমলাইন ওভারলেতে এন্ট্রির একটি নতুন সারি হিসাবে যুক্ত করা হয়। এই সারিতে ক্লিক করুন এবং এন্ট্রিগুলির মধ্যে যাতায়াত করতে আপনার বাম এবং ডান অ্যারো কী ব্যবহার করুন:

চিত্র ৪. অনুসন্ধানের সময়রেখা।