Wireless Development Tutorial Часть 1

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


Что Вам необходимо?

Надо сказать, у Вас есть достаточно богатый выбор среди коммерческих интегрированных сред разработки (IDE). Наиболее распространенными из которых являются Code Warrior Wireless Studio и Borland JBuilder. Я не буду заострять на них внимание, поскольку этим IDE посвящены многие книги, и вы легко сможете освоить их и без моей помощи. Вместо этого, я хочу помочь вам создать собственную эффективную и, заметьте, бесплатную среду для разработки MIDlet-ов. Надо сказать, что инструменты разработки MIDP широко распространены и доступны как в Windows, так и в Linux, OS X и Solaris. Наша среда будет состоять из трех компанентов. * Java 2 Standard Edition (J2SE) SDK version 1.4.2 или выше. (http://java.sun.com/products/j2se/) * J2ME Wireless Toolkit. Это пакет утилит для компановки и тестирования MIDlet-ов. (http://java.sun.com/products/j2mewtoolkit/) * Текстовый редактор. Можете использовать блокнот или что нибудь более подходящее, например jEdit. (http://www.jedit.org/) Ключевым элементом нашей среды будет J2ME Wireless Toolkit . Он может быть интегрирована в IDE, но может использоваться и отдельно. (J2ME Wireless Toolki не доступен в OS X) Выбор редактора зависит исключительно от вашего вкуса. В Unix-подобных системах это может быть emacs или vi. Некоторые Windows разработчики пользуются блокнотом, но как правило хочется чего нибудь более приспособленное для работы разработчика. jEdit подходящий в этом плане редактор. Он написан на Java и поэтому может быть использован в самых различных системах. Большинство IDE содержат свой собственный редактор.

Установка J2SE SDK

Прежде всего Вам необходимо установить J2SE SDK, поскольку он образует фундамент нашей среды разработки. (Вы можете иногда слышать, как разработчики называют этот пакет JDK или Java Developer's Kit, однако правильным названием является J2SE SDK). Текущую версию можно скачать отсюда: http://java.sun.com/j2se/ или заказать себе диск в интернет магазине:. Существует версия J2SE SDK для Linux, Solaris и Windows. Вы спрашиваете, как J2SE SDK поможет вам в разработке wireless приложений? Ну во-первых J2SE SDK создает Java платформу которая позволяет запустить J2ME Wireless Toolkit. Во-вторых он включает Java компилятор и другие утилиты, которые использует toolkit при компановке вашего приложения. После того, как Вы скачали J2SE SDK, можете приступать к его установке. В windows просто запустите скаченный файл. Инсталятор задаст вам пару вопросов и установит приложение. При выборе установки по умолчанию J2SE будет установлен в папку типа c:\j2sdk1.4.2. Вы должны добавить подкаталог bin в системную переменную PATH. Чтобы проверить нормально ли установился пакет, откройте коммандную строку и введите java -version Вот что вывелось на моем компьютере:

 C:\>java -version java version "1.4.2_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b03) Java HotSpot(TM) Client VM (build 1.4.2-b03, mixed mode) C:\>

Установка J2ME Wireless Toolkit

Следующим нашим шагом будет установка J2ME Wireless Toolkit - набора утилит, позволяющих выполнить компановку и тестирование MIDP приложений. (Вы можете воспринимать toolkit как миниатюрную IDE; Toolkit автоматизирует процесс компановки приложения MIDP и позволяет создавать пакеты для переноса на мобильный телефон.) Закачайте J2ME Wireless Toolkit отсюда: http://java.sun.com/products/j2mewtoolkit/. Запустите файл инсталяции. Инсталятор попытается определить расположение J2SE SDK на вашем компьютере. В случае каких-то проблем - укажите папку c J2SE SDK вручную. Кроме того, Вас попросят уточнить хотите ли Вы использовать toolkit отдельно или интегрировать его в IDE. Выберите первый вариант. По умолчанию установка производится в папку c:\WTK22. Инсталятор создаст несколько ярлычков. Для запуска toolkit-а выберите ярлык KToolbar. Вы должны увидеть следующую картинку:


 


J2ME Wireless Toolkit работает с проектами, конечным результатом которых являются MIDlet-ы. Toolkit не может работать с несколькими проектами одновременно. Вы можете выполнять компановку проектов, запускать их на эмуляторе, создавать пакеты для переноса на телефон и много всего другого... В состав J2ME Wireless Toolkit входят несколько примеров; посмотрите их как-нибудь на досуге. Давайте приступим к созданию проекта. Нажмите кнопку New Project. Toolkit спросит у Вас его имя, а также имя MIDlet класса. Введите HelloSuite и HelloMIDlet, как показано ниже:


 


После того, как вы заполните эти два поля, вам предложат установить другие настройки проекта. Примем все по умолчанию и нажмем OK. Проект будет создан. На текстовой панеле J2ME Wireless Toolkit отображаются сообщения, котороые подскажут Вам где находятся исходники вашего проекта. Я увидел следующие сообщения: Creating project "HelloSuite" Place Java source files in "C:\WTK22\apps\HelloSuite\src" Place Application resource files in "C:\WTK22\apps\HelloSuite\res" Place Application library files in "C:\WTK22\apps\HelloSuite\lib" Toolkit сохраняет каждый проект в подкаталоге apps. Имя родительского каталога совпадает с названием проекта. В нашем случае Toolkit создал новый каталог c:\WTK22\apps\HelloSuite. Каждый проект содержит стандартный набор каталогов:



В bin содержатся откомпилированные MIDlet-ы: suit (файлы .jar) и дескриптор ( .jad file); в папке lib - все дополнительные JAR файлы, которые подключаются к проекту; в res - файлы ресурсов, наример рисунки или текстовые файлы; в scr - исходные тексты проекта. Существует общепринятое правило именования файлов и каталогов. Пусть у нас есть исходный код класса user.Root, тогда для него мы должны создать файл scr/users/Root.java. Когда Вы производите компановку проекта в KToolbar, создается несколько новых каталогов:


 


Как видете, J2ME Wireless Toolkit создал папки classes, tmpclasses и tmplib. В большинстве случаев Вы можете смело их игнорировать.

Создание MIDlet-а

Давайте напишем простой MIDlet. Откройте текстовый редактор и поместите туда следующий код:

---------
javax.microedition.lcdui.*;
javax.microedition.midlet.*;
 
publicclass HelloMIDletextends MIDlet implements CommandListener{
 
private Form mMainForm;
 
public HelloMIDlet{
mMainForm=new Form("HelloMIDlet");
mMainForm.append(new StringItem(null,"Hello, MIDP!"));
mMainForm.addCommand(new Command("Exit", Command.EXIT,0));
mMainForm.setCommandListener( this);
}
 
public void startApp(){
Display.getDisplay( this).setCurrent( mMainForm);
}
 
public void pauseApp(){}
 
public void destroyApp( boolean unconditional){}
 
public void commandAction( Command c, Displayable s){
notifyDestroyed();
}
 
---------

Сохраните его как HelloMIDlet.java в папке scr нашего проекта. На моем компьютере этот файл сохраняется в c:\WTK22\apps\HelloSuite\src\HelloMIDlet.java. Затем нажмите кнопку Build в KToolbar. Toolkit приступит к компиляции вашего проекта. Если возникнут какие-нибудь ошибки, вы увидете их в текстовом поле KToolbar-а. Исправьте все возникшие ошибки и добейтесь успешного окончания компановки. Теперь Вы готовы к тестированию нашего MIDlet-а. Нажмите кнопку Run. Вы должны увидеть окно эмулятора с изображением телефона.


 


Эмулятор показывает список доступных MIDlet-ов. В нашем случае будет показан один MIDlet. Итак, Вы видите HelloSuite, при его выборе будет запущен класс HelloMIDlet. Чтобы увидеть где он встречается, перейдите в KToolbar и выберите Settings... Затем выберите MIDlets, чтоьбы увидеть список MIDlet-ов в проекте. Вернитесь в эмулятор, нажмите на изображение клавиши "Select" на телефоне. Это приведет к запуску нашего MIDlet-а. Будет показан простой экран (см. рис.)



Нажмите на Exit, чтобы выйти из MIDlet-а. Закройте эмулятор или нажмите Escape для завершения сессии эмулятора.

  Мы только что использовали эмулятор "стандартного" телефона (DefaultColorPhone). J2ME Wireless Toolkit позволяет эмулировать и другие телефоны. Попробуйте запустить HelloMIDlet на нескольких других устройствахи посмотрите как адаптируется к ним интерфейс. Выберите понравившийся вам эмулятор в выпадающем меню KToolBar-а и нажмите Run снова. Поиграйте со свим проектом. Откройте проекты, которые поставляются вместе с J2ME Wireless Toolkit и изучите их код.

О том, что скрыто от наших глаз

Давайте вернемся назад и поговорим о том что J2ME Wireless Toolkit делает за Вас. Toolkit автоматизирует несколько однотипных скучных шагов, которые вы вынуждены проделывать каждый раз. Что же происходит, когда Вы нажимаете на кнопку Build? Toolkit находит все файлы .java в каталоге scr вашего проекта и компилирует их. Это не обычная компиляция: исходный код должен быть откомпилирован в MIDP прежде чем его можно будет компилировать в J2SE. Это отклонение объясняется использованием в MIDlet-ах класса java.lang.System. Этот класс имеет различные API в J2SE и MIDP. Когда toolkit компилирует ваш MIDlet класс, вам необходимо использовать не J2SE версию, а MIDP java.lang.System. Вы можете выбрать версию самостоятельно, используя комманду javac с ключом -bootclasspath, но согласитесь, что проще запустить toolkit и не беспокоиться об этом. После компиляции MIDP классы должены быть перепроверены (переподтверждены preverified), прежде чем их можно будет запускать на MIDP устройствах. J2SE имеет байткодовую проверку, которая проверяет .class файлы прежде чем они загружаются. В мире MIDP проверка разделена на две фазы. Toolkit выполняет первоначальную проверку во время компановки, затем при запуске на целевом устройстве система выполняет вторую проверку, когда загружаются классы. Вы должны выполнить начальную проверку самостоятельно, используя утилиту коммандной строки preverify, но гораздо проще возложить все эти детали на Toolkit. Наконец, MIDlet-ы компануются в MIDlet suites для передачи на целевое устройство. Этот процесс включает упаковку в JAR MIDlet suites, ресурсные файлы и некоторую специфическую информацию. Иопять же все это лучше доврить J2ME Wireless Toolkit. Чтобы собрать MIDlet suite, выберите Project | Package из меню. В результате в папке bin будут созданы файлы .jad и .jar.

А дальше?

Вы уже имеете зачаточные представления MIDP программирование и обладаете всем необходимым софтом для создания MIDlet suit-ов, что довольно прогрессивно само по себе. Однако, клиентские MIDlet-ы лишь часть картины. Большинство по-настоящему интересных MIDlet-ов исползуют свом коммуникационные возможности и соединяются с какими-нибудь сетевыми службами. Во второй части статьи вы узнаете как установить, настроить и запустить серверную среду. Вы напишете простой Java servlet и модифицируете MIDlet так, чтобы он соединялся с этим servlet-ом.

Ресурсы

Документация пользователя, которая поставляется вместе с J2ME Wireless Toolkit включает полезную информацию о цикле разработки приложения, настройке атрибутов MIDlet-а, файлах во всех установленных директориях, типах устройств и их совместимости. Кроме того она содержит инструкции по настройки эмулятора и использованию Wireless Toolkit в режиме коммандной строки.



Авторы: Перевод статьи Jonathan Knudsen и Dana Nourie

Перевод: Arix




Наши соцсети

Подписаться Facebook Подписаться Вконтакте Подписаться Twitter Подписаться Google Подписаться Telegram

Популярное

Ссылки

Новости [1] [2] [3]... Android/ iOS/ J2ME[1] [2] [3]) Android / Архив

Рейтинг@Mail.ru Яндекс.Метрика
MobiLab.ru © 2005-2018
При использовании материалов сайта ссылка на www.mobilab.ru обязательна