Полная версия
Программирование для мобильных платформ. Android и WP. Учебный курс
Последняя версия – 2.0 – более «объемна» по дизайну и унифицирует то, как выглядят на экране различные платформы (Windows Mobile, Symbian, Android), а также организует рабочий стол в так называемый мультимедийный куб (кубический шестисторонний рабочий стол). В последней версии есть три панели для виджетов, которые можно перетягивать по экрану простым перемещением и вытягивать из боковой панели простым движением пальца. Одним движением можно настроить и сам экран (например, выбрать обои, раскрыв Home Screen Customizer), проскроллить основные пункты меню, создать сообщение и т. д.
В TouchWiz 2.0 также поддерживается акселерометр и приложение разблокировки, которое дает быстрый доступ к некоторым апплетам в заблокированном режиме.
1.9 Обзор инструментов разработчика приложений для мобильных устройств
Есть два принципиально различных типа программ для мобильных устройств: самостоятельные приложения и исполняемые файлы, которые запускаются только при наличии установленной в устройстве специальной среды – интерпретатора.
В первом случае для «перевода» текста программы на язык, понятный какой-либо платформе (операционной системе), необходим компилятор – специальное приложение, которое, как правило, входит в состав средств разработчика. Пропускаем написанный код через компилятор и на выходе получаем самостоятельное приложение для совместимой платформы. Достаточно скопировать его на соответствующий аппарат и элементарно запустить. Поясним: в случае с обычной Windows XP компилятор выдает EXE-файл. Все, что требуется от пользователя для запуска, – это двойной клик. Компилируемые языки программирования в освоении сложны, зато творческих возможностей предоставляют больше. C++, например, – стандарт де-факто при разработке ПО, в том числе и для многих мобильных платформ.
Первый метод создания программ отличается инструментами (для каждой операционной системы – свои) и файлы, созданные в этих инструментах, запускаются только на тех платформах, для которых они созданы.
Во втором случае – интерпретатор занимается тем, что объясняет данному устройству, как следует выполнять код программы. Пожалуй, самый известный пример интерпретатора – виртуальная машина Java, которая, кстати, по умолчанию наличествует не только в смартфонах, но и практически в любых современных телефонах. Интерпретатор Java – универсален. Одна и та же Java-программа, как правило, выполняется и на Windows Mobile коммуникаторе, и на каком-нибудь музыкальном телефоне Sony Ericsson.
Cсуществуют интерпретаторы для мобильных приложений, написанных на языках Python, mShell (создан фирмой infowing AG (www.mshell.net)) и Basic, хотя эти интерпретаторы скорее экзотика, чем норма.
Минусы интерпретаторов – в относительно медленной скорости работы, а кроме того, они обладают изрядным аппетитом в плане потребления ресурсов. Зато такие языки просты для изучения и инструменты для их создания носят универсальный характер и созданные программы работают на всех платформах одинаково.
Таким образом, в зависимости от типа (исполнения) программного обеспечения для мобильных устройств можно выделить следующие классы инструментария программиста:
1. Инструменты для разработки «мидлетов» – программ, выполняемых на виртуальных Java машинах мобильных устройств (или программ для других интерпритаторов);
2. Инструменты для создания специализированного программного обеспечения под одну из мобильных операционных систем.
1.9.1. Инструменты для разработки «мидлетов».
На данный момент почти все выпускаемые мобильные устройства имеют предустановленную возможность для запуска Java-программ (мидлетов). Большая распространенность этой технологии привлекает внимание разработчиков коммерческих продуктов (особенно игр), но и обычный пользователь может сделать что-нибудь свое.
Базовый язык для разработки программ под Java интерпретатор («мидлетов») Java ME. Чтобы вести программирование по этой технологии необходимо создать у себя на компьютере специальную среду разработки. Основу этой среды составляет Java ME SDK – специальный комплект средств разработки. В настоящее время существует несколько различных версий SDK от разных производителей, их использование позволяет создавать мобильные приложения, заточенные под определенные телефоны и мобильные платформы. Соответственно доступные программисту JSR расширения и функциональные возможности среды разработки будут сильно зависеть от выбранного SDK. Наиболее распространенные Java ME SDK программиста следующие:
– Sun Java ME SDK 3.0
– NetBeans 6.5 IDE
– MOTODEV Studio for Java ME
– Nokia S60 SDK
– Nokia S40 SDK
– Nokia NFC SDK
– BlackBerry JDE 4.7
– Sony Ericsson SDK 2.5 for Java ME
– LG SDK 1.2 for Java ME
Кроме того, для разработки «мидлетов» применяются специальные интегрированные среды, например – MIDletPascal.
Sun Java ME SDK 3.0
Sun Java ME SDK 3.0 стала де-факто стандартом на рынке мобильных программ. Java ME SDK – кульминация проекта Java Wireless Toolkit. J2ME SDK поддерживает следующие JVM платформы:
– CLDC/MIDP: Общая JVM конфигурация для мобильных телефонов.
– CDC/FP/PBP/AGUI: JVM конфигурация для high-end смартфонов
– CDC/FP/PBP/BD-J: JVM конфигурация для Blu-ray Disc плееров.
Java ME SDK – одна из нескольких доступных SDK ориентированных на некое гипотетические устройство, что дает возможность разрабатывать и отлаживать мобильные приложения перед «заточкой» их под конкретную мобильную платформу. SDK содержит Platform Manager, который позволяет эмулировать конкретную платформу. На рисунке 1.9 показан Java ME SDK 3.0 с запущенным эмулятором JavaFX телефона.
Рисунок 1.9 Вид среды разработки Sun Java ME SDK 3.0
В отличие от Java Wireless Toolkit, Java ME SDK содержит IDE и Вы можете разрабатывать и тестировать свои приложения в этой среде. Нужно отметить, что Java ME SDK не поддерживает разработку JavaFX приложений, однако он содержит несколько эмуляторов JavaFX 1.1 телефонов (один с тачскрином и один – без), которые позволяет запускать и тестировать JavaFX Mobile приложения. Для создания JavaFX Mobile приложений можно использовать NetBeans IDE. Основным отличием Java ME SDK 3.0 от предыдущих версий является процесс конфигурирования SDK для Blu-ray разработки. Последняя сборка содержит BD-J библиотеки. Таким образом, устранены преграды, стоявшие перед разработчиками BD-J приложений.
Одной из главных особенностей Java ME SDK 3.0 является возможность пошагово отлаживать приложения на реальном мобильном устройстве. Данная возможность пока доступна только для Windows Mobile 6 устройств.
MOTODEV Studio for Java ME
MOTODEV Studio for Java ME – еще одна Java ME SDK, ориентированная на Motorola устройства и имеющая ряд дополнительных сервисов:
– Bluetooth Service
– Landmark Storage
– Location Service
– Remote Control (Bluetooth)
– SIM Configuration
– SIP Proxy
– WMA Server
Эти сервисы позволяют Вам симулировать реальные события без необходимости отладки на реальном устройстве. Например, Bluetooth Service содержит Rococo Bluetooth симулятор, который позволяет симулировать Bluetooth устройства в MOTODEV Studio.
Рисунок 1.10 Вид среды разработки MOTODEV Studio for Java ME
MOTODEV Studio отлично подходит для разработки приложений ориентированных на Motorola утстройста. Вы можете отлаживать приложения на реальных устройствах подключив их по USB.
Nokia S60, S40, and NFC SDK
Nokia предлагает программистам 3 SDK для разработки мобильных приложений. В состав SDK различные утилиты, например SVG => SVG-Tiny конвертор, который может быть очень полезным, если Вы планируете использовать JSR 226 API для отображения векторной графики. Как и рассмотренные выше SDK, S60 SDK позволяет проводить отладку приложений на реальных устройствах, однако он имеет особенность, позволяя перенаправлять System. out и System.err сообщения.
S40 SDK включает Nokia Connectivity Framework, который позволяет эмулировать Bluetoth и SMS сообщения.
Если Вы хотите заняться разработкой для wireless smart card, Вам стоит задуматься над использованием инструментов S40 Nokia 6212 NFC SDK.
Рисунок 1.11 Вид среды разработки Nokia
Этот SDK не только поддерживает JSR 257 API, но и позволяет симулировать наличие либо отсутствие виртуальной смарт карты. SDK также поддерживает OMNIKEY и PEGODA карт-ридеры, которые подключены к Вашему настольному компьютеры, что позволяет быстро создавать и тестировать приложения на реальных NFC картах. Скриншот S40 Nokia 6212 NFC SDK показан выше.
BlackBerry JDE 4.7
BlackBerry JDE 4.7 – это полноценная среда для разработки и тестирования мобильного приложений для BlackBerry. Чтобы помочь разработчикам с их проектами, BlackBerry JDE 4.7 содержащих более 50 примеров проектов, которые используют Java ME JSR API и дополнительные BlackBerry API. JDE 4.7 содержит эмуляторы BlackBerry 9500/9530 с сенсорным экраном.
Рисунок 1.12 Вид среды разработки BlackBerry JDE 4.7
Кроме того эмулятор может реагировать на следующие события:
– Наличие USB соединения
– Наличие гарнитуры
– Эмуляция сенсорного-скрина
– Изменение ориентации (тряска устройства)
– Уровень батареи
– Установка или извлечение SD карты
– Входящий звонок
– Изменение GPS положения
– Использование камеры
Sony Ericsson SDK 2.5 for Java ME
Если Вы хотите сосредоточить свое внимание над экспериментами с JSR расширениями, можете поиграться с Sony Ericsson SDK 2.5 for Java ME. Особенно Вам следует обратить внимание на этот SDK, если Вы хотите использовать JSR 177 Security или Trust Services API (SATSA):
– SATSA APDU: Базовые соединения с Java Card апплетами на SIM карте
– SATSA Crypto: Для шифрования
– SATSA PKI: Цифровая подпись
– SATSA JCRMI: Для RMI соединения с Java Card апплетами на SIM картами
Sony Ericsson SDK 2.5 for Java ME поддерживает 3D графику и анимацию: JSR 184 (Mobile 3D Graphics), JSR 239 (Java Binding for OpenGL ES) и Mascot Capsule API. Sony Ericsson SDK 2.5 for Java ME один из нескольких SDK, которые поддерживают JSR 229 Java Payment API. На приведенном ниже рисунке показана интеграция Sony Ericsson SDK 2.5 в NetBeans 6.5 IDE.
Рисунок 1.13 Вид среды разработки Sony Ericsson SDK 2.5 for Java ME
LG SDK 1.2 for Java ME
LG SDK 1.2 for Java ME не блещет особой функциональностью и не очень хорошо поддерживает JSR расширения.
Рисунок 1.14 Вид среды разработки LG SDK 1.2 for Java ME
Однако, это единственный SDK с поддержкой JSR 300, и DRM API, которые обеспечивают работу с защищенным цифровым контентом (графикой, звуком, видео). LG SDK 1.2 for Java ME не содержит IDE, однако он, как впрочем и все другие SDK, может использоваться с NetBeans IDE.
LG SDK 1.2 может симулировать различные события:
– Изменения в файловой системе
– Изменение местоположения
– Транзакция оплаты
– Изменение состояние подключенного устройства
LG SDK 1.2 содержит также средства просмотра SVG файлов.
Для более удобного программирования в указанных выше SDK, удобно применять интегрированные среды разработчика (IDE), имеющие инструменты визуального программирования форм и встроенные отладчики. Наиболее применяемой IDE для создания «мидлетов» является среда NetBeans.
NetBeans 6.5 IDE
Если вы хотите поработать над визуальным аспектом своего приложения, то вам следует воспользоваться NetBeans IDE. Эта среда наиболее подходит для разработки, проектирования и тестирования JavaFX приложений. Основным принцип JavaFX – дать разработчикам возможность разрабатывать десктопные, веб-ориентированные и мобильные приложения, используя один API framework.
Рисунок 1.15 Вид среды разработки NetBeans 6.5 IDE
В состав NetBeans 6.5 IDE входит Mobility Visual Designer – WYSIWYG утилита, позволяющая в визуальном режиме проектировать интерфейс Вашего приложения. В состав NetBeans 6.5 IDE (org.netbeans. microedition) входят следующие визуальные компоненты: Alert, File Browser, Form, List, Login Screen, PIM Browser, SMS Composer, Splash Screen, Text Box, Wait Screen.
Mobility Visual Designer поддерживает векторную SVG графику и анимацию.
Язык Java показался сложным? Тогда стоит использовать программы-посредники: «скармливайте» им программу, написанную на родственниках таких популярных языков, как Pascal и Basic, и на выходе получайте готовый Java-мидлет. Ярким примером такого «посредника является IDE MIDletPascal.
MIDletPascal
MidletPascal – это инструмент (IDE) для написания программ на языке Pascal для мобильных телефонов. Код транслируется в привычные для владельцев мобильников JAD и JAR файлы. Поставляется MidletPascal с собственной, дружественной к пользователю средой разработки (IDE). Среда имеет встроенный компилятор, инспектор кода Java и обеспечивает построение архива JAR, что избавляет от установки Java SDK. В итоге компиляция и компоновка мидлетов проста, как нажатие на кнопку. Порадует вас встроенная справка по доступным функциям: работа с графикой, SMS, звуками, файлами и т. д.
Рисунок 1.16 Вид среды разработки MIDletPascal
Таким образом, для компиляции не требуется ничего, кроме самого MidletPascal, что очень удобно при начальном обучении программированию для сотовых телефонов.
OmegaBasic
OmegaBasic – специализированная среда разработки для создания программ и игр. Включает удобный редактор, поддерживает работу с проектами. Можно просматривать несколько файлов, ставить закладки, распечатывать справку по функциям. OmegaBasic позволяет работать с графикой, картами, звуком, музыкой, анимацией, видео и сетью. В качестве основного языка программирования используется Basic. Можно программировать и на Java, используя расширенный набор API OmegaBasic. Сайт разработчика – omegabasic.thegamecreators.com, оттуда можно скачать триальную версию, в которой программы ограничиваются 250 строками кода. Для функционирования OmegaBasic необходимо установить на ПК Java 1.4 SDK и Java Mobile 1.2 SDK.
MobileBasic
MobileBasic – такая же специализированная среда. Ее особенность – наличие сервисов по так называемой немедленной OVER-THE-AIR («по воздуху») установке написанных мидлетов на телефоны. Написав программу, программист в MobileBasic может сохранить ее в виде JAD и JAR – файлов. Эти файлы с помощью MidletUploader выгружаются на сервер MobileBasic. Сервер создает WAP/WML – страницы, подключившись к которым с помощью WAP-браузера телефона можно установить мидлет. Кроме этого сервиса, в MobileBasic имеется графический редактор, редактор карт и плиточных изображений, а также редактор мелодий для телефонов Nokia.
Скачать демо-версию MobileBasic можно со страницы www.mobilebasic.com/desktopedition.html. Стоимость продукта – 24,99 фунтов стерлингов, ограничение триальной версии – максимум 1 Кб исходного кода. На сайте не стоит пренебрегать регистрацией, иначе запустить MobileBasic получится не более 30 раз. Как и в прошлом случае, необходимы установленные на компьютер Java SDK.
Итог: OmegaBasic и MobileBasic – почти близнецы в плане подхода к написанию кода, к тому же обладают схожим функционалом. Недостатки: необходимость приобретать платную версию и устанавливать Java SDK. На этом фоне ярко выделяется MidletPascal – самый популярный, простой в установке, и главное – бесплатный! Именно поэтому среда MidletPascal, в данном пособии, будет в дальнейшем рассматриваться более подробно.
1.9.2 Инструменты для создания программного обеспечения в операционных системах мобильных устройств
Инстументарий для программирования в Symbian
Программная платформа Symbian Series 60 (или S60) – самая популярная в мире смартфонов и коммуникаторов, если судить по продажам мобильных устройств. Поэтому приложения именно для этой платформы весьма актуальны.
C++ for Symbian – наилучший (и, по сути, единственный) язык для создания профессиональных и коммерческих приложений для смартфонов Symbian Series 60. Именно на нем пишется сама система и предустановленное программное обеспечение. Если вы полны решимости программировать на C++ for Symbian, то необходимо установить:
– среду разработки – CodeWarrior (www.forum.nokia.com/codewarrior),
– Carbide. с++ (www.forum.nokia.com/main/resources/tools_and_sdks/ carbide_cpp/) или другое;
– SDK для Symbian соответствующей Edition и Feature Pack под нужную среду разработки (www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html);
– Java 2 Standard Edition;
– Perl версии не ниже 5.003.07.
При создании программ на C++ for Symbian можно получить доступ ко всем возможностям смартфона, что не идет ни в какое сравнение с Java и прочими интерпретируемыми языками. Полученные продукты будут потреблять минимум ресурсов и работать с максимальной скоростью, так как между программой и системой не будет посредников-интерпретаторов.
Рисунок 1.17 Инстументарий для программирования в Symbian
При компиляции программного кода создается не только приложение, а также иконка и необходимые файлы ресурсов. Все это в конце концов упаковывается в установочный файл SIS. После его подписи (если необходимо) разработчик может распространять и продавать программу как готовый продукт.
Инстументарий для программирования в Windows Mobile
Для создания программ под Windows Mobile Microsoft предлагает среду разработки Visual Studio. Если у вас уже есть установленная Visual Studio 2010 (Professional или Ultimate), то вы можете использовать для разработки свою редакцию Visual Studio 2010 после установки Windows Phone Developer Tools.
Также существует Expression Blend for Windows Phone – программа для разработки дизайна, которая позволяет создавать и добавлять специальные визуальные возможности, такие как градиенты, анимации и переходы. Для некоторых задач Expression Blend проще в использовании, чем Visual Studio. Следующий список содержит некоторые задачи, которые легко выполняются с помощью Expression Blend.
– Визуальное создание шаблонов данных
– Использование во время разработки тестовых данных для визуализации шаблонов данных
– Визуальное создание стилей элементов управления
– Создание и просмотр анимации
На следующем изображении показан внешний вид Expression Blend.
Рисунок 1.18 Среда программирования Expression Blend
Имеется бесплатный пакет: Visual Studio 2010 Express for Windows Phone, который включает в себя drag-and-drop дизайнер, эмулятортелефона, редактор кода и отладчик. Если вы работали с Visual Studio для разработки других видов приложений, вы обнаружите среду для разработки мобильных приложений очень знакомой. На следующем изображении показан внешний вид Visual Studio 2010 Express for Windows Phone.
Рисунок 1.19 Среда программирования Visual Studio Phone
Дизайнер для Windows Phone содержит панель инструметов (Toolbox), режим дизайна (Design view), режим XAML (XAML view), обозреватель решений (Solution Explorer) и окно «Свойства» (Properties window), похожие на стандартный дизайнер Visual Studio. Два ключевых различий в том, что в режиме дизайна поверхность выглядит как Windows Phone устройство, и появилось целевое устройство (Target device), которое позволит вам выбрать, будет ли вы отлаживать приложение на устройстве или эмуляторе.
Инстументарий для программирования в Android
Самый простой способ приступить к разработке приложений для Android – это загрузить SDK Android и Eclipse IDE. Разработку Android-приложений можно вести на платформах Microsoft Windows, Mac OS X или Linux. Чаще всего используется Eclipse IDE и плагин Android Developer Tools для Eclipse.
Android-приложения пишутся на языке Java, но компилируются и выполняются в Dalvik VM (не в виртуальной машине Java). Кодирование на языке Java в рамках Eclipse – интуитивно понятный процесс. Eclipse предоставляет богатую среду Java, включая контекстно-зависимую справку и подсказки к коду. Когда ваш Java-код будет безошибочно скомпилирован, Android Developer Tools сам позаботится о том, чтобы приложение был надлежащим образом упаковано, в том числе снабдит его файлом AndroidManifest. xml.
Android-приложение можно написать и без Eclipse и плагина Android Developer Tools, но для этого нужно хорошо разбираться в Android SDK.
Android SDK распространяется в виде файла ZIP, который распаковывается в папку на жестком диске. Так как вышло несколько обновлений SDK, рекомендуется поддерживать среду разработки в порядке, чтобы можно было легко переключаться между разными установками SDK.
Android-приложения могут тестироваться как на реальном устройстве, так и на эмуляторе Android, который прилагается к SDK Android. На рисунке показан главный экран эмулятора Android.
Отладочный мост Android – утилита adb поддерживает несколько дополнительных аргументов командной строки, которые обеспечивают мощные функции, такие как копирование файлов в устройство и из него. Аргумент оболочки командной строки позволяет подключаться к самому телефону и подавать простые команды оболочки. Рисунок 4 иллюстрирует команду оболочки adb, подаваемую реальному устройству, подключенному к ноутбуку под Windows с помощью кабеля USB.
Инстументарий для программирования в BlackBerry
Разработчики могут использовать как стандартные инструменты на основе веб-технологий, такие как HTML/HTML5, CSS, JavaScript или Java®, так и специальные средства разработки приложений для BlackBerry. Разработка приложений для BlackBerry может вестись также при помощи таких распространенных инструментов, как Eclipse и Microsoft Visual Studio. Таким образом, разработчики обладают свободой выбора наиболее подходящего им инструментария для создания приложений.
Инстументарий для программирования в Bada
Предложенный разработчикам инструментарий позволяет писать код не для конкретной ОС, а работать с определенными функциями (например, оболочкой, контактами) а ОС с которыми работает эта надстройка может быть несколько, В рамках бета-версии SDK доступ осуществлялся только к функциям TouchWiz 3D и ряду системных функций, что позволяет сказать, что фактически Bada – это надстройка к интерфейсу. В будущем развитие средств разработки программ позволит писать полнофункциональные программы, задействующие не только интерфейс, но и другие возможности телефона (не затрагивая ОС, лежащую в основе).
Вспомним, что компания Samsung стала первым производителем, кто транслировал интерфейс TouchWiz с собственных устройств на другие ОС, т.е. сделали этот интерфейс кросс-платформенным, чтобы приучить потребителей к нему. Не важно, какая ОС, важно, что везде потребитель видит один и тот же интерфейс и ассоциирует его с компанией Samsung. BADA позволит быстро реагировать на расстановку сил на рынке операционных систем, не привязываясь ни к одной из них, что является достаточно гибкой стратегией.