Периодически сталкиваюсь с вопросом "а как же отлаживать мобильное приложение вашей платформы, как посмотреть что происходит именно в мобильном приложении", понятно, что вроде бы это тот же мобильный сайт, но есть некоторые особенности, с левым меню, например, или поведение немного иное, доступное при вызове нативных функций.
Решил изучить эту задачу глубже и раскрыть тему удаленной отладки, чтобы для веб-программиста разработка была похожа на доработку мобильного сайта. Иногда при доработке мобильного приложения возникает необходимость посмотреть консоль, как это привычно делать в браузере, чтобы увидеть, что конкретно творится на устройстве.
Пошаговая инструкция:
устанавливаем эмулятор Android приложений, на мой взгляд удачные BlueStacks и NoxPlayer
устанавливаем браузер Google Chrome
устанавливаем Android Debug Bridge [на Mac OS X] brew cask install android-platform-tools если не установлен brew, следуем инструкции [на Windows] погуглите сами, пока нет под рукой, попозже допишу
устанавливаем apk для отладки на доступном эмуляторе adb install -r servicepi.apk если adb не видит эмулятор, перезапустите его командой: adb kill-server
запускаем Хром и переходим по адресу:
chrome://inspect
Далее вам доступны все возможности отладки мобильного сайта, к которым вы привыкли.
Вопрос/ответ из общения с программистом, который дорабатывает наше решение:
как загружается левое меню? >> приложение загружает в отдельном webView страницу /youdo/left.php
как обновить левое меню? >> вызовом js функции
app.onCustomEvent("OnAfterUserUpdate");
по какому условию перезагружается левое меню? >> по событию OnAfterUserRegister, OnAfterUserLogin, OnAfterUserUpdate, OnAfterUserLogout
какие функции есть в мобильном приложении? >> подробное описание в материалах
Вы можете собрать и свое приложение из исходников на Android, установив свой адрес сервера в параметре app_url в файле values/strings.xml. Для включения отладки в файле XWalkAppication.java по аналогии нужно добавить: Само собой, этот параметр должен отсутствовать в сборке для Google Play.