четверг, 5 июля 2012 г.

Снятие скриншотов, запись видео и получение логов: iOS, Android, Blackberry

Android

1. Скриншоты
Скриншоты можно снимать с помощью: DDMS (плагин ADT для Eclipse и standalone приложение, входящее в состав Android SDK), Android Screenshots and Screen Capture.
Также для большинства современных девайсов работает комбинация Power + Volume down

2. Видео
Начиная с Android KitKat (4.4) можно записывать видео с помощью AndroidSDK:
adb shell screenrecord /sdcard/demo.mp4

У screenrecord достаточно обширный список ключей, с которым вы можете ознакомиться здесь Также есть огромное количество программ-фронтендов к нему, ставящихся прямо на девайс (например KitKat Screen Capture)

Для записи видео для версии 4.3 и менее не так много утилит: Screencast Video Recorder, Z-ScreenRecorder. Пользовался обеими тулами, лично мне по душе Screncast Video Recorder.
Обе тулы не поддерживают устройства с логикой nVidia (Tegra 1/2/3) и требуют прав root.

Также можно снимать скринкасты при помощи



3. Логи
NOTE: Количество логов зависит только от того, что выбрали для логирования разработчиков. По умолчанию будут показываться только exceptions (желтые и красные :) ). Если Ваше приложение не показывается в DDMS - необходимо:
  • или собрать его из исходников самому - оно будет собрано в дебаг-режиме само (если специально не указано обратного в ant/maven)
  • попросить разработчиков собрать билд, в котором можно просматрировать логи
  • запустить приложение в эмуляторе - он весь запускается в дебаг-режиме и будет видно логи даже релизных приложений

Логи снимаются с помощью LogCat или консоли
  • DDMS>LogCat в IDE
  • DDMS как отдельное приложение, входящее в состав Android SDK
Консоль: adb logcat - можно либо сразу в консоли посмотреть, либо перенаправить вывод в файл: adb logcat > logname


 
Также, полный стек-трейс лежит в data/anr/traces. Его достать можно тем же методом что и Tombstones

Tombstones - создаются когда крашатся нативные приложения или приложения написанные/содержащие в себе код, созданный с помощью NDK(C/С++).
Требует прав Root не на Nexus девайсах



iOS


Удобнее всего управлять скриншотами, логами, *.provision-profile с помощью утилиты Organizer, входящей в состав xCode. Кнопка Organizer находится в правом верхнем углу xCode, также можно вызвать с помощью комбинации клавиш shift+cmd+2.




1. Скриншоты
a) Реальный девайс: Home + Power. Cкриншот сохраняется в галлерею
Из галлереи можно достать двумя путями:
  • подключив к компьютеру 
  • с помощью Organizer, входящего в состав xCode 

б) Симулятор:
  • Ctrl+Cmd+C и вставляете в файл
  • Сmd+S - скриншот сохраняется на рабочем столе
  • Shift+Cmd+4 -> Пробел - делается скриншот всего окна симулятора
2. Видео
C версии MacOS 10.10+ и для девайсов с iOS8+ и поддерживающие lightning-разъем можно записывать видео с помощью QuickTime на MacOS X если подключить девайс lightning-шнурком:
  • подключаем девайс
  • запускаем QuickTime
  • File > New Movie Recording и появившемя окне выбираем Ваш девайс в выпадающием меню рядом с кнопкой записи
К сожалению иногда запись замирает если Ваше приложение закрашилось или долго на скрине ничего не происходило

На QuickTime и технологии паразитирует AppShow - пока в бета версии, поэтому еще бесплатно - немного более удобный UI

Без Jailbreak:
  • ReflectorApp - транслирует видео с устройства по AirPlay на Ваш компьютер. Удобно записывать по хот-кеям + не надо подключать девайс шнурком как для QuickTime/AppShow. Пользуюсь более двух лет, стоит каждого вложенного цента :)
  • Так же есть утилита EggOn, которая является VNC сервером. Записывать видео можно с помощью любого предназначенного для этого средства.
C Jailbreak
  • Также существует Display Recorder от Ryan Petrich, но он только для джейлбрейкнутых девайсов. Как по мне, работает лучше.
  • Для устройств с Jailbreak можно поставить VNC сервер и подключиться к нему с компьютера, а видео писать с помощью любого предназначенного для этого средства.
Для удобства показа тачей - можно интегрировать в дебаг-версии библиотеку TouchPose или аналог

3. Логи
  • в самом xCode (если вы собрали и запустили приложение из исходников)
  • в Organizer
  • в iPhone Configuration Utility (Win, Macне работает в MacOS Mavericks
  • ConsoleLog, NSLogger, iConsole, etc (введите в поисковике console log ;) )
NOTE: в iPhone Configuration Utility также можно удалять приложения и управлять *.provision-профайлами

4. Crash-Логи

  • Windows
XP: %APPDATA% \Apple computer\Logs\CrashReporter
Vista\7: %APPDATA%\Apple Computer\Logs\CrashReporter\
  • MacOS:
~/Library/Logs/CrashReporter/MobileDevice
         либо с помощью Organizer, входящего в состав xCode

Blackberry

1. Скриншоты:
  • Javaloader
javaloader -u screenshot scnreenshotname.bmp
  • JL_Cmder - просто и удобно
  • В симуляторе проще всего делать скриншоты с помощью клавиши F3

2. Логи:
  • При помоще IDE 
  • В запущенном симуляторе проще всего через паенель Tools (можно посмотреть как eventlog, так и output log)
  • С помощью того же Javaloader можно перенаправить вывод в файл
javaloader -u eventlog > logname.txt 
  • JL_Cmder - просто и удобно  
3. Видео
Последние 8 месяцев немного выпал из мира Blackberry - возможно появился способ писать видео.
  • Пробовал BeVi Capture, но работает средненько. Возможно, потому что у меня в распоряжении были довольно слабые девайсы
  • Есть еще Mobiola Screen Capture, но я ее пока не пробовал  

JL_Cmder и Javaloader также можно использовать и с симулятором, нужно только включить эмуляцию USB-подключения:
  • в меню запущенного симулятора Simulate>USB Cable connected
  • в настройках  симулятора: Simulator>Ports>USB cable connected.  
Актуальные версии JL_Cmder выкладываются здесь
Дополнительная информация по использованию Javaloader находится здесь

Еще ссылки по теме:

Инструменты для записи видео с экрана устройств Android и iOS от EvilTester