Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 21 май 2018, 00:40

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 24 дек 2013, 22:47 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
(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. Уровень ядра


Вложения:
DDMSExample_2.rar [1.26 MiB]
Скачиваний: 231
DDMSExample_1.rar [1.37 MiB]
Скачиваний: 207

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Последний раз редактировалось Mikhail_dev 07 авг 2014, 10:49, всего редактировалось 7 раз(а).
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 24 дек 2013, 22:58 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
Подтверждаю, вебинар будет очень интересный и содержательный. Запаситесь терпением, каким-нибудь напитком и вперед! :)

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 12:45 
Аватар пользователя

Зарегистрирован: 10 июн 2013, 15:05
Сообщений: 584
Откуда: UA
Благодарил (а): 14 раз.
Поблагодарили: 74 раз.
m090050 писал(а):
4. И наконец-то, когда?
Последняя пятница в этом году, 27 декабря в 20.00 по Мск.

Проводить вебинар вечером в последнюю пятницу года, когда у всех вменяемых людей новогодний корпоратив? Окай...

_________________
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 13:43 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
Вот опять пришел и все испортил!
Андрей, где ты был, когда задавался вопрос о времени проведения вебинара? Почему мы не знаем, что у тебя корпоратив в пятницу, а? ;)

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 14:47 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
anber писал(а):
m090050 писал(а):
4. И наконец-то, когда?
Последняя пятница в этом году, 27 декабря в 20.00 по Мск.

Проводить вебинар вечером в последнюю пятницу года, когда у всех вменяемых людей новогодний корпоратив? Окай...

Я был схожего мнения, но меня сломали в моих убеждениях :|

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 14:54 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
Миша, ты был схожего мнения "вообще", а не насчет этой даты в частности. Решили так решили, хватит мучиться в сомнениях! Люди посмотрят запись.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 15:19 
Аватар пользователя

Зарегистрирован: 10 июн 2013, 15:05
Сообщений: 584
Откуда: UA
Благодарил (а): 14 раз.
Поблагодарили: 74 раз.
Foenix писал(а):
Вот опять пришел и все испортил!

Традиции нужно поддерживать :)

_________________
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 дек 2013, 22:18 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Изменено:
По просьбе большинства людей провести данный вебинар в две части, но в разные дни, мы решили пойти им на встречу, поэтому в пятницу будет показана первая часть вебинара, а вторую сможете уже увидеть после нового года, к тому же вторая часть будет пересекаться с первой, поэтому заодно и повторим материал первого вебинара (после новогодних праздников =)).
Измененная информация в первом посте темы.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 13:50 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Добавлена ссылка для просмотра вебинара (в первый пост)

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 20:42 

Зарегистрирован: 11 дек 2013, 00:01
Сообщений: 7
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
http://www.genymotion.com/ Михаил, вот ссылка на нормальную альтернативу стандартному емулятору.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 21:11 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Спасибо! Надеюсь уже в следующем вебинаре все настрою.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 дек 2013, 10:03 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Приложил исходные коды того, что было показано в вебинаре. С утра, на свежую голову, нашел ошибку в коде, но все поправил. Хотелось бы услышать мнения по поводу прошедшего вебинара, пожелания, критику.
Добавил несколько ссылок для чтения. Рекомендую почитать первую и вторую ссылку, особенно вторую, для того чтобы материал немного уложился в голове. Это будет как повторение вчерашнего.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 янв 2014, 10:30 
Аватар пользователя

Зарегистрирован: 01 дек 2013, 12:23
Сообщений: 8
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Подскажите, пожалуйста, название плагина, который перебрасывает в код, при клике на ошибку.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 янв 2014, 11:24 
Аватар пользователя

Зарегистрирован: 17 июл 2013, 09:59
Сообщений: 333
Благодарил (а): 16 раз.
Поблагодарили: 48 раз.
LogCat ???


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 янв 2014, 12:11 
Аватар пользователя

Зарегистрирован: 01 дек 2013, 12:23
Сообщений: 8
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
adarash писал(а):
LogCat ???

В LogCat, двойной клик по строке ошибки не перебрасывает в код.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 янв 2014, 12:44 
Аватар пользователя

Зарегистрирован: 17 июл 2013, 09:59
Сообщений: 333
Благодарил (а): 16 раз.
Поблагодарили: 48 раз.
kllaud писал(а):
adarash писал(а):
LogCat ???

В LogCat, двойной клик по строке ошибки не перебрасывает в код.


Смотря на какую строчку кликать. К примеру.
лог ошибки:

Код: [ Загрузить ] [ Скрыть ]
  1. 01-09 11:36:55.234: E/AndroidRuntime(9768): FATAL EXCEPTION: main 
  2. 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;  
  3. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2313) 
  4. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365) 
  5. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.app.ActivityThread.access$600(ActivityThread.java:156) 
  6. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
  7. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.os.Handler.dispatchMessage(Handler.java:99) 
  8. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.os.Looper.loop(Looper.java:153) 
  9. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.app.ActivityThread.main(ActivityThread.java:5336) 
  10. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at java.lang.reflect.Method.invokeNative(Native Method) 
  11. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at java.lang.reflect.Method.invoke(Method.java:511) 
  12. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
  13. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
  14. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at dalvik.system.NativeStart.main(Native Method) 
  15. 01-09 11:36:55.234: E/AndroidRuntime(9768): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=12; index=14 
  16. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at com.example.example.MainActivity.onCreate(MainActivity.java:15) 
  17. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.app.Activity.performCreate(Activity.java:5122) 
  18. 01-09 11:36:55.234: E/AndroidRuntime(9768):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) 
  19. 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-е и она приведет тебя именно на эту строчку.

Замечу, что есть такие ошибки, которые не указывают точную причинную строку, тогда надо искать логически и не один плагин за тебя не найдет эту строку.
Надеюсь, что суть донес.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 янв 2014, 12:59 
Аватар пользователя

Зарегистрирован: 01 дек 2013, 12:23
Сообщений: 8
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Понял, спасибо)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 янв 2014, 13:27 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Стоит кликать на код с названием Вашего пакета. Можно также скачать исходники Андроида, тогда можете кликать по любой строке.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 янв 2014, 20:39 

Зарегистрирован: 28 янв 2014, 20:19
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
В Intellij IDEA, и, в частности, в Android Studio, действительно используется DDMS как внешнее приложение в отдельном окне. Но у них есть встроенный DDMS, там не все , только LogCat и еще кое-что, чего в большинстве случаев достаточно.
Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 фев 2014, 14:28 

Зарегистрирован: 10 янв 2014, 11:03
Сообщений: 24
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Спасибо за вебинар, как раз сейчас занимаюсь оптимизацией памяти, как Вы сказали Heap - это сколько выделено и используется динамической памяти, тут всё понятно, но если посмотреть на устройстве в запущенных процессах сколько приложение потребляет памяти, то там цифра совершенно другая, в моём приложении в разы больше, что её занимает ? и как это можно отследить?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB