Логин:   Пароль:






Новости
Рассылки
Форум
Поиск


Java
- Апплеты
- Вопрос-ответ
- Классы
- Примеры
- Руководства
- Статьи
- IDE
- Словарь терминов
- Скачать

Мобильная Java
- Игры
- Примеры
- Статьи
- WAP, WML и пр.

JavaScript
- Вопрос-ответ
- Примеры
- Статьи

Веб-мастеринг
- HTML
- CSS
- SSI

Разминка для ума
Проекты
Книги
Ссылки
Программы
Юмор :)




Rambler's Top100
Rambler's Top100

Мобильная Java: СтатьиJava 2 Micro Edition - первые шаги

Java 2 Micro Edition - первые шаги

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

Родители вундеркинда работали в компании Sun Microsystems, которая в начале 90-х годов стояла перед задачей создания передового программного обеспечения для различных бытовых приборов, грубо говоря — для чайников. Основная проблема состояла в том, что для каждой новой модели бытовой техники существовали свои технические стандарты.

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

Письмо на удивление возымело большой успех, как у ведущих инженеров, так и у высшего руководства компании, а именно, у Билла Джоя, основателя Sun Microsystems, и Джеймса Гослинга, непосредственного начальника Нотона. В день планируемого увольнения Патрик Нотон получает зеленый свет на реализацию всех своих идей и собственную группу ведущих разработчиков под кодовым названием Green, чтобы они делали что угодно, но создали нечто необыкновенное.

Команда приступила к разработке нового объектно-ориентированного языка программирования, который должен был стать ведущим на рынке бытовой электроники. Вскоре Нотон предложил использовать новые наработанные технологии для интернет – приложений, были написаны компилятор Java и браузер HotJava. 23 мая 1995 года компания Sun официально представила Java и HotJava на выставке SunWorld ’95, именно тогда малыш сделал первый шаг к Вашему мобильнику.

Платформа Java 2 Micro Edition (J2ME) была разработана уже ближе к нашим дням для устройств с ограниченными ресурсами памяти и процессора, таких, как сотовые телефоны, пейджеры, смарт-карты, органайзеры и миникомпьютеры. J2ME позволяет запускать Java-приложения на ресурсо-ограниченных вычислительных устройствах. Для данных целей J2ME адаптирует существующую Java-технологию.

Первые шаги

А теперь перейдем собственно к программированию, может быть, не так уж и страшен этот черт. Для разработки приложений Вам понадобится установить некоторое программное обеспечение на Ваш компьютер. Существует много различных конфигураций и средств, подробнее о которых можно узнать на сайте разработчиков — http://java.sun.com/j2me/. Мы же для примера рассмотрим один вариант.

Рекомендуемая среда разработки — это Sun ONE Studio 4 update 1, Mobile Edition, она уже включает в себя последнюю на данный момент версию J2ME Wireless Toolkit.

Скачать Sun ONE Studio можно непосредственно у разработчиков по адресу http://www.sun.com/software/sundev/jde/studio_me/

Там же доступна и самая распоследняя версия Sun ONE Studio 5 в первом чтении. Так называемый «ранний доступ» (Early Access) предполагает привлечение пользователей к тестированию продукта, нужно ли Вам это – решайте сами.

Здесь Вас уже ожидает первый приятный сюрприз — компания Sun Microsystems распространяет продукты семейства Java абсолютно безвозмездно, то есть даром! Нужно лишь потратить несколько минут на регистрацию и качать на здоровье, если конечно Вам позволяет интернет-канал вытащить около 100 МБ. В благодарность разработчики хотят лишь отзывов о своем продукте, что, конечно же, не обязательно.

После первого запуска Sun ONE Studio рекомендовано запустить Tool – Update Center и инсталлировать последние патчи и обновления. Там будут присутствовать два отмеченных центра: NetBeans и SunONE. Первый не обязательный, но желательный. После соединения, появится дерево обновлений. Рекомендуемые обновления отмечены завернутой вверх стрелочкой. Нужно отметить их все и скачать, после чего перезапустить программу.

В принципе это все, что нужно, желательно подстраховаться и скачать Sun Java 2 Runtime Environment, Standard Edition (JRE) взамен часто критикуемого аналога от Microsoft. JRE — это базовый набор программ и библиотек для запуска Java-приложений и аплетов, скачать можно опять же у разработчиков (http://www.java.com/en/download/help/manual_download.jsp), устанавливаем, на все вопросы отвечаем положительно.

Также Вам может потребоваться эмулятор для запуска и тестирования программ на компьютере. Тут уже все зависит от модели Вашего телефона, потому что практически для каждой модели нужен свой эмулятор. Подробнее об эмуляторах мы уже писали вот здесь (/articles/j2me_emulators).

Возник уже вопрос, на чем будут работать все описанные средства? Отвечаем: официально поддерживаемые платформы это: Microsoft Windows NT 4.0 SP6/2000 SP2/XP Professional, Red Hat Linux 7.2, Sun Linux 5.0. Если Вы используете какую-то другую ОС, то разработчики снимают с себя какую-либо ответственность, но ради интереса попробовать все же можно.

Первые слова

Итак, все, что нужно установлено, можно начинать программировать. Традиционно первая программа будет писать вечные слова „Hello, World“, но не просто писать, а еще и посылать их в виде SMS-сообщения, что, согласитесь, гораздо интереснее.

Для начала запускаем Sun ONE Studio и создаем новый проект (Project – Project Manager — New), в окне конфигурации проекта выбираем CLDC/MIDP проект. В зависимости от модели телефона, возможно, нам потребуется добавить API для данной модели в файловые системы (окно Explorer – Файловые системы – Mount – Archive(JAR,Zip) – указываем каталог, где он установлен). Где взять этот API? Обычно, так же как и эмулятор, он входит в состав универсального пакета инструментов для разработки приложений на Java под мобильные телефоны от Nokia/Siemens/Motorola/… (нужное подчеркнуть).

Последний штрих – указать рабочий каталог (окно Explorer – Файловые системы – Mount – Local Directory) и добавить его в дерево проекта (Появившийся каталог – Tools – Add to Project). На этом подготовительная работа подошла к концу, можно приступать непосредственно к программированию.

Переходим в окне Explorer в первую закладку «Project ИмяПроекта» и нажимаем на самую левую кнопку в Toolbar. Получаем окно выбора шаблона проекта, выбираем MIDlet Suite, далее можно выбрать уже готовый шаблон программы HelloMIDlet, которая выводит пресловутые слова на экран. Теперь в окне Source Editor добавим в функцию startApp() код для отправки SMS, взятый прямо из спецификации:


try 
{
String addr = "sms://+358401234567";
MessageConnection conn = (MessageConnection) Connector.open (addr);
TextMessage msg = (TextMessage)conn.newMessage 
(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText ("Hello World!");
conn.send (msg);
} 
catch (Exception e) {} 

А в самом верху добавим такие строки для импорта пакетов поддержки SMS:


import javax.microedition.io.*;
import javax.wireless.messaging.*;

Далее компилируем нашу программу командой Build или Build All, в результате чего в папке проекта появятся файлы JAD и JAR. Все, что осталось сделать – скопировать получившийся JAR в телефон. Можно также сначала потестировать программу на эмуляторе, что в нашем случае не актуально.

Эмулятор можно интегрировать прямо в Sun ONE Studio таким образом: в окне Explorer переходим на закладку «Выполнение» (внизу окна), выбираем «Installed Emulators», по правой кнопке выбираем «Add emulator» и указываем каталог, где он установлен.

После того, как программа скопирована в телефон, можно попробовать ее в действии. При посылке сообщения адресату, тот может быть не доступен в данный момент, в этом случае сообщение будет доставлено ему позже. Не стоит наивно полагать, что SMS-сообщение таким образом становится бесплатным. Роль доставки сообщения возлагается на сервис-центр Вашей сотовой сети, и за отправку Вы заплатите по тарифам Вашего оператора. Так что будьте бдительны при тестировании программ на телефоне – ошибки, ведущие к бесконечным циклам, могут больно ударить Вас по карману.

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

Совет: масса документации по J2Me на английском языке находится по адресу http://java.sun.com/j2me/docs/

Остается только позавидовать тем, кто только начинает постигать радости программирования под мобильники, потому что технология очень хорошо документирована разработчиками, есть масса хороших книг и статей, а главное – перспектив. Количество обладателей сотовых телефонов уже приблизилось к двум миллиардам (!), мы уверены, что будущее именно за этими технологиями, так что запрыгивайте в поезд пока не поздно. Удачи Вам!

Автор: Евгений Буткевич (aka Voolcan)

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 11

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/books/show2b.php on line 30
Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 91

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/news/worldnews.php on line 95