[ОБУЧАЛКА] Как пользоваться Logcat, проверяем куда расходуется заряд батареи Вступление Итак, может некоторые уже читали о Logcat, это команда для просмотра внутренних логов ОС Android . Logcat это лучший, а иногда и единственный способ для диагностики проблем.
Преимущества Logcat
• Отладка
• Вы можете видеть, какие процессы запущены, если процесс запущен после определенного интервала времени, он будет есть аккумулятор. Таким образом, следя за действиями некоторых программ можно увидеть кто ”кушает” вашу батарею.
Как установить Убедитесь что в настройках телефона включили USB отладку.
1. Настройки – Приложения – Разработка – Отладка по USB
2. Скачать Android SDK отсюда
Android SDK | Android Developers3. Распаковать в любую папку , например C:\Android
4. Убедиться, что вы установили драйверы для телефона и Windows распознала телефон.
Все установили ? Продолжаем …. Теперь о том как получить доступ к логам (все что выделено
курсивом – это команды) после ввода которых надо нажать Enter .
1. Запустить команду ”Выполнить”, нажав комбинацию клавиш 'Windows' + 'r'
2.
cmd (откроется DOS – окно)
3.
cd c:\Android\tools (перейти в директорию куда мы распаковывали SDK)
4.
adb shell5. Теперь можно увидеть что-то вроде '#'
6.
logcatТеперь можно нажать на красную кнопку телефона и увидеть что происходит. Будет отображаться все что происходит с телефоном...
Итак, необходимо оставить телефон подключенным на некоторое время, чтобы посмотреть за тем, что происходит внутри у нашего телефона.
Например Twidroid автообновляет твиты
=> Ничего особенного не происходит
D/dalvikvm( 75): GC freed 40165 objects / 1974768 bytes in 91ms
D/dalvikvm( 1560): GC freed 25 objects / 1800 bytes in 53ms
D/dalvikvm( 1687): GC freed 7551 objects / 330032 bytes in 102ms
=> Запускается процесс Twidroid
I/ActivityManager( 75): Start proc com.twidroidpro:remote for service com.twidroid ...
=> возвращается к освобождению объектов
D/dalvikvm( 1287): GC freed 3 objects / 72 bytes in 95ms
D/dalvikvm( 1253): GC freed 281 objects / 12688 bytes in 91ms
Если вы видите, что приложения выполняют какие-либо действия, когда они не должны этого делать, это значит что они расходуют батарею, потому что криво написаны (содержат ошибки в коде) или по другим причинам …
Пример неправильной работы приложения D/dalvikvm( 1287): GC freed 3 objects / 72 bytes in 92ms
D/dalvikvm( 2216): GC freed 6646 objects / 313032 bytes in 104ms
D/NetworkLocationProvider( 75): onCellLocationChanged [***]
D/LocationManager( 2216): removeUpdates: listener = com.levelup.beautifulwidgets .UpdateWeather$2@447843d8
D/dalvikvm( 1253): GC freed 281 objects / 12688 bytes in 93ms
D/NetworkLocationProvider( 75): onCellLocationChanged [***]
D/LocationManager( 2216): removeUpdates: listener = com.levelup.beautifulwidgets .UpdateWeather$2@447843d8
D/dalvikvm( 75): GC freed 41839 objects / 1963448 bytes in 88ms
D/dalvikvm( 1287): GC freed 3 objects / 72 bytes in 94ms
D/NetworkLocationProvider( 75): onCellLocationChanged [***]
D/LocationManager( 2216): removeUpdates: listener = com.levelup.beautifulwidgets .UpdateWeather$2@447843d8
D/dalvikvm( 2216): GC freed 6657 objects / 314648 bytes in 35ms D/NetworkLocationProvider( 75): onCellLocationChanged [***]
D/LocationManager( 2216): removeUpdates: listener = com.levelup.beautifulwidgets .UpdateWeather$2@447843d8
D/dalvikvm( 1253): GC freed 279 objects / 12640 bytes in 94ms
D/NetworkLocationProvider( 75): onCellLocationChanged [***]
D/LocationManager( 2216): removeUpdates: listener = com.levelup.beautifulwidgets .UpdateWeather$2@447843d8
D/dalvikvm( 1287): GC freed 3 objects / 72 bytes in 60ms
D/dalvikvm( 2216): GC freed 6661 objects / 314192 bytes in 104ms
D/NetworkLocationProvider( 75): onCellLocationChanged [***]
D/LocationManager( 2216): removeUpdates: listener = com.levelup.beautifulwidgets .UpdateWeather$2@447843d8
Видно, что приложение BeautifulWidgets пытается удалить одини и те же обновления, тем самым разряжает батарею без причины … И это происходит каждые 10 секунд!!!!
Вы, наверное, уже догадались что с этим приложением нужно сделать? Правильно - Удалить =)
Чем меньше вы видите в logcat тем лучше .
Очищаем логЕсли вы хотите очистить лог и видеть только то что будет происходить с телефоном с данного момента, то нужно вернуться к adb shell(4 пункт) и ввести
logcat -c . Это очистит лог. После этого введите
logcat.
_____________________________________________________________________________
Надеюсь logcat поможет вам в выявлении тех приложении которые без необходимости используют батарею вашего телефона.
Источник
HOW TO: troubleshoot bad battery life with logcat - Android ForumsСообщение отредактировал artkorotkikh - 21.10.10, 13:10