как запустить скрипт на телефоне
📱Создаем мобильное приложение для Android на JavaScript с помощью Apache Cordova
Распространение мобильных устройств в наше время достигло невероятных значений. Мобильный телефон есть у 2 из каждых 3 человек на планете. С помощью мобильных люди общаются, делают покупки, получают образование, играют. Это огромный рынок, который нельзя оставлять без внимания.
Однако чтобы разрабатывать приложения для мобильных платформ, нужно владеть определенным языком программирования. Swift – для iOS, Java или Kotlin – для Android. Или JavaScript – для iOS, Android и ряда других ОС!
Да-да, JavaScript везде, и на мобильных в том числе. На данный момент есть несколько известных и проверенных фреймворков для создания кроссплатформенных мобильных приложений на этом языке, например, React Native и Apache Cordova, а также основанные на ней проекты.
Для разработки на React Native требуется знание библиотеки React и основных паттернов работы с ней. Cordova же может взять обычное веб-приложение и обернуть его нужным кодом так, чтобы оно работало на мобильных ОС. Такие «гибридные» приложения не могут похвастаться высокой нативной производительностью, однако очень просты в разработке.
Cordova отлично подходит для создания простых проектов без сложной графики. Сейчас мы как раз разработаем один из них – классическое Todo App для Android на JavaScript.
Шаг #0. Настройка среды разработки
Так как мы пишем приложение для Android, нам понадобится JDK (Java Development Kit) и Android SDK – среда разработки для приложений Android. А также собственно Cordova.
Установочник для нужной платформы можно найти на сайте Oracle. Выбирайте версию не выше JDK 8, с более новыми Cordova не будет работать.
Android Studio
Для разработки под Android также потребуется установить Android Studio.
Добавьте в переменную PATH каталоги tools и platform-tools :
Затем убедитесь, что установлен пакет Android SDK Build-Tools (во вкладке SDK Tools).
Создание эмулятора
Наконец, создадим эмулятор, на котором можно будет запускать приложение в процессе разработки.
Для этого зайдите в меню AVD Manager:
И создайте эмулятор с нужными параметрами.
Cordova
Осталось глобально установить npm-пакет Cordova:
Шаг #1. Превращение веб-страницы в Android-приложение
Подготовительные работы закончены, пора приступать к самому интересному.
Вероятно, самый интересный вопрос – как запустить обычную веб-страницу на устройстве Android. Чтобы ответить на него, создадим пустой проект Cordova и разберемся на практике.
Создание пустого проекта
Команда для создания нового проекта Cordova:
deviceready – это событие, которое вызывает сама Cordova. Нетрудно догадаться, что оно возникает после того, как устройство, на котором запущено приложение будет готово его воспроизводить. Так как мы запустили проект в обход Cordova, это событие не возникает, поэтому надпись Connecting to device не исчезает.
Добавление платформы
Укажем целевые платформы для проекта – у нас это только Android:
Сборка проекта
Команда для сборки проекта для Android-платформы:
Загрузите его на смартфон, запустите – и вы увидите ту самую дефолтную веб-страницу. Все работает!
Запуск на эмуляторе или устройстве
Нет необходимости вручную копировать apk на устройство при каждом изменение приложения.
Чтобы запустить проект на смартфоне, подключите его к компьютеру, разрешите отладку и запустите команду:
Кордова сама соберет проект, обнаружит устройство и запустит приложение
Можно обойтись и без реального устройства.
Запустите созданный ранее эмулятор в Android Studio:
и снова выполните команду:
На этот раз кордова найдет эмулятор и запустит проект на нем:
Теперь мы умеем запускать обычную веб-страницу как приложение на Android-устройстве.
#Шаг 2. TODO-приложение
Теперь заменим дефолтную страницу Cordova на собственное крутое Todo-приложение.
Откройте приложение в эмуляторе или на подключенном устройстве и убедитесь, что все работает:
Отладка
Запущенное на эмуляторе или реально устройстве приложение Cordova можно отлаживать через браузер Chrome.
Для этого перейдите по адресу: chrome://inspect/#devices, найдите устройство в списке и нажмите Inspect.
Шаг #3. Использование функциональности платформы
До сих пор наше приложение использовало только функциональность веб-платформы. Однако Cordova предоставляет доступ и к возможностям мобильного устройства – через многочисленные плагины.
Для примера реализуем нативные диалоговые окна и оповещения.
Диалоговые окна
Теперь в коде приложения нам доступ объект navigator.notification с четырьмя методами:
Нам нужен метод confirm :
Напоминания о делах
Еще одна очень полезная функциональность – напоминание о делах в установленное время.
Для начала добавим возможность выбрать дату и время – нам понадобится плагин skwas-cordova-plugin-datetimepicker.
Использование в коде:
А для планирования оповещений понадобится плагин cordova-plugin-local-notification.
Использование в коде проекта:
Публикация проекта в Google Play
Приложение готово, осталось только собрать его для продакшена.
В директории platforms/android/app/build/outputs/apk должна появиться новая папка release, внутри которой вы найдете неподписанный apk-файл.
Чтобы выложить проект в Google Play, его нужно подписать.
Для этого нужно сгенерировать ключ:
Теперь скомпилируем проект с ключом:
Важно указать правильное имя ключа и алиас.
Осталось запаковать проект в новый apk. Для этого понадобится утилита zipalign (она находится в папке build-tools в Android SDK):
Этот apk-файл можно добавлять в Google Play через ваш аккаунт разработчика.
Взаимодейтсвие Java и Shell-скриптов в Android
Так сложилось, что в моём текущем проекте необходимо было реализовать выполнение shell-скриптов прямиком из кода.
Для того, чтобы войти в курс дела, советую вам прочитать эту статью: Shell-скриптинг в среде Android
В ней очень хорошо описаны возможности языка Shell, однако мне помимо самих скриптов нужно было выполнять методы Java.
В процессе разработки был использован образ Android_x86. Однако можно использовать рутованный телефон (наличие прав суперпользователя обязательно).
Сами скрипты из Java выполняются довольно просто:
В Android_x86 можно отправлять скрипты сразу в процесс, и они буду выполняться. Если использовать телефон, то вот эту строчку:
нужно заменить на вот эти:
Я не знаю, чем можно объяснить это, но на телефоне перед выполнением скриптов нужно запустить командную оболочку. В остальном всё одинаково.
Для примера напишем несколько shell-команд, которые потом можно будет собирать в скрипты:
Данные команды можно также комбинировать в различные скрипты:
Вызвать данный скрипт очень просто:
Данный скрипт с интервалом в 1 секунду сначала свайпает, затем тапает, затем вводит текст, эмулирует нажатие клавиши Enter и затем посылает сообщение с сигналом о завершении.
Теперь самое интересное. Данный скрипт будет выполняться в фоне несколько секунд, поскольку в нём выставлены задержки. По его завершению во входном потоке будет это сообщение. В моём примере я преобразовываю его в строку, и после этого вызываю метод handleBashCommandsResult(result), который в качестве входного параметра и принимает эту строку. В этом методе результат можно сравнить
На этом в общем то и всё. В методе handleBashCommandsResult можно выполнить, например, какие-нибудь проверки и запустить выполнение одного из нескольких других скриптов, в зависимости от результатов этой проверки. Так или иначе, я кратко описал, как наладить взаимодейтвие shell-скриптов и Java кода, что в общем-то и хотел.
Надеюсь, кому-нибудь это может пригодиться. Если остались какие-либо вопросы, я постараюсь вам ответить.
DroidScript – простой и функциональный инструмент для разработки мобильных приложений под Android
Что такое DroidScript?
DroidScript представляет собой приложение Android, которое включает в себя среду разработки и выполнения программного кода на Android устройстве. Он позволяет создавать приложения двух типов – JavaScript (с нативным интерфейсом) и HTML (гибридные).
Для создания нативного UI и доступа к программно-аппаратным ресурсам Android, JavaScript используется совместно с API DroidScript, который позволяет работать с WebView, SQLite, email, SMS, WebGL, сенсорами, Web-серверами, сокетами, спрайтовой анимацией и многим другим, а также осуществлять взаимодействие с внешними устройствами посредством Bluetooth, WiFi, USB и LAN.
Впечатляющая функциональность ”из коробки” – это одна из особенностей DroidScript. Другая особенность – простота его использования. В чём она состоит? Прежде всего, в кодировании. Ниже дан пример кода простого приложения:
Всё кодируется на JavaScript и API DroidScript без использования xml-разметки, подключения библиотек, создания классов и др.
В DroidScript нет визуальных средств проектирования интерфейса, как в Android Studio, AIDE или MIT App Inventor, но в нём можно реализовать LivePreview на Android для ещё более быстрой разработки интерактивных прототипов, а также расширить функциональность при помощи плагинов, написанных на JavaScript или Java.
Простота работы с DroidScript заключается не только в кодировании. Он изначально разрабатывался так, чтобы дать начинающим разработчикам под Android просто и быстро погрузиться в этот процесс.
Установка и настройка
В случае отсутствия под рукой телефона или планшета с операционной системой Android можно воспользоваться её эмулятором, например, BlueStacks или Nox APP Player.
Устанавливаем DroidScript из Google Play и открываем его. На экране появляется интерфейс с единственным приложением Hello World в области приложений.
Короткое касание пиктограммы приложения приведёт к его запуску. Для редактирования кода нужно выполнить долгое касание пиктограммы и выбрать опцию Edit в появившемся списке действий.
Панель управления включает в себя кнопки для доступа к документации, соединения с WiFi IDE, общим командам и примерам.
Настройка удалённой среды разработки WiFi IDE происходит так:
В левой части окна располагаются вкладки с областью приложений, редактором, ресурсными файлами, а в правой — вкладки с новостями, справкой, примерами и отладчиком.
В WiFi IDE заложена возможность расширения его функциональности за счёт добавления вкладок. Вкладка “Espruino” является примером данного расширения.
В самом простом случае приложение может состоять из одного файла с расширением js, в котором код хранится в исходном виде. Для обмена проектом в исходном коде его можно запаковать в spk-архив. Также возможна сборка проекта в apk-файл, но для этого необходимо купить и установить плагин ApkBuilder.
Когда впервые видишь столь простые интерфейсы DroidScript и WiFi IDE, после работы в десктопной или web-среде, то возникает логичный вопрос, а можно ли с помощью этого cделать что-то серьёзное? Безусловно! Как известно, и с помощью простых инструментов можно создавать впечатляющие вещи!
Как включить джава скрипт на андроиде
Javascript – это язык программирования, на котором написаны многие элементы сайтов, например, корзина для покупок. По умолчанию JavaScript включен во всех Android браузерах. Если он выключен или вы выключили его по ошибке, то прочитайте эту статью.
На настольных и Mac
На смартфонах
Включите JavaScript в браузере Android
Нажмите на опцию «apps» на вашем телефоне. Выберите «Browser» вариант.
Нажмите кнопку меню в браузере. Выбрать «Settings» (расположен в нижней части экрана меню).
Выберите «Advanced» от параметров экрана.
Установите флажок рядом с «Enable Javascript» для включения опции.
Как можно включитьвыключить Javascript на телефоне с ОС Андроид смартфоне самому?
Добрый день. “Javascript” – это один из нескольких языков программирования. На нём пишут разные элементы сайтов. Без него нет той же корзины покупок. Без него многие сайты будут работать некорректно и выглядеть коряво. Поэтому он просто необходим для полноценной работы или просто приятного проведения времени в просторах Интернета. Ну а как включить Javascript на телефоне Андроид смартфоне мы узнаем из этой статьи.
Во всех выпускаемых гаджетах с операционной системой “Андроид” он уже установлен по умолчанию в браузерах. Но вполне возможно, что по ошибке Вы его выключили и хотите опять включить.
Способ 1.
Запускаем свой браузер на устройстве. В зависимости от производителя и марки это или «Интернет», или «Браузер». Вдруг, его нет на экране, то находим в «Приложениях».
Итак, браузер запущен. Находим «Меню» (оно будет или в верхнем правом углу браузера, или на экране телефона) и входим в «Настройки» (“Settings”). В открывшемся окне настроек своего браузера нажмём «Дополнительно» (“Advanced”). Появится список 
Способ 2.
Сейчас практически у всех стоит «Google Chrome» как браузер по умолчанию. Его в основном и ставят производители и разработчики.Запустим «Google Chrome» и в настройках Хрома включаем Джавускрипт.
Для этого заходим в настройки браузера «Google Chrome». Это три квадратика стоящих вертикально. Находим и нажимаем «Настройки контента». В разделе «Дополнительно» опять просто ставим флажок возле «Включить JavaScript» (“Enable Javascript”) и перезагружаем нашу страницу. Новые настройки вступят в силу, и мы смело можем пользоваться ими.
Всё довольно-таки просто. Надеюсь, что у Вас эти нехитрые действия не вызвали особого труда и всё получилось. Удачи и пока.
Да. Если Вы вдруг захотите убрать «JavaScript», то просто снимите флажок и всё. Но не советую делать этого. Лучше от этого никому не станет. Даже наоборот.
Ждём Вас снова в гости на нашем сайте.
Автоматизация тестирования Android приложений
Концепция автоматического тестирования
Задача — с наибольшей точностью автоматизировать действия, которые выполняет тестировщик. Давайте их рассмотрим. В наличии есть несколько приложений и несколько Android устройств. Для каждого приложения и каждого устройства выполняются следующие шаги:
Далее рассматриваются средства, позволяющие автоматизировать перечисленные шаги.
Управление Android устройствами
Для начала нужно выделить компьютер на котором будет запускаться автоматическое тестирование и настроить на нем Android SDK. Примеры приводятся для компьютера с установленной ОС Linux.
На всех тестируемых устройствах нужно отключить экран блокировки и максимально увеличить время ожидания. Для некоторых методов тестирования нужно отключить смену ориентации экрана.
В Android SDK имеются две утилиты для управления устройствами: adb и MonkeyRunner.
Я постараюсь подробно описать автоматизацию действий, использующихся при тестировании. Тем, кто знаком с ADB и MonkeyRunner имеет смысл сразу переходить к разделу «Способы автоматизированного тестирования».
Управление с помощью утилиты ADB
ADB (Android Debug Bridge) – утилита для управления Android устройствами из командной строки. Официальная документация по ADB: developer.android.com/tools/help/adb.html
Проверка работы ADB
Устанавливаем и настраиваем Android SDK, подключаем к компьютеру Android устройства и выполняем команду:
Команда выдаст список всех подключенных устройств. Если список устройств не пуст, значит ADB настроен и работает.
Работа с несколькими устройствами
Основные команды ADB
Открыть консоль на устройстве:
Запустить команду на устройстве:
В Android присутствуют многие стандартные утилиты Linux: ls, cat, dmesg,…
Установить приложение из apk файла:
Название package можно получить из apk файла командой:
Загрузить файл с устройства на компьютер:
Загрузить файл с компьютера на устройство:
Запускает указанную activity. Название activity, которая запускается при выборе приложения в меню можно получить из apk файла командой:
Чтение логов
Чтение логов в Android производится утилитой logcat.
Домашняя страница утилиты logcat: developer.android.com/tools/help/logcat.html
Считать логи с устройства (блокируется до нажатия Ctrl-C):
Очистить буфер логов на устройстве:
Считать буфер логов на устройстве (выдает текущее содержимое буфера, не блокируется):
Снятие скриншотов с помощью утилиты screencap
Утилита screencap сохраняет текущее содержимое экрана в графический файл:
Утилита screencap имеется на телефонах с Android 4.x и выше. На предыдущих версиях Android снятие скриншотов можно производить с помощью MonkeyRunner.
Пример BASH скрипта для тестирования приложения c помощью ADB
Управление с помощью MonkeyRunner
Утилита MonkeyRunner предоставляет API для написания скриптов, которые управляют Android устройстами. С помощью MonkeyRunner можно написать скрипт на языке Python, который устанавливает Android приложение, запускает его, имитирует действия пользователя, снимает скриншоты и сохраняет их на компьютер. Утилита MonkeyRunner использует Jython для выполнения скриптов.
Чтение логов с помощью MonkeyRunner
Скрипт запишет логи в файл example.log в текущей директории.
Снятие скриншотов
Скрипт снимает скриншот и сохраняет его в файл screenshot.png в текущей директории.
Пример управления устройством с помощью MonkeyRunner
Средства автоматизированного тестирования
Тестирование с помощью monkey
Представьте, что устройство попало в цепкие лапы очень активной и творческой обезьяны – утилита monkey призвана имитировать подобную ситуацию.
Утилита monkey входит в состав Android SDK. Утилита отправляет на устройство поток псевдо-случайных действий пользователя. Параметры командной строки задают количество действий пользователя, соотношение их типов и имя тестируемого пакета, чтобы, например, обезьяна не вышла за пределы тестируемого приложения и не начала рассылать SMS по всем контактам из адресной книги.
Примеры использования и перечень параметров приведены на домашней странице: developer.android.com/tools/help/monkey.html
Главное достоинство monkey – отсутствие затрат на поддержку. Кроме того, стресс-тестирование приложения потоком произвольных событий может обнаружить нетривиальные ошибки.
Тестирование с помощью MonkeyRunner
При помощи скриптов использующих MonkeyRunner API можно не только разработать основу для тестирующей системы, но и написать скрипты для тестирования конкретного приложения на конкретном устройстве.
Тестирование с помощью getevent/sendevent
На устройстве должны воспроизвестись записанные действия.
Тестирование с помощью Robotium
В отличии от рассмотренных ранее способов Robotium не входит в состав Android SDK, а распространяется под Open Source лицензией.
Главное отличие Robotium в том, что тестовые действия описываются на уровне интерфейса приложения. В рассмотренных ранее способах тестовые действия явно или неявно описывались на уровне устройств ввода.
Например, в приложении нужно нажать кнопку «OK». С помощью скрипта MonkeyRunner нажатие на кнопку реализуется как: «Коснуться точки экрана с координатами (x0, y0)». С помощью Robotium это реализуется как: «Нажать кнопку с текстом «OK»».
Когда действия описываются на уровне интерфейса приложения их можно сделать независимыми от расположения элементов интерфейса, разрешения экрана и положения устройства.
Кроме того, Robotium позволяет проверять реакцию приложения на действие.
Например, после нажатия на кнопку «OK» в приложении должен появиться список с элементом «Item 1». С помощью Robotium можно проверить, появился ли список с таким элементом.
Если выполнять проверки после каждого действия, то легко обнаружить, на каком шаге произошла ошибка.
Сравнение способов тестирования
| Способ тестирования | Достоинства | Недостатки |
|---|---|---|
| Monkey – поток случайных действий пользователя. | Отсутствуют затраты на сопровождение. Не зависит от устройства. Стресс-тестирование позволяет обнаружить нетривиальные ошибки. | Качество тестирования варьируется от приложения к приложению. Найденные ошибки сложно воспроизвести. Нет проверки состояния приложения. |
| MonkeyRunner – скрипт управления устройством. | Гибкость. | Сложность написания и поддержки скриптов даже для простых приложений. |
| getevent/sendevent – запись/воспроизведение действий пользователя. | Для записи последовательности действий не требуются навыки программирования. | Записанная последовательность действий подходит только к одному устройству при фиксированной ориентации. При изменении интерфейса приложения необходимо заново записать последовательность действий. Нет проверки состояния приложения. |
| Robotium – сценарий тестирования интерфейса приложения с проверкой состояния. | Действия описываются на уровне интерфейса приложения. Сценарий может быть независимым от разрешения экрана и ориентации устройства. После совершения действия можно проверять состояние приложения. | Сложность написания сценариев на языке Java. При изменении интерфейса приложения сценарий придется модифицировать. |
Анализ результатов
В результате тестирования приложения перечисленными выше способами мы получили логи и скриншоты. Теперь их нужно проанализировать на наличие ошибок.
Анализ логов
Анализ скриншотов
В процессе тестирования вручную можно подготовить серию скриншотов в ключевых моментах тестирования, а затем сравнивать их с содержимым экрана в процессе автоматизированного тестирования. Это позволит определить, правильно ли идет процесс автоматизированного тестирования и выявлять ошибки.
Также полезно сравнивать скриншот до и после запуска приложения – это позволяет определять случаи, когда приложение аварийно завершается без сообщений на экране и в логах.
MonkeyRunner позволяет сравнить два скриншота с заданным допуском в процентах:
К сожалению, в API MonkeyImage не предусмотрена функция загрузки из файла. Поэтому для сравнения сохраненных скриншотов придется писать свою функцию, например с помощью Python Imaging Library.
Сброс состояния устройства после тестирования
После тестирования приложения устройство нужно вернуть в первоначальное состояние.
Многократное нажатие кнопки «Назад»
Нажимаем кнопку «Назад» используя MonkeyRunner:
На практике этот вариант оптимален, так как имитирует поведение реального пользователя.
Заключение
В заметке были рассмотрены некоторые способы автоматического тестирования Android приложений, их достоинства и недостатки. Кроме того, рассмотрены инструменты, входящие в Android SDK или распространяющиеся под Open Source лицензией.
Хочется отметить, что автоматическое тестирование не является панацеей и не заменяет другие виды тестирования. Качественный продукт получается при грамотно построенном процессе тестирования, сочетающем различные способы.

























