ПредишенСледващото

Концепцията на API MIDP и J2ME изграждането на междуплатформени безжични приложения.

Производителите могат да използват устройствата, съвместими с MIDP да разработват приложения, които могат да работят с различни безжични платформи, както и завършването на платформата и да определи минималния. В тази статия, която е първата от три части серия, ние разгледа концепцията за API MIDP и J2ME платформи. Ще бъдат представени API, използвани за създаване на графиката, шаблони, съхранявани код, който се използва за връзка с външни ресурси. (3500 думи)

Безжичен индустрия удари очевидци скоростта на развитието на технологиите. Поради високия процент на всеки нов продукт може да не е актуално в рамките на няколко месеца. В резултат на динамичното развитие е липсата на стандартизация на работни платформи в безжична среда. екипи за развитие са изправени пред необходимостта да се овладеят множество езици за маркиране и процеси към техния продукт да работи с различни устройства. маркетингов отдел постоянно трябва да се промени посоката на развитие в променящия се пазар.

Устройства, съвместими с мобилен Информация за устройството профил (MIDP) позволяват на производителите да разработват приложения, които ще работят на различни платформи, без много усилия за създаване и обработка на всяка платформа. Това, от своя страна, ще позволи на разработчиците да се съсредоточат върху функционалността на системите.

Въведение в J2ME

J2ME платформа се основава на езика за програмиране Java, за да се осигури максимална функционалност за устройства с ограничени ресурси. Тя осигурява основен набор от функции, както и редица специализирани класове.

Тази статия се фокусира върху разглеждането на CLDC (конфигурацията на устройството връзка с ограничения) и класовете MIDP. Такъв клас създава така наречения профил по отношение на J2ME. Профил осигурява силни запаметяващи устройства ограничава скоростта на процесора, капацитета на батерията и трафик.

Въведение в API CLDC

Въведение в профила MIDP

Кратко например

Ето един прост пример за печат HelloWorld, който се прави преглед на цикъла на развитие MIDlet. MIDlet име е дадено кодове, които се изпълняват на мобилни устройства. Това е равносилно на аплет, който съдържа възможностите за потребителски интерфейс, данни и контрол.

Фигура 1 е копие на DefaultGrayPhone на екрана емулатор настроен J2ME Windows, което показва резултатът от MIDlet.

Устройство за програмиране MIDP

Фигура 1. Резултатът от MIDlet HelloMidlet

В подкрепа на класа MIDlet внесени специални класове, интерфейсът на CommandAction и графичен потребителски интерфейс (UI) класове потребителя. Тези класове са на разположение в състава на API MIDP състои от модифициран набор от програмния език Java класове. По-късно в тази статия ние ще обсъдим по-подробно класовете от MIDP на API.

Тази линия декларира, че HelloMidlet клас разширява клас MIDlet и внедрява CommandListener интерфейс. Всеки MIDlet трябва да се простира абстрактен клас на MIDlet, и разбирам, че има три начина, описани по-долу, които позволяват да финализира MIDlet.

Open Connect, която разказва дължина, вид и информацията за кодиране. Този интерфейс се простира StreamConnection интерфейс.

Отваряне на връзка за комуникация през HTTP използване на горни и специфични HTTP глаголи. Този интерфейс се простира ContentConnection.

отворен метод Connector () има следните основни форми:

javax.microedition.ui библиотека

javax.microedition.ui библиотека съдържа класове, които могат да се използват при разработването на потребителския интерфейс на MIDlet. API е фокусирана върху създаването на един от двата вида дизайн.

Екран обект и неговите подкласове, които ще разгледаме по-късно в HelloMidlet например, се използват за създаване интерфейси под формата на форми. Във втората част ще разгледаме възможността на тези интерфейси, в допълнение те могат да бъдат изследвани с помощта на Javadoc документация.

javax.microedition.rms библиотека

javax.microedition.rms библиотека съдържа класове, необходими за прилагането на данните в временно устройство за съхранение. Този вид на база данни имат ограничена възможност за съхранение и извличане на данни, поради ограничения на устройства размери.

Database API ще бъдат обсъдени във втората част на тази серия.

javax.microedition.midlet библиотека

javax.microedition.midlet библиотека съдържа класа на MIDlet. Класът MIDlet изпълнява основния цикъл MIDlet и има метод getAppProperty (ключ), за да получите достъп до информация за свойствата на програмата, посочена в досието на Джад.

Първи стъпки

След като придоби предишния пример урока и разбрах с MIDP платформи състав, нека разгледаме инсталационния процес MIDP среда. Ние допълнително изследва процеса на изграждане и обслужване на класа MIDlet.

монтаж

Sun въведе нов набор от инструменти sluzhashy за улесняване на развитието на MIDlet. 2 mikroredaktsiya Wireless Toolkit Java (вж. J2MEWTK) има всичко необходимо, за да се разработи MIDlet.

Сега е възможно да назовем две ограничения за инсталационния пакет. Първо, тя може да работи само на Windows. Може би скоро Sun обяви старта версии за Solaris и Linux. На второ място, на името на инсталационната директория не може да съдържа интервали, което изисква вътрешен процес компилация.

След изтеглянето на набора от инструменти, просто кликнете върху него с мишката няколко пъти и той ще започне да работи. Преди да започнете инсталацията път се изисква за поставяне на програмните файлове. J2MEWTK може да се интегрира с Forte среда за разработка, която също е снабден нд е необходимо да се инсталира Forte Rasschirennaya инструментариум, за да изберете, когато инсталирате обичай конфигурация, а не модел.

Следната структура се създава в посочената директория. Имайте предвид, че, както вече беше посочено, ако името на директорията съдържа интервали, процеса на предварителна проверка няма да работи коректно.

Работещи KToolbar

KToolbar тече от командния ред, или от менюто Start, където се създава пряк път по време на инсталацията. Zapuskalka нарича Ktoolbar.bat.

Трябва да видите нещо подобно на образа на фигура 2.


Фиг. 2. KToolbar J2ME Wireless наръчници

Създаване на проект

След стартирането на програмата можете да създадете файл на проект HelloMidlet един, който бе обсъден по-рано. За да направите това, натиснете "Нов проект". Фиг. 2. показано на фиг. 3 диалог.


Фиг. 3. Диалог на новия проект.

Това предизвика името на проекта и клас името на диалоговия прозорец, който ще бъде основно за MIDlet на на, и съответно, че получава директно в проекта. Проектът може да съдържа множество MIDlet, така че можете да промените името на MIDlet ако е необходимо.

В нашия пример, ние влиза HelloMidlet и името на проекта, както и в областта на класа. След въвеждане на информация, натиснете бутона "Създаване на проекти", резултатът ще бъде настройките на поле за въвеждане на проекта, както е показано на фиг. 4.


Фиг. 4. Настройки на проекта HelloMidlet.

Инсталации на фиг. 4 е по подразбиране. Значение MIDlet-Jar-URL се състои от името на проекта. Яви се променят ценностите не е необходимо.


Фиг. 5. Допълнителни атрибути на проекта HelloMidlet

Фиг. 5 показва KToolbar на екран, където можете да зададете атрибута на проекта. MIDlet да използвате тези атрибути в заявлението. Затова е препоръчително да се определи константата тук, и не ги предписват в кода.


Фиг. 6. MIDlets в проекта HelloMidlet

Фиг. 6 показва списък с всички MIDlets, които станаха част от проект HelloMidlet. J2ME инструментариум за Windows и ви позволява да промените MIDlet стартовата поръчка на емулатора на файла буркан. В нашия случай, само един MIDlet - MIDlet-1.

Съставете MIDlet

J2MEWTK има вградена програма, която изпълнява процеса на компилация проект. За съставянето на данните, трябва да щракнете върху бутона "Билд", която е видима на фиг. 2. Този процес инструментариум компилация е автоматизиран, но в други това не може да се случи. Ето защо, ние да описва стъпките на процеса на:

  1. за съставяне на директория създадена класове и tmpclasses
  2. резултати kompiliyatsii Java изходния код са поставени в tmpclasses на директориите
  3. клас файлове са предварително тествани и копирани в класовете на директориите
  4. сканираните файлове са добавени в буркана
  5. буркан се добавят към файловете на ресурсните
  6. генерирани напомняне за актуализиране на файлове буркан размер и Джад

В резултат на извършената работа в буркана съдържа всички доказани клас файлове, които са необходими за записване на програмата към устройството и да Проектът Джад файл.

Джад файл съдържа пълна информация за MIDlet, имената и стойностите на неговите свойства. Джад файл за HelloMidlet клас в нашия пример е както следва:

Тук, наред с други области, изброени MIDlet име, URL, размер, версия. Най-интересното линия MIDlet-1. Този файл Джад съобщава само един MIDlet, толкова самотна тази линия. Ако имаме работа с н MIDlets, щяхме да имаме п линии:

Всеки ред съдържа името на MIDlet по този начин, графичен файл от името на класа MIDlet и MIDlet.

Защо предварителен скрининг?

Както беше отбелязано по-рано, файловете на класа са предварително пресяване етап. Този процес гарантира, че файловете на класа няма да изпълни грешната операция, определени преди това. Освен това, е полезно да се вземат мерки, за да се оптимизира за по-мощна машина, отколкото да ги оставят на виртуалните машини споделите устройството.

KVM, работната памет 1 К, за оптимизирани процеси в тези устройства, но не и за основните операции, които могат да бъдат utstranit използване на предварителни тестове.

Изпълнение на MIDlet

Изпълнение MIDlet също могат да бъдат контролирани от J2MEWTK. Фиг. 2 показва пролука KToolbar натиснете "Run". Този бутон е достъпен, когато проектът е заредена. това е необходимо, за да изпълните MIDlet изберете устройството, на която да го тествате от следния списък:

След като изберете устройството, което трябва да кликнете върху бутона Run и стартирате емулатора. MIDlet може да се управлява от командната линия:

Синтаксисът на командата е описано в точка 5.5.2.1 ръчно разпределение нд

Пример графична среда

Следният пример илюстрира как една проста графична среда, която може да помогне за овладяване на развитието на графични кодове MIDP среда.

Един прост пример с рисунка съдържа следните класове:

  • GraphicalMidlet: MIDlet клас, който осигурява взаимодействие с устройството
  • GraphicalCanvas: изготвяне площ графични обекти
  • GraphicalObject: графичен обект, който реализира интерфейса Изпълнима
  • MovingTextObject: преместване текстов обект
  • VerticalScrollingTextObject: удължаване на текстов обект

В примера GraphicalMidlet клас простира клас MIDlet и наследява своите модели на поведение. Този клас също е отговорен за изпълнението на CommandAction интерфейс за Exit обработка команда, когато потребителят работи с приложението.

GraphicalMidlet клас конструктор работи с статичен обект Display. Конструктор създава копие на GraphicalCanvas класа, за които изпълнява CommandListener.

Конструкторът създава нова GraphicalCanvas VerticalScrollingTextObject, който предава съобщението на областта за чертане. В тази проста среда не се обработват повече информация за скорост, местоположението и цвета на текстовото съобщение. Изпълнението на тези функции може да се извърши от читателя като упражнение.

Използвайте приложението използва метод GraphicalCanvas боя, за да прехвърлите прилагането на екрана. В този случай, областта за чертане ще изтрие всички предишни рисунки и дава GraphicalObject се съставя самостоятелно.

започнете () предизвиква метода на GraphicalMidlet старт (), за да информира GraphicalCanvas да започнат работа. В този пример, платно клас създава нова програма поток, съдържащ Изпълнима GraphicalObject. След това платно клас започва нова тема, така че тя да може да изпълнява обработка преди викането на метода и да инициира пребоядиса фигура в областта за чертане.

Можете също така да се изгради този пример, за да създадете повече от един графичен обект. GraphicalObject на областта за чертане и ги пуснете едновременно.

Клас GraphicalObject освободи Изпълнима интерфейс и може да се управлява в потоци клас GraphicalCanvas метод старт (). Тема ще продължи, докато не завърши метод stopThread.

GraphicalObject не знае, когато той е създаден, за да се направи или преместване на предмети върху основата му, но той определя два метода, които трябва да бъдат заменени. Това са следните методи:

Предимно тези техники могат да бъдат приложени MovingTextObject желаното движение на обекта, и метод на изтегляне. По този начин, за реализацията на друг обект, например, въртящи се зъбни колела, ние само трябва да се промени начина, по който боята и да се премести.

В метода на ход () позоваване getX () и getY () за позиции X и Y на движещ се обект на. Това се прави, за да се демонстрира потенциала на разширенията на средни. В този случай, разширението е съвсем проста, getX () метод връща постоянна стойност, getY () метод увеличава позицията на Y, докато се стигне до долната част на дисплея.

Създаване на различни реализации MovingTextObject, можете да реализирате най-различни модели на трафик. Например, RandomMovingTextObject клас може да реализира най-произволни стойности за X и Y позиция и да ги върне от методи и getX getY.

Следваща в тази серия

В първата статия, си поставих за задача да ви запозная с концепцията за MIDP, за да докаже, жизнения цикъл на приложение като пример за един прост код и да го използвате като графична илюстрация на един пример, подобно на прости аплети, което много от вас имат по едно време, наложено.

В част 2 ще разгледаме системите за съхранение, които са достъпни чрез безжични устройства в MIDP. Използвайки примера на форма-базирани, ние анализираме API, който се може да се използва за създаване на безжична база данни.

В част 3, смятаме, че API връзки на безжични устройства към външни източници на данни, като например URL адрес. В допълнение, значително пример за приложението ще илюстрира някои от концепциите, които използват по-ефективно MIDP.

заключение

Изпълнение на кода на Java в безжични устройства е следващата логична стъпка в развитието на платформата. MIDlets имат потенциал за революционната платформа трансформация, което позволява на разработчиците да предоставят на потребителите на мобилни с лесни за използване решения по-голяма функционалност. Ние сме в съчетание главния програмист подобри риболов, например, определяне на местоположението и платформата е podhodyashey за миг реализация.

Развитието в тази област много приятно, защото позволяват на безжичния свят за разработчиците да научат нови неща през API Java. Платформата дава на понятието "пиша веднъж, тече навсякъде" нова стойност, дори и в рамките на Java.

Майкъл Cymerman е директор изследвания и развитие в GroupServe, Вашингтон, окръг Колумбия, на базата на телекомуникационна фирма, която създава интернет приложения, за да се улесни група комуникация.


Предупреждение. mysql_connect () [function.mysql-свърже]: Не може да се свърже с местния MySQL сървър чрез гнездо "/tmp/mysql.sock" (2) в /pub/home/javaport/javaportal/books/show2b.php по линия 11

Предупреждение. mysql_db_query () [function.mysql-db-заявка]: Не може да се свърже с местния MySQL сървър чрез гнездо "/tmp/mysql.sock" (2) в /pub/home/javaport/javaportal/books/show2b.php на ред 19

Предупреждение. mysql_db_query () [function.mysql-db-заявка]: връзка към сървъра не може да бъде установена в /pub/home/javaport/javaportal/books/show2b.php на линия 19

Предупреждение. mysql_fetch_array (): доставени аргумент не е валиден MySQL резултат на ресурсите в /pub/home/javaport/javaportal/books/show2b.php по линия 30
Разберете това, което наистина мисля сега тук.


[Възникна грешка при обработката на настоящата директива]


Предупреждение. mysql_connect () [function.mysql-свърже]: Не може да се свърже с местния MySQL сървър чрез гнездо "/tmp/mysql.sock" (2) в /pub/home/javaport/javaportal/news/worldnews.php по линия 91

Предупреждение. mysql_db_query () [function.mysql-db-заявка]: Не може да се свърже с местния MySQL сървър чрез гнездо "/tmp/mysql.sock" (2) в /pub/home/javaport/javaportal/news/worldnews.php на Онлайн 93

Предупреждение. mysql_db_query () [function.mysql-db-заявка]: връзка към сървъра не може да бъде установена в /pub/home/javaport/javaportal/news/worldnews.php на линия 93

Предупреждение. mysql_fetch_array (): доставени аргумент не е валиден MySQL резултат на ресурсите в /pub/home/javaport/javaportal/news/worldnews.php по линия 95

Подкрепете проекта - споделете линка, благодаря!