0

Эксперименты с Android. Приложение 3

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

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

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

Импорт и экспорт проектов

Как известно, файлы проектов AI2 имеют рас­ширение «*.aia». Не следует их путать с исполня­емыми файлами ОС Android с расширением «*.apk». Сходство лишь в том, что используется ар­хивирование данных, примерно как в ZIP-архивах. Но структура файлов разная, да и распаковывают­ся (запускаются) они разными программами.

Кроме того, в Интернете встречаются старые проекты от первой версии AI, исходные файлы ко­торых имеют расширение «*.zip». Интересное на­блюдение — если такой файл переименовать в «*.aia», то он успешно импортируется в среду AI2, как обычный проект (рис. 19). Правда, на этом по­ложительные эмоции заканчиваются, поскольку внешний вид приложения в окне дизайна будет ви­ден, а вот редактор блоков (т.е. самая важная часть) оказывается недоступным.

Рис. 19

Рис. 19

Отличить новый формат от старого позволяет просмотр внутренностей архивов. На рис.20 вид­но, что новые файлы «*.aia» имеют три (а не два) файла в папке SRC, причем используются ориги нальные расширения «*.bky», «*.yail» вместо ста­рого «*.blk».

Рис. 20

Рис. 20

Если в Интернете найден «исходник» проекта, но без исполняемого файла, то получить послед­ний можно через процедуру экспорта. Для этого надо открыть среду AI2, загрузить с компьютера исходный файл с расширением «*.aia» (Project— Import .aia from my computer), выполнить компиля­цию и сохранение (Build—Save.apk to my comput­er, рис.21).

Рис. 21

Рис. 21

Вновь загруженный проект хранится в облаке среды AI2 в разделе «Му Projects». Его можно в лю­бой момент удалить кнопкой «Delete Project». А можно, наоборот, клонировать через меню «Projects—Save project as» и в дальнейшем без опасений вносить не­обходимые изменения в окне дизайна и в ре­дакторе блоков.

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

Единственная проблема, что рисунки мозаик не копируются в буфер обмена Windows стандартной комбинацией клавиш Ctrl+C. В качестве альтерна­тивы можно создать и накапливать банк скриншо­тов типовых мозаик, например, программой IrfanView <http://www.irfanview.com/> в меню «Сер­вис-Захват (снимок) экрана».

Приемник ВТ-сигналов

На рис.22 показан внешний вид приложения «ReceiveBT», которое предназначено для приема текста по каналу BT от удаленного компьютера.

Рис. 22

Рис. 22

За основу компоновки элементов взят проект «TestBT» (рис. 15).

Из новинок:

  • Label2 — статический текст в строке заголов­ка, наподобие Label1, но с форматированием по левому борту;
  • Label3 — динамически изменяемая строка, в которой будет индицироваться текст, приходя­щий от канала ВТ;
  • as_TurnOnBT — служебная активность, поз­воляющая физически включать канал ВТ на уров­не ОС Android, если до этого он был выключен;
  • Clock1— таймер прерывания, по которому считываются принятые данные.

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

Важный момент. В свойствах компонента «as_TurnOnBT» прописана строка «android.blue­tooth. adapter.action.REQUEST ENABLE», которую из головы не выдумаешь и на память не запом­нишь. Это заимствование из проекта <http://www.whatakuai.com/bluetooth-and-app-in- ventor/> (автор —Luis Manuel Rodriguez Picarzo, Ис­пания). Оттуда же было взято и название службы, которое переименовывается кнопкой «Rename» в окне дизайна AI2 из исходного шаблона «ActivityStarterl».

Таблица 2

Компонент Функция Изменяемые свойства (остальное по умолчанию)
Screen 1 Активность Icon “<ввести имя файла иконки с расширением *.png>”, Title “ReceiveBT”
HorizontalArrangement1 Контейнер AlignHorizontal “Center”, Wight “Fill parent”
ListPicker1 Список Text “Соединение ВТ”
Button1 Кнопка Text “Разъединение ВТ”
Label2 Надпись Text “Принимаемые данные:”
Label3 Надпись Text
Label1 Надпись Text “(с) Радиоаматор, №3-2015”, TextAlignment ’’Center”, Width “Fill parent”
as_TurnOnBT Служба ВТ Action “android.bluetooth.adapter.action.REQUEST ENABLE”
Clock1 Таймер TimerEnable — снять «галочку»

На рис.23 показан редактор блоков приложе­ния «ReceiveBT» с построчными комментариями.

Рис. 23

Рис. 23

Проект состоит из 5 мозаик, при этом мозаики 5-6,7-12,13-17 в основном совпадают с приложе­нием «TestBT» (рис. 16).

Пояснения к мозаикам.

  • Строки 1 -4. Аналог функции «Setup» в Arduino. Эта мозаика выполняется при инициализации приложения.
  • Строка 2. Здесь кнопка Button 1 «Разъединение ВТ» становится недоступной для нажатия, а ее кар­тинка теряет контрастность и видится как в дымке.
  • Строки 3, 4. Если канал ВТ в планшете имеется, но в данный момент времени отключен (такое час­то бывает, чтобы уменьшить энергопотребление от аккумулятора), то вызывается служебная актив­ность «as TurnOnBT». Она формирует вспомога­тельное окно, в котором надо нажать «Да».
  • Строки 10, 15. Таймер должен функциониро­вать только при включенном канале ВТ, иначе бу­дет постоянно появляться назойливое сообщение об ошибке: «Error 507: Unable to connect».
  • Строки 11,12,16,17. Активация списка «Соеди­нение ВТ» и кнопки «Разъединение ВТ» проводит­ся в противофазе, чтобы в любой момент време­ни было доступно лишь одно нажатие. В этом примере четко видна разница между видимостью элемента (Visible) и его доступностью (Enable). В первом случае кнопка соединения полностью ис­чезает с экрана, а во втором случае кнопка разъ­единения остается видимой, но изменяет свою контрастность.
  • Строки 18-21. Опрос таймера по умолчанию происходит с частотой 1 Гц. Следовательно, планшет накапливает принятые данные в тече­ние одной секунды, а затем «скопом» выводит их на экран. Это может быть один байт, а может и 200. Увеличить или уменьшить частоту опроса разрешается в свойствах таймера в окне дизай­на AI.

Работа с приложением «ReceiveBT»:

  • подключить ВТ-адаптер к USB-разъему ком­пьютера;
  • открыть терминальную программу типа «Terminal by Вгау++» <https://sites.google.com/ site/terminalbpp/>;
  • выбрать виртуальный COM-порт, с которым работает ВТ-адаптер, скорость произвольная;
  • установить соединение кнопкой «Connect»;
  • запустить в планшете приложение «ReceiveBT»;
  • нажать в приложении кнопку «Соединение ВТ», Выбрать ВТ-адрес компьютера и ус­тановить с ним связь (возможно, потребу­ется ввести пароль);
  • напечатать в терминальной про­грамме компьютера произвольный текст, состоящий из цифр, символов и латинских букв, отправить его кнопкой «Send»;
  • наблюдать в планшете результат в строке Label3 (рис.24).

    Рис. 24

    Рис. 24

Собственная иконка для приложения Android

Внимательный читатель должен был обратить внимание на надпись «РА3.png» в правом нижнем углу на рис.22. Это файл с оригинальной иконкой, определяющей узнаваемость приложения «ReceiveBT» на рабочем столе.

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

(рис.25). Если не обратить на это внимание, то можно сгоряча сгене­рировать массу приложений с оди­наковыми иконками.

Рис. 25

Рис. 25

Изменить картинку можно по сле­дующей методике.

  1. Вначале надо придумать рисунок, соответст­вующий теме разрабатываемого приложения. В сообществе любителей Андроидов приветствуют­ся стилизованные юмористические изображения зеленого робота Энди или его составных частей. Однако следует избегать чрезмерной детализации сюжета, введения теней и 3D-мерности для мел­ких элементов.

    Надо отказаться от сверхумных на­чертаний объектов и не использовать значки, присутствующие в реальном интерфейсе Android.

За образец хорошего стиля в «иконкописании» можно взять пошаговый пример конструирования [4], в котором в общем виде учтены официальные рекомендации <http://developer.android.com/design/style/iconography.html>.

  1. Если самостоятельно ничего не придума­лось, то следует поискать аналогичные иконки в интернет-магазине «Google Play» или в банке сво­бодно распространяемых изображений на сайте <http://iconbird.com/>. Разумеется, «дралоскопить» один к одному чужое творчество не надо. Лучше взять несколько приглянувшихся экземпля­ров и сделать из них «натюрморт» в одном из бес­платных графических редакторов. Из растровых подойдет GIMP <http://www.gimp.org/>, из вектор­ных — InkScape (уроки на русском языке <http://inkscape.paint-net.ru/>). Если планируется создание серии приложений, то все они должны иметь общую основу и изменя­емую часть. К примеру, на рис.26 показан обра­зец иконки, которая будет использоваться в дан­ном цикле статей, при этом цифра на руке робота Энди указывает порядковый номер приложения.

    Рис. 26

    Рис. 26

Важный нюанс. Следует взять себе за правило сразу рисовать иконку в формате 512×512 пиксе­лов. Именно такое большое изображение требу­ется для публикации в магазине «Google Play».

  1. Полученный рису­нок надо перевести в формат «*.рпд» програм­мой IrfanView или анало­гичной. Допускается глу­бина цвета до 32 бит с каналом прозрачности.
  2. Проверить на сайте <https://tinypng.com/> возможность уменьшения размера PNG-файла без потери качества. На рис.27 показан случай, когда файл сокращается в размере на 65%.

    Рис. 27

    Рис. 27

  3. Войти в проект AI В окне дизайна в колон­ке «Components» выделить заголовок Screen 1, в свойствах которого указать путь к файлу иконки: «Icon-Upload File…-Обзор-< выбрать в компьюте­ре графический файл с расширением *.png>-ОК».

Теперь можно скомпилировать проект, перене­сти его в планшет и воочию наблюдать результат.

Литература

  1. Рыбкин, С. Процесс создания иконки прило­жения под Android / <http://sawtech.ru/design- blog/protsess-sozdaniya-ikonki-prilozheniya-pod-an- droid/>.

Автор: Сергей Рюмик, г. Чернигов

Источник: Радиоаматор №3, 2015

admin

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

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