Процесс разработки всегда связан с отладкой. С провайдерами для AnyBalance всё то же самое. В процессе написания провайдера его может понадобиться много раз загружать на телефон, устанавливать и проверять. В Android не выше Gingerbread при подсоединении телефона в качестве USB диска сам телефон карточку видеть перестаёт, то есть, чтобы запустить провайдер, приходится присоединять телефон для копирования, а потом отсоединять для того, чтобы провайдер установить в AnyBalance. Далее представлены полезные техники, которые могут облегчить этот процесс.
Черновая отладка провайдера c помощью расширения Google Chrome
С помощью расширения AnyBalanceDebugger для браузера Google Chrome можно проводить предварительную отладку JavaScriptпровайдеров. При этом средствами Google Chrome можно даже пошагово отлаживать код провайдеров, а также просматривать их внутренние переменные в процессе выполнения. Несмотря на то, что это очень удобно, среда Google Chrome не в точности повторяет среду выполнения провайдров в AnyBalance. Поэтому после отладки работы провайдера в Google Chrome необходимо провести чистовую отладку непосредственно в AnyBalance. Подробнее об AnyBalanceDebugger смотрите здесь.
Избавление от необходимости монтировать USB диск
Самое сложное это как раз монтирование-размонтирование диска, потому что это длительная процедура. А после отсоединения диска Android ещё любит запустить процесс сканирования карточки для обнаружения новых медиа-файлов, что безбожно тормозит. Поэтому первым делом стоит избавиться от необходимости монтировать USB диск для записи на телефон.
Использование WiFi
Для этого есть несколько возможностей. Самая простая - это установить на телефон, например, SwiFtp. Эта программа позволяет копировать файлы на ваш телефон по WiFi (если ваш компьютер и телефон подсоединяются к одному WiFi-роутеру). Установив и настроив эту программу, вы можете копировать провайдеры прямо в папку /sdcard/Download и без задержки устанавливать и запускать его.
Использование Dropbox
Если использовать WiFi по какой-либо причине не получается, то можно воспользоваться облачными сервисами, например, Dropbox. Для этого будет необходимо установить клиент Dropbox на компьютер и на телефон. После настройки программы можно будет на компьютере кидать новый провайдер в ту папку, которая синхронизируется с облаком, а в мобильной версии экспортировать этот файл в папку /sdcard/AnyBalance или /sdcard/Download на телефоне. К сожалению, в мобильной версии 2.0.1 есть недоработка: недостаточно произвести обновление (Refresh) файлов - в этом случае лишь обновляется информация о файлах, но не сами файлы, и экспортируется старая версия. Я обошел эту проблему так: нажимал на нужный файл провайдера, он загружался с сервера и далее либо предлагался выбор, какой программой его запустить, либо запускалась программа, связанная с архивами. Я возвращался в Dropbox и вот после этого экспорт проходил успешно.
Использование Android SDK
Если оба предыдущих варианта не подошли, то можно копировать файлы на телефон с помощью Android SDK. Для этого на телефоне необходимо включить USB Debugging (Settings > Applications > Development и включаем USB Debugging), а затем подсоединяем телефон к компьютеру USB-кабелем. Для корректной работы USB Debugging может понадобиться установка USB драйверов для вашего телефона. За драйверами обращайтесь на сайт производителя вашего телефона.
В состав Android SDK входит утилита ADB. С её помощью можно многое делать с Android устройством, в частности, копировать файлы.
- Установите Android SDK, как описано здесь (достаточно 1 и 2 шага)
- Подсоедините телефон с включенным USB Debugging
- запустите из командной строки adb devices (программа adb.exe находится в папке android-sdk/platform-tools)
- если ваш телефон присутствует в списке подключенных устройств, то можно на него что-нибудь скопировать :)
- для копирования используйте команду (вместо provider.zip укажите название файла вашего провайдера)
adb push provider.zip /sdcard/Download/provider.zip
Для удобства можно написать .bat файл, сжимающий файлы провайдера в .zip и посылающий его на телефон "одним нажатием".
Использование эмулятора
Можно также отлаживать провайдеры не на реальном телефоне, а на эмуляторе, который входит в состав Android SDK. Чтобы создать эмулятор, нужно выполнить шаг 4 установки Android SDK. При выборе платформ для эмулятора укажите Android 2.1, он тормозит меньше других :) . После того, как платформа скачалась, запускайте программу android-sdk/AVD Manager.exe, создавайте и запускайте эмулятор на основе Android 2.1. Когда эмулятор запустится, он будет виден adb как обычный телефон, и на него точно так же можно будет копировать файлы. На эмуляторе нет Android Market, поэтому для установки на него AnyBalance скачайте apk отсюда и установите на эмулятор командой (вместо AnyBalance-375.apk подставьте путь к скачанному вами apk)
adb install -r AnyBalance-375.apk
Отладочные сообщения
Чтобы вы понимали, что именно в провайдере пошло не так, он может сообщать о проблемах и своём внутреннем состоянии с помощью функции AnyBalance.trace(). Выведенная этой функцией информация сохраняется в логе аккаунта в AnyBalance (пример лога). Для этого в AnyBalance надо вызвать контекстное меню аккаунта длинным нажатием и выбрать пункт "Показать последний лог". Сохраняется только последний лог запроса провайдером информации.
Отдельная среда разработки провайдеров
Конечно, удобно было бы иметь отдельную среду разработки провайдеров, не завязанную на телефон. Надеюсь, в будущем она появится. Но пока придется довольствоваться способами, описанными выше...
Комментариев нет:
Отправить комментарий