Предыстория
На DroidCon 17 Berlin мне довелось послушать про новый Android Profiler. Докладчик из Google рассказывал о новых удобных инструментах, доступных разработчикам для мониторинга сетевых запросов, потребления памяти и использования процессора. Это был очень полезный и интересный доклад, и, слушая его, я понял, что тема очень важная, и о ней надо обязательно рассказать.
О чем будет этот курс
Для большинства разработчиков производительность - это последнее, чем они будут заниматься в процессе разработки приложения. О производительности обычно вспоминают, когда она становится реальной проблемой, от которой уже никак не получается отмахнуться.
Но пользователи замечают признаки плохой производительности приложения гораздо лучше, чем новые фичи. Наиболее распространенная причина плохих отзывов на маркете - это плохая производительность и баги. Поэтому очень важно уделять внимание скорости и эффективности работы приложения.
В этом курсе мы подробно разберем доступные нам инструменты для поиска проблем производительности. Научимся пользоваться ими и понимать данные, которые они нам предоставляют. Более подробно об этом вы можете прочитать в первом бесплатном уроке.
Какую пользу принесут вам эти знания?
С большой вероятностью на вашем текущем проекте вы сможете стать единоличным гуру производительности, т.к. мало кто из разработчиков всерьез интересуется этой темой.
В ваше резюме можно будет добавлять пункт Application Performance, а на собеседованиях вы будете рассказывать о том, как на текущем проекте вы нашли и пофиксили множество мемори ликов, ускорили старт приложения в два раза и избавились от тормозов при скролле списка. При этом вы сможете подробно описать, какие именно действия вы предпринимали и какие инструменты использовали. Все это будет вам огромным плюсом в глазах будущего работодателя.
Пару раз меня на собеседовании спрашивали, какие я знаю инструменты для выявления проблем производительности. А также просили перечислить правила оптимизации, которых я придерживаюсь при создании приложений.
Ну и в целом, производительность - это интересная тема. Можно увидеть работу приложения изнутри. Например - подробный стек вызова методов с указанием, сколько времени выполнялся каждый метод. Или содержимое памяти приложения - какие там сейчас есть объекты, и кто на кого держит ссылку. Или все сетевые запросы с указанием их содержания, стека вызова и потока.
На сегодняшний день курс приобрели уже более 60 человек.
Как получить курс
Первые два урока доступны бесплатно и без регистрации. Прочитав их, вы примете осознанное решение о покупке.
В первом уроке поговорим о том, почему для приложения очень важна производительность, и обсудим общую схему поиска и устранения проблем. Я опишу пару случаев из моей практики и подробно расскажу, о чем будет этот курс.
Во втором уроке рассмотрим самые распространенные приемы и советы по созданию эффективного приложения.
Урок 1. Введение Урок 2. Советы по производительности
Курс постоянно дополняется. На сегодняшний день он состоит из 17 уроков
Полный курс доступен после регистрации на сайте и оплаты. Стоимость курса - 1300 рублей
С выходом новых уроков стоимость увеличивается. Но читатели, уже купившие курс, автоматически получат доступ к новым урокам. Поэтому, если тема вам интересна, не откладывайте покупку и получайте все следующие уроки бесплатно. Читателю, купившему хотя бы один курс, предоставляется скидка 20% на все остальные курсы.
Доступ к курсу предоставляется навсегда, включая все последующие уроки или обновления.
Сразу все курсы со скидкой 50% процентов вы можете купить (или докупить) на отдельной странице.
При возникновении каких-либо вопросов, используйте форму обратной связи
Содержание курса
-
Урок 1. Введение
В этом уроке поговорим о том, почему для приложения очень важна производительность, и обсудим общую схему поиска и устранения проблем. Я опишу пару случаев из моей практики и расскажу, о чем будет этот курс.
-
Урок 2. Советы по производительности
В этом уроке рассмотрим несколько общих и универсальных советов по производительности.
Урок 3. StrictMode.
В этом уроке рассмотрим возможности StrictMode. Разберем, как узнать, что в UI потоке выполняются операции с диском или сетью.
Урок 4. Память.
В этом уроке обсуждаем память: на что она расходуется, что такое Garbage Collector, как программно узнать количество свободной памяти. А также разберем режим Low memory и метод onTrimMemory, в котором система просит нас освободить память.
Урок 5. Memory Profiler. Allocation.
В этом уроке разбираемся, как с помощью Memory Profiler получить подробную информацию о создании новых и удалении старых объектов.
Урок 6. Memory Profiler. Dump.
В этом уроке рассмотрим как создать Memory Dump, и подробно разберемся, как читать его содержимое.
Урок 7. Утечки памяти. Что это такое и как образуется.
В этом уроке узнаем, что такое утечка памяти, и на примерах подробно рассмотрим, как она образуется. Кроме этого обсудим такие понятия как слабая ссылка WeakReference, Anonymous class и скрытая ссылка.
Урок 8. Утечки памяти. Как понять, что она есть, и как ее найти.
В этом уроке рассмотрим, как определить, что в приложении есть утечка памяти, и как ее найти.
Урок 9. Утечки памяти. LeakCanary.
В этом уроке мы рассматриваем инструмент LeakCanary: как его использовать, как читать и понимать результаты его работы. Кроме этого изучим возможности кастомизации и разберем несколько реальных примеров ликов.
Урок 10. CPU Profiler.
В этом уроке начинаем работу с CPU профайлером. Рассмотрим, какую информацию отображает его основной экран.
Урок 11. CPU Profiler. Стек методов.
В этом уроке рассмотрим доступные нам представления стека методов: Call Chart, Flame Chart, Top Down, Bottom Up.
Урок 12. CPU Profiler. Режимы записи стека методов.
В этом уроке рассмотрим доступные нам возможности записи стека методов.
Урок 13. Network profiler
В этом уроке рассмотрим возможности Network Profiler.
Урок 14. Energy profiler
В этом уроке рассмотрим возможности Energy Profiler.
Урок 15. Кадр
В этом уроке поговорим о том, как формируется кадр. А также рассмотрим инструменты для поиска графических проблем.
Урок 16. APK Analyzer
В этом уроке рассмотрим APK Analyzer. Это инструмент, который покажет подробную информацию о APK-файле.
Урок 17. Systrace
В этом уроке рассмотрим утилиту systrace, которая предоставляет детализированный отчет о том, что происходит в системе.