Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
(edit) Вебинар успешно закончился.
Ссылка на вебинар - http://www.youtube.com/watch?v=BZNPmf-2 ... ture=share
Статья на хабре для углубленного изучения DDMS - http://habrahabr.ru/post/222199/
1. Что такое DDMS?
Это специальный инструмент, который позволит вашему приложению быть более отзывчивым для пользователя.
2. Каким образом?
Вы сможете с помощью него:
- находить информацию об ошибках (Logcat);
- эмулировать звонки/смс/местоположение;
- находить проблемные участки кода, которые долго работают и требуют оптимизации (профайлинг методов);
- работа с файловой системой эмулятора или устройства;
- изучение информации потоков;
- находить утечки памяти;
- использовать инструмент Network traffic;
- анализировать heap (куча), на количество свободной и занятой памяти, анализировать какие объекты чаще создаются, их размер и многое другое.
3. Для кого вебинар?
Вебинар для всех, кто хочет писать хорошие, отзывчивые приложения для пользователей. Тем, кто придет на вебинар не только для того, чтобы послушать про Logcat или имитацию местоположений, тем желательно иметь представление о таких вещах как heap, понимать что такое потоки и их отличие от процессов, знать что такое GC и представлять методы его работы.
Данный вебинар поделен на две части, вторая из которых пройдет уже в новом году. В пятницу пройдет только первая его часть.
Итак, что же будет в пятницу:
- logcat;
- файловый менеджер;
- бегло затронем имитацию вызовов, смс и местоположения;
- анализ потоков;
- просмотр использования кучи(heap) процесса;
- мониторинг создания новых объектов, их размер, тип и связь с потомками приложения.
Данная часть будет показана в среде Eclipse на одном из примеров с использованием эмулятора. Те, кто не знает что такое logcat, тем категоричeски обязательно быть!
Хочешь знать ошибки ответ? Загляни в logcat! (с)
По просьбе трудящихся, приложил исходные коды программ что показывал, правда там особо нечего смотреть, к тому же нашел одну маленькую, глупую ошибку в коде, но всё поправил.
Материалы, которые можно было бы почитать:
Использование DDMS - перевод оригинальной статьи с android.developer.com пользователем =bor=
Отладка производительности приложений для Android*
Тем, кому интересно почитать про файловую систему более подробно
Основы безопасности операционной системы Android. Уровень ядра
Ссылка на вебинар - http://www.youtube.com/watch?v=BZNPmf-2 ... ture=share
Статья на хабре для углубленного изучения DDMS - http://habrahabr.ru/post/222199/
1. Что такое DDMS?
Это специальный инструмент, который позволит вашему приложению быть более отзывчивым для пользователя.
2. Каким образом?
Вы сможете с помощью него:
- находить информацию об ошибках (Logcat);
- эмулировать звонки/смс/местоположение;
- находить проблемные участки кода, которые долго работают и требуют оптимизации (профайлинг методов);
- работа с файловой системой эмулятора или устройства;
- изучение информации потоков;
- находить утечки памяти;
- использовать инструмент Network traffic;
- анализировать heap (куча), на количество свободной и занятой памяти, анализировать какие объекты чаще создаются, их размер и многое другое.
3. Для кого вебинар?
Вебинар для всех, кто хочет писать хорошие, отзывчивые приложения для пользователей. Тем, кто придет на вебинар не только для того, чтобы послушать про Logcat или имитацию местоположений, тем желательно иметь представление о таких вещах как heap, понимать что такое потоки и их отличие от процессов, знать что такое GC и представлять методы его работы.
Данный вебинар поделен на две части, вторая из которых пройдет уже в новом году. В пятницу пройдет только первая его часть.
Итак, что же будет в пятницу:
- logcat;
- файловый менеджер;
- бегло затронем имитацию вызовов, смс и местоположения;
- анализ потоков;
- просмотр использования кучи(heap) процесса;
- мониторинг создания новых объектов, их размер, тип и связь с потомками приложения.
Данная часть будет показана в среде Eclipse на одном из примеров с использованием эмулятора. Те, кто не знает что такое logcat, тем категоричeски обязательно быть!
Хочешь знать ошибки ответ? Загляни в logcat! (с)
По просьбе трудящихся, приложил исходные коды программ что показывал, правда там особо нечего смотреть, к тому же нашел одну маленькую, глупую ошибку в коде, но всё поправил.
Материалы, которые можно было бы почитать:
Использование DDMS - перевод оригинальной статьи с android.developer.com пользователем =bor=
Отладка производительности приложений для Android*
Тем, кому интересно почитать про файловую систему более подробно
Основы безопасности операционной системы Android. Уровень ядра
- Вложения
-
- DDMSExample_2.rar
- (1.26 МБ) 604 скачивания
-
- DDMSExample_1.rar
- (1.37 МБ) 585 скачиваний
Последний раз редактировалось Mikhail_dev 07 авг 2014, 10:49, всего редактировалось 7 раз.
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS
Подтверждаю, вебинар будет очень интересный и содержательный. Запаситесь терпением, каким-нибудь напитком и вперед!
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS
Проводить вебинар вечером в последнюю пятницу года, когда у всех вменяемых людей новогодний корпоратив? Окай...m090050 писал(а):4. И наконец-то, когда?
Последняя пятница в этом году, 27 декабря в 20.00 по Мск.
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS
Вот опять пришел и все испортил!
Андрей, где ты был, когда задавался вопрос о времени проведения вебинара? Почему мы не знаем, что у тебя корпоратив в пятницу, а?
Андрей, где ты был, когда задавался вопрос о времени проведения вебинара? Почему мы не знаем, что у тебя корпоратив в пятницу, а?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS
Я был схожего мнения, но меня сломали в моих убежденияхanber писал(а):Проводить вебинар вечером в последнюю пятницу года, когда у всех вменяемых людей новогодний корпоратив? Окай...m090050 писал(а):4. И наконец-то, когда?
Последняя пятница в этом году, 27 декабря в 20.00 по Мск.
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS
Миша, ты был схожего мнения "вообще", а не насчет этой даты в частности. Решили так решили, хватит мучиться в сомнениях! Люди посмотрят запись.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS
Традиции нужно поддерживатьFoenix писал(а):Вот опять пришел и все испортил!
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Изменено:
По просьбе большинства людей провести данный вебинар в две части, но в разные дни, мы решили пойти им на встречу, поэтому в пятницу будет показана первая часть вебинара, а вторую сможете уже увидеть после нового года, к тому же вторая часть будет пересекаться с первой, поэтому заодно и повторим материал первого вебинара (после новогодних праздников =)).
Измененная информация в первом посте темы.
По просьбе большинства людей провести данный вебинар в две части, но в разные дни, мы решили пойти им на встречу, поэтому в пятницу будет показана первая часть вебинара, а вторую сможете уже увидеть после нового года, к тому же вторая часть будет пересекаться с первой, поэтому заодно и повторим материал первого вебинара (после новогодних праздников =)).
Измененная информация в первом посте темы.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Добавлена ссылка для просмотра вебинара (в первый пост)
-
- Сообщения: 7
- Зарегистрирован: 11 дек 2013, 00:01
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
http://www.genymotion.com/ Михаил, вот ссылка на нормальную альтернативу стандартному емулятору.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Спасибо! Надеюсь уже в следующем вебинаре все настрою.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Приложил исходные коды того, что было показано в вебинаре. С утра, на свежую голову, нашел ошибку в коде, но все поправил. Хотелось бы услышать мнения по поводу прошедшего вебинара, пожелания, критику.
Добавил несколько ссылок для чтения. Рекомендую почитать первую и вторую ссылку, особенно вторую, для того чтобы материал немного уложился в голове. Это будет как повторение вчерашнего.
Добавил несколько ссылок для чтения. Рекомендую почитать первую и вторую ссылку, особенно вторую, для того чтобы материал немного уложился в голове. Это будет как повторение вчерашнего.
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Подскажите, пожалуйста, название плагина, который перебрасывает в код, при клике на ошибку.
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
В LogCat, двойной клик по строке ошибки не перебрасывает в код.adarash писал(а):LogCat ???
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Смотря на какую строчку кликать. К примеру.kllaud писал(а):В LogCat, двойной клик по строке ошибки не перебрасывает в код.adarash писал(а):LogCat ???
лог ошибки:
Код: Выделить всё
01-09 11:36:55.234: E/AndroidRuntime(9768): FATAL EXCEPTION: main
01-09 11:36:55.234: E/AndroidRuntime(9768): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.example/com.example.example.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=12;
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2313)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.ActivityThread.access$600(ActivityThread.java:156)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.os.Handler.dispatchMessage(Handler.java:99)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.os.Looper.loop(Looper.java:153)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.ActivityThread.main(ActivityThread.java:5336)
01-09 11:36:55.234: E/AndroidRuntime(9768): at java.lang.reflect.Method.invokeNative(Native Method)
01-09 11:36:55.234: E/AndroidRuntime(9768): at java.lang.reflect.Method.invoke(Method.java:511)
01-09 11:36:55.234: E/AndroidRuntime(9768): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
01-09 11:36:55.234: E/AndroidRuntime(9768): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-09 11:36:55.234: E/AndroidRuntime(9768): at dalvik.system.NativeStart.main(Native Method)
01-09 11:36:55.234: E/AndroidRuntime(9768): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=12; index=14
01-09 11:36:55.234: E/AndroidRuntime(9768): at com.example.example.MainActivity.onCreate(MainActivity.java:15)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.Activity.performCreate(Activity.java:5122)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
01-09 11:36:55.234: E/AndroidRuntime(9768): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2277)
Объясняю. Строка "at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2313)", если ты на нее нажмешь, куда она тебя приведет? у тебя же нет этого кода.
За то есть другой.
в почти самом конце строка "at com.example.example.MainActivity.onCreate(MainActivity.java:15)" это же прямая ссылка на код в проекте и все ясно, что у тебя в проекте в pakege "com.example.example" в классе "MainActivity" в методе "onCreate" случилась ошибка. В строке 15. Тыкни на эту строчку в LogCat-е и она приведет тебя именно на эту строчку.
Замечу, что есть такие ошибки, которые не указывают точную причинную строку, тогда надо искать логически и не один плагин за тебя не найдет эту строку.
Надеюсь, что суть донес.
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Понял, спасибо)
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Стоит кликать на код с названием Вашего пакета. Можно также скачать исходники Андроида, тогда можете кликать по любой строке.
Re: Вебинар 6. Аптечка хорошего разработчика. DDMS. Часть 1
Спасибо за вебинар, как раз сейчас занимаюсь оптимизацией памяти, как Вы сказали Heap - это сколько выделено и используется динамической памяти, тут всё понятно, но если посмотреть на устройстве в запущенных процессах сколько приложение потребляет памяти, то там цифра совершенно другая, в моём приложении в разы больше, что её занимает ? и как это можно отследить?