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 с ее основными компонентами.
Ядро 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 соответственно.
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 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.
Android.py файл
Единственный дополнительный файл, который нужно загрузить, это файл android.py . Включите копию этого файла в / Lib / site-packages в установочном каталоге Python. Этот файл содержит модули Python для разработки под Android.
Android SDK
Ряд инструментов предоставляется с Android SDK . Первым шагом является загрузка соответствующего установочного файла для вашей операционной системы. Установщики для Mac OS X, Linux и Windows доступны. Установщик SDK можно найти по адресу https://developer.android.com/sdk .
Обсуждаемая здесь среда разработки — Windows. Google предоставляет zip-файл и исполняемый файл для установки SDK в Windows.
Установка Eclipse на компьютере разработчика
Eclipse был разработан как расширяемая интегрированная среда разработки (IDE), написанная на языке Java. Для работы требуется установка Java. Eclipse выпускается во многих вариантах — Classic, Galelio, Luno, Mars, Neon и др.
Он распространяется в одном файле .zip. Все, что вам нужно сделать, это распаковать содержимое программы. Извлеченная папка содержит файл Eclipse.exe. Дважды щелкните файл, чтобы запустить программу.
SL4A — Настройка вашего устройства
Установка SL4A
Иногда вам может понадобиться написать сценарии на устройстве и выполнить их. Сценарий для Android помогает достичь того же. Чтобы установить SL4A на ваше устройство, выполните следующие действия:
-
Загрузите файл SL4A.apk на свое устройство.
-
Запустите файл .apk с экрана уведомлений.
-
Выберите Установить на следующем экране, чтобы фактически установить SL4A.
Загрузите файл SL4A.apk на свое устройство.
Запустите файл .apk с экрана уведомлений.
Выберите Установить на следующем экране, чтобы фактически установить SL4A.
В качестве альтернативы, если вы решите использовать эмулятор по сравнению с устройством Android, установите 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 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 — Выберите Window → AVD Manager .
-
Шаг 2 — Нажмите Новый .
-
Шаг 3 — Введите имя AVD, выберите цель и укажите значения для других функций.
-
Шаг 4 — Нажмите Создать AVD .
Шаг 1 — Выберите Window → AVD 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 и т. Д.
При запуске DDMS подключается к adb . Служба мониторинга VM создается между adb и DDMS, когда устройство подключено. Эта служба уведомляет DDMS, когда виртуальная машина на устройстве запущена или завершена.
Как только виртуальная машина начинает работать, ее идентификатор процесса отправляется в DDMS через adb, и демон adb открывает соединение с отладчиком виртуальной машины. Теперь DDMS может общаться с виртуальной машиной, используя собственный проводной протокол.
SL4A — Работа с Eclipse
В этой главе вы познакомитесь с основами Eclipse IDE и настройкой его для разработки скриптов Python для Android.
Основы затмения
Eclipse — это приложение с множеством возможностей и опций. Экран приветствия приветствует вас при первом запуске программы. Eclipse использует ряд базовых концепций и терминологии для решения различных функций и операций программы.
Некоторые из этих терминов объясняются здесь —
Workbench — определяет общее окно приложения Eclipse. Он содержит несколько дочерних окон, каждое из которых содержит несколько вкладок.
Рабочая область — относится к расположению в файловой системе вашей системы, где будут сохраняться проекты, созданные с использованием Eclipse.
Перспектива — это личное предпочтение, когда меню и окна открыты одновременно. Eclipse имеет ряд перспектив, настроенных для типичного использования, таких как написание кода, отладка и т. Д. Вы также можете переключиться на другую перспективу, когда ваша деятельность изменится. Перспективы также настраиваемые.
Установка плагинов для Eclipse
Нужно настроить Eclipse, чтобы иметь возможность разрабатывать приложения SL4A. После того, как пререквизиты успешно установлены на хосте, необходимо добавить следующие плагины для Eclipse:
-
Плагин ADT для Eclipse (доступен по адресу http://dl-ssl.google.com/android/eclipse/ )
-
Плагин Python для Eclipse (доступен по адресу http://pydev.org/updates )
Плагин 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 — Нажмите ОК .
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).
Шаг 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 и введите следующее —