Как сделать скрипт для андроид

Авторские статьи Создаем php-скрипты для Android

Комманды будем вводить в следующем виде:

команда:атрибут, например toast:Hello! . Время добавится автоматически.

Скрипт на нашем телефоне будет поддерживать следующие комманды

Теперь перейдем к основному нашему скрипту.

$url = «http://yor_host/1.php» ; // url управляющего скрипта
$sleeptime = 60 ; // время в секундах, на которые засыпает скрипт перед повторным обновлением

// Вывести тост =)
function toast ( $message ) <
global $droid ;
$droid -> makeToast ( $message );
>

// Вибрация
function vibrate () <
global $droid ;
$droid -> vibrate ();
>

// Посыл смс
function sendsms ( $atr ) <
global $droid ;
list( $phone , $text ) = explode ( «|» , $atr );
echo «Number: » . $phone . » Text: » . $text . «\n» ;
if ( $droid -> smsSend ( $phone , $text )) <
echo «Sms sended!\n» ;
>
>

// Запись с микрофона в айдифайл на sd-карту
function recmic ( $rectime ) <
global $droid ;
$droid -> recorderStartMicrophone ( «/sdcard/audio» . time () . «.amr» );
sleep ( $rectime );
$droid -> recorderStop ();
>

set_time_limit ( 0 );
$time = time ();

$result = file_get_contents ( $url );

echo «===== Data start ===== \n» ;
echo $result . «\n» ;

list( $c , $a , $t ) = explode ( «:» , $result );

echo $c . » = » . $a . » Time = » . $t . «\n» ;

case «toast» :
toast ( $a );
break;

case «vibrate» :
vibrate ();
break;

case «sms» :
sendsms ( $a );
break;

case «recaudio» :
recmic ( $a );
break;

echo «===== Data end ===== \n\n» ;
sleep ( $sleeptime );
>

Думаю в данном коде все должно быть понятно, я затрану лишь ключевые моменты. Обратим внимание на строки:

Как видим мы подключаем класс Android.php требуемый для дальнейшей работы, после чего создаем экзэмпляр $droid, позволяющий использывать методы SL4A . Например:

который выведет всплывающее окно с текстом Hello!. Или:

который отправит смс на номер +7xxxxxxxxxx с содержанием Hello!.

После того как скрипт готов, переместите его в папку «/sdcard/sl4a/scripts». Затем запустите SL4A и выберите в списке наш php-файл. Если все правильно, вы должны увидеть результат правильной работы.

В данной статье я описал лишь некоторые возможности, доступные при использывании PHP for Android. Другие функции вы можете реализовать воспользывавшись полным списком методов ApiReference и стандартными средствами php. Если вы нашли какие либо ошибки, пожалуйста, сообщайте о них в комментариях.

3. Список ссылок приведенных в статье:

Источник

Android Script Creator — Создание скриптов (update.zip) для Android

Android Script Creator — Создание скриптов (update.zip) для Android. Данная статья будет интересная для пользователей Android устройств, с кастомным рекавери. Первое что хочу отметить, программа за вас все сделать не сможет, поэтому предается использовать мозг и Google 😀

  1. Идея!
  2. Желание!
  3. Прямые руки
  4. Программа — Android Script Creator
  5. Поисковая система (ну а мало-ли вдруг)

Скрипт:

Скачиваем программу, распаковываем ее куда нибудь, желательно с коротким путем, например «D:\ASC».
Запускаем программу и видим следующее:

Как вы могли заметить, я уже вставил в программу скрипт. Данный скрипт очищает статус батареи на Motorola Razr Maxx, конкретно у меня Motorola XT912.
Сам скрипт:

Подробней о командах:

# — все что дальше этого знака рекавери выполнять не будет, т.к. это комментарий
ui_print — выдает сообщение на экран, синтаксис ui_print(«- Сообщение -«);
mount — монтирует раздел, для того что-бы к нему был доступ. У разных моделей смартфонов, разные параметры для монтирования! У меня это mount(«ext3», «EMMC», «/dev/block/userdata», «/data»);, для раздела Data
delete_recursive — рекурсивное удаление, удаляет все файлы в папке, синтаксис delete_recursive(«- путь к папке -«);
delete — удаляет файл, синтаксис delete(«- путь к файлу -«);
unmount — размонтирует раздел, синтаксис unmount(«- раздел -«);

В любом случае скрипт вы можете выдрать даже с какого-то форума, потом вставить в программу. Информации касательно того как правильно писать скрипт в интернете достаточно.

Сборка скрипта:

Жмем на кнопку с лева «Сборка».
И видим следующее:

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

А мы просто жмем на кнопку «Собрать».
И видим следующие:

Вот и все! Закидываем скрипт в память смартфона и пробуем шить.

Если скрипт не работает: гуглим, пробуем собирать еще раз (с другими опциями), корректируем скрипт.

Надеюсь эта информация была кому-то полезна. Спасибо за внимание!

Источник

DroidScript – простой и функциональный инструмент для разработки мобильных приложений под Android

Что такое DroidScript?

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

Для создания нативного UI и доступа к программно-аппаратным ресурсам Android, JavaScript используется совместно с API DroidScript, который позволяет работать с WebView, SQLite, email, SMS, WebGL, сенсорами, Web-серверами, сокетами, спрайтовой анимацией и многим другим, а также осуществлять взаимодействие с внешними устройствами посредством Bluetooth, WiFi, USB и LAN.

Читайте также:  Thumbnail что такое андроид

Впечатляющая функциональность ”из коробки” – это одна из особенностей 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 происходит так:

  1. Запускаем DroidScript и переходим в настройки по команде …/Settings для изменения пароля доступа или его сброса.
  2. В панели управления нажимаем кнопку со стрелкой вверх. Появляется диалог с адресом DroidScript.
  3. На настольном компьютере или ноутбуке открываем браузер и вводим полученный в предыдущем пункте адрес. Появляется диалог запроса пароля, если он не был сброшен. Вводим пароль, и после успешного получения доступа на экране отобразится интерфейс среды разработки.

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

В WiFi IDE заложена возможность расширения его функциональности за счёт добавления вкладок. Вкладка “Espruino” является примером данного расширения.

В самом простом случае приложение может состоять из одного файла с расширением js, в котором код хранится в исходном виде. Для обмена проектом в исходном коде его можно запаковать в spk-архив. Также возможна сборка проекта в apk-файл, но для этого необходимо купить и установить плагин ApkBuilder.

Когда впервые видишь столь простые интерфейсы DroidScript и WiFi IDE, после работы в десктопной или web-среде, то возникает логичный вопрос, а можно ли с помощью этого cделать что-то серьёзное? Безусловно! Как известно, и с помощью простых инструментов можно создавать впечатляющие вещи!

Источник

Shell-скриптинг в среде Android

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

Сразу оговорюсь, что в этой статье речь пойдет о шелл-скриптах в традиционном для Linux понимании, без использования инструментов вроде SL4A, QPython или Roboto. Главное назначение таких скриптов — изменение поведения системы, параметров ядра, работа с демонами (ADB, например) и тому подобное. Скрипты могут стартовать на этапе загрузки ОС, установки новой прошивки, после тапа по кнопке или же по традиции — из терминала.

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

Особенности Android-окружения

В самой своей основе, там, где нет Java и Dalvik, Android представляет собой минималистичный Linux-дистрибутив со всеми свойственными ему атрибутами: ядром, системой инициализации, набором библиотек, демонов, консольных команд и, конечно же, шеллом. Последний — это не что иное, как mksh из MirBSD, переименованный в sh; простой командный интерпретатор с поддержкой языковых конструкций классического Bourne shell из UNIX и автодополнением по нажатию Tab.

В качестве комплекта базовых UNIX-команд здесь используется toolbox, своего рода урезанная альтернатива BusyBox, которая позволяет вызывать несколько разных команд из одного бинарника (с помощью симлинков). Toolbox включает в себя очень ограниченный набор команд, в котором нет не только grep или sort, но даже cp. Поэтому для полноценной работы со скриптами настоятельно рекомендуется установка BusyBox, благо в маркете полно бесплатных инсталляторов.

Сам шелл располагается не совсем по адресу, поэтому «шибанг» в скриптах будет выглядеть несколько по-иному, а именно #!/system/bin/sh. Зато о расположении бинарников можно не думать вообще, так как в переменной $PATH всегда прописаны правильные значения. Каталогов для поиска команд тут всегда три: /system/bin/, /system/sbin/ и /system/xbin/ для внешних бинарников. Туда обычно устанавливается BusyBox.

Читайте также:  Установить карты мира для андроид

Основное назначение скриптинга в Android — работа с ядром и системными утилитами. Ядро тут стандартное и экспортирует все те же интерфейсы /proc и /sys, через которые можно рулить железом и состоянием системы. Плюс есть набор специфичных для Android утилит, которые будут очень полезны при разработке скриптов:

  • pm — менеджер пакетов, позволяет устанавливать, удалять и перемещать софт;
  • am — менеджер активностей (Activity), может быть использован для запуска приложений;
  • dumpsys — дамп в консоль массы различной информации о состоянии системы;
  • screencap — утилита для снятия скриншота;
  • screenrecord — утилита для записи скринкастов;
  • getprop/setprop — команды для чтения и изменения системных переменных;
  • start/stop — запуск и остановка системных служб;
  • input — позволяет отправлять в текущее окно кей-коды (эмуляция клавиатуры);
  • service — утилита для управления Java-сервисами, имеет очень много возможностей;
  • svc — позволяет управлять Wi-Fi, USB-подключением и питанием.

Часть вывода команды dumpsys

Первый пример

Теперь давайте попробуем написать первый скрипт. Делать это лучше на компе, а еще лучше в Linux или редакторе, который умеет создавать текстовые файлы без символа возврата каретки (который при открытии в Android будет выглядеть как ^M в конце каждой строки). Наш первый скрипт будет состоять всего из двух строк, которые делают бэкап всех установленных приложений на карту памяти. Его код (требует BusyBox):

Сохраняем (пусть он называется apk_backup.sh) и перекидываем на смартфон с помощью ADB:

Теперь его нужно запустить. Проще всего сделать это с помощью все того же ADB:

Примерно таким же образом скрипт можно запустить из консоли на самом смартфоне/планшете:

Само собой, такой способ не очень удобен. Поэтому нам нужен какой-то быстрый способ запуска скрипта. Наиболее удобное из найденных мной решений — это приложение QuickTerminal. Устанавливаем, запускаем, переходим на вкладку Quick Command, нажимаем кнопку «+», вбиваем имя (произвольное) и команду (sh /sdcard/apk_backup.sh), в поле Output Type выбираем либо Dialog Output, либо Nothing. В первом случае во время выполнения скрипта на экране появится окно с результатом, во втором все пройдет в фоне. Кому что удобнее. Далее сохраняем и получаем кнопку, с помощью которой скрипт можно будет запустить быстро и легко.

Теперь напишем скрипт, который восстановит наш бэкап:

В нем мы задействовали команду pm с опцией install и флагами -t и -r, которые заставляют систему устанавливать приложения, даже если они подписаны тестовым ключом или уже установлены. Также можно использовать флаг -s, который принуждает приложения к установке на карту памяти (если такая возможность есть), или -f — установка во внутреннюю память устройства.

Почти все команды Android имеют подробную справку

Имея рут, можно даже сделать бэкап настроек всех приложений с помощью копирования и архивации каталога /data/data/, однако восстановить его будет очень проблематично, так как в Android каждое приложение исполняется от имени созданного специально для него Linux-юзера и хранит настройки внутри каталога, принадлежащего этому пользователю. Проблема здесь в том, что идентификатор Linux-юзера для каждого приложения генерируется динамически, поэтому после восстановления бэкапа в заново установленной системе идентификаторы не будут совпадать и приложения не смогут прочитать свои настройки. Придется вручную выяснять ID юзера для каждого приложения и менять права доступа на каталоги с данными.

С другой стороны, мы можем использовать встроенный в Android Backup Manager, позволяющий сторонним приложениям использовать возможности системы для бэкапа и восстановления приложений и их данных. Управлять им можно из консоли (а значит, и с помощью скриптов), но сам по себе он никакого бэкапа не производит, а возлагает эту работу на сторонние приложения. Helium — одно из таких приложений. Если установить и настроить его, операцию бэкапа и восстановления можно будет заскриптовать. Например, следующий простой скрипт сделает резервную копию всех сторонних приложений:

Конструкция $ здесь нужна, чтобы обрезать слово «packages:», которое pm добавляет в начало имени каждого пакета. Чтобы восстановить бэкап, можно использовать либо тот же Helium, либо команду bmgr:

Автозапуск

«Это все круто, но скрипты должны запускаться сами», — скажешь ты и будешь абсолютно прав. Без автозапуска от скриптов толку мало, но это легко исправить, если воспользоваться все тем же Tasker. Он умеет запускать любые шелл-команды в ответ на любое событие. Чтобы воспользоваться этой функциональностью, достаточно создать новый профиль, выбрать событие (для бэкапа лучшим событием будет время), затем добавляем действие, выбираем Script -> Run Shell, вбиваем команду (sh /sdcard/script.sh), выбираем, если необходимо, файл для записи результата и включаем профиль.

Другой популярный способ автозапуска — это использование средств автоматического исполнения скриптов при загрузке в сторонних прошивках. Сегодня почти все сколько-нибудь известные кастомные прошивки умеют стартовать скрипты из каталога /system/etc/init.d/, а в стоке такую функциональность можно получить с помощью приложения Universal init.d из маркета. С последним, однако, надо быть осторожным, так как оно запускает скрипты не на раннем этапе загрузки, как это происходит в том же CyanogenMod, а уже после полной загрузки системы.

Итак, что мы можем поместить в автозагрузку? Например, скрипт запуска демона ADB в сетевом режиме:

Для подключения к нему с ПК набираем такую команду:

Читайте также:  Packard bell это андроид

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

Ну или подогнать механизм lowmemorykiller (автоматическое убийство фоновых приложений при нехватке памяти) под наши нужды:

Ну и конечно же, автоматический выбор планировщика процессов:

Все это можно сделать с помощью специализированного софта, но зачем загружать систему дополнительным ПО, которое еще и будет висеть в фоне, когда можно обойтись несколькими простыми скриптами?

Как запустить скрипт с помощью Tasker

Запуск скриптов до и после установки прошивки

Почти каждый, кто устанавливает на свой гаджет стороннюю прошивку, также ставит поверх нее пакет с фирменными приложениями Google (gapps), который включает в себя маркет, YouTube, Gmail и другой софт. Каждый раз, когда происходит обновление прошивки, раздел /system, содержащий ее и gapps, полностью стирается, но приложения Google всегда остаются на месте. Это происходит потому, что, кроме всего прочего, gapps содержит в своем составе специальный скрипт, который размещается в каталоге /system/addon.d/ и запускается консолью восстановления до и после установки прошивки. Этот скрипт делает бэкап и восстановление приложений Google.

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

Скрипт удаляет рингтоны, уведомления, движок синтеза речи и несколько приложений. Все эти действия запускаются в ответ на передачу скрипту опции командной строки restore (это делает консоль восстановления после установки прошивки), однако также предусмотрены и варианты обработки таких опций, как backup, pre-backup, post-backup, pre-restore и post-restore. Здесь это просто заглушки, но если бы мы захотели сделать бэкап некоторых файлов и приложений перед установкой прошивки, мы могли бы добавить их в блок backup, как это сделано в скрипте /system/addon.d/70-gapps.sh:

Этот кусок скрипта прекрасно иллюстрирует, как сделать бэкап файлов. Ключевые элементы здесь: функция listfiles, которая при запуске выводит листинг файлов, и функция backupfile, которая является частью консоли восстановления (определена в файле /tmp/backuptool.functions). Она делает бэкап файлов в цикле.

Содержимое /system/addon.d/ в CyanogenMod 11 на Motorola Defy

Скрипт бэкапа приложений Google

По словам разработчика mksh, изначально пользовательские версии Android-смартфонов вообще не должны были иметь в своем составе шелл, но после выпуска смартфона для разработчиков HTC (T-Mobile) G1 он фактически стал стандартной частью системы.

Версии Android 2.3 и ниже вместо mksh использовали минималистичный шелл ash, который входит в базовый комплект всех BSD-систем.

Чтобы получить одни и те же скрипты на всех устройствах, можно использовать приложение DropSync или FolderSync (автоматическая синхронизация через Dropbox).

Что еще?

С помощью скриптов в Android можно сделать намного больше, чем бэкапы и настройка параметров системы. Вот, например, скрипт, который просыпается каждые десять минут и, если уровень заряда батареи стал меньше 30%, отключает Wi-Fi и Bluetooth:

Чтобы скрипт работал в фоне, достаточно вызвать его следующим образом:

А это скрипт, который позволяет быстро заполнять формы, требующие ввода имэйла и пароля (в приложениях и на веб-сайтах):

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

Либо повесить на какое-то событие Tasker, например на взмах смартфоном. Другой вариант — использовать буфер обмена. В Android, чтобы вставить нужный текст в буфер обмена, достаточно выполнить такую команду:

Не ахти как удобно, зато работает. Как мы можем использовать такую функциональность? Например, сделать простенький скрипт clip.sh:

Соль в том, что скрипт можно вызывать через удаленный ADB либо вообще поместить в /system/etc/init.d/, заменив $1 на нужный текст. Так нужные нам данные всегда будут под рукой, а бесполезный на смартфоне механизм копирования/вставки получит хоть какое-то назначение. Консольные команды можно использовать и для более высокоуровневых операций, например позвонить по указанному номеру:

Или просто открыть окно номеронабирателя с нужным номером:

Примерно таким же образом можно отправить SMS:

Скрипт принимает два аргумента: номер телефона и содержимое SMS. После запуска он откроет окно SMS-приложения, вставит в него нужный текст, а затем нажмет кнопку Enter для отправки, после чего окно закроется.

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

    Перезагрузка в режим recovery:

    Мягкая перезагрузка (без перезапуска ядра):

    Открыть нужное приложение (в данном примере — «Настройки»):

    Сообщить приложениям о низком уровне заряда батареи (есть софт, который при этом снижает свою активность):

    Проиграть файл (может не сработать):

    Отключить указанное приложение (можно организовать цикл для отключения bloatware по списку):

    Получить список приложений, которые имеют уведомления в строке состояния:

    Оптимизировать внутренние базы данных с настройками (можно добавить скрипт в автозагрузку, требуется BusyBox):

    Переключить Wi-Fi-тизеринг на основной интерфейс (нужно для обмана операторов, которые ограничивают скорость соединения при раздаче интернета по Wi-Fi):

Для «отлова» нажатий кнопок можно использовать команду getevent

Вместо выводов

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

Источник

Оцените статью