لاگ های ردیابی را با Traceview بررسی کنید

Traceview منسوخ شده است. اگر از Android Studio نسخه 3.2 یا بالاتر استفاده می‌کنید، باید در عوض از CPU Profiler برای بازرسی فایل‌های .trace که با ابزارسازی برنامه‌تان با کلاس Debug گرفته شده‌اند، ضبط ردیابی‌های روش جدید، ذخیره فایل‌های .trace و بررسی استفاده از CPU در زمان واقعی استفاده کنید. فرآیندهای برنامه شما

Traceview ابزاری است که نمایش گرافیکی لاگ های ردیابی را ارائه می دهد. شما می توانید گزارش ها را با ابزارسازی کد خود با کلاس Debug ایجاد کنید. این روش ردیابی بسیار دقیق است زیرا می‌توانید دقیقاً مشخص کنید که در کدی که می‌خواهید شروع و ثبت داده‌های ردیابی را متوقف کنید. اگر هنوز این گزارش‌های ردیابی را ایجاد نکرده‌اید و آن‌ها را از دستگاه متصل خود در دستگاه محلی خود ذخیره نکرده‌اید، به ایجاد گزارش‌های ردیابی با ابزارسازی برنامه خود بروید. بررسی این گزارش‌ها با استفاده از Traceview به شما کمک می‌کند برنامه خود را اشکال زدایی کرده و عملکرد آن را نمایه کنید.

نکته: می‌توانید از dmtracedump از خط فرمان برای ایجاد نمودارهای گرافیکی پشته تماس از فایل‌های گزارش ردیابی خود استفاده کنید .

اگر نیازی به مشاهده گزارش‌های ردیابی ندارید که با ابزارسازی برنامه خود با کلاس Debug ضبط کرده‌اید، می‌توانید از نمایه‌ساز CPU موجود در Android Studio نسخه 3.0 و بالاتر برای بررسی رشته‌های برنامه خود و ضبط ردیابی‌های روش استفاده کنید .

یک گزارش ردیابی را با استفاده از Traceview باز کنید

برای باز کردن گزارش ردیابی با Traceview از Android Studio، به صورت زیر عمل کنید:

  1. مانیتور دستگاه Android را راه اندازی کنید.
  2. در مانیتور دستگاه Android، File > Open File را انتخاب کنید.
  3. به فایل .trace که می خواهید بازرسی کنید بروید.
  4. روی Open کلیک کنید.

توجه: اگر می‌خواهید گزارش‌های ردیابی برنامه‌ای را مشاهده کنید که با فعال کردن کوچک کردن کد ساخته شده است (مانند نسخه انتشار)، ممکن است نام برخی از روش‌ها و اعضا مبهم باشد. می‌توانید از فایل ProGuard mapping.txt برای کشف نام‌های اصلی و بدون ابهام استفاده کنید. برای اطلاعات بیشتر در مورد این فایل، به رمزگشایی یک رد پشته مبهم مراجعه کنید.

توجه: اجرای traceview از خط فرمان منسوخ شده است.

نمای کلی Traceview

پس از باز کردن یک گزارش ردیابی، Traceview داده های گزارش را با استفاده از دو صفحه زیر نمایش می دهد:

  • یک صفحه زمانی که توضیح می دهد که هر رشته چه زمانی وارد یک متد می شود و چه زمانی از آن خارج می شود
  • یک صفحه نمایه که اجرای هر رشته را در طول دوره گزارش ردیابی خلاصه می کند

بخش‌های زیر اطلاعات اضافی در مورد پنجره‌های خروجی Traceview ارائه می‌دهند.

صفحه زمانی

شکل 1 نمای نزدیک از صفحه جدول زمانی را نشان می دهد. اجرای هر رشته در ردیف خود نشان داده می شود و زمان سپری شده به سمت راست افزایش می یابد. هر روش در رنگ های مختلف نشان داده شده است. خطوط نازک زیر ردیف اول فرزندان (از ورود تا خروج) روش انتخابی را نشان می دهد.

صفحه زمانی Traceview

شکل 1. صفحه زمانی Traceview.

صفحه نمایه

همانطور که در شکل 2 نشان داده شده است، صفحه پروفایل لیستی از هر روشی را که سیستم در طول دوره ثبت ردیابی اجرا کرده و زمان صرف شده برای اجرای آن روش ها ارائه می دهد. متدی که متد دیگری را فراخوانی می کند والد و متدی که والدین فراخوانی می کند فرزندان آن نامیده می شود. وقتی روشی را با کلیک کردن بر روی آن انتخاب می‌کنید، هم والدین و هم فرزندانش را در دو گره جداگانه نمایش می‌دهد.

برای هر روش (گره سطح بالا)، جدول زمان‌های فراگیر و انحصاری آن (بر حسب میلی‌ثانیه) و همچنین درصد کل زمان را نشان می‌دهد. زمان انحصاری زمان صرف شده برای اجرای کد خود روش است، در حالی که زمان فراگیر زمان صرف شده برای اجرای کد خود روش به اضافه زمان صرف شده برای اجرای فرزندان آن است. اطلاعات زمان بندی نیز بر حسب زمان CPU و زمان واقعی گزارش می شود. زمان CPU فقط زمانی را در نظر می‌گیرد که رشته به طور فعال از زمان CPU استفاده می‌کند، و زمان واقعی اطلاعات زمان‌بندی مطلق را از لحظه‌ای که برنامه شما وارد یک متد می‌شود تا زمانی که از آن روش خارج می‌شود، ارائه می‌کند - صرف نظر از اینکه موضوع فعال یا خوابیده باشد.

برای هر گره سطح بالا در صفحه نمایه، ستون Calls + Rec، Calls/Total در جدول (در شکل 2 نشان داده نشده است) تعداد تماس ها به روش و تعداد تماس های بازگشتی را گزارش می کند. یا برای متدهای والد و فرزند، این ستون تعداد فراخوانی هایی را نشان می دهد که در آنها متد فرزند یا والد متد در گره سطح بالا بوده است.

صفحه نمایه Traceview.

شکل 2. صفحه نمایه Traceview.

Traceview مسائل شناخته شده

ورود به سیستم Traceview به خوبی موضوعات را مدیریت نمی کند، که منجر به مشکلات زیر می شود:

  • اگر رشته ای در حین نمایه سازی خارج شود، نام موضوع منتشر نمی شود (در اندروید 5.1 و بالاتر ثابت شده است).
  • VM از شناسه های رشته استفاده مجدد می کند. اگر یک رشته متوقف شود و دیگری شروع شود، ممکن است همان شناسه را دریافت کنند.