از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
معرفی ترانزیشن های پوسته، روش اجرای انیمیشن ها را در سیستم یکپارچه و مدون کرد و امکان بازیابی اطلاعات متمرکز در مورد انیمیشن های در نظر گرفته شده برای اجرا را فراهم کرد.
ردیابی انتقال شامل دادههای مربوط به هر انتقالی است که در پوسته WindowManager (WM) رخ میدهد، که از هر دو طرف سرور سیستم و پوسته منشا میگیرد. این ردیابی به طور دائم در Droidfood فعال می شود و به طور خودکار در گزارش های اشکال جاسازی می شود.
برای اطلاعات بیشتر در مورد جمع آوری ردیابی، به Transitions Shell مراجعه کنید.
نمایشگر Transitions Winscope این اطلاعات را برای ردیابی های انتقالی که هم اطلاعات سمت سرور و هم اطلاعات سمت سرویس گیرنده را شامل می شود، نمایش می دهد. بیننده شامل یک نمای گزارش جدول است که حاوی اطلاعات سطح بالا در مورد انتقال در سمت چپ و یک نمای دقیق برای هر انتقال در سمت راست است:
شکل 1. تجزیه و تحلیل ردیابی انتقال پوسته.
نمای جدول
نمای جدول شامل:
شناسه: شناسه انتقال فقط برای اشکالزدایی ایجاد میشود.
زمان ارسال: مهر زمانی انتقال از سرور به پوسته برای رسیدگی ارسال شد.
زمان ارسال: زمانی که انتقال برای شروع بازی به کنترل کننده ارسال می شود، مهر زمانی را نشان می دهد.
مدت زمان: زمانی که انتقال از شروع بازی تا پایان طول کشید.
وضعیت: اگر انتقال بود:
PLAYED: : پخش شد.
ABORTED : قبل از پخش سقط شد. انتقال را می توان از سمت پوسته یا WM لغو کرد.
ادغام شده : توسط کنترل کننده انتقال در یک انتقال دیگر که قبلاً در حال پخش است ادغام شده است (دستگیر کننده تصمیم می گیرد که چگونه این کار را انجام دهد).
نمای تفصیلی
علاوه بر جزئیات در نمای جدول، نمای انتقال تفصیلی در بخش SELECTED TRANSITION شامل:
handler : کنترل کننده انتقال که این انیمیشن را مدیریت می کند.
createTimeNs : مهر زمانی انتقال در سمت سرور WM ایجاد شد.
finishTimeNs : زمانی که به سمت سرور WM اطلاع داده می شود که انتقال در سمت پوسته به پایان رسیده است، مهر زمانی را نشان می دهد.
endTransactionId : تراکنش نهایی SurfaceFlinger که در این انتقال گنجانده شده است.
startTransactionId : تراکنش اولیه SurfaceFlinger که در این انتقال گنجانده شده است.
اهداف عناصری هستند که در انتقال (معمولاً فعالیت ها یا وظایف) دخیل هستند. برای هر هدف ثبت می کنیم:
layerId : لایه ای که متحرک می شود (از سلسله مراتب SurfaceFlinger).
mode : نوع انیمیشن اجرا شده در این لایه.
windowId : پنجرهای که متحرک میشود (از سلسله مراتب WindowManager).
flags : مجموعه جدیدی از پرچم ها در حال اعمال به لایه.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Shell transitions\n\nThe introduction of shell transitions consolidated and codified the method of\nrunning animations within the system, allowing for the retrieval of centralized\ninformation regarding the animations slated for execution.\n\nThe transition trace includes data on every transition that occurs within the\nWindowManager (WM) shell, originating from both the system server and shell\nsides. This trace is permanently enabled in Droidfood and automatically embedded\nin bug reports.\n| **Note:** The transitions are stored in a ring buffer, which is recorded by different processes. As a result, it's possible that portions (usually the initial segments) of a transition might have been removed from the buffer. For example, when sending a transition creation time followed by a start and finish time, the buffer might contain all three segments, only the start and finish times, or even only the finish time. This limitation is consistent with other Perfetto data segments and, similar to Perfetto, the limitation is handled during rendering rather than during data creation or parsing.\n\nFor more information about trace collection, see\n[Shell transitions](/docs/core/graphics/winscope/capture/adb#capture-adb-transitions).\n\nWinscope's Transitions viewer displays this information for transition\ntraces containing both server and client-side information. The viewer consists\nof a table log view containing the high-level information about the transition\non the left and a detailed view for each transition at the right:\n\n**Figure 1.** Shell transition trace analysis.\n\nTable view\n----------\n\nThe table view contains:\n\n- **Id:** Transition ID generated only for debugging.\n- **Type:** Transition type, as defined in [`Transitions.java`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java)\n- **Send Time:** Timestamp the transition was sent over from server to shell to be handled.\n- **Dispatch Time:** Timestamp when the transition is dispatched to the handler to start playing.\n- **Duration:** Time the transition took from starting to play to finished.\n- **Status:** If the transition was:\n - **PLAYED:**: Played.\n - **ABORTED**: Aborted before playing. A transition can be aborted from from shell or WM side.\n - **MERGED**: Merged by the transition handler into some other already playing transition (the handler decides how to handle this).\n\nDetailed view\n-------------\n\nIn addition to the details on the table view, the detailed transition view\nin the **SELECTED TRANSITION** section contains:\n\n- `handler`: The transition handler that handled this animation.\n- `createTimeNs`: Timestamp the transition was created on the WM server side.\n- `finishTimeNs`: Timestamp when the WM server side is notified that the transition has finished running on the shell side.\n- `endTransactionId`: Final SurfaceFlinger transaction included in this transition.\n- `startTransactionId`: Initial SurfaceFlinger transaction included in this transition.\n- `targets`: List of transition participants.\n- `type`: Transition type, as defined in [`Transitions.java`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java)\n\n### Targets\n\nTargets are the elements involved in the transition (normally activities or\ntasks). For each target we record:\n\n- `layerId`: Layer that is being animated (from SurfaceFlinger hierarchy).\n- `mode`: Type of animation performed on this layer.\n- `windowId`: Window that is being animated (from WindowManager hierarchy).\n- `flags`: New set of flags being applied to the layer."]]