Разработка приложений для Windows Mobile

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

Все эти устройства имеют разные мобильные платформы. Существуют такие известные платформы, как Windows MobileM , iPhone , BlackBerry , Symbian OS , Android , Maemo , OpenMoko и т. д. Все они имеют разную историю, преимущества и недостатки.

Данная статья посвящена разработке приложений для Windows Mobile. Здесь мы поговорим о различных нюансах создания и тестирования пользовательских приложений для разных типов устройств.

Введение
1. Инструменты разработки
2. Создание приложений Windows Mobile для устройств Windows Mobile с использованием MS Visual Studio .NET
2.1 Пользовательский интерфейс
2.2 Связь
2.3 P/Invoke и Native Interop
2.4 Отладка
3. Развертывание и установка
4. Модель безопасности для Windows Mobile 5 и Windows Mobile 6


Введение

Такие платформы, как Windows Mobile , BlackBerry , iPhone являются Достаточно «закрытые» и ограниченные либо собственными устройствами (BlackBerry, iPhone), либо сложностью разработки. Среди других проблем вышеупомянутых платформ — ограниченный API. Даже платформа Java для мобильных устройств имеет некоторые недостатки, такие как большое количество ограничений; очень разные API; код, зависящий от устройства. Платформы Symbian и Windows Mobile лучше с этой точки зрения, поскольку они поддерживают более широкий спектр устройств, а их API-интерфейсы предоставляют больше возможностей.

Общая проблема здесь также в том, что существует множество платформ. Говоря об OpenSource и кроссплатформенных решениях, следует сказать, что они все еще развиваются и пока не получили широкого распространения.

В этой статье мы уделим внимание платформе Windows Mobile.

Компания Microsoft выпустила свою первую платформу для встраиваемых устройств в конце 90-х. В 2002 г. появилась платформа Windows CE.NET . И тогда были выпущены Pocket PC на платформе Windows CE 3.0 и выше. Дальнейшее развитие технологий беспроводной связи позволило объединить телефон и персональный компьютер. Так появился Pocket PC 2002 Phone Edition , который поддерживает стандарты GSM, GPRS, Bluetooth и беспроводной доступ к сети HS. В то же время разрабатывалась другая концепция устройства, которая была очень похожа на вышеупомянутую, но была ближе к телефону, чем к персональному компьютеру. Это устройство было названо SmartPhone 2002 . Принципиальное различие между смартфоном и карманным ПК заключается в том, что на КПК есть сенсорный экран, а на смартфоне — только кнопки управления.. У них также были разные области применения и поддерживались разные стандарты и технологии.

Платформа Windows Mobile больше относится к смартфонам, коммуникаторам и небольшим персональным устройствам. Платформы Windows CE и Windows Embedded обычно используются в различном промышленном оборудовании.

Теперь у нас есть Windows Вскоре будут выпущены версии Mobile 5 и Windows Mobile 6 и Windows Mobile 7 . Современные устройства на базе Windows Mobile Pocket PC; имеют процессоры 500-600 МГц и оперативную память 64-128 МБ, что немало для таких устройств.

1. Средства разработки

Есть несколько моделей разработки приложения для Windows Mobile:

  • Win32 API
  • MFC
  • .NET Compact Framework.

Microsoft Co предоставляет разработчикам все необходимые инструменты для разработки приложений для КПК, Pocket PC; и смартфон.

Вот несколько советов по выбору другого типа кода.

  • Используйте собственный код для достижения максимальная производительность, прямая работа с оборудованием, а также минимизация требований к системным ресурсам.
  • Используйте Управляемый код для разработки GUI-ориентированных приложений, основные требования которых: сроки разработки и вывода на рынок. Управляемый код также хорош для простой работы с веб-сервисами.
  • Используйте серверный код для работы с разными устройствами через единую базу кода, а также при наличии широкого стабильного канала связи с устройством.

Ниже приведены обзоры существующих средств разработки для КПК, КПК и смартфонов.

eMbedded Visual C ++ 4.0

Среда разработки Microsoft eMbedded Visual C ++ 4.0 предназначена для создания приложений для устройств с Windows CE .NET 4.2 операционной системы, а также (с пакетом обновлений SP3) для КПК и смартфонов на платформе Windows Mobile 2003 Second Edition . Среда разработки eMbedded Visual C ++ 4.0 хороша для создания нативного кода для мобильных и встроенных устройств с ОС Windows CE .NET 4.2 . Он позволяет разработчику выполнять своевременную отладку для диагностики необработанных исключений, присоединять к процессу для расширенной отладки процессов, а также взаимодействовать с эмулятором.

Функции Visual Studio .NET и SDP

SDP (Smart Device Programming) функции интегрированной среды разработки Visual Studio .NET 2003 (2005 г., 2008) позволяют создавать приложения, использующие возможности платформы Microsoft .NET Compact Framework . Таким образом, разработчик может создавать распределенные мобильные системы обработки данных, работающие как в сценариях с подключением, так и без постоянного подключения. Обширная библиотека классов. Платформа .NET Compact Framework делает разработку приложений намного быстрее, чем с помощью традиционных инструментов разработки.

Visual Studio .NET позволяет создавать приложения для устройств Pocket PC 2002 и (с соответствующими SDK) Pocket PC 2003, 2005 и смартфонов 2003, 2005, применяя те же инструменты, что и для разработки приложений для настольных ПК. Библиотека .NET Compact Framework устанавливается вместе с Visual Studio .NET. Эта библиотека специально разработана для устройств с ограниченными ресурсами. Разработчики также могут использовать новые языки C # и Visual Basic .NET для приложений для мобильных и встроенных устройств. Они хороши в работе с веб-сервисами и технологиями ADO.NET.

Элементы управления ASP .NET Mobile Controls расширяют функции SDP и платформу .NET Compact Framework. Они дают возможность использовать возможности .NET Compact Framework и Visual Studio .NET для разработки мобильных веб-приложений за счет доставки данных на различные мобильные устройства с помощью технологии ASP.NET. Такой подход позволяет создать единое мобильное веб-приложение в среде Visual Studio .NET, которое будет автоматически выполнять рендеринг данных для отображения на различных устройствах: мобильных телефонах, смартфонах, КПК, КПК. Интегрированная среда разработки позволяет создавать мобильные веб-приложения, просто перетаскивая элементы управления на формы.

Система ASP.NET не устанавливает компоненты на клиентском устройстве. Для адаптации форматирования под конкретные браузеры используется серверная логика. Он генерирует информацию в форматах Wireless Markup Language (WML), HTML и Compact HTML (cHTML).

Microsoft SQL Server

Microsoft SQL Server Compact Edition (SQL Server CE) — компактная СУБД для быстрой разработки приложений, расширяющих возможности работы с корпоративными данными за счет использования мобильных устройств. SQL Server CE — это инструмент, упрощающий разработку мобильных приложений за счет поддержки синтаксиса SQL и использования модели интерфейса приложения и API, совместимой с SQL Server.

SQL Server CE предоставляет базовый набор функций реляционной базы данных, в частности оптимизированный обработчик запросов; поддержка транзакций и разнородных типов данных — с неприхотливыми требованиями к системным ресурсам. Удаленный доступ к данным и репликация путем слияния обеспечивают надежную доставку информации из баз SQL Server, возможность автономной работы с информацией и последующей синхронизации с сервером. SQL Server CE подходит для систем с мобильными устройствами и беспроводными сетями.

СУБД SQL Server CE разработана для интеграции с .NET Compact Framework с помощью Visual Студия .NET. Упрощает разработку приложений для работы с базами данных на мобильных и встроенных устройствах.. Новый поставщик данных SQL Server CE для управления кодом в среде Common Language Runtime помогает разрабатывать расширяемые приложения с возможностями автономной работы с информацией в сценариях без постоянного подключения.

Microsoft .NET SqlClient предоставляет API для работа приложений .NET Framework и .NET Compact Framework. Для общих систем Windows используются SqlClient Microsoft с SQL Server и SqlServerCe для баз данных Microsoft SQL Server Compact Edition для Compact Framework.

Пространство имен SqlClient есть в обеих версиях. Таким образом, мы можем взаимодействовать:

  • Использование .NET Compact Framework SqlClient для доступа к SQL Server с устройства на рабочем столе.
  • Использование .NET Compact Framework SqlServerCe для доступа к SQL Server Compact Edition прямо на устройстве.

Работа с базами данных на устройстве аналогична работе на рабочем столе. Для доступа к SQLServer в настольной системе SQL использует соединение TCP/IP, поэтому в этом случае можно не устанавливать SQL Server Compact Edition на устройстве.

Все упомянутые модели реализованы на настольные системы. Так что опыт их применения может быть использован при разработке программ для Windows Mobile. Используя Win32 API, мы быстро получаем компактный код, а также можем использовать его для разработки драйверов и компонентов системы. Используя MFC, мы имеем расширения функций API, а также конструктор для разработки интерфейса. А с помощью Compact Framework в нашем распоряжении хорошо проработанный интерфейс, автоматическая сборка мусора, поддержка XML и другие возможности. Также есть еще более урезанная версия — Micro Framework, где меньше функций SDK.

После установки SDK для MS Visual Studio появляются новые конфигурации сборки, а также новые функции для сборки под эти платформы. Suit также содержит эмулятор для разработки и тестирования программного обеспечения без физического соединения между устройством и компьютером.

Поскольку многие устройства на базе Windows Mobile имеют процессор ARM, также можно компилировать модули с использованием других компиляторов. : AVR32, ARM (RealView), GNUARM, IAR Systems.

2. Создание приложений Windows Mobile для устройств Windows Mobile с помощью MS Visual Studio .NET

Среда разработки Visual Studio вместе с Compact Framework позволяют разрабатывать приложения с использованием обширного графического интерфейса, баз данных, инструментов архивирования и шифрования, USB, Последовательный, Bluetooth, а также беспроводные сетевые соединения и телефония. Все это предоставляется SDK, а также библиотеки и файлы заголовков из Platform Builder.

2.1 Пользовательский интерфейс

Благодаря наличию хорошего дизайнера в VS и SDK мы можем легко разработать графический интерфейс для мобильных приложений так же, как и для настольных приложений. Разница лишь в наборах графических компонентов для настольных систем и для Windows Mobile.. Также существует разница между компонентами версий Smartphone и Pocket PC, потому что Pocket PC имеет сенсорный экран, а SmartPhone — нет. Поэтому разработка интерфейса для смартфона более сложна. Это следует учитывать при разработке программного обеспечения для обеих платформ.

Здесь также стоит отметить, что программное обеспечение, созданное для Pocket PC, не запускается на платформе SmartPhone, пока возможна обратная ситуация — до тех пор, пока момент, когда вызывается какая-то специальная функция смартфона.

Естественно, что многие графические компоненты, а также большинство функций полноразмерного Framework были убраны из Windows Mobile SDK, чтобы уменьшить размер SDK на стороне устройства. Осталось только самое необходимое. Но производительность и объемы памяти увеличиваются, поэтому количество функций, включенных в SDK, становится больше. Так что разница между Compact Framework 1.0 и 2.0 огромна. Версия 1.0 была очень ограниченной.

В целом разработка GUI с помощью Сompact Framework на С # аналогична разработке обычного приложения Win32 на C #.

Это Также возможно разработать графический интерфейс, используя сборку движков 3D-рендеринга. Это такие как GAPI (Game API), OPENGL ES (Embedded System), OPENVG (Vector Graphics) и другие проекты. Безусловно, это довольно трудоемкий процесс, поскольку очень важно написать оптимальный код из-за относительно низкой производительности мобильных устройств.

2.2 Связь

Чтобы Мобильные устройства date имеют широкий спектр коммуникационных возможностей. У них есть доступ к беспроводной высокоскоростной сети по стандарту 802.11 WiFi Connection. Они также используют IrDa, Bluetooth и USB-хост/клиент. В то время как использование Irda постепенно сокращается, протоколы и стандарты Bluetooth, WiFi, Edge, GSM, а также USB используются все чаще.

Компания Microsoft предоставляет такие API:

  • ActiveSync API предоставляет функциональность для работы со службами синхронизации, файловыми фильтрами и т.д.
  • Bluetooth API предоставляет функциональные возможности для беспроводного доступа к мобильным и периферийным устройствам.
  • Connection Manager API служит для автоматизации процесса подключения, управления сетевым подключением. Устройства используют диспетчер соединений для установления соединения, а также для информирования о предполагаемом соединении (например, Интернет).
  • Object Exchange (OBEX) API предоставляет функциональные возможности для работы с эффективным, компактным двоичным протоколом, подходящим для устройств с ограниченными возможностями.
  • Remote API (RAPI) предоставляет функции для управления и удаленного вызова методов на устройстве сторона. Доступны такие функции: доступ к реестру, файлам, базам данных и различным конфигурациям устройства из Desktop-системы.. Самая важная опция — это удаленный вызов процедуры, когда мы просто вызываем метод «CeRapiInvoke ()» на стороне рабочего стола, передаем имя DLL на стороне устройства и имя функции в этой DLL, а затем просто вызываем этот метод.
  • API объектной модели Pocket Outlook предоставляет функции для работы с объектами Pocket Outlook. Он предоставляет интерфейсы для синхронизации и доступа к объектам: Задача, Календарь, Контакты.
  • Telephony API (TAPI) включает:
    • Assisted API
    • Extended API
    • Phone API
    • SIM Manager API
    • Служба коротких сообщений (SMS) API
    • API поставщика услуг телефонии (TSP)
    • API протокола беспроводных приложений (WAP).

Также мобильные устройства имеют возможность работать с последовательными (USB) портами. Во многих устройствах есть несколько COM-портов. Обычно первые 3-5 из них зарезервированы для IrDa, Bluetooth, SerialPort и других. Другие порты доступны пользователю. Некоторые устройства имеют функцию USB-хоста, другими словами, это устройства USB On-The-Go (OTG), которые могут служить как USB-клиентом, так и USB-хостом. Для этого устройство должно иметь необходимое оборудование и программное обеспечение (драйвер устройства).

Драйвер устройства — это драйвер, который является промежуточным слоем между драйвером HOST и уровнем приложений. Такой драйвер предоставляет «Драйвер потокового интерфейса» и должен содержать такие функции, как:

  • XXX_Init
  • XXX_Open
  • XXX_Close
  • XXX_Write
  • XXX_Read
  • XXX_IOControl

Здесь «XXX» заменяется на «Префикс» (например, «COM», «DSK»).

Этот префикс регистрируется в реестре, когда драйвер регистрируется в системе. Более подробную информацию об интерфейсе драйвера устройства можно получить в MSDN.

Также разработчик может использовать такие API, не относящиеся к коммуникационным:

  • Конфигурация устройства API
  • API управления файлами и приложениями
  • Game API
  • API главного экрана
  • HTML Control API
  • MIDI API
  • Shell API
  • Speech Recognizer API
  • Vibrate API
  • API управления диктофоном.

2.3 P/Invoke и Native Interop

Насколько Compact Framework содержит базовые функции и методы, от полного

Framework у нас есть такой функционал как:

  • Сериализация XML
  • Криптография
  • Безопасность
  • Reflection
  • Interop Services и др.

Конечно, Platform Invoke звонки доступны. Для этой цели — как и в полной платформе — мы используем функции и атрибуты из пространства имен System.Runtime.InteropServices и атрибут DllImport для описания функций, которые будут вызываться из неуправляемого кода.

Однако функциональность этих методов ограничена. Итак, в классе Marshal есть функции PtrToStructure, GetComInterfaceForObject, Copy () и Read (), но, например, в нем нет такой функции, как GetDelegateForFunctionPointer (). Так что сделать Marshaling только с помощью Delegate невозможно. Доступна только функция GetFunctionPointerForDelegate. Если мы хотим передать указатель на функцию из управляемого кода, мы должны получить его FunctionPointer и только после этого передать его неуправляемому коду для последующего его вызова оттуда. Также мы не можем передавать некоторые объекты, потому что Compact Framework не может считать SizeOf () для некоторых объектов. Поэтому часто нам приходится передавать только данные Blitable типов и массивы этих типов (Int, byte, char, но не bool), а передавать и принимать классы и структуры с помощью IntPtr. Безусловно, это объясняется стремлением повысить свою производительность. Поэтому рекомендуется использовать первичные типы для Marshaling и класс «GCHandle» для хранения объекта в памяти процесса и сделать эту память «видимой» для неуправляемого кода

Конечно, производительность P/Invoke количество вызовов из C # приложения в C ++ DLL почти вдвое меньше, чем производительность вызовов методов между C ++ DLL. Однако производительность устройств растет, и появляется возможность использовать такие вызовы.

2.4 Отладка

MS Visual Studio позволяет производить отладку приложений под

Windows Mobile точно так же, как для настольных приложений. У нас есть эмулятор, диспетчер эмуляторов устройств и другие функции, такие как точки останова, потоки, панель отслеживания и т. Д.

Однако сделать отладку с использованием собственного и управляемого кода одновременно невозможно. Поэтому можно запускать как проекты C ++, так и управляемые. То же самое и с «Присоединить к процессу». Есть возможность присоединения к процессам на стороне устройства (или эмулятора). ActiveSync необходим для обеспечения связи между устройством и системой, он устанавливается вместе с SDK. Эмулятор также можно подключить к компьютеру с помощью ActiveSync. Получаем практически полную эмуляцию устройств Windows Mobile. Здесь есть эмуляторы смартфонов и карманных компьютеров (или Pocket PC Phone Edition). Однако одновременно к компьютеру может быть подключено только одно устройство Windows Mobile. Поэтому отладка на двух устройствах одновременно, которые, например, каким-то образом взаимодействуют, весьма затруднительна. Разумеется, мы говорим только об отладке разработанных нами приложений, а не о приложениях и сервисах системы. Для такой отладки нам понадобится полная сборка системы, созданной с помощью Platform Builder (в последних версиях Platform Builder она включена в Visual Studio). Мы также можем создать собственный SDK для платформы Visual Studio и Windows CE.

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

Говоря об отладке с помощью IDA , мы должны упомянуть, что версия 5.1 уже имеет возможность выполнять отладку с помощью этого интерактивного дизассемблера с использованием их плагина, который установлен на устройстве.

При появлении SDK в среде Visual Studio появляется такая опция, как «Развернуть». Теперь в контекстном меню проекта появился пункт «Развернуть», помимо «Сборка», «Очистить», «Отладка». После выбора этого пункта на устройство передается созданный в текущей конфигурации DLL или EXE-файл. Также в Диспетчере конфигураций появляется новый столбец, в котором в некоторых параметрах конфигурации доступна не только «Сборка», но и «Развернуть». Развертывание проектов .NET передает не только модуль, но и те сборки, которые от него зависят (зависимости).

3. Развертывание и установка

Разработка приложений для Windows Mobile предполагает также их сборку и создание инсталляционного пакета. Для этого в Windows Mobile существует такое понятие, как файл Сabinet ( .cab ). Это обычный архив, но это также и установочный пакет (своего рода пакет MSI). Он собирается с помощью Cab Wizard ( cabwiz.exe ) из MS VisualStudio (или из командной строки). Эта утилита создает зависящий от процессора файл «.cab». WinCEApplicationManager передает и запускает CAB на устройстве, поэтому пользователь может установить приложение, следуя инструкциям, появляющимся на экране устройства. Также возможно создать проект установки MSI, который включает CAB-файл, с помощью Visual Studio. Этот собранный пакет будет запущен на компьютере пользователя и затем передаст установку СAB на устройство, чтобы продолжить процесс установки.

На стороне устройства есть специальный диспетчер удаления. К CAB-файлу необходимо прикрепить конфигурационный INI-файл. Этот INI-файл включает настройки для управления процессом установки, такие как путь, имя ярлыка для создания, минимальная версия ОС для установки приложения и другие параметры, написанные с использованием специального синтаксиса. Также возможно включить вашу собственную DLL в CAB-файл для расширения возможностей установки. Эта DLL содержит такие функции, как «Installer_AfterInstall», «Installer_BeforeInstall», «Installer_AfterUnInstall», «Installer_BeforeUnInstall», код этих функций будет выполняться на стороне устройства в определенные моменты процесса установки или удаления.

При разработке CAB-инсталляции можно прикреплять файлы, различные ресурсы, встроенные модули, добавлять информацию в реестр. Они обозначены как «Результат проекта. Поэтому после создания CAB-файла ничего сбрасывать не нужно: он соберет все включенные проекты и файлы и соберет их в архив.

4. Модель безопасности для Windows Mobile 5 и Windows Mobile 6

Устройства на базе Windows Mobile получают, отправляют и анализируют потенциально важную информацию, которую следует защитить от небезопасных приложений. Для защиты устройства отключен запуск неизвестных приложений, ограничен доступ к некоторым API и запрещено изменение некоторых частей реестра. Устройства могут быть помечены как «доверенные» и «ненадежные», и система использует эту информацию для предотвращения запуска неавторизованных приложений и ограничения их доступа к системе. Также может быть ограничен доступ к системе через RAPI (Remote API) через ActiveSync. Сертификаты безопасности Права безопасности используются для исполняемых модулей (EXE, DLL) и для CAB-файлов.

Защита от угроз и рисков

Следующие параметры помогают защитить устройства:

  • Строгая защита паролем.
  • Защита PIN-кодом.
  • Устройства повреждают удаленную информацию, чтобы предотвратить доступ к it (WM 6).
  • Устройства повреждают удаленную информацию на картах памяти, чтобы предотвратить доступ к ней (WM 6).
  • Шифрование хранилищ и расширенный стандарт шифрования для SSL ( WM 6).
  • Использование собственных сертификатов.
  • Обнаружение устройства через Bluetooth может быть защищено (смартфон WM 6).
  • 2 многоуровневая система запуска приложений (одноуровневый и двухуровневый доступ).
  • Нет поддержки макросов, поэтому вирусы могут причинить большой вред.

Запуск приложений основан на разрешениях. В устройствах Windows Mobile используются такие модели:

  • Привилегированные
  • Обычные
  • Заблокированные

Привилегированные приложения имеют самый широкий доступ. У них есть доступ к любому API, запись в защищенных областях реестра и полный доступ к системе.

Большинство приложений имеют нормальную модель. У них нет доступа к доверенному API и у них нет полного контроля над системой.

Приложение не может быть запущено вообще, если оно имеет статус «Заблокировано». Это означает, что он не подписан соответствующим сертификатом или пользователь запретил запуск соответствующим предупреждением системы.

Аналогичная ситуация и с Cab-файлами. Исполняемые модули со статусом Normal могут запускать Privileged DLL, но тогда они будут работать как Normal. Однако привилегированные исполняемые модули не могут запускать модули со статусом Нормальный.

Автор: Евгений Кордин, специалист по Априориту.

Продолжите чтение другой статьей о мобильной разработке: Как создать файл apk из командной строки.

Читайте также: Жизненный цикл разработки SaaS.

Оцените статью
techsly.ru
Добавить комментарий