Автоматизация андроид: Эти приложения для Android помогут автоматизировать всё – MacroDroid — автоматизация Android по готовым сценариям

Содержание

MacroDroid — автоматизация Android по готовым сценариям

Как-то раз мой домашний Wi-Fi отвалился, а стриминговый сервис Twitch спокойно переключился на мобильный интернет и продолжил трансляцию. Переход был гладким, и я его попросту не заметил. Через некоторое время на телефоне появилось предупреждение о том, что трафик через сотовые сети подходит к концу. Хорошо, что я внимательно слежу за мобильными мегабайтами, иначе пришлось бы неслабо переплатить.

В общем, после того случая я и задумался о том, как принудительно свернуть тяжёлое приложение, если интернет переключится с Wi-Fi на мобильную передачу данных. На ум сразу пришли программы для автоматизации Android. Ориентируясь на рейтинг и количество отзывов, я остановил выбор на MacroDroid. Приятный интерфейс и полноценная функциональность для пяти макросов также говорили в пользу этой утилиты.

MacroDroid

Макрос — это сценарий, который выполнит приложение, если обнаружит какое-либо событие (триггер) и проверит условие его срабатывания. Например, триггером может быть тряска телефона, условием — время суток с девяти вечера до четырёх утра, а действием — включение фонарика. При этом триггеров, условий и событий может быть несколько.

MacroDroid содержит шаблоны для автоматизации AndroidMacroDroid: шаблоны для автоматизации Android

Так вот, MacroDroid предлагает 59 триггеров, 92 действия и 35 условий. Вместе они дают несметное количество сценариев. Придумывать есть из чего, хотя можно воспользоваться уже готовыми рецептами, здесь их сотни.

MacroDroid: меню

MacroDroid: возможность поделиться макросами

Шаблоны сгруппированы по трём категориям: локальные на местном языке, популярные среди международной аудитории и последние добавленные. Нажмите на любой макрос, чтобы отредактировать его или добавить в коллекцию без изменений.

Понравилось и работает — ставьте палец вверх. Так макрос быстрее наберёт популярность и станет повыше в рейтинге. Придумали что-то особенное — делитесь с другими. Правда, на громадный успех, по всей видимости, рассчитывать уже не приходится. Узкоспециализированные сценарии вряд ли наберут необходимое количество лайков, а наиболее общие шаблоны уже прочно закрепились на верхних строчках рейтинга.

Коротко опишу пять лучших макросов по мнению пользователей MacroDroid:

  • Поиск телефона с помощью СМС-сообщения, текст которого содержит словосочетание FIND ME. Эсэмэска может быть получена с любого номера.
  • Включение вспышки при потряхивании смартфона. Сценарий позаимствован у Moto X.
  • Фотография с передней камеры после двух неудачных попыток разблокировать устройство. Повторяет функциональность CrookCatcher.
  • Включение диктофона, если смартфон перевёрнут экраном вниз. Шпионские штучки, знаете ли.
  • Активация и деактивация Wi-Fi после пробуждения и затухания экрана. Экономия заряда аккумулятора во всей красе.

Как видите, шаблоны действительно полезные. Жаль только, что в базовой версии можно использовать лишь пять макросов.

MacroDroid Pro

Полная, а точнее безлимитная версия MacroDroid стоит 2,6 доллара. Однако не следует торопиться с покупкой, пока вы точно не убедитесь, что всё работает правильно. Почему так? Во-первых, некоторые сценарии требуют root-прав. Во-вторых, необходимо время, чтобы понять, как тот или иной макрос сказывается на батарее. Наконец, особенности прошивки и специфические настройки смартфона могут быть несовместимы с триггером или событием.

Проверяйте и решайте, доплачивать ли за снятие ограничений. И, конечно, не забывайте делиться своими рецептами в комментариях.

MacroDroid: возможность поделиться макросами

Цена: Бесплатно

Автоматизация тестирования Android приложений / Intel corporate blog / Habr


Тестирование является важной составляющей процесса разработки приложения. Для Android тестирование особенно важно, так как устройства сильно отличаются друг от друга:
  • Размером и разрешением экрана.
  • Версией Android.
  • Форм-фактором.
  • Системой команд процессора.
  • Наличием фронтальной камеры, NFC, внешней клавиатуры, и т.д.

Поэтому тестировать приложение приходится на множестве устройств.
В процесс тестирования входят различные виды тестирования. Рассмотрим, как происходит процесс функционального тестирования приложения вручную. Тестировщик устанавливает на устройство приложение, вдумчиво проверяет всю функциональность, затем возвращает устройство в первоначальное состояние. И так для каждого приложения и каждого устройства. Очевидный недостаток такого способа – большие затраты времени для регулярного тестирования.
Очевидный плюс автоматизированного тестирования – его можно регулярно проводить без особых затрат. Например, каждую ночь тестировать свежий билд приложения на всем множестве имеющихся устройств, а утром анализировать результаты и исправлять ошибки.
В данной заметке будут рассмотрены средства реализации автоматического тестирования. Рассматриваются только инструменты, входящие в Android SDK или распространяющиеся под Open Source лицензией.

Концепция автоматического тестирования


Задача — с наибольшей точностью автоматизировать действия, которые выполняет тестировщик. Давайте их рассмотрим. В наличии есть несколько приложений и несколько Android устройств. Для каждого приложения и каждого устройства выполняются следующие шаги:
  1. Установка приложения на устройство
  2. Запуск приложения
  3. Тестирование приложения выбранным способом
  4. Удаление приложения
  5. Сброс состояния устройства

На каждом шаге нужно собрать и проанализировать данные, например логи и скриншоты. Затем на основе этих данных сформировать результат тестирования.

Далее рассматриваются средства, позволяющие автоматизировать перечисленные шаги.

Управление 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>/platform-tools/

. Путь к данной директории рекомендуется прописать в переменной окружения PATH.

Проверка работы ADB


Устанавливаем и настраиваем Android SDK, подключаем к компьютеру Android устройства и выполняем команду:
adb devices

Команда выдаст список всех подключенных устройств. Если список устройств не пуст, значит ADB настроен и работает.

Работа с несколькими устройствами


Чтобы указать ADB с каким устройством нужно работать, следует прописать серийный номер устройства после ключа -s:
adb -s <serial_number> <command>

Например:
adb -s <serial_number> logcat

Серийный номер устройства можно посмотреть командой adb devices. Ключ -s позволяет работать одновременно с несколькими подключенными устройствами. В дальнейшем ключ -s в командах я указывать не буду.

Основные команды ADB


Открыть консоль на устройстве:
adb shell

Запустить команду на устройстве:
adb shell <command>

В Android присутствуют многие стандартные утилиты Linux: ls, cat, dmesg,…

Установить приложение из apk файла:

adb install example.apk

Удалить приложение:
adb uninstall <package>

Название package можно получить из apk файла командой:
aapt dump badging example.apk | grep "package"

Загрузить файл с устройства на компьютер:
adb pull <path-on-device> <file>

Загрузить файл с компьютера на устройство:
adb push <file> <path-on-device>

Примечание:
В большинство директорий на устройстве разрешен доступ только на чтение. Доступ на запись разрешен в директорию /sdcard (из нее нельзя запускать программы) и /data/local/tmp/.

Запуск приложения:

adb shell am start -n <package>/<activity>

Запускает указанную activity. Название activity, которая запускается при выборе приложения в меню можно получить из apk файла командой:
aapt dump badging example.apk | grep "launchable-activity"

Чтение логов


Чтение логов в Android производится утилитой logcat.
Домашняя страница утилиты logcat: developer.android.com/tools/help/logcat.html

Считать логи с устройства (блокируется до нажатия Ctrl-C):

adb logcat

Очистить буфер логов на устройстве:
adb logcat -c

Считать буфер логов на устройстве (выдает текущее содержимое буфера, не блокируется):
adb logcat -d

Пример:
adb logcat -c # очищаем буфер логов
# выполняем действие
adb logcat -d > file.log # сохраняем текущее содержимое буфера логов в file.log

Снятие скриншотов с помощью утилиты screencap


Утилита screencap сохраняет текущее содержимое экрана в графический файл:
adb shell screencap /sdcard/screen.png adb pull /sdcard/screen.png screen.png adb shell rm /sdcard/screen.png

Утилита screencap имеется на телефонах с Android 4.x и выше. На предыдущих версиях Android снятие скриншотов можно производить с помощью MonkeyRunner.

Пример BASH скрипта для тестирования приложения c помощью ADB


Скрипт: app_test.sh
#!/bin/bash
#-------------------------------------------------------------------------------
# Пример BASH скрипта для автоматического тестирования приложения c помощью ADB
#
# Скрипт:
# 1. Устанавливает приложение
# 2. Запускает приложение
# 3. Тестирует приложение с помощью monkey
# 4. Удаляет приложение
#
# На каждом шаге собираются и сохраняются log-файлы.
#-------------------------------------------------------------------------------

APK="example.apk"
PACKAGE="com.example.package"
ACTIVITY="com.example.package.activity"

rm -rf log
mkdir log

# 1. Устанавливаем приложение
adb uninstall $PACKAGE # удаляем приложение
adb logcat -c # очищаем буфер логов
adb install $APK # устанавливаем приложение
adb logcat -d > log/install.log # записываем логи установки приложения

# 2. Запускаем приложение
adb logcat -c
adb shell am start -n $PACKAGE/$ACTIVITY # запускаем приложение
sleep 10 # ожидаем 10 сек чтобы приложение полностью загрузилось
adb logcat -d > log/start.log

# 3. Тестируем приложение
adb logcat -c
# тестируем приложение с помощью monkey
adb shell monkey --pct-touch 70 -p $PACKAGE -v 1000 --throttle 500
adb logcat -d > log/test.log

# 4. Удаляем приложение
adb logcat -c
adb uninstall $PACKAGE
adb logcat -d > log/uninstall.log


Управление с помощью MonkeyRunner


Утилита MonkeyRunner предоставляет API для написания скриптов, которые управляют Android устройстами. С помощью MonkeyRunner можно написать скрипт на языке Python, который устанавливает Android приложение, запускает его, имитирует действия пользователя, снимает скриншоты и сохраняет их на компьютер. Утилита MonkeyRunner использует Jython для выполнения скриптов.

Домашняя страница утилиты MonkeyRunner и описание API: developer.android.com/tools/help/monkeyrunner_concepts.html

Чтение логов с помощью MonkeyRunner


Файл log.py:
# coding: utf-8
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

def log(fn, device):
    msg = device.shell('logcat -d')
    f_log = open(fn, 'at')
    if msg is None:
        msg = 'None'
    f_log.write(msg.encode('utf-8'))
    f_log.close()    
    device.shell('logcat -c')

if __name__ == '__main__':
    device = MonkeyRunner.waitForConnection()
    device.shell('logcat -c') # Очищаем буфер логов
    # ...
    log('example.log', device) # Записываем логи

Запуск:
monkeyrunner log.py

Скрипт запишет логи в файл example.log в текущей директории.

Снятие скриншотов


Файл screen.py:
# coding: utf-8
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

if __name__ == '__main__':
    device = MonkeyRunner.waitForConnection()
    image = device.takeSnapshot()
    image.writeToFile('screenshot.png','png')

Запуск:
monkeyrunner screen.py

Скрипт снимает скриншот и сохраняет его в файл screenshot.png в текущей директории.

Пример управления устройством с помощью MonkeyRunner


Скрипт: monkeyrunner_test.py
# coding: utf-8

import time

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

APK = "example.apk"
PACKAGE = "com.example.package"
ACTIVITY = "com.example.package.activity"

def log(fn, device):
    msg = device.shell('logcat -d')
    f_log = open(fn, 'at')
    if msg is None:
        msg = 'None'
    f_log.write(msg.encode('utf-8'))
    f_log.close()    
    device.shell('logcat -c')

if __name__ == '__main__':
    device = MonkeyRunner.waitForConnection()
    device.removePackage(PACKAGE) # Удаляем пакет, если он уже установлен
    device.shell('logcat -c') # Очищаем буфер логов
    device.installPackage(APK) # Устанавливаем приложение 
    log('install.log', device) # Записываем логи установки приложения
    run_component = PACKAGE + '/' + ACTIVITY
    device.startActivity(component=run_component) # Запускаем activity
    time.sleep(10) # Ждем 10 сек
    log('start.log', device) # Записываем логи запуска приложения
    device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP) # Открываем меню
    screen = device.takeSnapshot() # Снимаем скриншот
    screen.writeToFile('screenshot.png', 'png') # Сохраняем в screenshot.png
    log('run.log', device) # Записываем логи тестирования приложения
    device.removePackage(PACKAGE) # Удаляем пакет
    log('uninstall.log', device) # Записываем логи удаление приложения


Запуск:
monkeyrunner monkeyrunner_test.py


Средства автоматизированного тестирования


Тестирование с помощью monkey


Представьте, что устройство попало в цепкие лапы очень активной и творческой обезьяны – утилита monkey призвана имитировать подобную ситуацию.

Утилита monkey входит в состав Android SDK. Утилита отправляет на устройство поток псевдо-случайных действий пользователя. Параметры командной строки задают количество действий пользователя, соотношение их типов и имя тестируемого пакета, чтобы, например, обезьяна не вышла за пределы тестируемого приложения и не начала рассылать SMS по всем контактам из адресной книги.

Примеры использования и перечень параметров приведены на домашней странице: developer.android.com/tools/help/monkey.html

Главное достоинство monkey – отсутствие затрат на поддержку. Кроме того, стресс-тестирование приложения потоком произвольных событий может обнаружить нетривиальные ошибки.

Недостатки тестирования утилитой monkey:

  • Неэффективно для тестирования функционала, вызываемого сложной последовательностью действий. Например, monkey не сможет пройти аутентификацию и основной функционал приложения останется без внимания.
  • Игры со сложным управлением, требующим быстрой реакции и сложных жестов, будут завершатся в самом начале, либо вообще не начнутся.
  • Ошибки, найденные с помощью monkey, очень сложно воспроизвести.
  • Нет проверки состояния приложения.

С помощью утилиты monkey можно без усилий протестировать любое приложение – это неплохая отправная точка. Возможно, что этот способ покажет адекватные результаты для конкретного приложения. Если же качество тестирования неудовлетворительное, то следует воспользоваться другими способами тестирования.

Тестирование с помощью MonkeyRunner


При помощи скриптов использующих MonkeyRunner API можно не только разработать основу для тестирующей системы, но и написать скрипты для тестирования конкретного приложения на конкретном устройстве.

Достоинства:

  • Гибкость – реализовать можно практически все, что угодно.

Недостатки:
  • Сложность написания скриптов даже в простых случаях.

Как правило, этот способ не оправдан – написание скриптов занимает много времени. Однако в частных случаях этот способ может сработать.

Тестирование с помощью getevent/sendevent


Утилиты getevent и sendevent позволяют записать последовательность действий пользователя, а затем воспроизвести эту последовательность. Утилиты находятся на самом Android-устройстве и не требуют для работы root-доступа.
Достоинства:
  • Последовательности действий могут быть записаны без дополнительных затрат в ходе ручного тестирования, если оно уже проводится.
  • Для записи сценариев не требуются навыки программирования.

Недостатки:
  • Последовательности действий необходимо записывать отдельно для каждого приложения и для каждого устройства. При изменении интерфейса приложения все записанные действия необходимо проделать заново.
  • Отсутствует проверка состояния приложения. Например, при тестировании браузера открывается страница. Если она открывается дольше, чем в момент записи, то дальнейшие действия будут выполнены до полной загрузки страницы и результат будет некорректный. Иногда возможно записать скрипт таким образом, что во всех подобных случаях ожидание превышает максимально возможное.
  • Быстрая и сложная последовательность действий будет воспроизводиться дольше, чем записывалась – поэтому способ не всегда подойдет для тестирования динамичных игр, где критично время реакции и своевременность действия.

Запись последовательности действий:
# Записываем последовательность событий
# выполняем действия на устройстве, по окончанию нажимаем Ctrl-C
adb shell getevent -t > events.txt
# Преобразуем последовательность в исполняемый скрипт
./decode_events.py events.txt > events.sh
# Загружаем скрипт на устройство
adb push events.sh /data/local/tmp/
# Устанавливаем права на запуск
adb shell chmod 755 /data/local/tmp/events.sh
# Запускаем скрипт
adb shell sh /data/local/tmp/events.sh

Скрипт: decode_events.py
#!/usr/bin/python
# coding: utf-8

USAGE = """Скрипт преобразует вывод команды getevent в исполняемый shell-скрипт,
воспроизводящий записанные действия с помощью команд sendevent и sleep.

Использование:
        ./decode_events.py input.txt > output.sh
"""

import re
import sys

# [   43319.628481] /dev/input/event1: 0003 0039 ffffffff
# 48470-342082: /dev/input/event1: 0000 0000 00000000
_re = re.compile(r'[^\d]*(?P<sec>\d+)[.-](?P<msec>\d+)[:\]] (?P<device>[^:]+):'
' (?P<class>[0-9a-f]+) (?P<event>[0-9a-f]+) (?P<params>[0-9a-f]+)')
T_FIX = 0.1

last_time = None

if __name__ == '__main__':
    if len(sys.argv) < 2:
        print USAGE
        sys.exit(1)
    
    print '#!/bin/sh'
    input_fn = sys.argv[1]
    for line in open(input_fn, 'rt'):
        m = _re.match(line)
        if m is not None:
            d = m.groupdict()
            cur_time = float(d['sec']) + float(d['msec'][:2])/100
            if last_time is not None:
                diff_time = (cur_time - last_time)
                if diff_time > 0.2:
                    print 'sleep %.2f' % (diff_time-T_FIX,)
            last_time = cur_time
            print 'sendevent', d['device'], int(d['class'], 16), \
                int(d['event'], 16), int(d['params'], 16)
        else:
            print '#', line.strip('\n\r\t ')


На устройстве должны воспроизвестись записанные действия.

Тестирование с помощью Robotium


В отличии от рассмотренных ранее способов Robotium не входит в состав Android SDK, а распространяется под Open Source лицензией.

Домашняя страница Robotium: code.google.com/p/robotium

Главное отличие Robotium в том, что тестовые действия описываются на уровне интерфейса приложения. В рассмотренных ранее способах тестовые действия явно или неявно описывались на уровне устройств ввода.

Например, в приложении нужно нажать кнопку «OK». С помощью скрипта MonkeyRunner нажатие на кнопку реализуется как: «Коснуться точки экрана с координатами (x0, y0)». С помощью Robotium это реализуется как: «Нажать кнопку с текстом «OK»».

Когда действия описываются на уровне интерфейса приложения их можно сделать независимыми от расположения элементов интерфейса, разрешения экрана и положения устройства.

Кроме того, Robotium позволяет проверять реакцию приложения на действие.

Например, после нажатия на кнопку «OK» в приложении должен появиться список с элементом «Item 1». С помощью Robotium можно проверить, появился ли список с таким элементом.

Если выполнять проверки после каждого действия, то легко обнаружить, на каком шаге произошла ошибка.

Недостатки:

  • Для каждого приложения необходимо разработать сценарий тестирования на языке Java. Это требует навыков программирования и временных затрат.
  • При изменении интерфейса приложения сценарий тестирования придется модифицировать.
  • Написать сценарий Robotium сложнее, чем записать действия с помощью getevent/sendevent.

В целом, Robotium позволяет разрабатывать наиболее качественные сценарии тестирования при адекватных затратах.

Сравнение способов тестирования


Способ тестирования Достоинства Недостатки
Monkey – поток случайных действий пользователя. Отсутствуют затраты на сопровождение.
Не зависит от устройства.
Стресс-тестирование позволяет обнаружить нетривиальные ошибки.
Качество тестирования варьируется от приложения к приложению.
Найденные ошибки сложно воспроизвести.
Нет проверки состояния приложения.
MonkeyRunner – скрипт управления устройством. Гибкость. Сложность написания и поддержки скриптов даже для простых приложений.
getevent/sendevent – запись/воспроизведение действий пользователя. Для записи последовательности действий не требуются навыки программирования. Записанная последовательность действий подходит только к одному устройству при фиксированной ориентации.
При изменении интерфейса приложения необходимо заново записать последовательность действий.
Нет проверки состояния приложения.
Robotium – сценарий тестирования интерфейса приложения с проверкой состояния. Действия описываются на уровне интерфейса приложения.
Сценарий может быть независимым от разрешения экрана и ориентации устройства.
После совершения действия можно проверять состояние приложения.
Сложность написания сценариев на языке Java. При изменении интерфейса приложения сценарий придется модифицировать.

Анализ результатов


В результате тестирования приложения перечисленными выше способами мы получили логи и скриншоты. Теперь их нужно проанализировать на наличие ошибок.

Анализ логов


Для начала можно сделать поиск по подстрокам:
  • I/DEBUG
  • FATAL EXCEPTION
  • WIN DEATH

Список можно дополнять по мере выявления ошибок в ходе ручного тестирования.

Анализ скриншотов


В процессе тестирования вручную можно подготовить серию скриншотов в ключевых моментах тестирования, а затем сравнивать их с содержимым экрана в процессе автоматизированного тестирования. Это позволит определить, правильно ли идет процесс автоматизированного тестирования и выявлять ошибки.

Также полезно сравнивать скриншот до и после запуска приложения – это позволяет определять случаи, когда приложение аварийно завершается без сообщений на экране и в логах.

MonkeyRunner позволяет сравнить два скриншота с заданным допуском в процентах:

image1 = device.takeSnapshot()
# ...
image2 = device.takeSnapshot()
if image2.sameAs(image1, 0.1):
    print 'image1 and image2 are the same (10%)'

К сожалению, в API MonkeyImage не предусмотрена функция загрузки из файла. Поэтому для сравнения сохраненных скриншотов придется писать свою функцию, например с помощью Python Imaging Library.

Сброс состояния устройства после тестирования


После тестирования приложения устройство нужно вернуть в первоначальное состояние.

Этого можно достичь несколькими путями:

  • Многократное нажатие кнопки «Назад».
  • Перезагрузка устройства.
  • Перезапуск процесса zygote.

Рассмотрим первый вариант, как наиболее адекватный.

Многократное нажатие кнопки «Назад»


Нажимаем кнопку «Назад» используя MonkeyRunner:
for i in xrange(0, 10):
    device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)
    time.sleep(0.5)

На практике этот вариант оптимален, так как имитирует поведение реального пользователя.

Заключение


В заметке были рассмотрены некоторые способы автоматического тестирования Android приложений, их достоинства и недостатки. Кроме того, рассмотрены инструменты, входящие в Android SDK или распространяющиеся под Open Source лицензией.

Хочется отметить, что автоматическое тестирование не является панацеей и не заменяет другие виды тестирования. Качественный продукт получается при грамотно построенном процессе тестирования, сочетающем различные способы.

Об автоматизации и скриптинге для Android — «Хакер»

Содержание статьи

Привет, читатель. Не знаю как ты, а я ну очень ленивый. И я не люблю вновь и вновь повторять какие-то стандартные действия, если можно написать скрипт. В Android для этого можно использовать визуальный инструмент автоматизации Tasker и среду исполнения скриптов SL4A, которые, работая в паре, позволяют сделать смартфон по-настоящему умным девайсом.

 

Tasker

Tasker представляет собой небольшое, но очень мощное приложение для автоматизации устройств под управлением Android. Принцип его действия основан на выполнении определенных задач в момент возникновения событий, так или иначе меняющих состояние смартфона. Я знаю, что звучит это не особо впечатляюще, однако в умелых руках Tasker позволяет творить настоящие чудеса. Для затравки приведу несколько примеров.

Что ты обычно делаешь при включении громкой связи? Правильно, кладешь телефон на стол. А что, если громкая связь включится сама, когда ты положишь телефон экраном вниз во время разговора? Удобно? Так вот, Tasker позволяет реализовать такое поведение буквально за минуту. Также можно настроить автоматический запуск плеера при подключении наушников, автоматическую отправку SMS, когда доезжаешь до дома, или переключение музыки в плеере встряхиванием телефона. С помощью Tasker все это достижимо в несколько тапов по экрану.

Приложение это платное и стоит 3,49 фунта стерлингов (примерно пять долларов), но прежде чем покупать, можно ознакомиться с программой, скачав trial-версию на семь дней с сайта разработчика tasker.dinglisch.net. Недели будет вполне достаточно: например, лично я без сомнений купил программу всего через два дня использования и уверен, что ты поступишь также. Кстати, учти, что версия с Play Market не имеет функции шифрования из-за ограничений законов США.

 

Основные понятия

Итак, рассмотрим интерфейс и основные понятия программы. Для начала сменим язык приложения на русский (Меню -> Preferences -> Language) (это делать не обязательно, если основным языком системы выбран русский. — Прим. ред.). Теперь вернемся на главный экран. Он поделен на три раздела: «Profiles», «Tasks» и «Scenes» (скриншот 1).

Скриншот 1: главное окно Tasker

В разделе «Profiles» отображаются, как понятно из его названия, пользовательские профили.Профиль — это один или несколько Контекстов и привязанная к ним Задача, где контекст— это некоторое условие, такое как, например, переворот телефона экраном вниз, включение GPS или проседание заряда батареи до определенного уровня. Если все контексты профиля становятся активными, то активизируется сам профиль и начинает выполняться Начальная задача профиля. Если хоть один из контекстов профиля становится неактивен, профиль дезактивируется и выполняется Конечная задача.

Например, для профиля с одним контекстом «Телефон лежит экраном вниз» начальная задача выполнится после того, как устройство приобретет нужную позицию (то есть экраном вниз), а конечная — когда оно покинет эту позицию. Задача — это одно или целая цепочка Действий, где действие — это какая-то элементарная операция. Разработчики предоставили нам очень много действий, начиная от вывода сообщений на экран и заканчивая файловыми операциями. Наличие и их последовательность в задаче определяем мы. Действия можно поделить на настройки и собственно действия. Настройки отличаются от действий тем, что они возобновляют прежнее состояние после дезактивации контекста. Например, звонок по определенному номеру является действием, а включение громкой связи — настройкой. В приложении их можно отличить по пиктограмме: молния — это действие, шестеренка — настройка.

 

Создаем профиль

Вооружившись знаниями, попробуем создать наш первый профиль: автоматическое включение громкой связи в том случае, если телефон переворачивают экраном вниз. Для создания нового профиля нажимаем кнопку «+» внизу по центру экрана. Появится окошко с приглашением к вводу имени профиля. Имя указывать не обязательно, но рекомендуется, дабы в будущем не запутаться среди профилей (я ввел «Громкая связь»). Далее ты увидишь меню выбора типа первого контекста (скриншот 2). Рассмотрим все типы подробнее:

  • Приложение. Этот тип контекста активен тогда, когда запущено некоторое приложение, и дезактивируется, если приложение закрыть. После выбора этого пункта загружается список установленных приложений, из которых можно выбрать как одно, так и несколько.
  • Время. Здесь можно выбрать время активности контекста, тогда контекст будет активен в течение выбранного промежутка времени. Также можно установить повторение, тогда контекст будет активизироваться на короткий промежуток, повторяясь через указанное время.
  • День. Можно выбрать день месяца или недели, когда контекст активен. Тут все просто.
  • Место. Очень полезный и интересный контекст, активизируется тогда, когда устройство оказывается в некоем радиусе от указанной точки на карте (см. соответствующую врезку).
  • Состояние и событие. События и их особенности мы рассмотрим в следующем примере. Сейчас же нас интересует пункт «Состояние». Этот тип контекста активен, когда устройство пребывает в конкретном состоянии, например в режиме полета, при активном подключении к Wi-Fi-сети или же в положении экраном вниз, что и надо для нашей задачи (да-да, я еще помню о ней :)).
Скриншот 2: типы контекстов

 

Особенности контекста «Место»

Контекст «Место», как уже упоминалось, активизируется, когда смартфон находится в некотором радиусе от указанной на карте точки. Можно выбрать, использовать ли GPS или же данные от сети, а также нужный радиус, значение которого можно указать от 30 метров до 999 километров. Для относительно большого радиуса в пределах города, где точность данных из сети достаточно высока, лучше не использовать GPS, который жрет батарею совсем не по-детски. Также запомни, что если точность определения положения больше, чем радиус срабатывания, то контекст не активизируется.

Выбираем пункт «Состояние» и видим несколько категорий (скриншот 3). Нам нужна категория «Sensor», а в ней пункт «Ориентация». Далее в выпадающем списке нужно выбрать необходимую ориентацию устройства. В нашем случае следует выбрать «Экраном вниз» и нажать на зеленую галочку. Выскочит меню выбора задачи для заданного контекста. Так как задач у нас пока нет, нажимаем «Новая задача». Вводим название задачи (можно не вводить, но рекомендую) и попадаем в меню редактирования задачи.

Скриншот 3: разделы контекста «Состояние»

 

Создание задач

Как я уже говорил, задачи — это последовательности действий. Чтобы добавить к задаче действие, следует нажать кнопку «плюс» (скриншот 4). Все действия разбиты на несколько категорий, названия которых говорят сами за себя. Для цели, поставленной нами, нужно выбрать пункт «Аудио», затем выбрать настройку «Громкая связь» и в выпадающем списке — «Включить». Галочка «Если» позволяет навесить дополнительные условия на конкретную задачу (если интересно, подробнее тут. Нажимаем зеленую галочку — действие добавлено к задаче. Можно добавить еще несколько действий, но в нашем случае это не требуется, так что еще раз нажимаем зеленую галочку, и только что созданная задача становится начальной задачей профиля. Так как громкая связь является настройкой, то после дезактивации контекста она будет отключена.

Скриншот 4: экран создания задачи

Теперь наш первый профиль готов, но пока еще малоэффективен; постоянная проверка положения смартфона быстро «выест» батарею. Чтобы обойти эту проблему, добавим к профилю еще один контекст: долгое нажатие на уже существующем контексте, «Добавить -> Состояние -> Телефон». Выбираем контекст «Call», который активен во время звонка. В выпадающем меню можно выбрать тип звонка, выбираем «Any», конкретный номер не указываем. Теперь, когда в профиле два контекста, Tasker выполняет их проверку в порядке увеличения энергоемкости, то есть сначала будет проверен «Call» и, если он неактивен, проверка остановится, что сохранит нам батарею. Профиль готов! Можешь проверить. Позвони, а затем положи телефон экраном вниз, и вуаля — громкая связь включилась, теперь подними — выключилась. Захватывающе, правда?

 

Переключение музыки в плеере встряхиванием телефона

В этом примере я обещал рассказать об особенностях контекста «Событие». Контекст «Событие» активизируется только на короткий промежуток времени, запуская привязанную задачу, и сразу дезактивируется. Поэтому в профиле может быть только один контекст такого типа и у профиля с событием не может быть конечной задачи. Также для профилей с событием настройки не возобновляют своего значения.

Приступим к реализации нашего профиля. Добавляем новый профиль (не забываем дать ему имя) и выбираем для него контекст «Событие». Выбираем категорию событий «Sensor», а затем «Shake». Выставляем нужные нам значения осей, чувствительности и продолжительности. Для этого профиля нам нужно создать новую задачу — создаем! В окне редактирования задачи нажимаем плюс; нам нужна категория «Медиа» и действие «Упр. Медиаплеером». Выбираем нужную команду управления и заканчиваем создание задачи. Добавим еще один контекст к профилю (на этот раз это контекст «Приложение») и выберем из списка наш плеер. Теперь опрос сенсора будет происходить только при включенном плеере. Все, данный профиль готов, можешь проверить.

 

Scripting Level for Android

Я описал лишь основные фичи Tasker. Этих знаний тебе вполне хватит для создания самых простых профилей, но возможности этой замечательной программы этим не ограничиваются. В Tasker встроены средства создания и анализа переменных, можно реализовать условные операторы, циклы и даже создавать UI для запроса данных от пользователя (именно для этого и предназначены «Scenes»). Но и это еще не все, возможности Tasker можно существенно расширить, используя в качестве действий скрипты, созданные с помощью SL4A.

SL4A (Scripting Level for Android) — это среда исполнения (и создания) скриптов для Android на языках Python, JavaScript, Perl, Ruby, Lua, BeanShell и Tcl. В скриптах может быть использован API Android через специальную обвязку вокруг стандартного JSON RPC платформы Android, благодаря чему из скриптов можно вызывать функции телефонии, отправлять SMS, получать данные с GPS, камеры и акселерометров, формировать GUI. Скриптовым языком де-факто для этой платформы считается Python, и мы возьмем на вооружение именно его.

Для начала работы необходимо скачать и установить SL4A и Python. После установки Python запускаем его и нажимаем на кнопку «Install», чтобы скачались все необходимые библиотеки для работы на Android.

Для примера напишем несколько простых скриптов. Можно делать это прямо на устройстве, но можно писать и на обычном компе, а потом скидывать код в каталог SL4A/Scripts на карте памяти. Для создания нового скрипта запускаем SL4A, вызываем меню и нажимаем «Add», в появившемся списке выбираем «Python». Попадаем в окно создания скрипта. В верхнее поле вводим имя, внизу у нас уже написано две строчки кода:

import android
droid = android.Android()

Этот код просто импортирует библиотеку для работы с API и создает объект, с помощью которого API будет нам доступен. Разобрать все функции API или даже их четверть нереально в одной статье, поэтому будем рассматривать необходимые нам функции в процессе создания скриптов (полное описание API есть во встроенной справке SL4A или же здесь. Первой функцией, которую мы рассмотрим, будет makeToast: она просто отображает уведомление. Дописываем две строки к коду:

# Выводим уведомление и сообщение в консоль
droid.makeToast("Hello world!")
print("Hi from Python")

Далее сохраняем скрипт и запускаем его, тапнув по его имени. Появится меню, показанное на скриншоте 5. Первый пункт означает запуск скрипта с консолью, второй — в фоновом режиме.

Скриншот 5: запуск SL4A-скриптовСкриншот 6: результат работы HelloWorld.py

 

Уровнем выше

Теперь заскриптим что-нибудь поинтересней. Давай попробуем научить смартфон анализировать последнее входящее SMS-сообщение на наличие некоторых команд, выполнять их и выдавать ответ об успешно выполненной операции. Для примера пусть у нас будет всего одна команда play music, после получения которой будет проигран определенный медиафайл.

import android
droid = android.Android()

# Получаем список всех сообщений
msgs = droid.smsGetMessages(False).result
# Нас интересует последнее полученное сообщение
lastmessage = msgs[0]
# Ищем команду в тексте сообщения
if "play music" in lastmessage['body']:
  # Проигрываем указанный файл
  droid.mediaPlay('/sdcard/music/track.mp3')
  # Отправляем ответ об успешном выполнении
  # Первым параметром является номер абонента,
  # вторым — текст сообщения
  droid.smsSend(last.address, "Command complete")

Можно зациклить эту проверку, но гораздо эффективнее получится, если связать выполнение этого скрипта с событием Tasker «Получено текст. сообщ.» из раздела «Телефон».

Рассмотрим более полезный скрипт. Знаю, что у многих (в том числе у меня) есть проблема с отображением кириллических символов в ID3-тегах MP3-файлов. Удобного решения этой проблемы я так и не нашел, поэтому и написал скрипт. Для его работы мне потребовалась сторонняя библиотека Stagger. Кстати, из SL4A можно использовать любые сторонние pure Python библиотеки, просто копируя их в каталог com.googlecode.python.python3forandroid/extras/python3 на карте памяти. Полный код скрипта с подробными комментариями можно найти на прилагаемом к журналу диске, здесь же ограничусь только кодом, который перебирает MP3-файлы на карте памяти:

# Перебираем все MP3-файлы на карте
for(dirName, dirs, files) in os.walk(r'/sdcard'):
  for filename in files:
try:
  if filename.endswith('.mp3'):
pathname = os.path.join(dirName, filename)
# Ну а дальше идет работа с тегами…

Этот скрипт можно запускать вручную, когда потребуется, но я привязал выполнение этого скрипта к событию «Кар. памяти доступна» из раздела «Аппаратура» Tasker.

 

INFO

  • Количество контекстов и действий Tasker можно существенно расширить, используя плагины. Найти их можно, вбив в поиске Маркета «Locale plugin».
  • SL4A — не единственный скриптовый движок для Android. Рекомендую также обратить внимание на Kivy.
  • Если ты пишешь скрипты на компьютере, то тебе не обязательно каждый раз копировать скрипт на устройство. Есть средства удаленного выполнения.
  • Профили, созданные в Tasker, можно упаковывать в APK-пакеты с помощью Tasker App Factory. Аналогичное решение для SL4A.
  • Если функции SL4A возвращают абракадабру, попробуй проделать со строкой такой трюк: .encode(‘cp1251’).decode(‘utf8’).

 

Взаимодействие с пользователем

SL4A предоставляет нам разные способы взаимодействия с пользователем: webViews (HTML5 + JavaScript), fullScreenAPI (подробнее можно почитать в моей статье и dialogAPI, который мы вкратце и рассмотрим. Опять же полный код примера можно увидеть на диске, а здесь только часть, касающаяся dialogAPI. Я не сказал, что за скрипт? Он отправляет выбранные пользователем фотки на FTP-сервер.

# Используем модуль glob для извлечения списка изображений в filesNames
...

# Создаем диалог, указывая его заголовок и текст
droid.dialogCreateAlert("Выбор файлов", "Выберите файлы для отправки")
# Следующей строкой добавляем к диалогу флажки
droid.dialogSetMultiChoiceItems(filesNames)
# А здесь добавляем кнопки
droid.dialogSetPositiveButtonText("OK")
droid.dialogSetNegativeButtonText("Отмена")
# И наконец, показываем диалог
droid.dialogShow()

# Проверяем, какая кнопка была нажата (positive, negative или neutral)
if droid.dialogGetResponse().result['which'] == "positive":
  # Получаем индексы выбранных флажков
  res = droid.dialogGetSelectedItems().result

# Используя ftplib, отправляем файлы на сервер
...

 

Что дальше?

Благодаря Tasker и SL4A возможности автоматизировать пользовательские действия на Android становятся просто безграничными. Сам же SL4A предоставляет мощный потенциал для скриптинга Android. В этой статье я описал лишь самую малость из всех возможностей программ. Остальную информацию ищи по ссылкам, приведенным в боковых выносах, или же жди от меня новых, более специализированных статей.

 

AutomateIt сделает ваш Android-смартфон действительно умным

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

AutomateIt: главный экран AutomateIt: раздел «Мои правила»

Основой программы являются так называемые правила. Они описывают действия, которые необходимо выполнить при появлении назначенного условия (стимула). Вот несколько простых примеров.

ПравилоСтимулДействие
Включить тихий режим ночьюНаступление назначенного времени (например, 11 часов вечера)Активация беззвучного режима
При выходе из дома выключить Wi-FiИзменение местоположения (удаление от заранее определённой точки)Выключение беспроводного интерфейса

»
Как видите, ничего сложного. Однако благодаря большому количеству поддерживаемых программой стимулов и действий можно создавать настолько разнообразные правила, что они смогут вписаться практически в любые нужные пользователю ситуации. Добавьте к этому возможность создания сложных правил, то есть срабатывающих от нескольких условий и запускающих целую цепочку действий, и вы поймёте, что в AutomateIt есть где разгуляться даже искушённым андроидофилам. С полным списком стимулов и возможных действий программы вы сможете ознакомиться на её страничке в Google Play, а я расскажу, как можно создавать нужные вам правила.

После установки программы вам будет по умолчанию доступен набор из нескольких самых популярных правил. Увидеть их можно в разделе «Мои правила». Если же вы хотите создать новое, то смело жмите на кнопку «Добавить правило» на главном экране приложения. Здесь вас встретит пошаговый мастер, с помощью которого вы сможете выбрать условие срабатывания, затем указать необходимое действие и, наконец, задать название правила и некоторые его свойства.

AutomateIt: создание нового правила AutomateIT: название скрипта и опции

Каждому шагу отведена отдельная вкладка, так что запутаться трудно. Последним шагом будет сохранение созданного вами правила, после чего оно окажется в разделе «Мои правила». Наглядную демонстрацию этого процесса вы можете увидеть в следующем ролике. Пусть вас не смущает английский интерфейс программы, на самом деле приложение AutomateIt прекрасно русифицировано и не требует знания английского языка.

Для тех пользователей, у которых нет времени или сил создавать правила самостоятельно, в программе существует встроенный каталог. Здесь вы сможете загрузить и начать использовать правила, созданные другими пользователями. Все элементы рассортированы по популярности и числу загрузок, есть система поиска, поэтому вы легко сможете найти нужные вам правила.

AutomateIt: магазин правил AutomateIt: лучшие правила

Программа AutomateIt является незаменимым инструментом для всех пользователей, которые хотят, чтобы их смартфоны действительно стали умными. Благодаря созданным правилам вы сможете автоматизировать большое количество рутинных действий, которые ранее приходилось выполнять самому. Теперь ваш телефон научится без вашей помощи читать вслух важные сообщения, будить вас любимой радиопрограммой, выключать связь в определённом месте и приглушать звук в определённое время.

AutomateIt распространяется в платной и бесплатной версиях. Платная содержит несколько очень весомых плюсов, в том числе комплексные условия, совмещённые действия, возможность использования всех датчиков устройства, наблюдение за календарями и многое другое. Разработчики любезно согласились предоставить нам 20 промокодов Pro-версии программы AutomateIt, которые мы разыграем среди читателей Лайфхакера.

Условия розыгрыша

Все промокоды будут разыграны между теми, кто выполнит следующие условия. Поделитесь этой статьёй в Twitter, Facebook, Google+ или «ВКонтакте» и отправьте нам ссылку или скриншот своего поста с помощью формы, представленной ниже. Не забудьте указать адрес электронной почты и свои данные, чтобы мы смогли выслать вам промокод. Имена счастливчиков появятся на этой же странице 23 февраля. Удачи!

Итоги

Розыгрыш закончен. Вот список наших читателей, которые стали обладателями полной версии программы AutomateIt PRO. Всем им был выслан промокод на указанный адрес электронной почты, поэтому просьба проверить свой почтовый ящик.

Васильев ДмитрийАртем
ДарьяAskeptic
AndreyErdyneev Erdeni
Антон Калашниковалександр
ВладимирПётр
ВиталийОльга
romasemyonВасилий
ВикторIgor
Кирилл ДмитричVlad Bezo
ИльяАлексей Синёв

»

король автоматизации / Программное обеспечение

В середине лета число приложений в официальном магазине Google Play достигло одного миллиона. И, возможно, самое функциональное среди них — это Tasker. Несмотря на то, что приложение не относится к категории «Игры», несмотря на то, что оно требует немало времени на освоение, все же оно стабильно держится в топе самых популярных платных программ в Google Play.

В том, что у Tasker огромная аудитория почитателей, нет ничего удивительного, ведь приложение дает возможность каждому найти свои способы его использования. Если говорить в общем, Tasker — это приложение для автоматизации. В его основе лежит идея о том, что многие действия, которые пользователь выполняет на своем мобильном устройстве, являются, во-первых, повторяемыми, а во-вторых, связанными с некими событиями. Например, когда вы приходите в театр или в медицинский центр, вы отключаете звук на телефоне, а когда оказываетесь дома — включаете на планшете Wi-Fi. Все подобные действия Tasker может выполнять в автоматическом режиме, разгружая голову владельца мобильного устройства для других, более важных дел.

Tasker — не единственное приложение для автоматизации устройств с Android, и многие его возможности можно также обнаружить в программах on{x}, Locale и им подобных. Однако других столь функциональных приложений, как Tasker, не существует. Программа выходит далеко за рамки обычных шаблонов — имея некоторые навыки ее использования, можно придумывать практически любые сценарии для автоматизации, содержащие множество уровней, и даже создавать на основе Tasker собственные приложения.

Но впервые загрузив Tasker (на сайте разработчика доступна бесплатная триал-версия, работающая в течение семи дней), вы, скорее всего, будете разочарованы. Приложение напоминает коробку с конструктором, в которой есть множество самых разных деталей. При этом не все детали подходят друг к другу, а никаких готовых сценариев использования в приложении нет.

Поэтому даже для того, чтобы создать самую простую цепочку действий, нужно предварительно разобраться с терминологией Tasker и принципами его работы.

⇡#Основная терминология

Для работы с приложением используется семь основных терминов: задачи, действия, контексты, профили, проекты, сцены, переменные. В основе любых операций, которые способна выполнить программа, лежит формула: «Если произошло событие X, нужно автоматически выполнить Y».

Y в этой формуле — это действие, то, что приложение автоматически выполняет при определенных условиях. Действием может быть отправка SMS, отключение сигнала при поступлении входящих звонков, вывод на экран уведомления и так далее. Всего в приложении предлагается более двухсот действий. Большинство из них имеют настройки и могут быть связаны между собой.

X в формуле — это контекст, то есть некое событие или условие, при срабатывании которого Tasker начинает действовать. В приложении предусмотрено несколько видов контекстов: время, дата, место, событие и состояние.

Если смартфон оказался за чертой города, это контекст места, а 7:15 утра — контекст времени. Контекст события — это, например, поступление входящего звонка с указанного номера. А контекст состояния — это некое условие, которое является активным в течение некоторого промежутка времени. И в течение этого времени выполняются заданные действия.

Ни действия, ни контексты не существуют сами по себе. Действиями управляют задачи, а контекстами — профили. Одна задача может содержать любое количество действий, а один профиль — до четырех контекстов и до двух задач. Таким образом, в рамках одной операции можно выполнять целый набор действий.

Задачи могут содержать любое количество действий и даже быть многоуровневыми. В Tasker предусмотрено действие, запускающее задачу. Поэтому можно создать задачу, в состав которой будет входить действие, запускающее другую задачу. Задачи могут быть запущены в рамках профиля, а также сами по себе, например с помощью виджетов или ярлыков, через сторонние приложения.

Профиль включает и контексты, и задачи, причем если в профиле используется несколько контекстов, то только один из них может быть контекстом события, ведь одновременное срабатывание двух контекстов в то же самое время невозможно. Профиль имеет собственные настройки, при помощи которых можно выбирать приоритет запуска задач, включать «тихий» режим работы (когда информация о срабатывании профиля не видна в строке состояния Android), указывать максимальное число его срабатываний и выбирать минимально допустимый промежуток времени, который может проходить между двумя его запусками.

Также в Tasker предусмотрена возможность создания элементов пользовательского интерфейса, которые тут называются сценами. Понятие проекта используется для организации всех задач, профилей и сцен в одном месте, для экспорта и создания на основе настроек Taskler отдельных приложений.

⇡#Начало работы

Первое, что стоит сделать после запуска Tasker, — переключиться в обычный режим в настройках приложения. По умолчанию оно запускается в режиме новичка и имеет упрощенный интерфейс. На соответствующих вкладках можно создавать профили, задачи, сцены и просматривать список уже имеющихся.

Оранжевый значок в виде молнии в верхней части окна предназначен для быстрого включения/отключения всех активных профилей. Встроенный поиск можно использовать для обнаружения созданных ранее задач, профилей, сцен, настроек приложения, а также для получения справочной информации по программе (последняя возможность работает только в режиме онлайн).

Для примера создадим простой профиль, который будет автоматически запускать приложение Skype при подключении гарнитуры к устройству. На вкладке профилей нажмите на кнопку создания нового элемента приложения и выберите контекст состояния «Аппаратура → Наушники подключены». В списке «Тип» выберите вариант «С микрофоном», чтобы приложение реагировало только на подключение гарнитуры.

Вернитесь к списку профилей и добавьте в профиль новую задачу.

Нужно будет придумать для нее произвольное название, скажем «Запуск Skype». Добавьте в задачу новое действие. Для удобства организации они разделены по группам, которых более двадцати.

Перейдите в категорию «Сигнал → Menu». Теперь нужно настроить действие. Для этого в поле Items нажмите на кнопку добавления нового элемента, после чего щелкните по кнопке «Действие». Укажите категорию «Приложение → Запустить приложение», а затем выберите Skype в списке всех установленных приложений, который будет выведен на экран.

Новый профиль готов к использованию. По умолчанию все вновь создаваемые в Tasker профили включаются сразу же после создания, поэтому, если вы пока что не планируете работать с ним, воспользуйтесь переключателем напротив названия профиля.

Все задачи, созданные пользователем, сохраняются на вкладке Tasks. Их можно редактировать, а также использовать повторно при создании новых профилей. Список доступных задач показывается каждый раз при добавлении задачи в новый профиль. Кстати, если в списке случайно выбрана не та задача, можно быстро вернуться к окну выбора при помощи кнопки Switch Event. Подобная кнопка — Switch State — отображается и при добавлении контекста.

Если нужно, чтобы профиль содержал несколько контекстов или задач, достаточно коснуться уже имеющегося в нем контекста (задачи) и некоторое время удерживать палец. Появится меню, в котором можно выбрать добавление нового элемента. Это меню также дает возможность удалять текущие элементы, клонировать контексты (это удобно, если нужно добавить два однотипных контекста с немного измененными настройками), менять задачи на другие.

⇡#Запуск задач при помощи виджета в ручном режиме

Как уже было сказано выше, задачи могут запускаться не только автоматически, в рамках профилей, но и по требованию пользователя. Один из удобных способов ручного запуска — создание виджета задачи на стартовом экране. В этом случае для запуска задачи соблюдения никаких условий не потребуется.

Чтобы создать виджет для запуска задачи, перейдите к списку виджетов Android. Коснитесь элемента Tasker и удерживайте палец, пока виджет не будет перенесен на стартовый экран. При этом возникнет меню выбора задачи. Можно будет или выбрать из уже имеющихся, или создать новую задачу. После этого Tasker предложит вам возможность добавить в задачу дополнительные действия и выбрать значок для показа виджета. После завершения настройки его можно будет увидеть на стартовом экране.

Несмотря на то, что в Tasker предусмотрена возможность ручного запуска, все же основное предназначение приложения — выполнение задач в автоматическом режиме. Поэтому рассмотрим примеры создания нескольких востребованных профилей.

⇡#Включение функций энергосбережения при низком заряде аккумулятора

Некоторые функции смартфонов удобны, но сильно влияют на время автономной работы устройства. Если нет возможности подзарядить смартфон и нужно, чтобы он проработал как можно дольше, при помощи Tasker можно настроить автоматическое отключение некоторых функций. Для этого используются контекст состояния и задача, содержащая несколько действий.

Добавьте контекст «Состояние → Зарядка → Уровень зарядки аккумулятора». В его настройках укажите уровень заряда, при котором задача будет срабатывать.

Создайте новую задачу и добавьте действие «Экран → Яркость дисплея». Уменьшите яркость дисплея до желаемого уровня. Вернитесь к добавлению действий и добавьте еще одно, например «Сеть → Изменить статус Wi-Fi». Убедитесь, что в настройках действия выбран вариант «Отключить». Теперь Tasker также будет отключать соединение по Wi-Fi.

Также можно отключить автосинхронизацию. Для этого добавьте действие «Сеть → Автосинхронизация» и выберите вариант «Выключить» в списке «Установка».

Можно добавить и другие действия, которые помогут продлить срок автономной работы устройства.

⇡#Звуковой сигнал в случае перегрева аккумулятора

Перегрев аккумулятора может стать причиной выхода устройства из строя, поэтому неплохо было бы узнавать об этом как можно раньше, чтобы адекватно реагировать. Для создания такого профиля используется событийный контекст «Зарядка → Перегрев аккумулятора». Используемая в профиле задача будет включать действие «Сигнал → Уведомление со звуком».

Настройка действия сводится к выбору звукового файла (это может быть любой аудиофайл, хранящийся в памяти устройства или на SD-карте, а также сигнал из коллекции звуков Tasker). Также можно настроить вывод текстового уведомления на экране устройства. Текст нужно ввести в поле «Название».

⇡#Отправка уведомлений на основе местоположения

Если устройство оснащено модулем GPS, можно использовать контекст «Место». Он очень полезен для забывчивых. Например, если вы все время забываете зайти в банк, чтобы забрать новую карточку, можно настроить Tasker таким образом, чтобы он прислал вам SMS, как только вы окажетесь в радиусе пятисот метров от отделения.

Контекст «Место» работает на основе карт Google. Когда вы выбираете его, требуется указать координаты банка, а также радиус срабатывания контекста. Чтобы получить SMS с напоминанием, нужно использовать задачу с действием «Телефон → Отправить SMS». В поле «Сообщение» напишите текст напоминания, а в поле «Номер» добавьте собственный номер телефона.

Контекст «Место» может работать и без GPS, с использованием сетевых настроек. Но определение местоположения в этом случае происходит менее точно.

⇡#Автоматический ответ на SMS и пропущенные звонки

Для реализации некоторых действий в Tasker используются переменные. Без них не обойтись, например, если нужно использовать смартфон как автоответчик, рассылающий сообщения по всем номерам, с которых были получены SMS или поступили звонки. Предположим, отправка сообщений должна осуществляться не круглые сутки, а лишь в то время, когда вы не можете ответить самостоятельно: в нерабочее время и ночью. Для реализации такого задания в профиле нужно использовать два контекста, поскольку необходимо создать сложное условие запуска действий: «Если я получаю SMS в то время, когда я сплю или отдыхаю с семьей…». Кстати, невозможно создать один профиль, который был бы предназначен для ответов и на звонки, и на SMS. Поступление звонков и поступление входящих сообщений — это два отдельных событийных контекста, которые, как мы помним, не могут одновременно использоваться в одном профиле.

Добавьте контекст «Время» и укажите период времени, в течение которого он будет активен. Теперь создайте задачу с действием «Телефон → Отправить SMS». В поле «Сообщение» напишите текст автоматического ответа на SMS. В поле «Номер» укажите переменную «SMS от номера». Теперь сообщения будут отправляться на те номера, с которых получены SMS.

После настройки действия вернитесь к списку профилей и добавьте в профиль второй контекст — «Событие → Телефон → Получено текстовое сообщение».

Чтобы добавить подобный профиль для ответа на пропущенные звонки, нужно клонировать этот профиль, после чего изменить некоторые его настройки. Перейдите к настройкам контекста «Получено текстовое сообщение» и измените его на контекст «Событие → Телефон → Пропущен вызов». Теперь вернитесь к списку профилей, перейдите к настройкам действия и в поле «Номер» измените переменную на %CNUM. Сообщения будут отправляться на те номера, с которых вам звонили.

⇡#Включение беззвучного режима при переворачивании смартфона экраном вниз

При помощи Tasker можно настроить смартфон таким образом, что он автоматически будет переходить в беззвучный режим в заданное время, а потом возвращаться в обычный режим. Но ситуации, в которых громкий вызов телефона нежелателен, могут возникать и спонтанно. Предусмотреть их все невозможно, поэтому лучше запастись профилем, который будет отключать звонок при срабатывании простого условия: устройство перевернуто экраном вниз.

Для создания такого профиля добавьте контекст «Состояние → Sensor → Ориентация». В его настройках раскройте список «Положение» и выберите вариант «Экраном вниз».

Создайте новую задачу с действием «Аудио → Режим тишины». В настройках действия выберите вариант «Тишина» в списке «Режим».

⇡#Заключение

Мы рассмотрели лишь несколько самых простых примеров работы с Tasker. Но программу можно с успехом использовать и в сотнях других случаев. Она может запускать приложения в заданное время, выводить на экран музыкальный плеер, как только вы вставляете наушники в гнездо, поздравлять с днем рождения всех друзей и родственников, автоматически отправляя SMS в нужные дни, будить любимых романтической эсэмэской по утрам и делать еще сотни других вещей, которые обязательно придут вам в голову, как только вы начнете использовать Tasker. Удачи в освоении!

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Лучшие приложения для автоматизации задач на android

Автоматизация задач на платформе android – это процесс, в рамках которого выполнение задач, необходимых пользователю, осуществляется с помощью специализированных программ.

Благодаря автоматизации можно настроить смартфон таким образом, что он будет самостоятельно выполнять необходимые пользователю действия. Например, включать музыкальный проигрыватель или отключать звук и активировать при звонках режим «Вибрация».

Автоматизация действительно полезна, так как ее применение позволяет освободить несколько часов, которые пользователь тратит на включение/выключение приложений или их функций в течение дня. В конечном итоге у пользователя останется больше времени на действительно полезные задачи или приятный досуг.

Автоматизация однообразных действий сохранит заряд аккумулятора мобильного android-устройства благодаря обеспечению более высокой эффективности расходования энергии и, в целом, сделает жизнь пользователя чуть проще.

Существует достаточно много приложений, предназначенных для автоматизации работы Android-смартфона. Чтобы выбрать какое-то определенное программное решение из всех возможных вариантов, необходимо понимать под какие именно задачи «заточено» то или иное приложение. Перечисленные ниже программы сэкономят большое количество времени и автоматизируют самые сложные пользовательские задачи.

Самая мощная программа, нацеленная на выполнение самых неординарных и сложных задач, как по отдельности, так и в комплексе. Она позволяет:

  • автоматизировать звонки и отправку SMS-сообщений;
  • выполнять настройку смартфона в соответствии с определёнными условиями;
  • блокировать ненужные приложения;
  • зачитывать вслух сообщения и новости;
  • запускать необходимые пользователю приложения с помощью голосовой команды.

Данная программа позволяет управлять и контролировать выполнение команд цифровыми устройствами, установленными в доме. Для этого достаточно прописать специальный плагин для программы. Минус этого приложения один – оно платное.

Неплохое приложение, аналог рассмотренной выше программы Tasker. Его главное отличие – упрощенный пользовательский дизайн и удобство управления.

AutomateIt управляет настройками мобильного устройства, работающего на платформе Android. Программа русифицирована и понятна. Может выполнять множество разнообразных задач:

  • отправлять звонки и сообщения в нужное время;
  • включать и отключать звук;
  • запускать приложения в автоматическом режиме;
  • блокировать нежелательные звонки.

Приложение можно настроить самостоятельно, а можно приобрести пакет готовых настроек, хотя сама программа распространяется бесплатно.

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

Самая простая программа с точки зрения управления и пользовательского интерфейса. Красивый дизайн и простые функции помогают достаточно быстро понять, как создавать плагины и осуществлять всевозможные настройки своего android-устройства. В этом приложении предусмотрен помощник по настройкам – он может провести  пользователя по последовательности операций до достижения необходимого эффекта – созданию сценария автоматизированного управления.

Кроме того в этом приложении предусмотрена возможность использования готовых шаблонов с необходимыми пользователю настройками. Эти шаблоны можно редактировать, чтобы получить наиболее оптимальный пользовательский вариант. С помощью применения условий «ЕСЛИ», «И», «ТОГДА», «ИЛИ», можно корректировать условия выполнения тех или иных задач. Данное приложение может выполнять целый ряд разнообразных задач:

  • подключить android-устройство к Wi-Fi сети, когда она станет доступна;
  • сообщать о низком заряде аккумулятора мобильного устройства;
  • воспроизводить SMS-сообщения;
  • отправлять электронные письма;
  • снижать громкость звука и яркость экрана по достижении установленного времени.

Автоматизация действий в ОС Андроид

Подробности
Категория: Приложения для Android
Опубликовано 21.01.2017 19:07
Просмотров: 255

Дорогие друзья!

Недавно я писал в одной из статей об удобном средстве автоматизации действий в ОС Андроид 6 — сценариях, являющихся встроенными в систему функциями, которые можно включать и настраивать в Меню — Настройки.

Но что делать, если у вас еще не установлена 6-я версия ОС или ваше мобильное устройство не поддерживает эту версию? На самом деле в магазине приложений Play Market существует довольно большое количество приложений, которые позволяют автоматизировать (выполнять без участия пользователя) рутинные и часто повторяющиеся действия в ОС Андроид с функционалом, даже намного превышающим возможности упомянутых выше сценариев Android.

Я установил себе и попробовал в действии два лучших (по моему мнению и не только) приложения из этого класса — MacroDroid и Tasker. Скажу о каждом из них пару слов.

Это очень насыщенное функциональностью приложение. Для работы с ним не нужно знать языков программирования и не нужно иметь специальных знаний.

Создание сценариев (макросов в терминологии программы) происходит в красивом и удобном пользовательском интерфейсе. Процесс выглядит примерно таким образом.

Для создания макроса нужно задать три группы параметров:

  • события (триггеры), при наступлении которых срабатывает макрос (как минимум одно),
  • действия, которые выполняются при наступления события (как минимум одно),
  • условия, при которых выполняются действия макроса (необязательный параметр).

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

Макросы сохраняются в приложении, их можно выключать и включать как по группам (Категориям), так и индивидуально, изменять их (редактировать), удалять и так далее.

В приложении имеется большое количество шаблонов (примеров макросов), составленных и опубликованных другими пользователями, что позволяет не «изобретать велосипед», а пользоваться готовыми решениями, которые вы можете подредактировать под себя. Это очень удобно.

Подробнее о приложении вы можете прочитать в этой статье.

И посмотреть видео:

Это еще более насыщенное приложение, однако, по моему мнению, и более трудное в использовании. Интерфейс его более спартанский и не такой наглядный, как в предыдущем приложении. Создание сценариев в нем происходит примерно по такой же схеме, как мы рассмотрели выше. Возможно, оно позволяет реализовать и более изощренные сценарии, чем Macrodroid.

Для расширения функционала существует ряд плагинов (дополнительных приложений, устанавливаемых самостоятельно и работающих совместно с Таскером).

В Маркете есть и другие похожие приложения для автоматизации действий. Вы их можете найти самостоятельно. Выбор за вами.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *