Wireless development tutorial частина 1, клуб для програмістів

Переклад статті Jonathan Knudsen і Dana Nourie

У цій статті міститься все, що вам треба знати для початку програмування на Java2 в середовищі Micro Edition (J2ME). У першій частині статі детально описано, як створити на своєму комп'ютері середу розробки, як написати найпростіше J2ME додаток, як виконати його компоновку і тестування. Оскільки MIDlet-и виконуються на мобільних пристроях, оснащених комунікаційним обладнанням, то в розпорядженні програміста виявляються найпотужніші інструменти для створення мобільних клієнт-серверних додатків. Друга частина статті цілком присвячена цьому питанню. У ній описано як створити і налагодити серверну частину програми (будемо називати її servlet-му) і як змусити MIDlet з нею взаємодіяти.







Що Вам необхідно?

Установка J2SE SDK

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

Після того, як ви заповните ці два поля, вам запропонують встановити інші настройки проекту. Приймемо все за замовчуванням і натиснемо OK. Проект буде створений. На текстової панелі J2ME Wireless Toolkit відображаються повідомлення, котороие підкажуть Вам де знаходяться вихідні вашого проекту. Я побачив такі повідомлення: Creating project "HelloSuite" Place Java source files in "C: WTK22appsHelloSuitesrc" Place Application resource files in "C: WTK22appsHelloSuite \ res" Place Application library files in "C: WTK22appsHelloSuitelib" Toolkit зберігає кожен проект в підкаталозі apps. Ім'я батьківського каталогу збігається з назвою проекту. У нашому випадку Toolkit створив новий каталог c: WTK22appsHelloSuite. Кожен проект містить стандартний набір каталогів:

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

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







Створення MIDlet-а

public class HelloMIDlet extends 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 ();
>

Натисніть на Exit, щоб вийти з MIDlet-а. Закрийте емулятор або натисніть Escape для завершення сесії емулятора.

Про те, що приховано від наших очей

Давайте повернемося назад і поговоримо про те що 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 в режимі командного рядка.