Учебники

SL4A — Краткое руководство

SL4A — обзор Android

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

Версия для Android Характеристики
Android (Альфа) 1.0 Первая версия Android
Android 1.5 (кекс) Добавлена ​​опция автоповорота, добавлена ​​функция копирования и вставки в веб-браузере
Android 1.6 (Пончик) Голосовой поиск и окно поиска были добавлены
Android 2.0 / 2.1 (Эклер) Поддержка Bluetooth 2.1
Android 2.2 / 2.2.3 (Froyo) Поддержка Adobe Flash 10.1
Android 2.3 / 2.3.7 (пряник) Интернет-вызовы, выбор слова одним нажатием и копирование / вставка
Android 3.0 / 3.2.6 (Сота) Эта версия доступна только для планшетов. Особенности включают в себя поддержку многоядерных процессоров, возможность шифрования всех пользовательских данных.
Android 4.0 / 4.0.4 (сэндвич с мороженым) Виртуальная кнопка в пользовательском интерфейсе, возможность закрывать приложения, которые используют данные в фоновом режиме
Android 4.1 / 4.3.1 (Jelly Bean) Основано на Linux Kernel 3.0.31? Более плавный пользовательский интерфейс, передача данных по Bluetooth для Android Beam
Android 4.4 / 4.4.4,4.4W / 4.4W.2 (KitKat) Интеграция с облачным хранилищем, встроенными датчиками, Lock Art Screen
Android 5.0 / 5.1.1 (леденец) Улучшенное управление ОЗУ и батареями, исправления для внезапного закрытия приложения, проблемы с беспроводными подключениями, уведомления и т. Д.

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

SL4A — архитектура Android

Программный стек Android состоит из разных уровней, каждый из которых демонстрирует четко определенное поведение и предоставляет определенные услуги уровню над ним. На следующем рисунке представлена ​​широкая архитектура Android с ее основными компонентами.

Архитектура Android

Ядро Linux

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

Доступ на основе идентификатора группы к сетевым функциям и функциям Bluetooth, регистратору, сигнализации, управлению питанием, ограничению памяти и механизмам Binder IPC — это несколько отмеченных улучшений ядра.

Библиотеки и время выполнения

Это формирует второй уровень архитектуры. Он включает в себя набор аппаратно оптимизированных библиотек C, C ++, также называемых собственным уровнем. Примеры включают библиотеки мультимедиа, SQLite, SSL, Bionic, WebKit и т. Д.

Android Runtime состоит из двух разных компонентов — Dalvik VM и Core Libraries. Виртуальная машина Dalvik обеспечивает среду выполнения для приложений на платформе Android. Набор базовых библиотек обеспечивает большую часть функциональности, доступной в API Java.

Платформа приложений

Этот слой делает библиотеки доступными для приложений. Некоторые наиболее важные компоненты в этом слое включают в себя диспетчер местоположений, диспетчер ресурсов, диспетчер операций и диспетчер уведомлений.

Приложения

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

Строительные блоки

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

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

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

  • Broadcast Receivers — компонент, который можно зарегистрировать для прослушивания событий системы или приложения и выдачи уведомлений о них. Экземпляр для широковещательной передачи, исходящей из системы, представляет собой « уведомление о низком заряде батареи », в то время как широковещательная передача на уровне приложения может быть уведомлением « загрузка успешна ».

  • Поставщики контента — поставщик контента управляет и помогает вам обмениваться данными между несколькими приложениями. Например, поставщик контента может использоваться для обмена данными контактов.

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

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

Broadcast Receivers — компонент, который можно зарегистрировать для прослушивания событий системы или приложения и выдачи уведомлений о них. Экземпляр для широковещательной передачи, исходящей из системы, представляет собой « уведомление о низком заряде батареи », в то время как широковещательная передача на уровне приложения может быть уведомлением « загрузка успешна ».

Поставщики контента — поставщик контента управляет и помогает вам обмениваться данными между несколькими приложениями. Например, поставщик контента может использоваться для обмена данными контактов.

Эти компоненты взаимодействуют друг с другом через сообщения, называемые Intents .

SL4A — Сценарий для Android

Сценарии Android — это удобный инструмент для простых задач, таких как автоматизация и создание прототипов, в отличие от использования языка программирования Java для них. Уровень сценариев для Android (SL4A) предоставляет платформу для нескольких сценариев на платформе Android.

Что такое SL4A?

Уровень сценариев для Android (SL4A) — это библиотека, которая предоставляет платформу для написания простых сценариев для автоматизации задач на устройстве Android с использованием языков, отличных от JAVA.

SL4A, первоначально называемая Android Scripting Environment (ASE), впервые была анонсирована в блоге Google Open Source в июне 2009 года. Проект был освещен в основном благодаря усилиям Дэймона Колера и вырос благодаря вкладу других разработчиков.

Он поддерживает большинство популярных языков сценариев. К ним относятся —

  • Beanshell 2.0b4
  • JRuby 1.4
  • Lua 5.1.4
  • Perl 5.10.1
  • PHP 5.3.3
  • питон
  • Носорог 1.7R2
  • Javascript
  • TCL

Почему SL4A — Языки сценариев против JAVA

Один из первых вопросов, который, вероятно, зададут: « Зачем использовать SL4A вместо Java? »

Во-первых, не все поклонники Java. Языки сценариев обеспечивают простую среду программирования по сравнению с Java.

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

На следующем рисунке показаны сценарии, написанные на Python для SL4A и Java соответственно.

Python Targeting SL4A

SL4A — Архитектура

SL4A имеет три основных компонента. Они заключаются в следующем —

  • Сценаристы
  • Android RPC клиент
  • Фасады

В этой главе мы обсудим больше об этих трех компонентах.

Сценаристы

SL4A выступает в роли хоста скриптинга. Он поддерживает множество языков сценариев, таких как Python, Ruby, Lua, BeanShell, JavaScript и TCL. SL4A можно расширить за счет динамического включения новых языков сценариев, разработав новый интерпретатор SL4A для этого языка сценариев.

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

Android RPC клиент

Скрипты, работающие в экземпляре интерпретатора, обмениваются данными с приложением SL4A через RPC-клиент Android Proxy. Клиент устанавливает подключение удаленного вызова процедур (RPC) к SL4A и позволяет сценариям взаимодействовать с Android Framework. Фасады SL4A облегчают эту коммуникацию. Данные отправляются в виде полезных нагрузок JSON .

Android RPC-клиенты предоставляются для каждого поддерживаемого языка сценариев. Клиентские модули можно получить на веб-сайте SL4A по адресу https://code.google.com .

Скриптовый слой Android

Фасады

Фасад упрощает доступ скрипта к основному Android API. SL4A предоставляет API-интерфейс Android Framework для сценариев с помощью обширного набора фасадов, таких как AndroidFacade, BluetoothFacade, ActivityManagerFacade, CommonIntentsFacade и т. Д.

Функциональность SL4A предлагает множество богатых функций, таких как Камера, Местоположение, Battery Manager, Media Player, Media Recorder и многие другие.

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

Система SL4A подходит для следующих задач:

  • Программирование RAD. С SL4A можно использовать подход быстрой разработки приложений (RAD) для быстрого создания прототипа приложения. Вы можете создать полноценное приложение для Android, если осуществимость идеи подтверждена.

  • Тестовые скрипты — могут быть использованы для написания тестовых скриптов.

  • Строительные утилиты. С помощью SL4A можно создавать служебные сценарии или инструменты, которые выполняют небольшие задачи или автоматизируют определенные аспекты повторяющихся задач.

Программирование RAD. С SL4A можно использовать подход быстрой разработки приложений (RAD) для быстрого создания прототипа приложения. Вы можете создать полноценное приложение для Android, если осуществимость идеи подтверждена.

Тестовые скрипты — могут быть использованы для написания тестовых скриптов.

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

SL4A — библиотека Python

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

Вот некоторые из основных модулей, предоставляемых библиотекой Python:

  • Встроенные функции и исключения — Python импортирует оба этих модуля при запуске и делает их содержимое доступным для всех программ. Встроенный модуль определяет встроенные функции, такие как len, int, range , в то время как модуль исключений определяет все встроенные исключения.

  • Модули интерфейса операционной системы. Модуль ОС предоставляет функции, позволяющие выполнять операции на уровне ОС с помощью сценариев.

  • Модули поддержки типов — Модули поддержки типов включают в себя строковые модули для реализации, обычно используемые строковые операции; математический модуль обеспечивает математические операции и т. д.

  • Регулярные выражения — Регулярные выражения — это строковые шаблоны, написанные в определенном синтаксисе, которые можно использовать для сопоставления или извлечения строк или подстрок. Модуль re обеспечивает поддержку Regex для Python.

  • Модули поддержки языка — модуль sys предоставляет вам доступ к различным переменным интерпретатора, таким как путь поиска модуля и версия интерпретатора. Модуль оператора предоставляет функциональные эквиваленты многим встроенным операторам. Модуль копирования позволяет копировать объекты. Наконец, модуль gc дает вам больший контроль над возможностями сборщика мусора в python 2.0.

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

Модули интерфейса операционной системы. Модуль ОС предоставляет функции, позволяющие выполнять операции на уровне ОС с помощью сценариев.

Модули поддержки типов — Модули поддержки типов включают в себя строковые модули для реализации, обычно используемые строковые операции; математический модуль обеспечивает математические операции и т. д.

Регулярные выражения — Регулярные выражения — это строковые шаблоны, написанные в определенном синтаксисе, которые можно использовать для сопоставления или извлечения строк или подстрок. Модуль re обеспечивает поддержку Regex для Python.

Модули поддержки языка — модуль sys предоставляет вам доступ к различным переменным интерпретатора, таким как путь поиска модуля и версия интерпретатора. Модуль оператора предоставляет функциональные эквиваленты многим встроенным операторам. Модуль копирования позволяет копировать объекты. Наконец, модуль gc дает вам больший контроль над возможностями сборщика мусора в python 2.0.

О компании JSON

Нотация объектов JavaScript (JSON) — это формат обмена данными. Хотя многие языки программирования поддерживают JSON, он особенно полезен для приложений на основе JavaScript, включая веб-сайты и расширения браузера. JSON может представлять числа, логические значения, строки, нулевые значения, массивы (упорядоченные последовательности значений) и объекты (сопоставления строковых значений), состоящие из этих значений (или других массивов и объектов).

SL4A — Среда разработки

В этой главе подробно описана процедура настройки среды разработки. Также обсуждается, как настроить ваше устройство для использования SL4A.

Среда разработки

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

Java Development Kit (JDK)

Для начала в вашей системе должна быть установлена ​​последняя версия JDK (JDK 5 или выше).

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

$javac –version 
$java –version

Примечание. Установите переменную среды PATH в папку jdk / bin

питон

Вероятно, по умолчанию Python установлен на Mac OS X и Linux. ОС Windows по умолчанию не имеет установленного Python. Python можно скачать с http://python.org .

После установки измените путь Windows, чтобы добавить каталог Python.

Чтобы проверить, установлен ли Python в вашей системе, откройте окно терминала и введите Python.

Администратор CMD

Android.py файл

Единственный дополнительный файл, который нужно загрузить, это файл android.py . Включите копию этого файла в / Lib / site-packages в установочном каталоге Python. Этот файл содержит модули Python для разработки под Android.

Файл Android.py

Android SDK

Ряд инструментов предоставляется с Android SDK . Первым шагом является загрузка соответствующего установочного файла для вашей операционной системы. Установщики для Mac OS X, Linux и Windows доступны. Установщик SDK можно найти по адресу https://developer.android.com/sdk .

Android SDK Tool

Обсуждаемая здесь среда разработки — Windows. Google предоставляет zip-файл и исполняемый файл для установки SDK в Windows.

Установка Eclipse на компьютере разработчика

Eclipse был разработан как расширяемая интегрированная среда разработки (IDE), написанная на языке Java. Для работы требуется установка Java. Eclipse выпускается во многих вариантах — Classic, Galelio, Luno, Mars, Neon и др.

Он распространяется в одном файле .zip. Все, что вам нужно сделать, это распаковать содержимое программы. Извлеченная папка содержит файл Eclipse.exe. Дважды щелкните файл, чтобы запустить программу.

Файл Eclipse.exe

SL4A — Настройка вашего устройства

Установка SL4A

Иногда вам может понадобиться написать сценарии на устройстве и выполнить их. Сценарий для Android помогает достичь того же. Чтобы установить SL4A на ваше устройство, выполните следующие действия:

  • Загрузите файл SL4A.apk на свое устройство.

  • Запустите файл .apk с экрана уведомлений.

  • Выберите Установить на следующем экране, чтобы фактически установить SL4A.

Загрузите файл SL4A.apk на свое устройство.

Запустите файл .apk с экрана уведомлений.

Выберите Установить на следующем экране, чтобы фактически установить SL4A.

В качестве альтернативы, если вы решите использовать эмулятор по сравнению с устройством Android, установите SL4A с помощью браузера внутри эмулятора. Начальный экран установки SL4A на устройстве показан ниже.

Начальный экран установки SL4A

Добавление интерпретатора Python

Чтобы установить интерпретатор Python на устройстве, выполните следующие действия:

  • Шаг 1 — Запустите приложение SL4A.

  • Шаг 2 — Нажмите кнопку меню .

  • Шаг 3 — отобразится список параметров. Выберите Просмотр .

  • Шаг 4 — Выберите опцию Интерпретатор в диалоговом окне. Нажмите Добавить .

  • Шаг 5 — Отображается список доступных для загрузки переводчиков. Выберите Python 2.62 (или выше).

Шаг 1 — Запустите приложение SL4A.

Шаг 2 — Нажмите кнопку меню .

Шаг 3 — отобразится список параметров. Выберите Просмотр .

Шаг 4 — Выберите опцию Интерпретатор в диалоговом окне. Нажмите Добавить .

Шаг 5 — Отображается список доступных для загрузки переводчиков. Выберите Python 2.62 (или выше).

Чтобы установить интерпретатор Python на эмуляторе, выполните следующие действия:

  • Шаг 1 — Убедитесь, что эмулятор работает в фоновом режиме.

  • Шаг 2 — Загрузите python_for_android_rx.apk.

  • Шаг 3 — В командной строке терминала перейдите к месту, где хранится файл apk, и введите в командной строке следующее:

Шаг 1 — Убедитесь, что эмулятор работает в фоновом режиме.

Шаг 2 — Загрузите python_for_android_rx.apk.

Шаг 3 — В командной строке терминала перейдите к месту, где хранится файл apk, и введите в командной строке следующее:

adb  install  python_for_android_rx.apk

SL4A поддерживает скриптовый движок для нескольких языков. Список некоторых специфичных для языка apk файлов упомянут ниже —

  • beanshell_for_android_rx.apk
  • jruby_for_android_rx.apk
  • lua_for_android_rx.apk
  • perl_for_android_rx.apk
  • python_for_android_rx.apk
  • rhino_for_android_rx.apk

Подключение к ОС Windows

Шаг 1 — Загрузите и установите драйвер USB для Windows.

Шаг 2 — Настройте ваше устройство —

  • Запустите SL4A на экране Все приложения на устройстве.

  • Нажмите кнопку МенюВид .

  • Выберите переводчиков из списка.

  • Нажмите кнопку МенюЗапустить сервер .

  • Выберите «Общий» (для подключения по Wi-Fi) или « Частный» (для подключения через USB).

Запустите SL4A на экране Все приложения на устройстве.

Нажмите кнопку МенюВид .

Выберите переводчиков из списка.

Нажмите кнопку МенюЗапустить сервер .

Выберите «Общий» (для подключения по Wi-Fi) или « Частный» (для подключения через USB).

Шаг 3 — Добавьте переменную среды (переменную пользователя) AP_PORT и значение 9999 .

Android SDK и Eclipse обсуждались в следующих главах.

SL4A — навигация по Android SDK

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

SDK Компоненты

Дерево каталогов, в которое вы установили Android SDK, содержит список папок с документацией, примером кода и рядом инструментов. Переход к подкаталогу tools показывает количество исполняемых файлов.

Ниже обсуждаются некоторые важные компоненты в Android SDK.

SDK Manager

Android SDK Manager разделяет инструменты, платформы и другие компоненты SDK на пакеты для удобного доступа и управления. SDK можно настроить для проверки новых или обновленных пакетов SDK и дополнительных инструментов.

Android SDK Manager

По умолчанию Android Studio не проверяет наличие обновлений Android SDK. Чтобы включить автоматическую проверку Android SDK —

  • Шаг 1 — Выберите ФайлНастройкиВнешний вид и поведениеСистемные настройкиОбновления .

  • Шаг 2. Установите флажок Автоматически проверять обновления для Android SDK и выберите канал обновления.

  • Шаг 3 — Нажмите OK или Применить, чтобы включить проверку обновлений.

Шаг 1 — Выберите ФайлНастройкиВнешний вид и поведениеСистемные настройкиОбновления .

Шаг 2. Установите флажок Автоматически проверять обновления для Android SDK и выберите канал обновления.

Шаг 3 — Нажмите OK или Применить, чтобы включить проверку обновлений.

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

Эмулятор Android

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

Следующие шаги могут быть использованы для создания AVD в Eclipse —

  • Шаг 1 — Выберите WindowAVD Manager .

  • Шаг 2 — Нажмите Новый .

  • Шаг 3 — Введите имя AVD, выберите цель и укажите значения для других функций.

  • Шаг 4 — Нажмите Создать AVD .

Шаг 1 — Выберите WindowAVD Manager .

Шаг 2 — Нажмите Новый .

Шаг 3 — Введите имя AVD, выберите цель и укажите значения для других функций.

Шаг 4 — Нажмите Создать AVD .

Для устройств с клавиатурой существует стандартный набор сопоставлений от клавиатуры хоста с действиями на устройстве. По умолчанию сопоставления клавиш эмулятора

Ключ эмулятора Отображение на хост-устройстве
BUTTON_CALL F3
BUTTON_HANGUP F4
BUTTON_HOME Главная
BUTTON_BACK Побег
BUTTON_MENU F2, PageUp
BUTTON_STAR Shift + F2, PageDown
BUTTON_POWER F7
BUTTON_SEARCH F5
BUTTON_CAMERA Ctrl + Keypad_5, Ctrl + F3
BUTTON_VOLUME_UP Keypad_Plus, Ctrl + F5
BUTTON_VOLUME_DOWN Keypad_Minus, Ctrl + F6
TOGGLE_NETWORK F8
TOGGLE_TRACING F9
ВКЛЮЧИТЬ ПОЛНОЭКРАННЫЙ РЕЖИМ Alt-Enter
BUTTON_DPAD_CENTER Keypad_5
BUTTON_DPAD_UP Keypad_8
BUTTON_DPAD_LEFT Keypad_4
BUTTON_DPAD_RIGHT Keypad_6
BUTTON_DPAD_DOWN Keypad_2
TOGGLE_TRACKBALL F6
SHOW_TRACKBALL удалять
CHANGE_LAYOUT_PREV Клавиатура_7, Ctrl + F11
CHANGE_LAYOUT_NEXT Клавиатура_9, Ctrl + F12
ONION_ALPHA_UP Keypad_Multiply
ONION_ALPHA_DOWN Keypad_Divide

Вы можете изменить эти настройки, отредактировав файл default.keyset в. Подкаталог Android .

Android Debug Bridge

ADB, Android Debug Bridge, — это утилита командной строки, включенная в Android SDK от Google. ADB может контролировать ваше устройство через USB с компьютера, копировать файлы туда и обратно, устанавливать и удалять приложения, запускать команды оболочки и многое другое.

Если у вас запущен эмулятор и подключено реальное устройство, вы должны указать, где вы хотите использовать команды ADB для реального устройства, использовать опцию — d, а для эмулятора — –e. Ниже приведен список флагов и команд для АБР.

S.No. Флаги и описание АБР
1

-d

Направляет устройство на единственное подключенное USB-устройство; возвращает ошибку, если подключено более одного USB-устройства.

2

-e

Направляет команду на единственный работающий эмулятор; возвращает ошибку, если запущено более одного эмулятора.

3

-s <серийный_номер>

Направляет команду на USB-устройство или эмулятор с заданным серийным номером.

4

приборы

Список всех подключенных устройств

5

подключите <хост>: <порт>

Подключиться к устройству через TCP / IP

6

отключите <хост>: <порт>

Отключиться от устройства TCP / IP

-d

Направляет устройство на единственное подключенное USB-устройство; возвращает ошибку, если подключено более одного USB-устройства.

-e

Направляет команду на единственный работающий эмулятор; возвращает ошибку, если запущено более одного эмулятора.

-s <серийный_номер>

Направляет команду на USB-устройство или эмулятор с заданным серийным номером.

приборы

Список всех подключенных устройств

подключите <хост>: <порт>

Подключиться к устройству через TCP / IP

отключите <хост>: <порт>

Отключиться от устройства TCP / IP

S.No. АБР команды и описание
1

adb push <local> <remote>

Скопировать файл / каталог на устройство

2

adb pull <remote> [<local>]

Скопировать файл / каталог с устройства

3

синхронизация adb [<каталог>]

Если <каталог> не указан, разделы / system и / data будут обновлены. Если это «система» или «данные», обновляется только соответствующий раздел.

4

adb shell

Запустите удаленную оболочку в интерактивном режиме

5

adb emu <команда>

Запустите консольную команду эмулятора

6

adb logcat

Просмотр журнала устройства

7

adb forward <local> <remote>

Прямые разъемы

8

adb install [-l] [-r] [-s] <файл>

Переместите этот файл пакета на устройство и установите его. (-l вперед заблокировать приложение)

(-r переустановить приложение, сохранив его данные)

(-s установить на SD-карту вместо внутренней памяти)

9

adb uninstall [-k] <пакет>

Удалите этот пакет приложений с устройства. -k означает хранить каталоги данных и кеша

10

adb bugreport

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

11

adb help

Показать это справочное сообщение

12

версия adb

Показать номер версии

adb push <local> <remote>

Скопировать файл / каталог на устройство

adb pull <remote> [<local>]

Скопировать файл / каталог с устройства

синхронизация adb [<каталог>]

Если <каталог> не указан, разделы / system и / data будут обновлены. Если это «система» или «данные», обновляется только соответствующий раздел.

adb shell

Запустите удаленную оболочку в интерактивном режиме

adb emu <команда>

Запустите консольную команду эмулятора

adb logcat

Просмотр журнала устройства

adb forward <local> <remote>

Прямые разъемы

adb install [-l] [-r] [-s] <файл>

Переместите этот файл пакета на устройство и установите его. (-l вперед заблокировать приложение)

(-r переустановить приложение, сохранив его данные)

(-s установить на SD-карту вместо внутренней памяти)

adb uninstall [-k] <пакет>

Удалите этот пакет приложений с устройства. -k означает хранить каталоги данных и кеша

adb bugreport

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

adb help

Показать это справочное сообщение

версия adb

Показать номер версии

Оболочка

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

Чтобы выполнить одну команду без входа в удаленную оболочку, используйте команду оболочки, подобную этой:

adb [-d|-e|-s <serialNumber>] shell <shell_command>

Или ввести удаленную оболочку на эмуляторе / устройстве —

adb [-d|-e|-s <serialNumber>] shell

Когда вы будете готовы выйти из удаленной оболочки, нажмите CTRL + D или введите EXIT .

Dalvik Debug Monitor Service

Android поставляется с инструментом отладки Dalvik Debug Monitor Service (DDMS). Этот инструмент предоставляет дополнительные услуги, такие как переадресация портов, захват экрана на устройстве, входящий вызов, подмена SMS и т. Д.

Dalvik Debug Monitor Service

При запуске DDMS подключается к adb . Служба мониторинга VM создается между adb и DDMS, когда устройство подключено. Эта служба уведомляет DDMS, когда виртуальная машина на устройстве запущена или завершена.

Как только виртуальная машина начинает работать, ее идентификатор процесса отправляется в DDMS через adb, и демон adb открывает соединение с отладчиком виртуальной машины. Теперь DDMS может общаться с виртуальной машиной, используя собственный проводной протокол.

SL4A — Работа с Eclipse

В этой главе вы познакомитесь с основами Eclipse IDE и настройкой его для разработки скриптов Python для Android.

Основы затмения

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

Некоторые из этих терминов объясняются здесь —

Workbench — определяет общее окно приложения Eclipse. Он содержит несколько дочерних окон, каждое из которых содержит несколько вкладок.

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

Workspace Launcher

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

Установка плагинов для Eclipse

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

Плагин ADT для Eclipse (доступен по адресу http://dl-ssl.google.com/android/eclipse/ )

Плагин Python для Eclipse (доступен по адресу http://pydev.org/updates )

Следующие шаги могут быть использованы для установки плагинов на Eclipse —

  • Шаг 1 — Нажмите Справка .

  • Шаг 2 — Выберите Установить новое программное обеспечение .

  • Шаг 3 — Нажмите Добавить .

  • Шаг 4 — Укажите имя и URL для доступа к плагину. Нажмите ОК .

  • Шаг 5 — Выберите все инструменты и нажмите Далее . Начинается установка плагина

Шаг 1 — Нажмите Справка .

Шаг 2 — Выберите Установить новое программное обеспечение .

Шаг 3 — Нажмите Добавить .

Шаг 4 — Укажите имя и URL для доступа к плагину. Нажмите ОК .

Шаг 5 — Выберите все инструменты и нажмите Далее . Начинается установка плагина

Добавить репозиторий

Переводчик Python в Eclipse

Выполните данные шаги для настройки Python Interpreter в Eclipse.

  • Шаг 1 — Выберите WindowsНастройки .

  • Шаг 2 — Перейдите в PyDevИнтерпретаторPython .

  • Шаг 3 — Нажмите кнопку « Новый» .

  • Шаг 4 — Укажите имя переводчика. В поле Расположение введите путь к python.exe. Например, C: \ Python26 \ python.exe

  • Шаг 5 — Нажмите ОК .

Шаг 1 — Выберите WindowsНастройки .

Шаг 2 — Перейдите в PyDevИнтерпретаторPython .

Шаг 3 — Нажмите кнопку « Новый» .

Шаг 4 — Укажите имя переводчика. В поле Расположение введите путь к python.exe. Например, C: \ Python26 \ python.exe

Шаг 5 — Нажмите ОК .

Интерпретатор Python Eclipse

SL4A — изучение Android API

SL4A основан на Pattern Design Facade для связи с базовым API Android. В этой главе объясняется работа шаблона проектирования фасада и различных фасадов API SL4A.

Что такое шаблон дизайна фасада?

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

Шаблон дизайна фасада

SL4A и Android API Фасады

SL4A содержит переводчиков для каждого языка, который он поддерживает. Интерпретаторы получают доступ к базовым API-интерфейсам Android через интерфейс, называемый фасадом.

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

S.No. Android API Фасад и описание
1

ActivityResultFacade

Он устанавливает, как ваш скрипт будет возвращать информацию в виде действия. Этот метод подразумевает, что ваш скрипт вернет какой-то результат. Тип результата может быть установлен либо RESULT_CANCELED (0), либо RESULT_OK (-1)

2

AndroidFacade

Он обеспечивает доступ к общим функциям Android, таким как чтение ввода, уведомления, запуск компонентов приложения и т. Д.

3

ApplicationManagerFacade

Перечислите все доступные и запущенные пакеты, запустите действие, создайте свой диспетчер задач или завершите определенный набор пакетов.

4

BatteryManagerFacade

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

5

BluetoothFacade

Предоставляет доступ к возможностям Bluetooth от основных функций подключения до отправки и получения как ASCII, так и двоичных данных. Этот фасад требует как минимум API уровня 5.

6

CameraFacade

Этот метод обеспечивает доступ ко всем функциям, связанным с камерой. Позволяет делать снимки с помощью камеры устройства и сохранять ее по указанному пути. Он предоставляет две функции, а именно cameraCapturePicture и cameraInteractiveCapturePicture. Эти функции предназначены исключительно для использования объектива на задней панели устройства.

7

CommonIntentsFacade

Предоставляет доступ к общим Android Intents, таким как открытие списка контактов, поиск по карте, запуск действия по действию и т. Д.

8

ContactsFacade

Предоставляет доступ к контактам, таким как предоставление списка контактов для выбора контакта, опроса списка контактов по атрибутам и получения списка всех контактов с их идентификаторами и атрибутами. Некоторые методы, предоставляемые фасадом, включают contactsGet, pickContact, contactsGetById и т. Д.

9

EventFacade

ОС Android поддерживает очередь событий для асинхронной передачи информации между приложениями. Этот фасад предоставляет функции для управления очередью событий, такие как очистка существующих событий, публикация новых событий, распечатка, регистрация и отмена регистрации широковещательных сигналов и т. Д. Примеры методов включают в себя eventPost, eventClearBuffer и т. Д.

10

EyesFreeFacade

Доступно на устройствах ниже уровня API 4. Это позволяет сценариям говорить с использованием технологии преобразования текста в речь. Этот фасад теперь заменен TextToSpeechFacade. Единственная доступная функция — это ttsSpeak.

11

LocationFacade

Предоставляет функции, которые позволяют отслеживать текущее местоположение либо с помощью GPS, либо с помощью информации о вышке сотовой связи, которую вы используете в данный момент. Эта функция требует активного подключения к Интернету для фактического поиска. Фасад предоставляет такие методы, как getLastKnownLocation, startLocating, stopLocating, readLocation и т. Д.

12

MediaPlayerFacade

Позволяет воспроизводить мультимедийные файлы, управлять мультимедийным проигрывателем, запрашивать текущее состояние мультимедийного проигрывателя и получать информацию о мультимедийных файлах. mediaIsPlaying, mediaPlayInfo и mediaPlayList возвращает текущее состояние медиаплеера. Вызов функции startActivity запускает медиаплеер. Такие функции, как mediaPlay, mediaPlayPause, mediaPlayClose, mediaPlaySeek, mediaPlayStart и mediaPlaySetLooping, используются для управления медиаплеером.

13

MediaRecorderFacade

Этот фасад обеспечивает возможность аудио и видео записи. Функции startInteractiveVideoRecording, RecorderStartMicrophone, RecorderCaptureVideo используются для запуска и начала аудио / видео записи соответственно. Чтобы завершить ранее начатую запись, вызовите функцию рекордера Stop.

14

PhoneFacade

Обеспечивает программную доступность основных операций телефона, таких как отслеживание состояния телефона, состояние роуминга, инициирование вызовов, информация с SIM-карты и т. Д. Примеры методов включают phoneCallNumber, phoneDialNumber, getCellLocation и т. Д.

15

PreferencesFacade

Предоставляет доступ к общим настройкам, таким как получение списка существующих настроек и чтение, изменение и добавление новых настроек. В релизе SL4A r4 поддерживаются три функции: prefGetAll, prefGetValue и prefPutValue.

16

SensorManagerFacade

Позволяет отслеживать данные датчика, такие как свет, ускорение, магнитное поле и ориентация. Для запуска / остановки считывания используйте вызовы функций startSensing (устарел и заменен на startSensingThreshold и startSensingTimed by SL4r4) и вызовы функции stopSensing. readSensors, SensorGetLight, ДатчикиReadAccelerometer, ДатчикиReadMagnetometer и ДатчикиReadOrientation являются функциями, предоставляемыми этим фасадом.

17

SettingsFacade

Предоставляет доступ к различным настройкам телефона, таким как громкость звонка, яркость экрана, режим полета, вибрация, громкость носителя и т. Д. Функции, предоставляемые этим фасадом: checkAirplaneMode, checkRingersilentMode и checkScreenOn (по крайней мере, уровень API 7), getVibrateMode, setScreenTimeout, toggleVibrateMode setRingerVolume и т. Д.

18

SignalStrengthFacade

Позволяет контролировать уровень сигнала телефона. Вызовите функцию startTrackingSignalStrengths, чтобы начать сбор данных. Вызовите функцию readSignalStrengths, чтобы начать сбор данных. Чтобы завершить процесс, вызовите функцию stoptrackingSignalStrengths. Требуется как минимум уровень API 7.

19

SmsFacade

Имеет функции для удаления, чтения, маркировки и отправки SMS-сообщений. Примеры функций, предоставляемых этим фасадом, включают smsMarkMessageRead, smsDeleteMessage, smsSend и т. Д.

20

SpeechRecognitionFacade

Позволяет добавить в скрипт функцию распознавания речи. Он имеет только одну функцию по имени признатьSpeech.

21

TextToSpeechFacade

Предоставляет услуги TTS для API4 и более поздних версий. Чтобы говорить на устройстве, используйте функцию ttsSpeak. Чтобы определить, завершена ли функция разговора, используйте функцию ttsIsSpeaking.

22

ToneGeneratorFacade

Генерирует тоны DTMF для заданных цифр. Чтобы использовать его, вы должны вызвать функцию generateDtmfTones.

23

UiFacade

Предоставляет функции для создания элементов пользовательского интерфейса, таких как текстовые поля, флажки, средства выбора даты и т. Д. Он также позволяет интерактивно использовать HTML-страницы.

24

WakeLockFacade

Предоставляет функции для создания wake-блокировки, включая wakeLockAcquireBright, wakeLockAcquireDim, wakeLockAcquireFull и wakelockAcquirePartial.

25

WebCamFacade

Этот фасад требует как минимум уровня API 8. Он позволяет передавать потоки MJPEG с передней камеры устройства в сеть. Для запуска / остановки веб-камеры используйте функции webcamStart и webcamStop соответственно. Чтобы настроить качество видео во время потоковой передачи, используйте функцию webcamAdjustQuality.

26

WifiFacade

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

ActivityResultFacade

Он устанавливает, как ваш скрипт будет возвращать информацию в виде действия. Этот метод подразумевает, что ваш скрипт вернет какой-то результат. Тип результата может быть установлен либо RESULT_CANCELED (0), либо RESULT_OK (-1)

AndroidFacade

Он обеспечивает доступ к общим функциям Android, таким как чтение ввода, уведомления, запуск компонентов приложения и т. Д.

ApplicationManagerFacade

Перечислите все доступные и запущенные пакеты, запустите действие, создайте свой диспетчер задач или завершите определенный набор пакетов.

BatteryManagerFacade

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

BluetoothFacade

Предоставляет доступ к возможностям Bluetooth от основных функций подключения до отправки и получения как ASCII, так и двоичных данных. Этот фасад требует как минимум API уровня 5.

CameraFacade

Этот метод обеспечивает доступ ко всем функциям, связанным с камерой. Позволяет делать снимки с помощью камеры устройства и сохранять ее по указанному пути. Он предоставляет две функции, а именно cameraCapturePicture и cameraInteractiveCapturePicture. Эти функции предназначены исключительно для использования объектива на задней панели устройства.

CommonIntentsFacade

Предоставляет доступ к общим Android Intents, таким как открытие списка контактов, поиск по карте, запуск действия по действию и т. Д.

ContactsFacade

Предоставляет доступ к контактам, таким как предоставление списка контактов для выбора контакта, опроса списка контактов по атрибутам и получения списка всех контактов с их идентификаторами и атрибутами. Некоторые методы, предоставляемые фасадом, включают contactsGet, pickContact, contactsGetById и т. Д.

EventFacade

ОС Android поддерживает очередь событий для асинхронной передачи информации между приложениями. Этот фасад предоставляет функции для управления очередью событий, такие как очистка существующих событий, публикация новых событий, распечатка, регистрация и отмена регистрации широковещательных сигналов и т. Д. Примеры методов включают в себя eventPost, eventClearBuffer и т. Д.

EyesFreeFacade

Доступно на устройствах ниже уровня API 4. Это позволяет сценариям говорить с использованием технологии преобразования текста в речь. Этот фасад теперь заменен TextToSpeechFacade. Единственная доступная функция — это ttsSpeak.

LocationFacade

Предоставляет функции, которые позволяют отслеживать текущее местоположение либо с помощью GPS, либо с помощью информации о вышке сотовой связи, которую вы используете в данный момент. Эта функция требует активного подключения к Интернету для фактического поиска. Фасад предоставляет такие методы, как getLastKnownLocation, startLocating, stopLocating, readLocation и т. Д.

MediaPlayerFacade

Позволяет воспроизводить мультимедийные файлы, управлять мультимедийным проигрывателем, запрашивать текущее состояние мультимедийного проигрывателя и получать информацию о мультимедийных файлах. mediaIsPlaying, mediaPlayInfo и mediaPlayList возвращает текущее состояние медиаплеера. Вызов функции startActivity запускает медиаплеер. Такие функции, как mediaPlay, mediaPlayPause, mediaPlayClose, mediaPlaySeek, mediaPlayStart и mediaPlaySetLooping, используются для управления медиаплеером.

MediaRecorderFacade

Этот фасад обеспечивает возможность аудио и видео записи. Функции startInteractiveVideoRecording, RecorderStartMicrophone, RecorderCaptureVideo используются для запуска и начала аудио / видео записи соответственно. Чтобы завершить ранее начатую запись, вызовите функцию рекордера Stop.

PhoneFacade

Обеспечивает программную доступность основных операций телефона, таких как отслеживание состояния телефона, состояние роуминга, инициирование вызовов, информация с SIM-карты и т. Д. Примеры методов включают phoneCallNumber, phoneDialNumber, getCellLocation и т. Д.

PreferencesFacade

Предоставляет доступ к общим настройкам, таким как получение списка существующих настроек и чтение, изменение и добавление новых настроек. В релизе SL4A r4 поддерживаются три функции: prefGetAll, prefGetValue и prefPutValue.

SensorManagerFacade

Позволяет отслеживать данные датчика, такие как свет, ускорение, магнитное поле и ориентация. Для запуска / остановки считывания используйте вызовы функций startSensing (устарел и заменен на startSensingThreshold и startSensingTimed by SL4r4) и вызовы функции stopSensing. readSensors, SensorGetLight, ДатчикиReadAccelerometer, ДатчикиReadMagnetometer и ДатчикиReadOrientation являются функциями, предоставляемыми этим фасадом.

SettingsFacade

Предоставляет доступ к различным настройкам телефона, таким как громкость звонка, яркость экрана, режим полета, вибрация, громкость носителя и т. Д. Функции, предоставляемые этим фасадом: checkAirplaneMode, checkRingersilentMode и checkScreenOn (по крайней мере, уровень API 7), getVibrateMode, setScreenTimeout, toggleVibrateMode setRingerVolume и т. Д.

SignalStrengthFacade

Позволяет контролировать уровень сигнала телефона. Вызовите функцию startTrackingSignalStrengths, чтобы начать сбор данных. Вызовите функцию readSignalStrengths, чтобы начать сбор данных. Чтобы завершить процесс, вызовите функцию stoptrackingSignalStrengths. Требуется как минимум уровень API 7.

SmsFacade

Имеет функции для удаления, чтения, маркировки и отправки SMS-сообщений. Примеры функций, предоставляемых этим фасадом, включают smsMarkMessageRead, smsDeleteMessage, smsSend и т. Д.

SpeechRecognitionFacade

Позволяет добавить в скрипт функцию распознавания речи. Он имеет только одну функцию по имени признатьSpeech.

TextToSpeechFacade

Предоставляет услуги TTS для API4 и более поздних версий. Чтобы говорить на устройстве, используйте функцию ttsSpeak. Чтобы определить, завершена ли функция разговора, используйте функцию ttsIsSpeaking.

ToneGeneratorFacade

Генерирует тоны DTMF для заданных цифр. Чтобы использовать его, вы должны вызвать функцию generateDtmfTones.

UiFacade

Предоставляет функции для создания элементов пользовательского интерфейса, таких как текстовые поля, флажки, средства выбора даты и т. Д. Он также позволяет интерактивно использовать HTML-страницы.

WakeLockFacade

Предоставляет функции для создания wake-блокировки, включая wakeLockAcquireBright, wakeLockAcquireDim, wakeLockAcquireFull и wakelockAcquirePartial.

WebCamFacade

Этот фасад требует как минимум уровня API 8. Он позволяет передавать потоки MJPEG с передней камеры устройства в сеть. Для запуска / остановки веб-камеры используйте функции webcamStart и webcamStop соответственно. Чтобы настроить качество видео во время потоковой передачи, используйте функцию webcamAdjustQuality.

WifiFacade

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

Обратитесь к https://code.google.com за полным списком методов, предоставляемых этими фасадами. Последующие главы иллюстрируют, как создавать утилиты, используя функции Android Façade API.

SL4A — Создание графических интерфейсов

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

Существует два основных подхода к взаимодействию пользователей с SL4A, а именно:

  • Диалоговые окна, такие как оповещения .

  • Использование HTML и JavaScript для создания пользовательского интерфейса, а затем Python за кулисами для обработки любой дополнительной обработки.

Диалоговые окна, такие как оповещения .

Использование HTML и JavaScript для создания пользовательского интерфейса, а затем Python за кулисами для обработки любой дополнительной обработки.

Эта глава объясняет оба подхода.

Диалоговое окно Python — графические интерфейсы на основе

SL4A включает в себя фасад пользовательского интерфейса для доступа к основным элементам пользовательского интерфейса, предоставляемым API Android. Эти функции возвращают объект результата как именованный кортеж при вызове. Каждому результату присваивается уникальный идентификатор для отслеживания. Второй элемент — это результат. Представляет ввод пользователя. Кортеж также включает в себя ошибку третьего элемента, чтобы обеспечить обратную связь с вызывающим абонентом о любом состоянии ошибки, которое могло возникнуть. Если ошибок не обнаружено, для этого элемента устанавливается значение Нет.

S.No. UiFacade Функция и описание
1

dialogGetInput

Запрашивает у пользователя ввод текста.

title (String) заголовок поля ввода (по умолчанию = значение)

message (String) сообщение для отображения над полем ввода (по умолчанию = Пожалуйста, введите значение 🙂

текст defaultText (String) для вставки в поле ввода (необязательно)

Результатом является ввод данных пользователем, или None (ноль), если был отменен.

2

dialogShow

Показать диалог

3

dialogCreateAlert

Создать диалог оповещения.

title (String) (необязательно)

сообщение (строка) (необязательно)

4

dialogDismiss

Уволить диалог.

5

dialogCreateDatePicker

Создать диалог выбора даты.

год (целое число) (по умолчанию = 1970)

месяц (целое число) (по умолчанию = 1)

день (целое число) (по умолчанию = 1)

6

dialogCreateTimePicker

Создать диалог выбора времени.

час (целое число) (по умолчанию = 0)

минута (целое число) (по умолчанию = 0)

is24hour (Boolean) Использовать 24-часовые часы (по умолчанию = false)

7

dialogGetPassword

Запрашивает у пользователя пароль.

title (String) заголовок поля пароля (по умолчанию = пароль)

message (String) сообщение для отображения над окном ввода (по умолчанию = Пожалуйста, введите пароль 🙂

8

dialogGetResponse

Возвращает ответ диалога.

9

dialogSetPositiveButtonText

Установить диалоговое окно оповещения о положительном тексте кнопки. текст (строка)

10

dialogSetNegativeButtonText

Установить текст кнопки оповещения. текст (строка)

11

dialogSetNeutralButtonText

Установить текст кнопки оповещения. текст (строка)

12

dialogSetSingleChoiceItems

Это создает список переключателей.

13

dialogSetMultiChoiceItems

Это создает флажок

14

dialogCreateHorizontalProgress

Создайте горизонтальный диалог прогресса.

title (String) (необязательно)

сообщение (строка) (необязательно)

максимальный прогресс (целое число) (по умолчанию = 100)

15

dialogCreateSpinnerProgress

Создать диалоговое окно прогресса.

title (String) (необязательно)

сообщение (строка) (необязательно)

максимальный прогресс (целое число) (по умолчанию = 100)

16

addContexMenuItem

Добавляет новый пункт в контекстное меню.

метка (строка) метка для этого пункта меню

событие (String) событие, которое будет сгенерировано при нажатии на пункт меню

eventData (Object) (необязательно)

17

addOptionsMenuItem

Добавляет новый пункт в меню параметров.

метка (строка) метка для этого пункта меню

событие (String) событие, которое будет сгенерировано при нажатии на пункт меню

eventData (Object) (необязательно)

iconName (Строка)

18

webViewShow

Отобразить WebView с указанным URL.

url (строка)

ждать (логический) блок, пока пользователь не выйдет из WebView (необязательно)

19

clearContextMenu

Удаляет все элементы, ранее добавленные в контекстное меню.

20

clearOptionsMenu

Удаляет все элементы, ранее добавленные в меню параметров

21

makeToast

Создать уведомление

dialogGetInput

Запрашивает у пользователя ввод текста.

title (String) заголовок поля ввода (по умолчанию = значение)

message (String) сообщение для отображения над полем ввода (по умолчанию = Пожалуйста, введите значение 🙂

текст defaultText (String) для вставки в поле ввода (необязательно)

Результатом является ввод данных пользователем, или None (ноль), если был отменен.

dialogShow

Показать диалог

dialogCreateAlert

Создать диалог оповещения.

title (String) (необязательно)

сообщение (строка) (необязательно)

dialogDismiss

Уволить диалог.

dialogCreateDatePicker

Создать диалог выбора даты.

год (целое число) (по умолчанию = 1970)

месяц (целое число) (по умолчанию = 1)

день (целое число) (по умолчанию = 1)

dialogCreateTimePicker

Создать диалог выбора времени.

час (целое число) (по умолчанию = 0)

минута (целое число) (по умолчанию = 0)

is24hour (Boolean) Использовать 24-часовые часы (по умолчанию = false)

dialogGetPassword

Запрашивает у пользователя пароль.

title (String) заголовок поля пароля (по умолчанию = пароль)

message (String) сообщение для отображения над окном ввода (по умолчанию = Пожалуйста, введите пароль 🙂

dialogGetResponse

Возвращает ответ диалога.

dialogSetPositiveButtonText

Установить диалоговое окно оповещения о положительном тексте кнопки. текст (строка)

dialogSetNegativeButtonText

Установить текст кнопки оповещения. текст (строка)

dialogSetNeutralButtonText

Установить текст кнопки оповещения. текст (строка)

dialogSetSingleChoiceItems

Это создает список переключателей.

dialogSetMultiChoiceItems

Это создает флажок

dialogCreateHorizontalProgress

Создайте горизонтальный диалог прогресса.

title (String) (необязательно)

сообщение (строка) (необязательно)

максимальный прогресс (целое число) (по умолчанию = 100)

dialogCreateSpinnerProgress

Создать диалоговое окно прогресса.

title (String) (необязательно)

сообщение (строка) (необязательно)

максимальный прогресс (целое число) (по умолчанию = 100)

addContexMenuItem

Добавляет новый пункт в контекстное меню.

метка (строка) метка для этого пункта меню

событие (String) событие, которое будет сгенерировано при нажатии на пункт меню

eventData (Object) (необязательно)

addOptionsMenuItem

Добавляет новый пункт в меню параметров.

метка (строка) метка для этого пункта меню

событие (String) событие, которое будет сгенерировано при нажатии на пункт меню

eventData (Object) (необязательно)

iconName (Строка)

webViewShow

Отобразить WebView с указанным URL.

url (строка)

ждать (логический) блок, пока пользователь не выйдет из WebView (необязательно)

clearContextMenu

Удаляет все элементы, ранее добавленные в контекстное меню.

clearOptionsMenu

Удаляет все элементы, ранее добавленные в меню параметров

makeToast

Создать уведомление

Примеры

Простой пример тоста

import android 
droid = android.Android() 
uname = droid.getInput("Enter your name") 
print uname  
droid.makeToast("Hello %s" %uname.result)

Горизонтальный индикатор выполнения

import android 
   droid = android.Android() 
   title = "Progress" 
   str = "Loading..." 
   droid.dialogCreateHorizontalProgress(title,str,100) 
   droid.showDialog() 
	
   for x in range(0,99) 
      time.sleep(0.1) 
      droid.dialogSetCurrentProgress(x) 
		
   droid.dialogDismiss()

Модальные и немодальные диалоговые окна

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

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

Следующее изображение является примером модального диалогового окна.

Модальное диалоговое окно

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

Python GUI с HTML

SL4A позволяет создавать графические интерфейсы пользователя (GUI) на основе CSS, HTML, JavaScript и Python. Подход использует HTML и JavaScript для создания пользовательского интерфейса, CSS для улучшения внешнего вида и согласованности элементов и шрифтов HTML и Python для обработки любой дополнительной обработки.

Следующий пример иллюстрирует базовый пример HTML GUI —

1. Speech.html

<html> 
   <head> 
      <title>Text To Speech</title> 
		
      <script> 
         var droid = new Android(); 
         var speak = function(){ 
            droid.postEvent("say",document.getElementById("say").value); 
         } 
      </script> 
		
   </head>
	
   <body> 
      <form onsubmit = "speak()";return false;”> 
         <label for = "say">What is your message?</label> 
         <input type = "text" id = "say"/> 
         <input type = "submit" value = "Speak"/> 
      </form> 
   </body> 
	
</html>

2. txtToSpeech.py

import android 
droid = android.Android() 
droid.webViewShow(‘file:///sdcard/sl4a/scripts/Speech.html’) 

while True: 
   result = droid.waitForEvent(‘say’).result 
   droid.ttsSpeak(result[‘data’])

Оба файла — Speech.html и txtToSpeech.py , должны находиться в каталоге / sdcard / sl4a / scripts на устройстве. Запустите скрипт python, чтобы запустить файл HTML.

Этот файл запускается вызовом API webViewShow . Событие генерируется при нажатии кнопки « Говорить» .

SL4A — Утилиты с использованием фасадов Python

Приложения на основе электронной почты

Приложения на основе электронной почты являются одной из самых распространенных утилит, доступных на мобильном устройстве. Можно использовать вызов API sendEmail, доступный через фасад Android SL4A.

Эта функция принимает три параметра —

  • to_address — список получателей через запятую.

  • заголовок — представляет заголовок сообщения электронной почты.

  • сообщение — представляет сообщение для отправки.

to_address — список получателей через запятую.

заголовок — представляет заголовок сообщения электронной почты.

сообщение — представляет сообщение для отправки.

import android,datetime,smtplib 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

droid = android.Android() 
serv = ’smtp.gmail.com’ 
port = 587 
mailto = ’chris’ 
mailfrom = ’charley’ 
pass = ’pass@123’ 

msg = MIMEMultipart() 
msg[‘Subject’] = ’Tes Mail’ 
msg[‘To’] = mailto 
msg[‘From’] = mailfrom 

body = ’This is a test mail!!’ 
msg.attach(MIMEText(body,’plain’)) 

smtpCon = smtplib.SMTP(serv,port) 
smtpCon.starttls() 
smtpCon.login(mailfrom,pass) 
smtpSendmail(mailfrom,mailto,msg.as_string()) 
smtpCon.close()

Библиотека Python, которая использовалась для создания почтовой программы, — это smtplib . Кроме того, мы использовали библиотеку электронной почты. Эта библиотека содержит ряд вспомогательных функций, позволяющих нам построить наше сообщение в правильной форме. Библиотека mimetypes помогает с кодированием нашего сообщения.

Wi-Fi сканер

В следующем коде перечислены все доступные точки доступа Wi-Fi.

import android, time 

def main(): 
   global droid 
   droid = android.Android() 
	
while not droid.wifiStartScan().result: 
   time.sleep(0.25) 
	
networks = {} 

while not networks: 
   for ap in in droid.wifiGetScanResults().result: 
      networks[ap[‘bssid’]] = ap.copy() 
		
   droid.dialogCreateAlert(‘Access Points’) 
   droid.dialogSetItems([‘%(ssid)s,%(level)s,%(capabilities)s’ % 
      ap for ap in networks.values() ]) 
		
droid.dialogSetPositiveButtonText(‘OK’) 
dorid.dialogShow() 

if __name__=’__main__’: 
   main()

Журналы вызовов

Код для журналов вызовов приведен ниже.

import android 
droid = android.Android() 
mylog = droid.getConstants("android.provider.Calllog$Calls").result 
calls = droid.queryContent(mylog["CONTENT_URI"],["name","number","duration"]).result 

for c in calls: 
   print c

SL4A — фоновые скрипты с Python

Сервис — это компонент, который работает в фоновом режиме, без прямого взаимодействия с пользователем. У этого нет никакого пользовательского интерфейса (пользовательский интерфейс). Служба работает в фоновом режиме бесконечно, даже если приложение уничтожено.

В этой главе описываются сценарии написания, которые выполняют определенные задачи в фоновом режиме.

Фоновые задачи

SL4A позволяет запускать скрипт в терминале или в фоновом режиме. Чтобы запустить скрипт в фоновом режиме, выберите значок, похожий на зубчатое колесо. Сценарий работает в фоновом режиме бесконечно. Однако можно выбрать явное отключение таких служб.

Запустить загрузочные скрипты

Эти сценарии запускаются всякий раз, когда устройство загружается. Экран «Запуск при загрузке» — это приложение, которое позволяет указать параметры загрузки устройства. Утилита поддерживает выполнение нескольких скриптов через мастер-скрипт. Мастер-скрипт запускает другие скрипты.

Триггеры

Триггер определяет набор действий, которые должны быть выполнены в ответ на действие / событие. Триггеры могут быть добавлены, а также удалены. Каталог / sdcard / sl4a / scripts позволяет вам выбрать скрипт, который будет запускаться при запуске события. Список параметров, которые могут вызвать ваш сценарий, включает в себя аккумулятор, местоположение, телефон, датчики и уровень сигнала.

Ориентированные на действия

SL4A позволяет запускать скрипты в зависимости от ориентации и движения устройства. StartSensingTimedAPI используется для определения ориентации и перемещения устройства.

Следующий фрагмент использует функцию TTS, чтобы уведомить пользователя, когда телефон был помещен лицевой стороной вниз —

import android,time 
droid = android.Android() 
droid.startSensing() 

while True: 
   res = droid.sensorsGetLight().result 
	
   if res is not None and res <=10: 
      droid.ttsSpeak("Device faced down!!") 
   time.sleep(5)

Действия на основе местоположения

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

Триггеры на основе времени / истекшего времени

Эти триггеры используются для выполнения действий в определенное время суток. Для указания времени следует использовать 24-часовой формат времени. Примеры включают скрипт для установки будильника, напоминаний и т. Д. В отличие от триггера, основанного на времени, триггер по истечении времени выполняет скрипт по истечении определенного времени. Опция повтора в приложении тревоги основана на этой концепции.

Триггеры по истекшему времени

SL4A — Упаковка и распространение

В этой главе описываются способы упаковки и распространения скриптов с использованием Eclipse и QR-кодов.

Коды быстрого ответа (QR)

Большинство устройств Android имеют встроенный сканер штрих-кода. SL4A поддерживает импорт QR-кодов прямо в редактор. QR-код может кодировать только 4296 символов контента. Следовательно, этот метод распространения подходит для коротких сценариев.

Есть несколько сайтов, где вы можете вставить текст и создать QR-код. Однако мы будем ссылаться на http://zxing.appspot.com/generator, чтобы сгенерировать QR-код на нашей иллюстрации.

Шаги объяснены ниже —

Шаг 1 — Откройте раскрывающийся список « Содержание» и выберите « Текст» .

Шаг 2 — В первой строке текстового содержимого введите имя скрипта (например, greet.py).

Генератор QR-кода

Шаг 3 — Вставьте содержимое скрипта ниже.

Шаг 4 — Выберите размер штрих-кода из раскрывающегося списка Размер.

Шаг 5 — Нажмите «Создать».

Шаг 6 — Вставьте полученное изображение штрих-кода или поделитесь им.

Таким образом, QR-код — это эффективный способ поделиться короткими сценариями через блог или веб-сайт.

Сборка пакетов приложений — Eclipse

Приложения Android распространяются в одном файле / пакете с. расширение apk . Пакет Android (.apk) похож на файл .jar или .zip. Каждый. apk содержит ряд обязательных файлов, которые должны присутствовать. Самый важный файл — AndroidManifest.xml .

Файл манифеста делает несколько вещей —

  • Объявляет компоненты приложения.

  • Определите права пользователя, необходимые для приложения.

  • Объявляет аппаратные и программные функции, используемые или требуемые приложением, такие как камера, службы Bluetooth и т. Д.

  • Указывает библиотеки API, с которыми необходимо связать приложение, например, библиотеку Google Maps.

Объявляет компоненты приложения.

Определите права пользователя, необходимые для приложения.

Объявляет аппаратные и программные функции, используемые или требуемые приложением, такие как камера, службы Bluetooth и т. Д.

Указывает библиотеки API, с которыми необходимо связать приложение, например, библиотеку Google Maps.

Шаги для создания распространяемого проекта, т.е. .apk в eclipse, показаны ниже —

Загрузите и установите Hg с Mercurial — http://mercurial.selenic.com/wiki/Download . Установите переменную PATH для папки установки.

Создайте клон самого последнего хранилища SL4A: откройте терминал и перейдите в каталог, где должен быть создан клон. Введите следующий клон Hg: https://android-scripting.googlecode.com/hg/android-scripting.

Откройте Eclipse и нажмите Файл / Импорт / Общие / Существующие проекты в Рабочую область / Далее и перейдите к клонированному каталогу. Нажмите на Android / OK, затем выберите все и нажмите Готово.

Включите ANDROID_SDK в список переменных Classpath, щелкнув Windows / Preferences / Java / BuildPathVariables / New. Поместите ANDROID_SDK в качестве имени и ваш каталог SDK для папки (вероятно, c: \ ProgramFiles \ Android \ android-sdk-windows).

Нажмите «Проект / Построить автоматически», затем «Проект» / «Очистить» / «Очистить все проекты» / «ОК».

Чтобы превратить ваш скрипт в APK , сделайте копию ScriptForAndroidTemplate (щелкните правой кнопкой мыши / скопируйте, затем щелкните правой кнопкой мыши / вставьте в ту же область). Появится новый проект с именем Copy of ScriptForAndroidTemplate .

Чтобы подключить этот проект к вашему клону SL4A, дважды щелкните по нему, щелкните правой кнопкой мыши на build.xml / Run As / Ant Build. Переименуйте проект с помощью Refactor / Rename на любое имя, которое вы выберете для своего проекта, и Refresh / Clean / Build the project.

Затем дважды щелкните по raw и Refactor / Rename, чтобы изменить имя script.py на your_script_name.py, а затем дважды щелкните по src / com.dummy.fooforandroid / Script.java и измените R.raw.script на R.raw. your_script_name и сохраните.

Дважды щелкните src и Refactor / Rename, чтобы изменить имя пакета com.dummy.fooforandroid на your.package.name. Сделайте то же самое для поколения.

Теперь выделите ваш проект, затем нажмите Project / Properties / Android. Выберите цель для Android и нажмите ОК .

В нижней части списка проектов дважды щелкните файл AndroidManifest.xml. Измените имя пакета в манифесте с com.dummy.fooforandroid на your.package.name. Измените minSdkVersion с «4» в соответствии с вашей целью для Android (это уровень API для вашей цели на Android, показанный в Project / Preferences / Android). Раскомментируйте разрешения, которые требуются вашему приложению (снимите <! — в начале и -> в конце). Установите Debug на False .

Щелкните правой кнопкой мыши на вашем_сценарии и откройте в текстовом редакторе. Удалите скрипт по умолчанию, замените его собственным и сохраните. Затем очистите / соберите / обновите ваш проект и запустите его. Если все идет хорошо, нажмите Файл / Экспорт, чтобы экспортировать приложение в виде apk.

Нажмите Далее .

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

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

Нажмите Далее . Обратите внимание на поле действия. Вы можете создать ключ, действительный на любое количество лет, от 1 до 99.

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

Можно использовать Eclipse или инструмент ADB для тестирования / установки файла .apk. Для установки с использованием ADB откройте окно терминала, перейдите в каталог назначения .apk и введите следующее —