ابزار Network Traffic منسوخ شده است. اگر از Android Studio نسخه 3.0 یا بالاتر استفاده میکنید، باید از Network Profiler برای بررسی نحوه و زمان انتقال دادهها از طریق شبکه استفاده کنید.
در بخش قبلی ، کد برنامه خود را با شناسه های ترافیک برچسب گذاری کردید، آزمایش ها را انجام دادید و داده ها را جمع آوری کردید. این درس به شما می آموزد که چگونه به داده های ترافیک شبکه که جمع آوری کرده اید نگاه کنید و شما را به اقداماتی برای بهبود عملکرد شبکه برنامه خود و کاهش مصرف انرژی راهنمایی می کند.
ترافیک شبکه برنامه را تحلیل کنید
استفاده کارآمد از منابع شبکه توسط یک برنامه با دوره های قابل توجهی مشخص می شود که در آن سخت افزار شبکه استفاده نمی شود. در دستگاه های تلفن همراه، راه اندازی رادیو برای ارسال یا دریافت داده و فعال نگه داشتن رادیو تلفن همراه برای مدت طولانی هزینه قابل توجهی دارد. اگر برنامه شما به طور موثر به شبکه دسترسی پیدا می کند، باید ببینید که ارتباطات آن در شبکه به شدت با هم گروه بندی شده اند، با فاصله زمانی که برنامه هیچ درخواستی برای اتصال ارسال نمی کند.
شکل 1 ترافیک شبکه غیربهینه را از یک برنامه نشان می دهد که توسط ابزار Network Traffic اندازه گیری شده است. این برنامه درخواست های شبکه ای مکرر می کند. این ترافیک دارای دورههای استراحت کمی است که رادیو میتواند به حالت آماده به کار و کم مصرف تغییر کند. رفتار دسترسی به شبکه این برنامه احتمالاً رادیو را برای مدت طولانی روشن نگه میدارد، که از نظر باتری ناکارآمد است.
شکل 2 یک الگوی ترافیک شبکه بهینه را نشان می دهد. این برنامه درخواستهای شبکه را بهصورت پشت سر هم ارسال میکند که با دورههای طولانی بدون ترافیک از هم جدا میشوند و رادیو میتواند به حالت آمادهباش تبدیل شود. این نمودار همان مقدار کار انجام شده را مانند شکل 1 نشان می دهد، اما درخواست ها تغییر کرده و گروه بندی شده اند تا رادیو در بیشتر مواقع در حالت آماده به کار باشد.
اگر ترافیک شبکه برای برنامه شما شبیه به نمودار شکل 2 به نظر می رسد، شما در وضعیت خوبی هستید! تبریک می گویم! ممکن است بخواهید با بررسی تکنیک های توضیح داده شده در بهینه سازی استفاده از شبکه عمومی، کارایی شبکه را بیشتر دنبال کنید.
اگر ترافیک شبکه برای برنامه شما بیشتر شبیه نمودار شکل 1 است، زمان آن رسیده است که نگاه دقیق تری به نحوه دسترسی برنامه شما به شبکه بیندازید. شما باید با تجزیه و تحلیل انواع ترافیک شبکه ای که برنامه شما ایجاد می کند شروع کنید.
انواع ترافیک شبکه را تجزیه و تحلیل کنید
هنگامی که به ترافیک شبکه ایجاد شده توسط برنامه خود نگاه می کنید، باید منبع ترافیک را درک کنید تا بتوانید آن را به طور مناسب بهینه کنید. فعالیت شبکه مکرر ایجاد شده توسط برنامه شما ممکن است کاملاً مناسب باشد اگر به اقدامات کاربر پاسخ دهد، اما اگر برنامه شما در پیش زمینه نباشد یا اگر دستگاه در جیب یا کیف است کاملاً نامناسب باشد. این بخش نحوه تجزیه و تحلیل انواع ترافیک شبکه را که توسط برنامه شما تولید می شود مورد بحث قرار می دهد و شما را به اقداماتی که می توانید برای بهبود عملکرد انجام دهید هدایت می کند.
در درس قبلی، کد برنامه خود را برای انواع مختلف ترافیک برچسب گذاری کردید و از ابزار Network Traffic برای جمع آوری داده ها در برنامه خود و تولید نمودار فعالیت استفاده کردید، همانطور که در شکل 3 نشان داده شده است.
ابزار Network Traffic ترافیک را بر اساس برچسب هایی که در درس قبلی ایجاد کردید رنگ می کند. رنگ ها بر اساس ثابت های نوع ترافیکی هستند که در کد برنامه خود تعریف کرده اید. برای تأیید اینکه کدام ثابت ها ترافیک ایجاد شده توسط کاربر، برنامه یا سرور را نشان می دهند، به کد برنامه خود مراجعه کنید.
بخشهای زیر به نحوه نگاه کردن به انواع ترافیک شبکه و توصیههایی در مورد نحوه بهینهسازی ترافیک میپردازد.
تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر
فعالیت شبکه آغاز شده توسط کاربر ممکن است زمانی که کاربر در حال انجام یک فعالیت خاص با برنامه شما است، به طور موثر با هم گروه بندی شود، یا زمانی که کاربر اطلاعات بیشتری را درخواست می کند که برنامه شما برای دریافت آن نیاز دارد، به طور ناموزون پخش شود. هدف شما از تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر، جستجوی الگوهای استفاده مکرر از شبکه در طول زمان و تلاش برای ایجاد یا افزایش اندازه دورههایی است که به شبکه دسترسی ندارد.
غیرقابل پیش بینی بودن درخواست های کاربر، بهینه سازی این نوع استفاده از شبکه در برنامه شما را چالش برانگیز می کند. علاوه بر این، کاربران زمانی که فعالانه از یک برنامه استفاده می کنند، انتظار پاسخ های سریع را دارند، بنابراین تاخیر در درخواست ها برای کارایی می تواند منجر به تجربه ضعیف کاربر شود. به طور کلی، شما باید پاسخ سریع به کاربر را بر استفاده کارآمد از شبکه در زمانی که کاربر مستقیماً با برنامه شما در تعامل است، اولویت دهید.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط کاربر آورده شده است:
- پیش واکشی دادههای شبکه - وقتی کاربر اقدامی را در برنامه شما انجام میدهد، برنامه پیشبینی میکند که چه دادههایی ممکن است برای اقدامات بعدی کاربر مورد نیاز باشد، آنها را به صورت انبوه در یک اتصال واکشی میکند و تا زمانی که کاربر آن را درخواست کند نگه میدارد.
- بررسی اتصال یا گوش دادن به تغییرات - قبل از انجام بهروزرسانی، اتصال شبکه را بررسی کنید یا به تغییرات اتصال گوش دهید.
- تعداد اتصالات را کاهش دهید - از APIهای سرور استفاده کنید که امکان بارگیری داده ها را در مجموعه ها فراهم می کند.
ترافیک شبکه ایجاد شده توسط برنامه را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط کد برنامه شما آغاز می شود، معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه برنامه خود، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد. اگر الگوهای دسترسی ثابت به شبکه را از برنامه خود مشاهده میکنید، به دنبال راههایی باشید که این دسترسیها را از بین ببرید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه ایجاد شده توسط برنامه وجود دارد:
درخواستهای شبکه دستهای و زمانبندی - درخواستهای شبکه برنامهتان را به تعویق بیندازید تا بتوان با هم و در زمانی که برای عمر باتری مفید است پردازش شوند.
به سیستم اجازه دهید تا اتصال را بررسی کند - از هزینه باتری اجرای برنامه خود صرفاً برای بررسی اتصال شبکه خودداری کنید، زمانی که می توانید به سیستم اجازه دهید زمانی که برنامه شما خواب است بررسی کند.
ترافیک شبکه آغاز شده توسط سرور را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط سرورهایی که با برنامه شما ارتباط برقرار می کنند نیز معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه از اتصالات سرور، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد. اگر الگوهایی از فعالیت شبکه ثابت را از سرورها میبینید، به دنبال راههایی برای خالی کردن این فعالیت باشید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا یک رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط سرور وجود دارد:
- از FCM برای بهروزرسانیهای سرور استفاده کنید - به جای نظرسنجی، از سرویس پیامرسانی Firebase Cloud برای بهروزرسانیهای سمت سرور استفاده کنید.
ابزار Network Traffic منسوخ شده است. اگر از Android Studio نسخه 3.0 یا بالاتر استفاده میکنید، باید از Network Profiler برای بررسی نحوه و زمان انتقال دادهها از طریق شبکه استفاده کنید.
در بخش قبلی ، کد برنامه خود را با شناسه های ترافیک برچسب گذاری کردید، آزمایش ها را انجام دادید و داده ها را جمع آوری کردید. این درس به شما می آموزد که چگونه به داده های ترافیک شبکه که جمع آوری کرده اید نگاه کنید و شما را به اقداماتی برای بهبود عملکرد شبکه برنامه خود و کاهش مصرف انرژی راهنمایی می کند.
ترافیک شبکه برنامه را تحلیل کنید
استفاده کارآمد از منابع شبکه توسط یک برنامه با دوره های قابل توجهی مشخص می شود که در آن سخت افزار شبکه استفاده نمی شود. در دستگاه های تلفن همراه، راه اندازی رادیو برای ارسال یا دریافت داده و فعال نگه داشتن رادیو تلفن همراه برای مدت طولانی هزینه قابل توجهی دارد. اگر برنامه شما به طور موثر به شبکه دسترسی پیدا می کند، باید ببینید که ارتباطات آن در شبکه به شدت با هم گروه بندی شده اند، با فاصله زمانی که برنامه هیچ درخواستی برای اتصال ارسال نمی کند.
شکل 1 ترافیک شبکه غیربهینه را از یک برنامه نشان می دهد که توسط ابزار Network Traffic اندازه گیری شده است. این برنامه درخواست های شبکه ای مکرر می کند. این ترافیک دارای دورههای استراحت کمی است که رادیو میتواند به حالت آماده به کار و کم مصرف تغییر کند. رفتار دسترسی به شبکه این برنامه احتمالاً رادیو را برای مدت طولانی روشن نگه میدارد، که از نظر باتری ناکارآمد است.
شکل 2 یک الگوی ترافیک شبکه بهینه را نشان می دهد. این برنامه درخواستهای شبکه را بهصورت پشت سر هم ارسال میکند که با دورههای طولانی بدون ترافیک از هم جدا میشوند و رادیو میتواند به حالت آمادهباش تبدیل شود. این نمودار همان مقدار کار انجام شده را مانند شکل 1 نشان می دهد، اما درخواست ها تغییر کرده و گروه بندی شده اند تا رادیو در بیشتر مواقع در حالت آماده به کار باشد.
اگر ترافیک شبکه برای برنامه شما شبیه به نمودار شکل 2 به نظر می رسد، شما در وضعیت خوبی هستید! تبریک می گویم! ممکن است بخواهید با بررسی تکنیک های توضیح داده شده در بهینه سازی استفاده از شبکه عمومی، کارایی شبکه را بیشتر دنبال کنید.
اگر ترافیک شبکه برای برنامه شما بیشتر شبیه نمودار شکل 1 است، زمان آن رسیده است که نگاه دقیق تری به نحوه دسترسی برنامه شما به شبکه بیندازید. شما باید با تجزیه و تحلیل انواع ترافیک شبکه ای که برنامه شما ایجاد می کند شروع کنید.
انواع ترافیک شبکه را تجزیه و تحلیل کنید
هنگامی که به ترافیک شبکه ایجاد شده توسط برنامه خود نگاه می کنید، باید منبع ترافیک را درک کنید تا بتوانید آن را به طور مناسب بهینه کنید. فعالیت شبکه مکرر ایجاد شده توسط برنامه شما ممکن است کاملاً مناسب باشد اگر به اقدامات کاربر پاسخ دهد، اما اگر برنامه شما در پیش زمینه نباشد یا اگر دستگاه در جیب یا کیف است کاملاً نامناسب باشد. این بخش نحوه تجزیه و تحلیل انواع ترافیک شبکه را که توسط برنامه شما تولید می شود مورد بحث قرار می دهد و شما را به اقداماتی که می توانید برای بهبود عملکرد انجام دهید هدایت می کند.
در درس قبلی، کد برنامه خود را برای انواع مختلف ترافیک برچسب گذاری کردید و از ابزار Network Traffic برای جمع آوری داده ها در برنامه خود و تولید نمودار فعالیت استفاده کردید، همانطور که در شکل 3 نشان داده شده است.
ابزار Network Traffic ترافیک را بر اساس برچسب هایی که در درس قبلی ایجاد کردید رنگ می کند. رنگ ها بر اساس ثابت های نوع ترافیکی هستند که در کد برنامه خود تعریف کرده اید. برای تأیید اینکه کدام ثابت ها ترافیک ایجاد شده توسط کاربر، برنامه یا سرور را نشان می دهند، به کد برنامه خود مراجعه کنید.
بخشهای زیر به نحوه نگاه کردن به انواع ترافیک شبکه و توصیههایی در مورد نحوه بهینهسازی ترافیک میپردازد.
تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر
فعالیت شبکه آغاز شده توسط کاربر ممکن است زمانی که کاربر در حال انجام یک فعالیت خاص با برنامه شما است، به طور موثر با هم گروه بندی شود، یا زمانی که کاربر اطلاعات بیشتری را درخواست می کند که برنامه شما برای دریافت آن نیاز دارد، به طور ناموزون پخش شود. هدف شما از تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر، جستجوی الگوهای استفاده مکرر از شبکه در طول زمان و تلاش برای ایجاد یا افزایش اندازه دورههایی است که به شبکه دسترسی ندارد.
غیرقابل پیش بینی بودن درخواست های کاربر، بهینه سازی این نوع استفاده از شبکه در برنامه شما را چالش برانگیز می کند. علاوه بر این، کاربران زمانی که فعالانه از یک برنامه استفاده می کنند، انتظار پاسخ های سریع را دارند، بنابراین تاخیر در درخواست ها برای کارایی می تواند منجر به تجربه ضعیف کاربر شود. به طور کلی، شما باید پاسخ سریع به کاربر را بر استفاده کارآمد از شبکه در زمانی که کاربر مستقیماً با برنامه شما در تعامل است، اولویت دهید.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط کاربر آورده شده است:
- پیش واکشی دادههای شبکه - وقتی کاربر اقدامی را در برنامه شما انجام میدهد، برنامه پیشبینی میکند که چه دادههایی ممکن است برای اقدامات بعدی کاربر مورد نیاز باشد، آنها را به صورت انبوه در یک اتصال واکشی میکند و تا زمانی که کاربر آن را درخواست کند نگه میدارد.
- بررسی اتصال یا گوش دادن به تغییرات - قبل از انجام بهروزرسانی، اتصال شبکه را بررسی کنید یا به تغییرات اتصال گوش دهید.
- تعداد اتصالات را کاهش دهید - از APIهای سرور استفاده کنید که امکان بارگیری داده ها را در مجموعه ها فراهم می کند.
ترافیک شبکه ایجاد شده توسط برنامه را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط کد برنامه شما آغاز می شود، معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه برنامه خود، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد. اگر الگوهای دسترسی ثابت به شبکه را از برنامه خود مشاهده میکنید، به دنبال راههایی باشید که این دسترسیها را از بین ببرید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه ایجاد شده توسط برنامه وجود دارد:
درخواستهای شبکه دستهای و زمانبندی - درخواستهای شبکه برنامهتان را به تعویق بیندازید تا بتوان با هم و در زمانی که برای عمر باتری مفید است پردازش شوند.
به سیستم اجازه دهید تا اتصال را بررسی کند - از هزینه باتری اجرای برنامه خود صرفاً برای بررسی اتصال شبکه خودداری کنید، زمانی که می توانید به سیستم اجازه دهید زمانی که برنامه شما خواب است بررسی کند.
ترافیک شبکه آغاز شده توسط سرور را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط سرورهایی که با برنامه شما ارتباط برقرار می کنند نیز معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه از اتصالات سرور، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد. اگر الگوهایی از فعالیت شبکه ثابت را از سرورها میبینید، به دنبال راههایی برای خالی کردن این فعالیت باشید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا یک رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط سرور وجود دارد:
- از FCM برای بهروزرسانیهای سرور استفاده کنید - به جای نظرسنجی، از سرویس پیامرسانی Firebase Cloud برای بهروزرسانیهای سمت سرور استفاده کنید.
ابزار Network Traffic منسوخ شده است. اگر از Android Studio نسخه 3.0 یا بالاتر استفاده میکنید، باید از Network Profiler برای بررسی نحوه و زمان انتقال دادهها از طریق شبکه استفاده کنید.
در بخش قبلی ، کد برنامه خود را با شناسه های ترافیک برچسب گذاری کردید، آزمایش ها را انجام دادید و داده ها را جمع آوری کردید. این درس به شما می آموزد که چگونه به داده های ترافیک شبکه که جمع آوری کرده اید نگاه کنید و شما را به اقداماتی برای بهبود عملکرد شبکه برنامه خود و کاهش مصرف انرژی راهنمایی می کند.
ترافیک شبکه برنامه را تحلیل کنید
استفاده کارآمد از منابع شبکه توسط یک برنامه با دوره های قابل توجهی مشخص می شود که در آن سخت افزار شبکه استفاده نمی شود. در دستگاه های تلفن همراه، راه اندازی رادیو برای ارسال یا دریافت داده و فعال نگه داشتن رادیو تلفن همراه برای مدت طولانی هزینه قابل توجهی دارد. اگر برنامه شما به طور موثر به شبکه دسترسی پیدا می کند، باید ببینید که ارتباطات آن در شبکه به شدت با هم گروه بندی شده اند، با فاصله زمانی که برنامه هیچ درخواستی برای اتصال ارسال نمی کند.
شکل 1 ترافیک شبکه غیربهینه را از یک برنامه نشان می دهد که توسط ابزار Network Traffic اندازه گیری شده است. این برنامه درخواست های شبکه ای مکرر می کند. این ترافیک دارای دورههای استراحت کمی است که رادیو میتواند به حالت آماده به کار و کم مصرف تغییر کند. رفتار دسترسی به شبکه این برنامه احتمالاً رادیو را برای مدت طولانی روشن نگه میدارد، که از نظر باتری ناکارآمد است.
شکل 2 یک الگوی ترافیک شبکه بهینه را نشان می دهد. این برنامه درخواستهای شبکه را بهصورت پشت سر هم ارسال میکند که با دورههای طولانی بدون ترافیک از هم جدا میشوند و رادیو میتواند به حالت آمادهباش تبدیل شود. این نمودار همان مقدار کار انجام شده را مانند شکل 1 نشان می دهد، اما درخواست ها تغییر کرده و گروه بندی شده اند تا رادیو در بیشتر مواقع در حالت آماده به کار باشد.
اگر ترافیک شبکه برای برنامه شما شبیه به نمودار شکل 2 به نظر می رسد، شما در وضعیت خوبی هستید! تبریک می گویم! ممکن است بخواهید با بررسی تکنیک های توضیح داده شده در بهینه سازی استفاده از شبکه عمومی، کارایی شبکه را بیشتر دنبال کنید.
اگر ترافیک شبکه برای برنامه شما بیشتر شبیه نمودار شکل 1 است، زمان آن رسیده است که نگاه دقیق تری به نحوه دسترسی برنامه شما به شبکه بیندازید. شما باید با تجزیه و تحلیل انواع ترافیک شبکه ای که برنامه شما ایجاد می کند شروع کنید.
انواع ترافیک شبکه را تجزیه و تحلیل کنید
هنگامی که به ترافیک شبکه ایجاد شده توسط برنامه خود نگاه می کنید، باید منبع ترافیک را درک کنید تا بتوانید آن را به طور مناسب بهینه کنید. فعالیت شبکه مکرر ایجاد شده توسط برنامه شما ممکن است کاملاً مناسب باشد اگر به اقدامات کاربر پاسخ دهد، اما اگر برنامه شما در پیش زمینه نباشد یا اگر دستگاه در جیب یا کیف است کاملاً نامناسب باشد. این بخش نحوه تجزیه و تحلیل انواع ترافیک شبکه را که توسط برنامه شما تولید می شود مورد بحث قرار می دهد و شما را به اقداماتی که می توانید برای بهبود عملکرد انجام دهید هدایت می کند.
در درس قبلی، کد برنامه خود را برای انواع مختلف ترافیک برچسب گذاری کردید و از ابزار Network Traffic برای جمع آوری داده ها در برنامه خود و تولید نمودار فعالیت استفاده کردید، همانطور که در شکل 3 نشان داده شده است.
ابزار Network Traffic ترافیک را بر اساس برچسب هایی که در درس قبلی ایجاد کردید رنگ می کند. رنگ ها بر اساس ثابت های نوع ترافیکی هستند که در کد برنامه خود تعریف کرده اید. برای تأیید اینکه کدام ثابت ها ترافیک ایجاد شده توسط کاربر، برنامه یا سرور را نشان می دهند، به کد برنامه خود مراجعه کنید.
بخشهای زیر به نحوه نگاه کردن به انواع ترافیک شبکه و توصیههایی در مورد نحوه بهینهسازی ترافیک میپردازد.
تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر
فعالیت شبکه آغاز شده توسط کاربر ممکن است زمانی که کاربر در حال انجام یک فعالیت خاص با برنامه شما است، به طور موثر با هم گروه بندی شود، یا زمانی که کاربر اطلاعات بیشتری را درخواست می کند که برنامه شما برای دریافت آن نیاز دارد، به طور ناموزون پخش شود. هدف شما از تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر، جستجوی الگوهای استفاده مکرر از شبکه در طول زمان و تلاش برای ایجاد یا افزایش اندازه دورههایی است که به شبکه دسترسی ندارد.
غیرقابل پیش بینی بودن درخواست های کاربر، بهینه سازی این نوع استفاده از شبکه در برنامه شما را چالش برانگیز می کند. علاوه بر این، کاربران زمانی که فعالانه از یک برنامه استفاده می کنند، انتظار پاسخ های سریع را دارند، بنابراین تاخیر در درخواست ها برای کارایی می تواند منجر به تجربه ضعیف کاربر شود. به طور کلی، شما باید پاسخ سریع به کاربر را بر استفاده کارآمد از شبکه در زمانی که کاربر مستقیماً با برنامه شما در تعامل است، اولویت دهید.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط کاربر آورده شده است:
- پیش واکشی دادههای شبکه - وقتی کاربر اقدامی را در برنامه شما انجام میدهد، برنامه پیشبینی میکند که چه دادههایی ممکن است برای اقدامات بعدی کاربر مورد نیاز باشد، آنها را به صورت انبوه در یک اتصال واکشی میکند و تا زمانی که کاربر آن را درخواست کند نگه میدارد.
- بررسی اتصال یا گوش دادن به تغییرات - قبل از انجام بهروزرسانی، اتصال شبکه را بررسی کنید یا به تغییرات اتصال گوش دهید.
- تعداد اتصالات را کاهش دهید - از APIهای سرور استفاده کنید که امکان بارگیری داده ها را در مجموعه ها فراهم می کند.
ترافیک شبکه ایجاد شده توسط برنامه را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط کد برنامه شما آغاز می شود، معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه برنامه خود، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد. اگر الگوهای دسترسی ثابت به شبکه را از برنامه خود مشاهده میکنید، به دنبال راههایی باشید که این دسترسیها را از بین ببرید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه ایجاد شده توسط برنامه وجود دارد:
درخواستهای شبکه دستهای و زمانبندی - درخواستهای شبکه برنامهتان را به تعویق بیندازید تا بتوان با هم و در زمانی که برای عمر باتری مفید است پردازش شوند.
به سیستم اجازه دهید تا اتصال را بررسی کند - از هزینه باتری اجرای برنامه خود صرفاً برای بررسی اتصال شبکه خودداری کنید، زمانی که می توانید به سیستم اجازه دهید زمانی که برنامه شما خواب است بررسی کند.
ترافیک شبکه آغاز شده توسط سرور را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط سرورهایی که با برنامه شما ارتباط برقرار می کنند نیز معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه از اتصالات سرور، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد یا خیر. اگر الگوهایی از فعالیت شبکه ثابت را از سرورها میبینید، به دنبال راههایی برای خالی کردن این فعالیت باشید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا یک رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط سرور وجود دارد:
- از FCM برای بهروزرسانیهای سرور استفاده کنید - به جای نظرسنجی، از سرویس پیامرسانی Firebase Cloud برای بهروزرسانیهای سمت سرور استفاده کنید.
ابزار Network Traffic منسوخ شده است. اگر از Android Studio نسخه 3.0 یا بالاتر استفاده میکنید، باید از Network Profiler برای بررسی نحوه و زمان انتقال دادهها از طریق شبکه استفاده کنید.
در بخش قبلی ، کد برنامه خود را با شناسههای ترافیک برچسبگذاری کردهاید، آزمایشها را انجام دادهاید و دادهها را جمعآوری کردهاید. این درس به شما می آموزد که چگونه به داده های ترافیک شبکه که جمع آوری کرده اید نگاه کنید و شما را به اقداماتی برای بهبود عملکرد شبکه برنامه خود و کاهش مصرف انرژی راهنمایی می کند.
ترافیک شبکه برنامه را تحلیل کنید
استفاده کارآمد از منابع شبکه توسط یک برنامه با دوره های قابل توجهی مشخص می شود که در آن سخت افزار شبکه استفاده نمی شود. در دستگاه های تلفن همراه، راه اندازی رادیو برای ارسال یا دریافت داده و فعال نگه داشتن رادیو تلفن همراه برای مدت طولانی هزینه قابل توجهی دارد. اگر برنامه شما به طور موثر به شبکه دسترسی پیدا می کند، باید ببینید که ارتباطات آن در شبکه به شدت با هم گروه بندی شده اند، با فاصله زمانی که برنامه هیچ درخواستی برای اتصال ارسال نمی کند.
شکل 1 ترافیک شبکه غیربهینه را از یک برنامه نشان می دهد که توسط ابزار Network Traffic اندازه گیری شده است. این برنامه درخواست های شبکه ای مکرر می کند. این ترافیک دوره های استراحت کمی دارد که در آن رادیو می تواند به حالت آماده به کار و کم مصرف تبدیل شود. رفتار دسترسی به شبکه این برنامه احتمالاً رادیو را برای مدت طولانی روشن نگه میدارد، که از نظر باتری ناکارآمد است.
شکل 2 یک الگوی ترافیک شبکه بهینه را نشان می دهد. این برنامه درخواستهای شبکه را بهصورت پشت سر هم ارسال میکند که با دورههای طولانی بدون ترافیک از هم جدا میشوند و رادیو میتواند به حالت آمادهباش تبدیل شود. این نمودار همان مقدار کار انجام شده را مانند شکل 1 نشان می دهد، اما درخواست ها تغییر کرده و گروه بندی شده اند تا رادیو در بیشتر مواقع در حالت آماده به کار باشد.
اگر ترافیک شبکه برای برنامه شما شبیه به نمودار شکل 2 به نظر می رسد، شما در وضعیت خوبی هستید! تبریک می گویم! ممکن است بخواهید با بررسی تکنیک های شرح داده شده در بهینه سازی استفاده از شبکه عمومی، کارایی شبکه را بیشتر دنبال کنید.
اگر ترافیک شبکه برای برنامه شما بیشتر شبیه نمودار شکل 1 است، زمان آن رسیده است که نگاه دقیق تری به نحوه دسترسی برنامه شما به شبکه بیندازید. شما باید با تجزیه و تحلیل انواع ترافیک شبکه ای که برنامه شما ایجاد می کند شروع کنید.
انواع ترافیک شبکه را تجزیه و تحلیل کنید
هنگامی که به ترافیک شبکه ایجاد شده توسط برنامه خود نگاه می کنید، باید منبع ترافیک را درک کنید تا بتوانید آن را به طور مناسب بهینه کنید. فعالیت شبکه مکرر ایجاد شده توسط برنامه شما ممکن است کاملاً مناسب باشد اگر به اقدامات کاربر پاسخ دهد، اما اگر برنامه شما در پیش زمینه نباشد یا اگر دستگاه در جیب یا کیف است کاملاً نامناسب باشد. این بخش نحوه تجزیه و تحلیل انواع ترافیک شبکه را که توسط برنامه شما تولید می شود مورد بحث قرار می دهد و شما را به اقداماتی که می توانید برای بهبود عملکرد انجام دهید هدایت می کند.
در درس قبلی، کد برنامه خود را برای انواع مختلف ترافیک برچسب گذاری کردید و از ابزار Network Traffic برای جمع آوری داده ها در برنامه خود و تولید نمودار فعالیت استفاده کردید، همانطور که در شکل 3 نشان داده شده است.
ابزار Network Traffic ترافیک را بر اساس برچسب هایی که در درس قبلی ایجاد کردید رنگ می کند. رنگ ها بر اساس ثابت های نوع ترافیکی هستند که در کد برنامه خود تعریف کرده اید. برای تأیید اینکه کدام ثابت ها ترافیک ایجاد شده توسط کاربر، برنامه یا سرور را نشان می دهند، به کد برنامه خود مراجعه کنید.
در بخشهای زیر نحوه بررسی انواع ترافیک شبکه و توصیههایی در مورد نحوه بهینهسازی ترافیک ارائه میشود.
تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر
فعالیت شبکه آغاز شده توسط کاربر ممکن است زمانی که کاربر در حال انجام یک فعالیت خاص با برنامه شما است، به طور موثر با هم گروه بندی شود، یا زمانی که کاربر اطلاعات بیشتری را درخواست می کند که برنامه شما برای دریافت آن نیاز دارد، به طور ناموزون پخش شود. هدف شما از تجزیه و تحلیل ترافیک شبکه آغاز شده توسط کاربر، جستجوی الگوهای استفاده مکرر از شبکه در طول زمان و تلاش برای ایجاد یا افزایش اندازه دورههایی است که به شبکه دسترسی ندارد.
غیرقابل پیش بینی بودن درخواست های کاربر، بهینه سازی این نوع استفاده از شبکه در برنامه شما را چالش برانگیز می کند. علاوه بر این، کاربران زمانی که فعالانه از یک برنامه استفاده می کنند، انتظار پاسخ های سریع را دارند، بنابراین تاخیر در درخواست ها برای کارایی می تواند منجر به تجربه ضعیف کاربر شود. به طور کلی، شما باید پاسخ سریع به کاربر را بر استفاده کارآمد از شبکه در زمانی که کاربر مستقیماً با برنامه شما در تعامل است، اولویت دهید.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط کاربر آورده شده است:
- پیش واکشی دادههای شبکه - وقتی کاربر اقدامی را در برنامه شما انجام میدهد، برنامه پیشبینی میکند که چه دادههایی ممکن است برای اقدامات بعدی کاربر مورد نیاز باشد، آنها را به صورت انبوه در یک اتصال واکشی میکند و تا زمانی که کاربر آن را درخواست کند نگه میدارد.
- بررسی اتصال یا گوش دادن به تغییرات - قبل از انجام بهروزرسانی، اتصال شبکه را بررسی کنید یا به تغییرات اتصال گوش دهید.
- تعداد اتصالات را کاهش دهید - از APIهای سرور استفاده کنید که امکان بارگیری داده ها را در مجموعه ها فراهم می کند.
ترافیک شبکه ایجاد شده توسط برنامه را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط کد برنامه شما آغاز می شود، معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه برنامه خود، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد. اگر الگوهای دسترسی ثابت به شبکه را از برنامه خود مشاهده میکنید، به دنبال راههایی باشید که این دسترسیها را از بین ببرید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا چند رویکرد برای بهینه سازی ترافیک شبکه ایجاد شده توسط برنامه وجود دارد:
درخواستهای شبکه دستهای و زمانبندی - درخواستهای شبکه برنامهتان را به تعویق بیندازید تا بتوان با هم و در زمانی که برای عمر باتری مفید است پردازش شوند.
به سیستم اجازه دهید تا اتصال را بررسی کند - از هزینه باتری اجرای برنامه خود صرفاً برای بررسی اتصال شبکه خودداری کنید، زمانی که می توانید به سیستم اجازه دهید زمانی که برنامه شما خواب است بررسی کند.
ترافیک شبکه آغاز شده توسط سرور را تجزیه و تحلیل کنید
فعالیت شبکه ای که توسط سرورهایی که با برنامه شما ارتباط برقرار می کنند نیز معمولاً منطقه ای است که می توانید تأثیر قابل توجهی در استفاده کارآمد از پهنای باند شبکه داشته باشید. در تجزیه و تحلیل فعالیت شبکه از اتصالات سرور، به دنبال دوره های عدم فعالیت باشید و تعیین کنید که آیا می توان آنها را افزایش داد. اگر الگوهایی از فعالیت شبکه ثابت را از سرورها میبینید، به دنبال راههایی برای خالی کردن این فعالیت باشید تا به رادیو دستگاه اجازه دهید به حالت کم مصرف سوئیچ شود.
در اینجا یک رویکرد برای بهینه سازی ترافیک شبکه آغاز شده توسط سرور وجود دارد:
- از FCM برای بهروزرسانیهای سرور استفاده کنید - به جای نظرسنجی، از سرویس پیامرسانی Firebase Cloud برای بهروزرسانیهای سمت سرور استفاده کنید.