Платформа Java для мобильных устройств (часто именуемая J2ME от Java 2 Micro Edition) является основной платформой для разработки приложений под мобильные телефоны. Разработчики языка позаботились о том, чтобы приложение функционировало одинаково на всех (или почти на всех) аппаратах, для которых оно разрабатывалось.
Необходимые инструменты
Для написания программ желательно пользоваться специальными средствами, предназначенными для разработки программного обеспечения на J2ME.
Нужно заметить, что все описываемые средства являются бесплатными и доступны для свободного скачивания через Интернет с сайта производителя www.sun.com.
Ниже перечислен необходимый минимум инструментов.
• J2SDK Standart Edition (Java2 Software Development Kit Standart Edition, стандартный набор средств для разработки приложений на Java2). Пакет инструментов для создания программных продуктов на языке Java. В данный пакет входят компилятор, отладчик и др.
• WTK (Wireless Toolkit, набор инструментов для работы с беспроводными устройствами). В этот пакет входят инструменты для разработки приложений на J2ME. Нужно отметить, что WTK – своеобразная «надстройка» над стандартным набором средств, поэтому перед установкой WTK необходимо установить J2SDK Standart Edition.
• Эмулятор телефона. Когда программа будет написана, вы захотите посмотреть на нее в действии. Именно для этого и предназначены эмуляторы. С их помощью вы сможете протестировать свое приложение, не загружая его в мобильный, что значительно экономит время.
• Среда разработки. Оболочка, в которой вы будете писать программный код. Для серьезных проектов обычно используют специальные оболочки типа NetBeans или Borland Builder, но для наших нужд вполне будет достаточно стандартного текстового редактора Блокнот.
В этом списке перечислены инструменты, без которых разработка приложений невозможна. Существует еще большое количество дополнительных программ и инструментов от сторонних производителей, способных облегчить разработку, но их рассмотрение выходит за пределы этой книги.
Модель приложения
Программа, написанная на языке Java, состоит из фрагментов, хранящихся в разных файлах. Эти фрагменты называются классами. Причем если приложение состоит более чем из одного класса, то один из них должен быть главным, а все остальные зависимыми. При запуске приложения будет вызываться код главного класса, и уже затем он будет управлять всеми остальными. Если главный класс завершает выполнение, то код остальных также прекращает выполняться.
В листинге 6.1 представлен минимальный код программы.
Листинг 6.1. Минимальный код программы
Несмотря на то что эта программа ничего не делает, то есть является «пустой», она все же является полноценной с точки зрения языка программирования.
Мидлет (то есть приложение для мобильного телефона) может находиться в трех состояниях: активном, приостановленном и разрушенном. • Активно – в этом состоянии приложение находится во время использования, например, когда играете в игру.
• Приостановлено – приложение временно приостанавливает свою деятельность, но не разрушается. Например, когда во время игры вам поступает входящий звонок.
• Разрушено – приложение завершает свое выполнение, то есть выгружается из памяти. Например, вы закончили играть.
Как можно видеть на рис. 6.19, при запуске приложения оно сначала переходит в состояние «приостановлено». Затем, если происходит какая-либо ошибка, приложение переходит в состояние «разрушено» и выгружается из памяти. Если же инициализация прошла успешно, то приложение переходит в состояние «активно», то есть начинает свою работу. Нужно заметить, что за время своего выполнения работа может несколько раз приостанавливаться и продолжаться.
Рис. 6.19. Жизненный цикл приложения.
После того как был получен сигнал к завершению работы, например пользователь нажал кнопку Выход, приложение разрушается.
Итак, жизненный цикл приложения понятен, теперь рассмотрим, какие методы отвечают за переход в каждое состояние.
• startApp – вызывается, когда приложение переходит в активное состояние.
• pauseApp – отвечает за переход в приостановленное состояние, проще говоря, за паузу.
• destroyApp – вызывается, когда приложение должно завершить свое выполнение, то есть разрушиться.
Немного модифицировав диаграмму, рассмотрим полный жизненный цикл приложения, включая методы, отвечающие за переходы из одного состояния в другое (рис. 6.20).
Рис. 6.20. Переходы между состояниями.
Теперь, если мы немного дополним нашу программу и внесем в нее только что рассмотренные методы, код будет выглядеть следующим образом (листинг 6.2).
Листинг 6.2. Модифицированный код
Эта программа тоже ничего не выполняет, но имеет некоторые дополнения. Например, при входе в активное состояние, то есть при запуске, в консоль будет выведена строка Вход. При выходе из программы в консоли появится строка Выход. Таким образом, вы сами сможете следить за изменением состояния программы.
Компиляция и запуск приложения
Давайте проверим работоспособность нашей программы на практике. Запустите пакет J2ME Wireless Toolkit. Для этого откройте папку WTK22in (по умолчанию она расположен на диске C:) и запустите файл ktoolbar.exe. Отроется окно, представленное на рис. 6.21.
Рис. 6.21. Окно программы J2ME Wireless Toolkit.
Теперь создадим новый проект. Для этого нажмите кнопку New Project (Новый проект), расположенную в левом верхнем углу окна. Перед вами появится окно, изображенное на рис. 6.22.
Рис. 6.22. Окно создания нового проекта.
Поле Project Name (Имя проекта) содержит название вашего проекта. То, что вы введете в это поле, будет отображаться как название программы. Введите в него MyProject.
Поле MIDlet Class Name (Имя класса MIDlet) содержит название главного класса приложения, с которого будет начинаться выполнение программы. Содержимое поля MIDlet Class Name (Имя класса MIDlet) и название главного класса обязательно должны совпадать. Введите в этом поле MyClass.
После завершения ввода нажмите кнопку Create Project (Создать проект). Появится окно, содержащее сведения о свойствах проекта (рис. 6.23).
Рис. 6.23. Свойства проекта.
В свойствах проекта ничего менять не станем, оставим все как есть. Просто нажмите кнопку OK. Можно считать, что проект создан. Об этом свидетельствует содержимое консоли пакета J2ME Wireless Toolkit.
Пора вносить программный код. Перейдите в папку WTK22apps, в ней вы увидите вложенную папку MyProject – это и есть каталог нашего проекта. Внутри MyProject находится папка src, содержащая программный код проекта. На данный момент папка пуста, так как никакого кода мы туда не добавляли.