عملکرد برنامه خود را نمایه کنید

اگر برنامه‌ای به کندی پاسخ دهد، انیمیشن‌های متزلزل نشان دهد، ثابت شود یا انرژی زیادی مصرف کند، عملکرد ضعیفی دارد. رفع مشکلات عملکرد شامل شناسایی مناطقی است که برنامه شما از منابعی مانند CPU، حافظه، گرافیک، شبکه یا باتری دستگاه استفاده ناکارآمد می‌کند.

برای یافتن و رفع این مشکلات، از ابزارها و تکنیک های پروفایل و محک که در این مبحث توضیح داده شده است استفاده کنید. برای یادگیری تکنیک‌های اندازه‌گیری عملکرد و مثال‌هایی از نحوه استفاده از این تکنیک‌ها برای حل مشکلات خاص، به اندازه‌گیری عملکرد مراجعه کنید.

Android Studio چندین ابزار پروفایل را برای کمک به یافتن و تجسم مشکلات احتمالی ارائه می دهد:

  • پروفایلر CPU به ردیابی مشکلات عملکرد زمان اجرا کمک می کند.
  • نمایه ساز حافظه به ردیابی تخصیص حافظه کمک می کند.
  • پروفیل انرژی مصرف انرژی را ردیابی می کند که می تواند به تخلیه باتری کمک کند.

این ابزارها با اندروید 5.0 (سطح API 21) و بالاتر سازگار هستند. برای کسب اطلاعات بیشتر در مورد ابزارها، به صفحات دیگر در این بخش از راهنمای کاربر مراجعه کنید.

کتابخانه های Jetpack Benchmark به برنامه شما اجازه می دهد تا عملیات مهم مختلف را اندازه گیری کند:

  • ماکرو بنچمارک : موارد استفاده از عملکرد مهم را اندازه‌گیری کنید، از جمله راه‌اندازی برنامه و ترسیم مجدد که توسط اقداماتی مانند انیمیشن‌های رابط کاربری یا پیمایش انجام می‌شود.
  • Microbenchmark : اندازه گیری هزینه CPU برای عملکردهای خاص.

برای کسب اطلاعات بیشتر در مورد این کتابخانه‌ها، به صفحه برنامه خود بنچمارک کنید.

برنامه های کاربردی پروفایل

Profileable یک پیکربندی مانیفست است که در Android Q معرفی شده است. می تواند مشخص کند که آیا کاربر دستگاه می تواند این برنامه را از طریق ابزارهایی مانند Android Studio، Simpleperf و Perfetto نمایه کند یا خیر.

قبل از profileable ، بیشتر توسعه‌دهندگان فقط می‌توانستند اپلیکیشن‌های قابل اشکال‌زدایی را در اندروید نمایه کنند، که هزینه‌های عملکرد قابل توجهی را به عنوان یک اثر جانبی اضافه می‌کرد. این هزینه های عملکرد می تواند نتایج پروفایل را باطل کند، به خصوص اگر مربوط به زمان باشد. جدول 1 تفاوت های بین برنامه های قابل اشکال زدایی و پروفایل را خلاصه می کند.

جدول 1. خلاصه تفاوت های کلیدی بین برنامه های قابل اشکال زدایی و پروفایل.
ویژگی قابل اشکال زدایی قابل مشخصات
نمایه کننده حافظه کامل

بله:

خیر:

پروفایل CPU کامل

بله:

خیر:

پروفایل شبکه بله خیر
پروفیل انرژی بله خیر
پروفیل برق بله بله
مانیتور رویداد بله خیر

Profileable معرفی شده است تا توسعه دهندگان بتوانند انتخاب کنند که به برنامه های خود اجازه دهند اطلاعات را در معرض ابزارهای پروفایل قرار دهند، در حالی که هزینه های عملکرد بسیار کمی را متحمل می شوند. یک APK نمایه‌پذیر اساساً یک APK انتشار است که یک خط <profileable android:shell="true"/> در بخش <application> فایل مانیفست اضافه شده است.

به طور خودکار یک برنامه پروفایل بسازید و اجرا کنید

شما می توانید یک برنامه پروفایل را با یک کلیک پیکربندی، بسازید و اجرا کنید. این ویژگی به یک دستگاه تست مجازی یا فیزیکی نیاز دارد که دارای API سطح 29 یا بالاتر باشد و دارای Google Play باشد. برای استفاده از این ویژگی، روی فلش کنار نماد برنامه پروفایل کلیک کنید و بین دو گزینه انتخاب کنید:

منوی ساخت پروفایل با یک کلیک.
  • «برنامه» نمایه با سربار کم، نمایه سازهای CPU و حافظه را راه اندازی می کند. در نمایه ساز حافظه، فقط Record Native Allocations فعال است.

    پروفایل با سربار کم.
  • «برنامه» نمایه با داده‌های کامل، پروفایل‌کننده‌های CPU، Memory و Energy را راه‌اندازی می‌کند.

    نمایه سازی با داده های کامل

یک برنامه پروفایل را به صورت دستی بسازید و اجرا کنید

برای ساخت دستی یک اپلیکیشن پروفایل، ابتدا باید یک اپلیکیشن انتشار بسازید و سپس فایل مانیفست آن را به روز کنید، که اپلیکیشن انتشار را به یک اپلیکیشن پروفایل تبدیل می کند. پس از پیکربندی برنامه پروفایل، نمایه ساز را راه اندازی کنید و یک فرآیند پروفایل را برای تجزیه و تحلیل انتخاب کنید.

یک برنامه انتشار بسازید

برای ایجاد یک برنامه انتشار برای اهداف پروفایل، موارد زیر را انجام دهید:

  1. با افزودن خطوط زیر به فایل build.gradle برنامه خود را با کلید اشکال زدایی امضا کنید. اگر از قبل یک نسخه ساخت نسخه کارآمد دارید، می توانید به مرحله بعدی بروید.

            buildTypes {
              release {
                signingConfig signingConfigs.debug
              }
            }
          
  2. در Android Studio، Build > Select Build Variant... را انتخاب کنید و نوع انتشار را انتخاب کنید.

انتشار را به پروفایلی تغییر دهید

  1. با باز کردن فایل AndroidManifest.xml و افزودن موارد زیر در <application> ، برنامه انتشار خود را از بالا به یک برنامه قابل نمایه تبدیل کنید. برای جزئیات بیشتر، به ساخت برنامه خود برای انتشار مراجعه کنید.

    <profileable android:shell="true"/>

  2. بسته به نسخه SDK، ممکن است لازم باشد خطوط زیر را به فایل build.gradle برنامه اضافه کنید.

          aaptOptions {
            additionalParameters =["--warn-manifest-validation"]
          }
        

نمایه یک برنامه قابل پروفایل

برای نمایه کردن یک برنامه پروفایل، موارد زیر را انجام دهید:

  1. از شبیه ساز توسعه یا دستگاه، برنامه را راه اندازی کنید.

  2. در Android Studio، نمایه ساز را با انتخاب View > Tool Windows > Profiler اجرا کنید.

  3. پس از راه اندازی برنامه، روی آن کلیک کنید دکمه پروفایلرز پلاس برای مشاهده منوی کشویی در پروفایلر را فشار دهید. دستگاه خود را انتخاب کنید، سپس ورودی برنامه را در قسمت سایر فرآیندهای نمایه پذیر انتخاب کنید.

    منوی پروفایل
  4. نمایه ساز باید به برنامه پیوست شود. فقط CPU و Memory Profiler در دسترس هستند، با قابلیت های محدود برای Memory Profiler.

    نمای جلسه قابل مشاهده
    منوی پروفایل
    منوی پروفایل

جلسات

می‌توانید داده‌های Profiler را به‌عنوان جلسات ذخیره کنید، که تا زمانی که Android Studio را ترک نکنید، حفظ می‌شوند. با ثبت اطلاعات پروفایل در چندین جلسه و جابجایی بین آنها، می توانید میزان استفاده از منابع را در سناریوهای مختلف مقایسه کنید.

  • برای شروع یک جلسه جدید، روی شروع یک جلسه پروفایل جدید کلیک کنید را فشار دهید و یک فرآیند برنامه را از منوی کشویی که ظاهر می شود انتخاب کنید.
  • وقتی یک ردیابی ضبط می‌کنید یا یک پشته خالی می‌گیرید ، Android Studio این داده‌ها را (همراه با فعالیت شبکه برنامه شما) به عنوان ورودی جداگانه به جلسه فعلی اضافه می‌کند.
  • برای توقف افزودن داده به جلسه جاری، روی توقف جلسه نمایه سازی فعلی کلیک کنید .
  • برای وارد کردن ردیابی صادر شده از اجرای قبلی Android Studio، روی Start new profiler session کلیک کنید و Load from file را انتخاب کنید.

فعال کردن پشتیبانی اضافی برای دستگاه های قدیمی تر (سطح API < 26)

برای نمایش داده های پروفایل اضافی هنگام اجرای دستگاهی با Android 7.1 یا پایین تر، Android Studio باید منطق نظارت را به برنامه کامپایل شده شما تزریق کند. این داده های پروفایل اضافی شامل موارد زیر است:

  • جدول زمانی رویداد در تمام پنجره های پروفایلر
  • تعداد اشیاء اختصاص داده شده در Memory Profiler
  • رویدادهای جمع آوری زباله در Memory Profiler
  • جزئیات مربوط به همه فایل های ارسال شده در Network Profiler

برای فعال کردن پشتیبانی اضافی برای دستگاه های قدیمی، این مراحل را دنبال کنید:

  1. Run > Edit Configurations را انتخاب کنید.
  2. ماژول برنامه خود را در قسمت سمت چپ انتخاب کنید.
  3. روی برگه Profilling کلیک کنید و سپس فعال کردن پشتیبانی اضافی برای دستگاه‌های قدیمی (سطح API < 26) را علامت بزنید.
  4. برنامه خود را دوباره بسازید و اجرا کنید.

فعال کردن پشتیبانی اضافی برای دستگاه‌های قدیمی‌تر، روند ساخت را کندتر می‌کند، بنابراین فقط زمانی باید آن را فعال کنید که می‌خواهید پروفایل برنامه خود را شروع کنید.

پروفایلرهای مستقل را اجرا کنید

نمایه‌های مستقل Android Studio به شما امکان می‌دهند برنامه خود را بدون اجرای IDE کامل Android Studio نمایه کنید.

برای اجرای پروفایلرهای مستقل، موارد زیر را انجام دهید:

  1. مطمئن شوید که نمایه ساز در حال حاضر در داخل Android Studio اجرا نمی شود.
  2. به دایرکتوری نصب بروید و به دایرکتوری bin بروید:

    Windows/Linux : studio-installation-folder /bin

    macOS : استفاده از نمایه سازهای مستقل در macOS پشتیبانی نمی شود.

  3. بسته به سیستم عامل خود، profiler.exe یا profiler.sh اجرا کنید. صفحه نمایش اسپلش اندروید استودیو ظاهر می شود. پس از ناپدید شدن صفحه اسپلش، یک پنجره نمایه ساز باز می شود.