Skip to content
Dmitry Kochin edited this page Jun 30, 2021 · 7 revisions

Введение

Процесс разработки всегда связан с отладкой. С провайдерами для AnyBalance всё то же самое. В процессе написания провайдера его может понадобиться много раз загружать на телефон, устанавливать и проверять. Далее представлены полезные техники, которые могут облегчить этот процесс.

AnyBalanceDebugger

С помощью расширения AnyBalanceDebugger для браузера Google Chrome можно проводить предварительную отладку JavaScript провайдеров. При этом средствами Google Chrome можно даже пошагово отлаживать код провайдеров, а также просматривать их внутренние переменные в процессе выполнения. Несмотря на то, что это очень удобно, среда Google Chrome не в точности повторяет среду выполнения провайдеров в AnyBalance. Поэтому после отладки работы провайдера в Google Chrome необходимо провести чистовую отладку непосредственно в AnyBalance.

Отладка в AnyBalanceDebugger - основной способ разработки провайдеров. Который становится ещё проще с использованием остальных инструментов.

AnyBalanceDevtools

AnyBalanceDevtools - abd (не путать с adb!) полезная программа, которая автоматизирует многие рутинные операции во время разработки, а также значительно обогащает возможности AnyBalanceDebugger. А также заодно проверяет на верность файлы провайдера перед его публикацией.

Fiddler

Fiddler - прокси, целью которого является устранение любых проблем, возникающих при передаче HTTP-трафика между вашим компьютером и удаленным сервером. Благодаря хорошо организованной системе вкладок, вы сможете быстро получить доступ к статистике каждой интернет-страницы, которую вы посещаете, или так называемому "инспектору", благодаря которому можно просмотреть содержание каждого запроса и ответа в подходящем вам формате. Fiddler также очень полезен для использования с AnyBalanceDebugger.

Копирование провайдера на телефон в AnyBalance

Использование WiFi

Для этого есть несколько возможностей. Самая простая - это установить на телефон, например, SwiFtp. Эта программа позволяет копировать файлы на ваш телефон по WiFi (если ваш компьютер и телефон подсоединяются к одному WiFi-роутеру). Установив и настроив эту программу, вы можете копировать провайдеры прямо в папку /sdcard/Download и без задержки устанавливать и запускать его.

Использование Dropbox

Если использовать WiFi по какой-либо причине не получается, то можно воспользоваться облачными сервисами, например, Dropbox. Для этого будет необходимо установить клиент Dropbox на компьютер и на телефон. После настройки программы можно будет на компьютере кидать новый провайдер в ту папку, которая синхронизируется с облаком, а в мобильной версии экспортировать этот файл в папку /sdcard/AnyBalance или /sdcard/Download на телефоне.

Использование Android SDK

Если оба предыдущих варианта не подошли, то можно копировать файлы на телефон с помощью утилиты ADB. Для этого на телефоне необходимо включить USB Debugging (Settings > Applications > Development и включаем USB Debugging), а затем подсоединяем телефон к компьютеру USB-кабелем. Для корректной работы USB Debugging может понадобиться установка USB драйверов для вашего телефона. За драйверами обращайтесь на сайт производителя вашего телефона.

Где взять ADB? Если у вас установлена Android Studio, можете воспользоваться утилитой adb оттуда. В противном случае, можно установить adb отсюда: https://www.xda-developers.com/install-adb-windows-macos-linux/.

  • Подсоедините телефон с включенным USB Debugging
  • запустите из командной строки adb devices (программа adb.exe находится в папке android-sdk/platform-tools)
  • если ваш телефон присутствует в списке подключенных устройств, то можно на него что-нибудь скопировать :)
  • для копирования используйте команду (вместо provider.zip укажите название файла вашего провайдера)
  adb push provider.zip /sdcard/Download/provider.zip
  • файл скопируется на телефон и его сразу можно будет установить в AnyBalance.

Для удобства программа AnyBalanceDevtools командой abd bootstrap (не путать с adb!) создаёт скрипт, который одним нажатием упаковывает провайдер в текущем каталоге в .zip и посылает его на телефон.

Использование эмулятора

Можно также отлаживать провайдеры не на реальном телефоне, а на эмуляторе, который входит в состав Android Studio. Чтобы создать эмулятор, нужно всё же установить Android Studio. При установленной Android Studio запустите AVD Manager, создавайте и запустите эмулятор на основе Android 4.2+. Когда эмулятор запустится, он будет виден adb как обычный телефон, и на него точно так же можно будет копировать файлы. Для установки на эмулятор AnyBalance скачайте apk:

и установите на эмулятор командой (вместо <filename>.apk подставьте путь и название файла к скачанному вами apk)

  adb install -r <filename>.apk

Отладочные сообщения

Чтобы вы понимали, что именно в провайдере пошло не так, он может сообщать о проблемах и своём внутреннем состоянии с помощью функции AnyBalance.trace(). Выведенная этой функцией информация сохраняется в логе аккаунта в AnyBalance (пример лога). Для этого в AnyBalance надо вызвать контекстное меню аккаунта длинным нажатием и выбрать пункт "Показать последний лог". Сохраняется только последний лог запроса провайдером информации.

Проблема кеширования

Для выполнения кода провайдеров используется встроенный в Android браузер. В него очень глубоко встроено кеширование загружаемых файлов, которое не удается отключить. В результате, если вы загрузите провайдер на телефон (или эмулятор), выполните его, затем поменяете что-то в коде и загрузите на телефон ещё раз, то выполнится с большой вероятностью старая версия.

Чтобы этого не происходило, необходимо каждый раз при установке провайдера на телефон увеличивать version в манифесте. В этом случае гарантируется, что будет загружена новая версия файлов провайдера. Но будьте внимательны, перед помещением провайдера в репозиторий не забудьте спустить номер версии обратно на предыдущую версию + 1, чтобы избежать слишком больших чисел.