Java все для мобильных устройств

Мобильные приложения для Java

Уже не первый год растёт популярность портативных устройств, работающих на платформах Android, Windows Mobile, Symbian, iOS. Телефонов и смартфонов, функциональные возможности которых мало уступают персональному компьютеру, становится всё больше, и они есть даже у детей. Однако существуют и другие аппараты.

До сих пор в мире используют довольно много мобильных телефонов начального уровня с ограниченными ресурсами. Они имеют небольшой объём памяти, малый размер дисплея и т. д. И чтобы обеспечить работу такого сотового телефона, нужны специальные Java-приложения. Как вы уже догадались, мы говорим про приложения, созданные для Java ME. Да, они ещё продолжают выходить, так как разработчики программ и приложений не забывают о владельцах, которым принадлежат подобные телефоны и другие приборы.

Назначение и возможности Java ME

Итак, когда разговор идёт про Java-приложения и программы для мобильников, обычно имеются в виду программы, разработанные для Java ME (J2ME). Это не что иное, как специальная версия Java, разработанная для гаджетов с ограниченной вычислительной мощностью.

Сама Java-платформа, используемая в таком телефоне, включает в себя несколько компонентов: 1. Виртуальная машина. Если перед нами телефон начального уровня, применяется конфигурация CDLC 1.0 (Connected Limited Device Configuration). Она предназначена для устройств с ограниченными коммуникационными возможностями и ресурсами. 2. Следующий компонент — профиль мобильного телефона, включающий в себя информационные функции MIDP (Mobile Information Device Profile). Именно по названию этого профиля разрабатываемые программы и получили прозвище «мидлеты».

На сегодняшний день в мире существуют порядка 3 миллиардов гаджетов, способных работать с приложениями Java. Однако это не только старые телефоны, продаваемые с рук. Удивительно, но Java-устройства существенно опережают смартфоны по количеству реализуемых товаров: их продают приблизительно в 30 раз больше, чем девайсов, созданных на базе пресловутых Android и iOS вместе взятых. И в этом нет ничего удивительного, т. к. речь идёт не только о мобильниках. Дело в том, что с помощью Java 2 Micro Edition работают пейджеры, смарт-карты, органайзеры, карманные персональные компьютеры (КПК), телевизионные цифровые приемники, принтеры, прочие мобильные и встраиваемые аппараты.

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

Читайте также:  Css selector no text node

Но, несмотря на всё это, Java ME постепенно отходит в прошлое. Например, ещё в далёком 2007 году разработчики объявили о поэтапном сворачивании мобильной платформы и переходе к стандартной версии Java. Тем не менее специалисты утверждают, что полностью такие девайсы исчезнут лишь в 20-х годах этого века. И это неизбежно, так как обычные мидлеты в большинстве случаев не актуальны, если говорить о современных смартфонах. К тому же, как вы думаете, на каком языке сегодня удобнее всего писать приложение для той же операционной системы Android? Правильно, на Java, но никак не на Java ME.

Что говорит официальный сайт Oracle?

Java-компоненты для мобильных устройств устанавливаются компанией-производителем заранее, поэтому их нельзя загрузить и инсталлировать самостоятельно. Также стоит учитывать, что модели некоторых карманных персональных компьютеров (Blackberry, Palm), смартфонов (iPhone, Android), планшетов (iPad, Android), MP3/MP4-проигрывателей (iPod), игровых приставок (Nintendo Wii) и прочих электронных приборов для личного пользования не поддерживают специальный подключаемый модуль Java. Чтобы это определить, нужно делать запрос на веб-сайте изготовителя с указанием конкретной модели.

Специально для Java ME-разработчиков корпорация Oracle подготовила дополнительную информацию, которая размещена в сети. Подробности и необходимые ссылки вы найдёте на официальной странице Oracle.

Источник

Java для мобильных устройств

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

Конфигурация

Конфигурация определяет среду выполнения J2ME. Она включает в себя виртуальную машину, ограниченную по сравнению с стандартной, VM и набор основных классов, в основном заимствованных из J2SE. В настоящий момент определены 2 конфигурации: Конфигурации коммуникационных устройств с ограниченными ресурсами (Connected Limited Device Configuration, CLDC) и Конфигурация коммуникационных устройств (Connected Device Configuration, CDC). Первая конфигурация ориентированна на микроустройства, оснащенные 16- или 32-битовыми процессорами с минимальным объемом памяти около 128 КБ. Сердцем J2ME CLDC является виртуальная машина K Virtual Machine (KVM), специально разработанная для сетевых устройств с небольшим объемом памяти и ограниченными ресурсами. Вторая конфигурация J2ME, CDC, ориентирована на более сложные электронные и встроенные устройства, такие как смарт-коммуникаторы, сложные «интеллектуальные» пейджеры, персональные цифровые помощники (PDA) и интерактивные цифровые телевизионные приставки. Как правило, такие устройства комплектуются 32-битовым микропроцессором/контроллером и оснащены более 2 МБ памяти, используемой для хранения виртуальной машины и библиотек. CDC работает с виртуальной машиной C Virtual Machine (CVM). CDC включает в себя все классы из CLDC и еще больше классов из J2SE. Главным отличием между CDC и CLDC является то, что CDC VM поддерживает все возможности J2SE VM, включая native programming interfaces

Читайте также:  Php access class by name

Профайл

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

Foundation Profile — добавляет набор классов из J2SE к CDC, но не вводит пользовательского интерфейса. Данный профайл используется для построения на нем других профайлов.jsr-46

Personal Basic Profile — обеспечивает Java API для устройств, требующих сетевой доступ и графическую презентацию. Данный профайл является подходящим для интерактивного телевидения и содержит API для поддержки Multimedia Home Platform. (JSR129)

Personal Profile — обеспечивает Java API для устройств, требующих надежный сетевой доступ. Построен на Personal Basic Profile и Foundation Profile (JSR62)

Рисунок 1. Архитектура J2ME.

CLDC (Конфигурации коммуникационных устройств с ограниченными ресурсами)

CLDC является результатом работы Java Community Process (JSP) экспертной группы JSR-30, которую составили следующие компании:

  • America Online
  • Bull
  • Ericsson
  • Fujitsu
  • Matsushita
  • Mitsubishi
  • Motorola
  • Nokia
  • NTT DoCoMo
  • Oracle
  • Palm Computing
  • RIM
  • Samsung
  • Sharp
  • Siemens
  • Sony
  • Sun Microsystems
  • Symbian

CLDC технология используется для построения на ней различных профайлов. Цель данной технологии — определить стандарт использования Java на устройствах с ограниченными ресурсами:

160-500 КБ памяти, доступной для Java-платформы,

низкое потребление энергии,

сетевое соединение 9600 bps или меньше.

Ниже представлены аспекты, которые попадают под «юрисдикцию» CLDC:

Нижеследующие вещи не входят в область рассмотрения CLDC: (Как правило, они определяются профайлами):

жизненный цикл приложений,

взаимодействие пользователя и приложения/

Java-язык и виртуальyная машина KVM

Основная цель для JVM, поддерживающей CLDC, быть совместимой с Java Language Specification насколько это возможно. За исключением различий, приведенных ниже, JVM которая поддерживает CLDC, совместима с Java Language Specification.

Нет поддержки floating point. Это связано с тем, что в устройствах с ограниченными ресурсами отсутствует поддержка floating point. Поддержка же на программном уровне была бы слишком дорогим удовольствием.

Читайте также:  Html xhtml css библия пользователя

Отсутствует метод finalize() и нет weak references. Это требование связано с необходимостью упрощения механизма сборки мусора.

CLDC поддерживает exception механизм, однако, его арсенал является ограниченным. Это связано с двумя причинами:

— восстановление после ошибок достаточно специфично для каждого устройства. К тому же многие устройства просто перезагружаются после некоторых своих ошибок, и приложение не может заботиться о таких ошибках;

— полная реализация механизма является слишком дорогим удовольствием для микроустройств.

KVM

Нет поддержки floating point. Это связано с тем, что в устройствах с ограниченными ресурсами отсутствует поддержка floating point. Поддержка же на программном уровне была бы слишком дорогим удовольствием. В JVM которая поддерживает CLDC отсутствуют байт-код, связанный с типами float и double.

KVM не реализует Java Native Interface (JNI). Поддержка JNI была отклонена по двум причинам:

— ограничения, накладываемые security-моделью CLDC (данная модель запрещает использовать native вызовы),

— полная реализация JNI была признана слишком дорогой для устройств с ограниченными ресурсами.

KVM не позволяет создавать свой class loader. Это ограничения накладываемое security моделью.

KVM не поддерживает Reflection-механизм. Java-приложения не могут инспектировать классы, объекты, методы, поля, нитки, выполняемые стеки в виртуальной машине. Как следствие сериализация, JVMDI (Debugging Interface), JVMPI (Profiler Interface) и другие технологии J2SE, основанные на Reflection-механизме, отсутствуют в CLDC.

KVM реализует многопоточность, но не поддерживает Thread group и daemon thread. Операции, такие как запуск и остановка, могут быть применены только над отдельной ниткой.

Отсутствует метод finalize() и нет weak references. Это требование связано с необходимостью упрощения механизма сборки мусора.

Ограниченный еrror handling механизм по сравнению с J2SE.

CLDC библиотеки

CLDC библиотеки можно разделить на две категории:

В первую категорию входят классы, наследованные из J2SE.

Во вторую – классы, которые вводит CLDC.

Классы, принадлежащие к первой категории, находятся, в пакетах java.lang.*, java.util.* и java.io.*. Эти классы производные из Java 2 Standard Edition версии 1.3. Данные классы являются идентичными соответствующим классам J2SE. Семантика классов и их методов не будет изменяться. К классам не будут добавляться любые public- или protected-методы, которые не являются доступными в J2SE.

Системные классы

Данные классы внутренне связаны с виртуальной машиной. Некоторые Java-приложения требуют наличия данных классов. Например, J2SE Java compiler (javac), генерируя код, требует наличия определенных функций String и StringBuffer классов. java.lang.Object
java.lang.Class

Классы, представлющие типы

Каждый из этих классов представляют собой подмножество соответствующих классов из J2SE.

Источник

Оцените статью