|
|
Сетевые коммуникации в Android
Несколько дней назад мы опубликовывали перевод статьи Introduction in Android development, написанной Фрэнком Эйблсоном (Frank Ableson). Сегодня на сайте ibm.com появился перевод еще одной его публикации под названием «Android и сетевые коммуникации». В этой статье рассматриваются сетевые возможности Android, а также приводятся некоторые примеры использования сетевых компонентов при написании собственных приложений… ВведениеЭта статья строится на фундаменте, описанном в руководстве «Разработка приложений для Android с помощью Eclipse», и посвящена сетевым возможностям платформы Android. Вы узнаете, как применять сетевые средства Android в интересных и полезных целях. Android – идеальная платформа для разработчиков Java™: чтобы организовать сетевое подключение мобильной или встроенной платформы, им достаточно будет имеющихся навыков. Из этой статьи вы узнаете о некоторых возможностях сетевой связи, доступных для приложений Android, и об основных приемах подключения Android к телекоммуникационным сетям. Мы рассмотрим реальное приложение мониторинга окружающей среды, требующее подключения к сети. Зачем нужна такая система? Вот пример. Мой друг на несколько недель уехал из города. Будучи в отъезде, он позвонил мне и попросил взять кое-что у него дома и отправить ему по почте. Придя к нему, я обнаружил ужасную картину – отопление отключилось, трубы полопались. Если бы там была установлена система контроля температуры, аварию удалось бы предотвратить. В этой статье анализируется роль, которую Android может играть в подобной системе мониторинга. Сетевые возможности AndroidПлатформа Android основана на ядре Linux® и содержит богатый набор сетевых средств. Если вы еще не установили SDK Android, то можете загрузить его, чтобы выполнять примеры. В таблице 1 приведены некоторые пакеты, относящиеся к сетевым возможностям, которые присутствуют в SDK Android.
Приведенный выше список не является исчерпывающим, но дает общее представление о том, на что способна эта платформа. В следующем разделе рассматривается несколько простых примеров работы с сетями. Простой пример работы с сетьюЧтобы продемонстрировать, как легко подключить Android к сети, приведем пример извлечения текста из Web-страницы. Загрузите исходный код примера. Рисунок 1 демонстрирует приложение в действии. Этот раздел содержит код, необходимый для построения примера приложения. Сначала рассмотрим аспекты пользовательского интерфейса, а затем разберем код, относящийся к сети. Здесь имеется три элемента пользовательского интерфейса:
В листинге 1 представлен файл main.xml, который представляет собой полный макет интерфейса пользователя для этого приложения.
В листинге 2 показан код Java для данного примера.
Этот код можно разделить на несколько общих областей. Несколько важных (обязательных) операторов импорта обеспечивают правильные ссылки на используемые в приложении классы пользовательского интерфейса, передаваемых данных и сетевых функций. Весь код, относящийся к работе с сетями, находится в методе Классы В данном примере приложение Android поддерживает связь с Web-сервером HTTP, таким как Apache или Internet Information Server (IIS на сервере Microsoft®). Если бы приложение непосредственно обращалось к сокету TCP, а не HTTP, его пришлось бы строить иначе. В листинге 3 представлен фрагмент кода, демонстрирующий другие средства взаимодействия с удаленным сервером. Этот код реализован как отдельный поток. Листинг 3. Клиент времени
Как и в предыдущем примере, приведенный выше код использует подход сообщения и обработчика для возврата данных отправителю с обновлением пользовательского интерфейса и последующей обработкой. В отличие от кода из листинга 1, этот пример не связывается с сервером HTTP, поэтому класс Сервер времени принимает входящее сокет-соединение и возвращает в вызывающий сокет дату и время в текстовом формате. Отправив данные, сервер закрывает сокет. Этот пример демонстрирует также использование метода Еще одна задача, которую можно решать с помощью Android — отправка текстовых сообщений. Пример приведен в листинге 4. Листинг 4. Отправка текстового сообщения
Процесс отправки текстового сообщения предельно прост. Сначала получим ссылку на SmsManager с помощью статического метода
Итак, платформа Android, подключенная к Web-странице или специальному приложению TCP, к вашим услугам. Как показано в листинге 4, передача текстовых сообщений осуществляется очень просто. С помощью факультативных параметров интентов можно также предпринимать какие-то действия, когда сообщение отправлено, а затем – когда оно доставлено. Это мощная функция доступна не на всех мобильных платформах. Следующий раздел посвящен краткому описанию реального приложения. Обзор системы мониторинга окружающей средыДля этого сценария предположим, что вы — управляющий несколькими офисными зданиями, в которых находится ваше предприятие. Управление объектами недвижимости не сильно отличается от управления центром обработки данных – долгие периоды скуки прерываются внезапными авралами. Буквально на днях вам пришлось проводить операцию по уборке кладовки, полной старых компьютеров и учебных пособий, после того как водонагреватель, эксплуатировавшийся 10 лет, протек и залил ее. К счастью, вы были в городе. Будь вы в отъезде, ситуация была бы действительно аховая. Это несчастье и другие, подобные ему, вдохновили вас на идею подумать об использовании Android для наблюдения за состоянием зданий. На рисунке 2 приведена общая блок-схема такой системы. Эта архитектура — традиционный подход с использованием микроконтроллера и нескольких простых датчиков для сбора данных. Данные передаются в контроллер через последовательный протокол связи, такой как RS232 или RS485. Роль контроллера, вероятно, будет играть ПК или аналогичное устройство. К этим данным можно обращаться через Интернет с помощью брандмауэра. Протоколом связи с телефоном Android (таким как TMobile G1) может служить http или специально разработанная схема связи. Данные, передаваемые между контроллером и устройством на платформе Android, будут состоять из простых байтов, означающих:
Зачем заботиться о потребляемой мощности? Одной из причин может быть возможность того, что кто-то оставил включенным свет, а это увеличивает счет за электроэнергию. Вторая, более серьезная причина: допустим, у вас есть большой морозильник, а электроэнергия отключилась. Это может привести к неприятной ситуации, сопровождающейся большими расходам. Или, например, заело реле кондиционера воздуха, и компьютерный зал остался без охлаждения. Базовая конструкция выглядит разумно. Что касается использования Android, то его можно заменить почти любой другой мобильной платформой (рисунок 2). Но что, если заменить устройством Android микроконтроллер? В следующем разделе рассматривается расширенное приложение и возможности более серьезного использования Android в данной ситуации. Расширение приложенияПервая архитектура из этой статьи была организована вокруг микроконтроллера. Микроконтроллеры самых разных форм и размеров, от элементов Microchip 10F с шестью выводами до 32-битных монстров с массой периферии, выводов и памяти для хранения кода. Но что если вместо традиционного микроконтроллера применить устройство под Android? В некоторых случаях могут помешать соображения стоимости, но посмотрите, какие возможности открывает этот подход (рисунок 3)! Применение Android в качестве встроенного устройства позволяет работать с более богатой средой программирования. Вы можете продолжать контролировать те же характеристики влажности, температуры и потребляемой мощности, но заодно также вести запись аудио, видео и вибрации. Вы получаете мини-сигнализацию, систему контроля доступа и инструмент мониторинга окружающей среды. Так как Android так хорошо взаимодействует с телекоммуникационной сетью, можно обойтись без персонального компьютера и подключить его к сети напрямую. Этот подход также дает дополнительные преимущества по дистанционному обновлению программного обеспечения. Предположим, вы хотите добавить в программу новую функцию мониторинга (или просто исправить ошибку). При традиционном исполнении на базе микроконтроллера такая работа может оказаться трудоемкой, дорогостоящей или вообще невыполнимой. При использовании Android у вас есть более ясная модель внедрения с гораздо большей гибкостью. Сегодня Android работает в основном на мобильных телефонах, но эта система портирована на нетбуки и другие платформы. Будем надеяться, что эта статья дала вам пищу для размышлений. Мне пора пойти и включить мою систему мониторинга. Ведь никогда не знаешь, когда протечет очередной водонагреватель. ЗаключениеИз этой статьи вы в общих чертах узнали о сетевых возможностях Android. Мы рассмотрели несколько примеров приложений, которые можно создать, включая примеры взаимодействия с Web-сервером и передачей текстовых сообщений. Вы увидели, как можно соединить Android с реальной системой мониторинга окружающей среды. Приведенные примеры кода показали, как можно применять Android-устройства в нетипичных приложениях, например, в качестве встроенного контроллера. © Источник: Android-Phones.ru |

5 Мар 2010 в 22:39
0xDEFACE


Ключевые слова:
Еще в тему: