این مبحث نحوه انجام پروفایلینگ سیستم و پروفایلینگ فریم را در برنامه اندروید شما با استفاده از Android GPU Inspector (AGI) شرح میدهد.
این راهنمای سریع برای توسعهدهندگانی در نظر گرفته شده است که با توسعه گرافیک در اندروید آشنا هستند.
نیازمندیهای کامپیوتر
کامپیوتری که AGI را اجرا میکند باید این شرایط را داشته باشد:
یکی از سیستم عامل های زیر مورد نیاز است:
ویندوز : ویندوز ۷ یا بالاتر.
macOS : ال کاپیتان (10.11) یا بالاتر
لینوکس : جاوا ۶۴ بیتی JDK یا JRE 8 (یا جدیدتر) مورد نیاز است؛ اوبونتو Trusty Tahr (14.04 یا بالاتر) توصیه میشود.
دانلود و نصب AGI
AGI را برای سیستم عامل خود دانلود و نصب کنید.
نیازمندیهای اپلیکیشن اندروید
این بخش الزامات برنامه اندرویدی که در حال پروفایلبندی است را شرح میدهد:
برنامه اندروید شما باید قابل اشکالزدایی (debuggable) باشد؛ ویژگی debuggable در مانیفست اندروید برنامه باید روی
trueتنظیم شود. این ویژگی، ابزارهای مناسب را از درایور گرافیک فعال میکند. برای برنامههای Vulkan، این ویژگی AGI را قادر میسازد تا هنگام شروع برنامه، لایه Vulkan خود را اضافه کند.<application [...] android:debuggable="true">
اگر برنامه شما به صورت بومی از Vulkan استفاده میکند، AGI موارد زیر را نیز لازم دارد:
لایههای اعتبارسنجی Vulkan باید در برنامه شما فعال باشند. اگر فعال نیستند، میتوانید دستورات زیر را اجرا کنید تا برنامه خود را مجبور کنید با لایههای اعتبارسنجی موجود در فایل apk AGI (
com.google.android.gapid.<abi>) اجرا شود:app_package=<YOUR APP PACKAGE NAME HERE> abi=arm64v8a # Possible values: arm64v8a, armeabi-v7a, x86 adb shell settings put global enable_gpu_debug_layers 1 adb shell settings put global gpu_debug_app ${app_package} adb shell settings put global gpu_debug_layer_app com.google.android.gapid.${abi} adb shell settings put global gpu_debug_layers VK_LAYER_KHRONOS_validationوقتی پروفایلینگ تمام شد، میتوانید این لایههای اعتبارسنجی را با دستورات زیر غیرفعال کنید:
adb shell settings delete global enable_gpu_debug_layers adb shell settings delete global gpu_debug_app adb shell settings delete global gpu_debug_layers adb shell settings delete global gpu_debug_layer_appبرنامه شما نباید هنگام اجرا با لایههای اعتبارسنجی Vulkan فعال، هیچ هشدار یا خطایی را گزارش دهد. قبل از پروفایلبندی، هرگونه خطای اعتبارسنجی Vulkan را برطرف کنید.
اگر از درایورهای گرافیکی بتا استفاده میکنید، متادیتای زیر را در تگ
<application>فایل مانیفست اندروید قرار دهید:<meta-data android:name="com.android.graphics.developerdriver.enable" android:value="true" />
نیازمندیهای دستگاه اندروید
AGI الزامات دستگاه اندروید زیر را دارد:
یک دستگاه اندروید پشتیبانیشده که اندروید ۱۱ یا بالاتر را اجرا میکند.
یک کابل USB.
اشکالزدایی adb باید فعال باشد و دستگاه باید از طریق adb قابل دسترسی باشد. اگر گزینه نصب از طریق USB وجود دارد، آن را فعال کنید.
اعتبارسنجی دستگاه
AGI به یک درایور GPU سازگار نیاز دارد. برای اطمینان از اینکه دادههای پروفایلینگ معتبری ارائه میدهد، AGI اولین باری که یک دستگاه جدید را متصل میکنید، یک بررسی اعتبارسنجی انجام میدهد که حدود ده ثانیه طول میکشد. پس از گذراندن این بررسی، میتوانید از دستگاه برای پروفایلینگ برنامههای اندروید استفاده کنید.
در حین انجام اعتبارسنجی، مزاحم دستگاه نشوید. این کار ممکن است باعث شود اعتبارسنجی دستگاه با شکست مواجه شود. اگر دستگاهی اعتبارسنجی را با شکست مواجه کند اما به درستی تنظیم شده باشد، میتوانید با انتخاب مجدد دستگاه، اعتبارسنجی را دوباره امتحان کنید.
اعتبارسنجی برای یک دستگاه یک مرحلهی یکباره است و نتایج برای استفادههای بعدی AGI ذخیره میشوند. با این حال، اگر تنظیمات دستگاه تغییر کند، مثلاً درایور GPU یا نسخه اندروید بهروزرسانی شود، AGI دوباره اعتبارسنجی را اجرا خواهد کرد.
اگر دستگاهی به عنوان دستگاه پشتیبانیشده فهرست شده باشد، میتوانید انتظار داشته باشید که AGI اعتبارسنجی را با موفقیت پشت سر بگذارد. اگر دستگاه فهرست نشده باشد، درایور GPU آن به احتمال زیاد با AGI سازگار نیست.
اگر دستگاه شما پشتیبانی میشود اما اعتبارسنجی انجام نمیشود
مطمئن شوید که تمام پیشنیازهای اندروید و کامپیوتر که در بخشهای قبلی توضیح داده شده است را برآورده کردهاید و دستگاه به درستی با کابل USB به کامپیوتر متصل شده است.
اگر همه شرایط لازم را دارید، یک مشکل (issue) در مخزن گیتهاب ما ثبت کنید و رفتار آن را شرح دهید.
اگر دستگاه شما پشتیبانی نمیشود
ما در حال همکاری با شرکای OEM خود هستیم تا پشتیبانی از دستگاههای بیشتری را اضافه کنیم. میتوانید برای درخواست پشتیبانی برای یک دستگاه، مشکل خود را در مخزن GitHub ما ثبت کنید .
ثبت دادههای پروفایل
بخشهای بعدی نحوه ثبت دادههای پروفایلینگ و باز کردن فایل ردیابی حاصل را شرح میدهند تا بتوانید نتایج را تجزیه و تحلیل کنید.
تنظیمات اندروید را پیکربندی کنید
قبل از شروع پروفایلسازی، باید این تنظیمات برنامه و دستگاه اندروید را پیکربندی کنید که برنامه و دستگاه مورد نظر برای پروفایلسازی را مشخص میکنند.
با استفاده از کابل USB، دستگاه اندروید خود را به رایانه متصل کنید.
AGI را روی رایانه خود اجرا کنید.
اولین باری که AGI را اجرا میکنید، صفحه خوشامدگویی را نمایش میدهد که از شما مسیر فایل اجرایی adb را میپرسد. AGI این تنظیمات را در فایل
.agicدر پوشهHOMEشما ذخیره میکند. اگر قبلاً این کار را انجام دادهاید، میتوانید از این مرحله صرف نظر کنید.
شکل ۱: صفحه خوشامدگویی . مسیر فایل اجرایی adb را در فیلد Path to adb وارد کنید. کادرهای کنار این فیلد اختیاری هستند.
برای نمایش صفحه شروع، روی «شروع» کلیک کنید.

شکل ۲: صفحه اصلی اجرای Android GPU Inspector. در صفحه شروع، روی «گرفتن یک رد جدید» کلیک کنید. این کار کادر محاورهای «گرفتن یک رد جدید» را نمایش میدهد. همچنین میتوانید روی دکمه «گرفتن رد نمایه سیستم» کلیک کنید.

شکل ۳: پنجرهی ضبط یک ردیابی جدید . در بخش «دستگاه و نوع» ، دستگاه اندرویدی مورد نظر برای نمایهسازی را انتخاب کنید. اگر در لیست دستگاهها نمایش داده نمیشود، روی پیکان بارگذاری مجدد کلیک کنید تا لیست بهروزرسانی شود.
در بخش Application ، اپلیکیشنی را که میخواهید پروفایل آن را ایجاد کنید، انتخاب کنید. اگر فقط یک Activity در بسته وجود دارد، میتوانید به جای Activity، Package را انتخاب کنید.
AGI شامل یک برنامه نمونه Vulkan است. برای استفاده از برنامه نمونه به جای برنامه خودتان، این مراحل را انجام دهید:
روی دکمه ... کنار فیلد Application کلیک کنید.
این کادر محاورهای «انتخاب یک برنامه برای ردیابی » را نشان میدهد که فهرستی از برنامههایی را که در دستگاه انتخابشده قابل ردیابی هستند، نمایش میدهد.
در کادر متنی فیلتر ،
gapidتایپ کنید تا فقط برنامههایی که در نام بسته خود شاملgapidهستند نمایش داده شوند.بسته را باز کنید و com.google.android.gapid.VkSampleActivity را انتخاب کنید و سپس روی تأیید کلیک کنید.
این شما را به پنجرهی Capture A New Trace بازمیگرداند، که در آن فیلد Application با برنامهای که انتخاب کردهاید پر شده است.
در بخش درخواست ، سایر فیلدها را خالی بگذارید.
روی تأیید کلیک کنید.
اکنون آمادهاید تا از AGI برای انجام پروفایلبندی سیستم و فریم استفاده کنید.
مشخصات یک سیستم
برای پروفایل کردن یک سیستم، این مراحل را انجام دهید:
در صفحه راهاندازی AGI، روی Capture a new trace کلیک کنید تا کادر محاورهای Capture System Profile نمایش داده شود.
در لیست نوع ، نمایه سیستم را انتخاب کنید.
در بخش شروع و مدت زمان ، شروع از زمان را روی دستی و مدت زمان را روی
2تنظیم کنید.در بخش Trace Options ، روی Configure کلیک کنید. این لیستی از گزینههای پروفایلینگ را نمایش میدهد.

شکل ۴: گزینههای پروفایلسازی در پنجرهی Capture System Profile . دادههای پروفایلی که میخواهید ثبت کنید را انتخاب کنید.
در بخش GPU ، روی «انتخاب» کلیک کنید.
این لیستی از شمارندهها را برای انتخاب نمایش میدهد.

شکل ۵: انتخاب شمارندهها. برای انتخاب مجموعه شمارندههای پیشفرض، روی پیشفرض کلیک کنید و برای بازگشت گزینههای پروفایل، روی تأیید کلیک کنید.
برای بازگشت به پنجره اصلی Capture System Profile ، روی OK کلیک کنید.
در بخش خروجی ، یک دایرکتوری خروجی برای ذخیره فایلهای ردیابی که در طول پروفایلسازی ایجاد میشوند، انتخاب کنید. فیلد نام فایل باید به صورت خودکار پر شود، اما میتوانید آن را ویرایش نیز کنید.
روی تأیید کلیک کنید. با این کار برنامه انتخاب شده در دستگاه اندروید اجرا میشود و یک پنجره پاپآپ با دکمه شروع نمایش داده میشود.
برای شروع ضبط دادههای پروفایل، روی دکمهی شروع کلیک کنید و چند ثانیه صبر کنید تا فرآیند تمام شود.
روی Open Trace کلیک کنید. نمای اولیهای که نمایش داده میشود مشابه systrace است.

شکل ۶: رابط کاربری System Profiler. علاوه بر دادههای موجود در systrace، AGI اطلاعات عملکرد GPU را نیز نشان میدهد. برای اطلاعات بیشتر در مورد مشاهده دادههای پروفایل سیستم، به View an AGI system profile مراجعه کنید.
برای اطلاعات بیشتر در مورد تنظیمات اضافی، به گزینههای پروفایل سیستم مراجعه کنید.
یک قاب را نمایه کنید
برای پروفایل کردن یک فریم خاص از برنامه خود، این مراحل را انجام دهید:
در صفحه راهاندازی AGI، روی «گرفتن یک رد جدید» کلیک کنید تا کادر محاورهای «گرفتن یک رد جدید» نمایش داده شود. همچنین میتوانید روی دکمه «گرفتن رد نمایه فریم» کلیک کنید.
در لیست Type ، بسته به اینکه برنامه شما از کدام API گرافیکی استفاده میکند، Vulkan یا OpenGL را در ANGLE انتخاب کنید. مطمئن شوید که مورد درست را انتخاب میکنید، در غیر این صورت AGI هیچ دستور گرافیکی را ضبط نخواهد کرد.
در بخش Start and Duration ، گزینه Start at را روی Manual تنظیم کنید. اگر روی دکمه Capture Frame Profile trace کلیک کردهاید، این مرحله قبلاً تکمیل شده است.
در بخش خروجی ، یک دایرکتوری خروجی برای ذخیره فایلهای ردیابی انتخاب کنید. فیلد نام فایل باید به صورت خودکار پر شود، اما میتوانید آن را ویرایش نیز کنید.
اختیاری: برخی برنامهها فرآیند متفاوتی را ایجاد میکنند که تمام پردازشهای گرافیکی را انجام میدهد. برای ثبت آن فرآیند، نام آن را مشخص کنید.
روی تأیید کلیک کنید. این کار برنامه شما را در دستگاه اندروید اجرا میکند و یک پنجره پاپآپ با دکمه شروع نمایش میدهد.
روی دکمه شروع کلیک کنید و چند ثانیه صبر کنید تا نمایهسازی کامل شود.
برای مشاهده دادههای پروفایلینگ، روی Open Trace کلیک کنید. برای اطلاعات مربوط به هر پنل در رابط کاربری Frame Profiler، به نمای کلی پروفایلینگ Frame مراجعه کنید.
برای اطلاعات بیشتر در مورد تنظیمات اضافی، به گزینههای پروفایل فریم مراجعه کنید.