تجربه کاربری اپلیکیشن اندروید

6 باید و نباید جهت ارائه بهترین تجربه کاربری در اپلیکیشن اندروید – بخش سوم


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

5. کارآیی اپلکیشن را تست کنید

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

Android SDK ابزارهای متعددی را در خود جای داده که با استفاده از آنها به صورت تخصصی می توانید کارآیی اپلیکیشن را تست کنید، در این بخش از مطلب قصد داریم به چندین ابزار در این زمینه بپردازیم.

توجه داشته باشید که تمامی این ابزارها تنها با اپلیکیشن های در حال اجرا ارتباط برقرار می کنند، از این رو لازم است اپلیکیشن را بر روی AVD یک گوشی که به سیستم توسعه شما متصل است نصب کنید.

پیش از شروع کار ذکر این نکته ضروری است که اگر مشکلی در ارتباط با کارآیی شناسایی کردید، پیش از برطرف کردن آن، کد خود را تریس نمایید. پس از اینکه مشکل را برطرف کردید، می توانید کد خود را مجددا تریس کنید، در این صورت می فهمید که تغییرات اعمال شده چه تاثیری بر روی کارآیی اپلیکیشن داشته اند.

با استفاده از TraceView می توانید کد خود را تریس کنید، برای دسترسی به آن باید تب DDMS از Android Device Monitor را انتخاب کرده و سپس گوشی و فرآیند موردنظر خود برگزینید و بر روی آیکون Start Method Profiling کلیک کنید.

تجربه کاربری اپلیکیشن اندروید

در این مرحله می توانید Trace based profiling (که ورودی و خروجی هر متد را تریس می کند) یا Sample based profiling (که پشته های فراخوانی را با تکرری که مشخص کرده اید جمع می کند) را انتخاب نمایید. وقتی انتخاب انجام شد باید با اپلیکیشن کار کنید. برای مشاهده نتایج لازم است فایل تریس را بر ویوئر بارگذاری کنید، برای این کار بر روی آیکون Stop Method Profiling کلیک کنید. فایل تریس اجرای هر ترد را در سطری مجزا نمایش می دهد و از آنجا می توانید ببینید هریک از تسک های پروژه شما چقدر طول کشیده اند.

تشخیص Overdraw

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

چنانچه نسخه 4.2 یا بالاتر از اندروید بر روی گوشی شما نصب است، می توانید تعداد بازنویسی های موجود در هر اپلیکیشنی که بر روی گوشی نصب شده را با انتخاب Settings>Developer Options>Debug GPU Overdraw>Select overdraw areas چک کنید. سیستم یک کادر رنگی را به هر بخش از صفحه اضافه می کند که تعداد دفعاتی که هر پیکسل رسم شده را مشخص می سازد.

- No Color : این پیکسل تنها یک بار ترسیم شده است.

- Blue  : بازنویسی 1x. این پیکسل ها دو بار ترسیم شده است.

- Green : بازنویسی 2x.

- Light red : بازنویسی 3x.

- Dark red : بازنویسی 4x یا بیشتر.

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

در  Android Device Monitor بخشی تحت عنوان Hierarchy Viewer وجود دارد که یک بررسی اجمالی سطح بالا از کل سلسله مراتب اپلیکیشن را در اختیار قرار می دهد که به شما در شناسایی ویوهایی که در تصویر رندر شده نهایی نقشی ندارند یاری می رساند.

جهت راه اندازی Hierarchy Viewer بر روی دکمه Hierarchy View کلیک و دستگاه و اکتیویتی موردنظر را برگزینید و پس از آن آیکون آبی رنگ Load the view hierarchy into the tree view را بزنید.

تجربه کاربری اپلیکیشن اندروید

ممکن است بخواهید خروجی Hierarchy Viewer را به صورت یک داکیومنت فتوشاپ برون ریزی کنید، چرا که این تکنیک برای شناسایی ویوهایی که در رابط کاربری نهایی نقشی ندارد، بسیار کاربردی است، زیرا هر ویو به صورت لایه مجزای فتوشاپ نمایش داده می شود و می توانید هر لایه را مخفی کرده و تاثیر آن بر روی عکس اصلی را مشاهده نمایید.

جهت ساخت داکیومنت PSD، بر روی آیکون Capture the window layers as a Photoshop document کلیک کنید.

بررسی نشت حافظه در اپلیکیشن

Garbage collection یک رفتار سیستمی نرمال جهت کسب اطمینان از اجرای نرم و روان اپلیکیشن بر روی گوشی می باشد.

با این حال اگر اپلیکیشن به شکل مناسبی به مدیریت حافظه نپردازد، ممکن است نشت حافظه داشته باشد یا آبجکت های متعددی را در مدت زمان کم اختصاص دهد، این شرایط به اجرای ایونت های GC مکرر می انجامد که بیشتر هم طول می کشند. برای مشاهده ایونت های GC در اپلیکیشن باید به پنجره اصلی اندروید استودیو مراجعه کرده و تب Android Monitor را که در زیر پنجره قرار گرفته باز و سپس تب Monitors را بزنید. ابزار Memory Monitor به طور خودکار شروع به ثبت میزان مصرف حافظه در اپلیکیشن می کند.

تجربه کاربری اپلیکیشن اندروید

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

ابزارهای متعددی وجود دارند و به شما کمک می کنند تا اطلاعات بیشتری در ارتباط با میزان مصرف حافظه در اپلیکیشن خود کسب کنید. اول از همه باید از تب Heap از Android Device Monitor استفاده کنید تا ببینید هر فرآیند چه مقدار حافظه پشته مورد استفاده قرار می دهد، این کار فرآیندهایی را که حافظه را اشغال کرده اند مشخص می سازد.

جهت استفاده از ابزار Heap، به تب DDMS از Android Device Monitor مراجعه کنید و فرآیند موردنظر را انتخاب کرده و در آخر دکمه Update heap را بزنید. تب heap قبل از انجام ایونت GC هیچ داده ای را نمایش نمی دهد، اما اگر نمی توانید منتظر بمانید، می توانید هر زمان که خواستید ایونت GC را با کلیک بر روی Cause GC به اجرا در آورید.

تجربه کاربری اپلیکیشن اندروید

Allocation Tracker ابزار دیگری برای جمع آوری اطلاعات درباره میزان مصرف حافظه توسط اپلیکیشن می باشد و برای استفاده از آن تب DDMS از Android Device Monitor را انتخاب کرده و بعد Allocation Tracker و فرآیند موردنظر را انتخاب نمایید.

بر روی دکمه Start Tracking کلیک کنید و به کار با بخش های مختلف اپلیکیشن، مخصوصا بخش هایی که حدس می زنید مشکلاتی در ارتباط با مدیریت حافظه داشته باشند، بپردازید. جهت مشاهده کل داده هایی که Allocation Tracker در طول نمونه گیری جمع آوری کرده، دکمه Start Tracking را بزنید و سپس بر روی Get Allocations کلیک کنید.

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

 

https://code.tutsplus.com برگرفته از

اینها را هم بخوانید