جستجو برای:
سبد خرید 0
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

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

ارسال مجدد کد یکبار مصرف (00:60)
  • 02171058559
  • info@amooznegar.com
  • علاقمندی ها
آکادمی آموزنگار
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

آکادمی آموزنگار > اخبار > برنامه نویسی > اندروید > بهبود عملکرد برنامه های اندروید با Android Profilers

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

1400-01-02
ارسال شده توسط آموزنگار
اندروید
بهبود عملکرد برنامه های اندروید با Android Profilers

یکی از سؤالاتی که ممکن است برنامه نویسان اندروید بپرسند این ست که اگر کاربران احساس کنند اپلیکیشن آنها کُند کار می کند چه کاری می توانند بکنند؟ دلایل مختلفی باعث عملکرد بد اپلیکیشن های اندرویدی می شود که می توان به مواردی مانند UI، استفاده نادرست از CPU، مصرف بی رویه از حافظه و … اشاره کرد که در اندروید استودیو 3.0 بخشی برای بهبود عملکرد برنامه به نام Profiler قرار گرفته است.

در این مقاله ما راجع به Profiler صحبت می کنیم. Profiler مجموعه ای از ابزارها برای explorer، بهینه سازی و عیب یابی عملکرد برنامه می باشد که از اندروید استودیو 3 به بالا جایگزین Android Monitor شده است.

ابزارهایی که در Android Profiler وجود دارد باعث می شود که ما درک بهتری از شیوه استفاده برنامه از مصرف Cpu، حافظه، شبکه، باتری و … داشته باشیم تا از این طریق بتوانیم مشکلات اپلیکیشن اندرویدی خود را برطرف کنیم.

Profiler در اندروید استودیو شامل موارد زیر می باشد:

  1. Network Profiler
  2. Energy Profiler
  3. Memory Profiler
  4. CPU Profiler

بررسی اجمالی 

برای باز کردن پنجره Profiler به مسیر زیر می رویم.

View > Tool Windows > Profiler

راه دیگر اجرای آن، کلیک روی آیکن  در نوار ابزار می باشد.

برای بررسی برنامه، ما نیاز به Build و اجرای برنامه داریم تا بتوانیم بوسیله Android Profiler منابعی که برنامه استفاده می کند را ببینیم و این کار تا زمانی که از برنامه خارج نشده ایم ادامه دارد.

صفحه اصلی Profiler آمار استفاده از CPU، شبکه، حافظه و باتری را در همان لحظه نمایش می دهد. ما می توانیم با کلیک روی هر یک از نمودارها، نمای دقیق تری از هر کدام را مشاهده کنیم. در زیر نمای کلی از آنچه که در Profiler وجود دارد نمایش داده شده است.

Profiler اندروید استودیو

1- Android Profiler روند دستگاهی را که اکنون در حال Profile شدن است را نمایش می دهد.

2- در بخش Sessions می توانید session ی را برای مشاهده کلیک کنید یا یک profile session را شروع کنید.

3- با استفاده از دکمه بزرگنمایی می توان مقدار زمان بندی را کنترل کرد. می توان از دکمه Attach to Live برای پرش به بروزرسانی های زمان واقعی استفاده کرد.

4- تایم لاین مربوط به رویدادهای ورودی کاربر را نمایش می دهد که می توان این رویدادها را ورودی از صفحه کلید، تغییرات کنترل صدا، چرخش صفحه و … نام برد.

5- نمایش تایم لاین به اشتراک گذاشته شده که شامل نمودارهایی برای CPU، حافظه، شبکه و باتری است.

Network Profiler

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

Network Profiler به شما امکان می دهد تا زمان انتقال داده های برنامه خود را بررسی کنید و برنامه خود را با توجه به آن بهینه تر کنید. در این قسمت شما می توانید وابستگی ها و گراف فعالیت واقعی شبکه که شامل بایت های ارسال شده و دریافت شده می باشد را مشاهده کنید. در صورتی که درخواست های شبکه ادامه داشته باشد گراف نیز ادامه می یابد.

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

Network Profiler

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

فریمورک کوین (Koin) چیست؟
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

اگر می خواهید داده های یک درخواست را بررسی کنید کافیست روی رویداد در Connection View کلیک کنید و تا در سمت راست پنجره یک بخش برای جزئیات و درخواست ها به صورت زیر نمایش داده شود.

تب Connection View

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

بدون هیچ interceptor، شما می‌توانید کل درخواست، بدنه پاسخ و جزئیات دیگر را ببینید. همچنین تصاویر را در صورت موجود نمایش می‌دهد و دارای syntax برای فرمت‌های xml و JSON است.

Energy Profiler

Energy Profiler به ما کمک می کند تا مشکلات مربوط به انرژی و مصرف باتری را مشاهده کنیم. این قسمت مصرف باتری اجزای مختلف را نمایش می دهد.

Energy Profiler استفاده از CPU، شبکه رادیویی و سنسور GPS را نظارت می کند و یک تصویر سازی از میزان مصرف باتری از هر کدام از مؤلفه‌ها را نمایش می دهد.

ما می توانیم رویدادهایی که در پس زمینه اجرا می شود را بررسی کنیم گاهی این برنامه ها باعث خالی شدن باتری گوشی می شود. همچنین می توانیم از Energy Profiler برای یافتن رویدادهای سیستمی که بر مصرف باتری تأثیر می گذارد استفاده کنیم که می توان به job، wake locks، alarm و … اشاره کرد.

Energy Profiler مانند تصویر زیر است:

Energy Profiler

با باز کردن پنجره System Event می توانید جزئیات مربوط به رویدادها، job ها یا فراخوانی های شبکه یا wake locks را مشاهده کنید. در صورتی که یک محدوده را از تایم لاین مربوط به Energy انتخاب کنید می توانید جزئیات بیشتری را از آن رویداد ببینید. به عنوان مثال در عکس فوق ما برای بررسی بیشتر یک job می توانیم با انتخاب محدوده مورد نظر، جزئیات را در پنل سمت راست همراه با فراخوانی پشته مشاهده کنیم.

Memory Profiler

Memory Profiler مؤلفه‌ای است که به ما در جلوگیری از سرریز شدن حافظه، کند کار کردن یا وقفه های پیاپی در برنامه و کرش کردن برنامه کمک می کند.

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

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

گاهی ممکن است ما کل حافظه را مصرف کنیم در حالی که برنامه در پس‌زمینه در حال اجراست دراینصورت برنامه بدون از سرگیری منجر به راه‌اندازی مجدد توسط سیستم می‌شود.

برای جلوگیری از این مشکلات می توانید از Memory Profiler برای موارد زیر استفاده کنید:

  • از طریق تایم لاین می توانید حافظه هایی که به داده های بلا استفاده تخصیص داده شده است را شناسایی کنید که روی عملکرد صحیح برنامه تأثیر می گذارد.
  • با باز کردن پشته جاوا متوجه می شوید که هر شی در هر زمان چه مقدار از حافظه را استفاده می کند. در صورتی که در زمان های مختلف این قسمت را چک کنید می توانید متوجه شوید کدام شی باعث سرریز شدن حافظه می شود.
  • تخصیص حافظه را در هنگام تعامل یک کاربر و حداکثر کاربران ثبت کنید تا مشخص شود که حافظه در یک زمان به چه اشیایی تخصیص داده می شود و در چه زمانی سرریز می شود.
Memory Profiler

1- دکمه ای برای بستن مجموعه اشیاء بی استفاده

کار با Motion Editor در اندروید استودیو
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

2- دکمه ای برای گرفتن تصویر از heap dump

3- دکمه ای برای ثبت تخصیص حافظه که در سمت راست دکمه heap dump ظاهر می شود و فقط زمانی که به دستگاه اندروید ورژن 7.1 (سطح API 25) به پایین باشد ظاهر می شود.

4- دکمه های بزرگنمایی و کوچک نمایی در تایم لاین

5- منوی کشویی برای مشخص کردن اینکه profiler مرتباً تخصیص حافظه را ثبت می‌کند یا نه. انتخاب گزینه مناسب ممکن است به شما در بهبود عملکرد app در هنگام profiling کمک کند.

6- دکمه ای برای پرش به جلو در داده های لحظه ای حافظه

7- تایم لاین مربوط به وضعیت اکتیویتی ها که رویداد ورودی کاربر و رویداد چرخش صفحه را نشان می دهد.

8- تایم لاین استفاده شده حافظه شامل موارد زیر است:

  • یک گراف پشته از این که چقدر حافظه توسط هر مقوله مورد استفاده قرار می‌گیرد، همانطور که توسط محور y در سمت چپ و کلید رنگ در بالا نشان داده می‌شود.
  • خط نقطه‌چین تعداد اشیا اختصاص داده شده را نشان می دهد، همانطور که توسط محور y در سمت راست نشان ‌داده شده‌است.
  • آیکنی برای نمایش رویدادهای مربوط به اشیاء بی استفاده

CPU Profiler

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

شما می توانید از CPU Profiler برای بررسی استفاده CPU در برنامه و فعالیت ها استفاده کنید همچنین می توانید با استفاده از CPU Profiler’s Android جزییات میزان استفاده از CPU را ردیابی کنید و به بهبود برنامه و عملکرد درست آن کمک کنید.

CPU Profiler

از منوی کشویی یک گزینه را انتخاب کنید، روی دکمه record کلیک کنید حالا با برنامه کار کنید و سپس روی دکمه Stop کلیک کنید.

CPU Profiler به صورت خودکار محدوده ضبط شده را نمایش می دهد و شما می توانید اطلاعات ثبت شده را در قسمت trace مشاهده کنید. پس از ثبت فعالیت می توانید ردیابی را برای بررسی بعدی صادر کنید همچنین می توانید با کلیک روی + که در منوی بالا سمت چپ قرار دارد ردیابی ها را import کنیم.

ما می توانیم بررسی کنیم که چقدر زمان طول می کشد تا هر فریم به درستی روی موقعیت اصلی خود قرار بگیرد و اجرا شود. RenderThread برای بررسی تنگناهایی است که باعث عملکرد بد UI و سرعت پایین فریم ها می شود.

برای دیدن داده های فریم، می توانید از record a trace برای فراخوانی های سیستم و ثبت آن استفاده کنید. پس از ثبت آن می توانید در بخشی که مربوط به Frames است اطلاعات مربوط به هر فریم را ببینید.

نتیجه گیری

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

قبلی ابزارهای مفید اندروید برای شروع برنامه نویسی اندروید
بعدی اندروید Dagger 2 + Retrofit + RecyclerView

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • GoLang
  • jetpack compose
  • PHP
  • اپلیکیشن
  • امنیت
  • اندروید
  • اوپن سورس
  • برنامه نویسی
  • برنامه نویسی iOS
  • برنامه نویسی react native
  • پادکست صوتی
  • تکنولوژی
  • جاوا
  • طراح رابط کاربری
  • طراحی رابط کاربری
  • طراحی وب
  • عمومی
  • فریلنسر
  • فلاتر
  • فناوری
  • کاتلین
  • کتاب های آموزشی
  • کسب و کار
  • لینوکس
  • هوش مصنوعی
  • وردپرس
برچسب‌ها
admob coroutine dagger dagger-hilt jetpack nft rxandroid rxjava spring swift ارز دیجیتال امنیت در اندروید دارت فایربیس فوشیا مصاحبه کاری معماری mvi نقشه راه برنامه نویسی کاتلین گوگل

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

دسترسی سریع
  • درباره ما
  • تماس با ما
  • حریم خصوصی
  • سوالات متداول
نمادها
شبکه های اجتماعی
Facebook Twitter Youtube icon--white Whatsapp

تهران، ازگل ، مجتمع تجاری الماس ایرانیان، پارک علم و فناوری فردا

021-71058559

تمامی حقوق برای آکادمی آموزنگار محفوظ می باشد

ورود
با شماره موبایل
با آدرس ایمیل
آیا هنوز عضو نشده اید؟ اکنون ثبت نام کنید
بازنشانی رمزعبور
با شماره موبایل
با آدرس ایمیل
ثبت نام
با شماره موبایل
با آدرس ایمیل
قبلا عضو شده اید؟ اکنون وارد شوید
محافظت شده توسط