اندازه‌گیری دقیق عملکرد برنامه اندروید با ساخت‌های نمایه‌پذیر



ارسال شده توسط یی یانگ (مهندس نرم افزار)
مهم است که از عملکرد برنامه خود آگاه باشید تا مطمئن شوید کاربران می توانند به راحتی از برنامه شما استفاده کنند. هنگامی که یک برنامه با مشکلاتی مانند جابجایی ،میشن، فریم های ثابت و استفاده از حافظه زیاد مواجه می شود، بر تجربه کاربر تأثیر منفی می گذارد که می تواند منجر به رتبه بندی پایین تر یا حذف برنامه شود. برای رفع این مشکلات عملکرد، ابتدا به ابزارهای من، برای اندازه گیری صحیح عملکرد برنامه نیاز داریم.

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

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

در حالی که مفید است، ساخت اشکال زدایی به منظور ارائه اطلاعات بیشتر به قیمت عملکرد است. به این دلیل که وقتی قابل اشکال زدایی درست است، بسیاری از بهینه سازی های کامپای، خاموش هستند.

تصویری از تنظیمات رندر نمایه HWUI در گزینه‌های برنامه‌نویس.  این گزینه در Developer Options > Monitoring > Profile HWUI rendering > On screen as bars است.” border=”0″ data-original-height=”1999″ data-original-width=”947″ height=”640″ src=”https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibu1SgMb2IahMZdI6rbpRYD3yL2WKShUW4jezaKL1L699yUcmLdUtH0pMYdXQAMmeNfNHqyiuVmSHt0sWyah4krhseBY5otYnVy2C9SyzdCIVmsp_s4_lqpiJ_H9K3qCkRAh8yT1X6mr8bHNGwkfP_0zsftAYEvsSDWsRKHgVXilMbxiYQlh3NMDSc/w304-h640/image9.png” width=”304″/></a></div>
<p>برای نشان دادن تفاوت عملکرد بین بیلدهای اشکال زدایی و انتشار، برنامه ای را ضبط کردیم که روی یک دستگاه اجرا می شود اما در این دو نوع ساخت.  برای تجسم زمان رندر فریم، هنگام ضبط صفحه نمایش، رندر نمایه GPU (یا رندر نمایه HWUI در برخی از نسخه‌های اندروید) را در گزینه‌های برنامه‌نویس روشن کردیم.  هر نوار عمودی در پایین صفحه نشان دهنده مدت زم، است که هر فریم رندر می شود.  هرچه این نوارها کوتاهتر باشند، ،میشن روانتر است.  </p>
<p>ضبط صفحه زیر همان برنامه را نشان می دهد که روی همان دستگاه اجرا می شود.  سمت چپ در ساخت اشکال زدایی است، سمت راست نسخه انتشار است.  نسخه اشکال زدایی فریم های لکنت بیشتری دارد که به ،وان UI jank نیز شناخته می شود.  این بدان م،است که وقتی بیلد اشکال‌زدایی را نمایه می‌کنید، ممکن است اندازه‌گیری‌های زمان‌بندی را به‌طور قابل‌توجهی با آنچه کاربرانتان در نسخه منتشر می‌بینند متفاوت ببینید، و ممکن است در نهایت چیزی را بهینه کنید که مشکلی نیست.</p>
<table align=

GIF تفاوت عملکرد بین اشکال زدایی و نسخه های انتشار را نشان می دهد

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

AndroidManifest.xml

<کاربرد>
<پروفایل اندروید:پوسته=[“true” | “false”] />
کاربرد>

بیایید به ضبط صفحه دیگری نگاه کنیم. این بار سمت چپ a را نشان می دهد قابل پروفایل برنامه انتشار و سمت راست یک برنامه انتشار بدون تغییر. تفاوت عملکرد کمی بین این دو وجود دارد.

GIF تفاوت عملکرد بین ساخت‌های قابل پروفایل و نسخه‌های منتشر شده را نشان می‌دهد

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

این ویژگی برای استفاده در تولیدی طراحی شده است که در آن امنیت برنامه در اولویت قرار دارد. بنابراین ما تصمیم گرفتیم که فقط از ویژگی های نمایه سازی مانند Callstack Sampling و ردیابی سیستم، جایی که اندازه گیری زمان حیاتی است. این نمایه کننده حافظه فقط پشتیب، می کند پروفایل حافظه بومی. را پروفیل انرژی و ج، زم، رویداد در دسترس نیستند. لیست کامل ویژگی های غیرفعال را می توان یافت اینجا. همه این محدودیت ها برای ایمن نگه داشتن داده های برنامه شما اعمال شده است.

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

گزینه 1: از گزینه موجود در Android Studio استفاده کنید.

با Android Studio Flamingo و Android Gradle Plugin 8.0، تنها کاری که باید انجام دهید این است که این گزینه را از منوی کشویی Profile در نوار ابزار Run انتخاب کنید: “Profile with low overhead”. سپس اندروید استودیو به طور خودکار یک برنامه نمایه‌پذیر از نوع ساخت فعلی شما می‌سازد و نمایه‌گر را پیوست می‌کند. این برای هر نوع ساختی کار می کند، اما ما به شدت به شما توصیه می کنیم که یک نسخه نسخه را نمایه کنید، چیزی که کاربران شما می بینند.

اسکرین شات از ویژگی ساخت های پروفایل با یک کلیک در Android Studio Flamingo Canary

هنگامی که یک برنامه قابل پروفایل نمایه می شود، یک نشانگر بصری به همراه یک پیام بنر وجود دارد. فقط پروفیل‌های CPU و Memory در دسترس هستند.

اسکرین شات نمایه‌ساز اندروید استودیو که یک ساخت نمایه‌پذیر را نمایان می‌کند

در Memory Profiler، به دلایل امنیتی، فقط ویژگی ضبط تخصیص بومی موجود است.

نماگرفتی که ویژگی‌های نمایه‌گر حافظه Android Studio را هنگام نمایه‌سازی یک ساخت نمایه‌پذیر نشان می‌دهد

این ویژگی برای ساده‌سازی فرآیند نمایه‌سازی محلی عالی است، اما فقط زم، اعمال می‌شود که با Android Studio پروفایل کنید. بنابراین، در صورتی که می‌خواهید مشکلات عملکرد در تولید را تشخیص دهید یا هنوز آماده استفاده از آ،ین نسخه Android Studio یا پلاگین Android Gradle نیستید، پیکربندی دستی برنامه‌تان همچنان می‌تواند مفید باشد.

گزینه 2: پیکربندی دستی.

برای فعال ، دستی 4 مرحله طول می کشد قابل پروفایل.

1. این خط را به AndroidManifest.xml خود اضافه کنید.

AndroidManifest.xml

<کاربرد>
<قابل پروفایل اندروید:پوسته=“درست است، واقعی” />
کاربرد>

2. به نوع ساخت انتشار (یا هر نوع ساختی که قابل اشکال‌زدایی نیست) بروید.

اسکرین شات انتخاب نوع ساخت فعال در اندروید استودیو

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


4. برنامه را روی دستگاهی که دارای Android 10 یا بالاتر است بسازید و اجرا کنید. شما اکنون یک برنامه پروفایل دارید. سپس می‌تو،د با راه‌اندازی پنجره ابزار Profiler و انتخاب فرآیند برنامه از لیست کشویی، نمایه‌ساز Android Studio را متصل کنید.

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

در واقع، بسیاری از برنامه های شخص اول گوگل مانند Google Maps برنامه خود را به ،وان برنامه های پروفایل به Play Store ارسال می کنند.

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

در اینجا ج،ی وجود دارد که نشان می دهد کدام نوع ساخت باید استفاده شود:

رهایی انتشار قابل پروفایل اشکال زدایی
تولید تعیین زمان بندی CPU اشکال زدا، بازرسان و غیره

پروفایل ، حافظه، انرژی و غیره

برای ،ب اطلاعات بیشتر در مورد ساخت های سودمند، با خواندن شروع کنید مستندات و راهنمای کاربر.

با این ابزارهای ارائه شده توسط تیم اندروید، امیدواریم بتو،د برنامه خود را سریعتر و روانتر اجرا کنید.


منبع: http://android-developers.googleblog.com/2022/10/accurately-measure-android-app-performance-with-profileable-builds.html