Разработка приложений для мобильных устройств на платформе Windows Mobile

Отладка и развертывание

Показывать лекцию целиком

Целью лабораторной работы является изучить и использовать инструментарий, который применяется при отладке и развертывании мобильных приложений на Windows Mobile

Задание на лабораторную работу

  • Изучить и поэкспериментировать с удаленным инструментарием в частности
  • a. Remote File Viewer
  • b. Remote Heap Walker
  • c. Remote Process Viewer
  • d. Remote Registry Editor
  • e. Remote Spy
  • f.Remote Zoom In
  • Установить Power Toys 3.5, подключится к устройству и эмуляторам Visual Studio 2008. Поэкспериментировать с данным инструментарием, в частности
  • a.Remote Performance Monitor
  • b.GC Heap Viewer, NETCF CLR Profiler
  • c.App Configuration Tool (NetCFcfg.exe)
  • d.NETCF ServiceModel Metadata Tool
  • e.Remote Logging Configuration Tool
  • f.NETCF Network Log Viewer
  • Создание установочного cab файла.
  • Выводы
  • В данной лабораторной работе рассказывается о различном инструментарии который применяется при разработке, отладке и развертывании Windows Mobile приложений, а так же рассматриваются файлы журналов, которые может создавать исполнительная среда Microsoft .NET Compact Framework, об их использовании для диагностики конкретных проблем, об имеющемся для этого инструментарии, включения и отключения введения журналов. Журналы обеспечивают протоколирование активности установленного приложения, чтобы персонал службы поддержки имел некое средство диагностики.

    Подключение к устройству

    Перед тем как обсуждать приемы отладки, оптимальные подходы к обработке исключений и рекомендации по поиску и устранению типичных проблем, нужно понять, как подключить Microsoft Visual Studio к целевому устройству, которым может быть как реальное устройство, так и эмулятор.

    12.1. Удаленный инструментарий

    Visual Studio 2008 предоставляет разработчикам управляемых и неуправляемых кодов единые средства разработки. Ранее разработчикам неуправляемых кодов приходилось использовать встроенную интегрированную среду разработки Microsoft Visual C++. Одним из преимуществ такой унификации является то, что удаленный инструментарий, который ранее входил в Visual C++, но отсутствовал в Visual Studio .NET 2003, теперь включен в Visual Studio начиная с версии 2005. Теперь данные инструментарий имеется и в Visual Studio 2008, и доступен обеим группам разработчиков рис 12.1. Так же следует отметить что данный инструментарий устанавливается автоматический с Visual Studio 2008.

    (рис 12.1) Инструментарии удаленного доступа Visual Studio 2008

    Программа Remote Zoom In очень удобна для захвата растровых экранных снимков с устройства. Часто используемой программой является Remote Registry Editor. Она позволяет разработчику с удаленного компьютера получить доступ к реестру и изменить его параметры. Программа Remote File Viewer является альтернативой Microsoft ActiveSync (или Windows Mobile Device Center) для удаленного доступа к файловой системе целевого устройства, включая импорт и экспорт. Программа Remote Spy аналогична настольной версии - с ее помощью можно просматривать активные окна и сообщения, которые посылаются описателям окон; эта программа не на каждый день, но если она действительно нужна, то может быть очень удобной. Программа Remote Process Viewer полезна для просмотра списка процессов, выполняющихся в данный момент на устройстве, принадлежащих им программных потоков, а также модулей, которые загрузил каждый из них. Её также можно использовать для остановки процессов. Последней программой является Remote Heap Walker. С точки зрения разработки управляемых кодов польза от нее невелика, так как разработчикам обычно не приходится иметь дело с идентификаторами и флагами для кучи управляемых процессов.

    Удаленный инструментарий облегчает разработку программ на одном компьютере (настольном) и их выполнение на другом (целевом устройстве).

    Задание первое

    В рамках данной лабораторной поэкспериментируйте с подключением к устройству с установленной ОС Windows Mobile 6.0 и к эмулятору Windows Mobile 6.

    Power Toys 3.5

    Следует скачать с сайта microsoft, на момент написания лабораторной работы, установочный файл для этого набора утилит можно было скачать по следующей ссылке: http://www.microsoft.com/downloads/details.aspx?FamilyID=c8174c14-a27d-4148-bf01-86c2e0953eabdisplaylang=en

    Набор утилит Power Toys 3.5 включено: Remote Performance Monitor and GC Heap Viewer, NETCF CLR Profiler, App Configuration Tool (NetCFcfg.exe), NETCF ServiceModel Metadata Tool, Remote Logging Configuration Tool и NETCF Network Log Viewer.

    Remote Performance Monitor and GC Heap Viewer - предоставляет показатели производительности в реальном времени (деятельность сборщика мусора и типы загрузки данных), приложений запущенных на .NET Compact Framework. The GC Heap Viewer feature позволяет вам захватывать состояние управляемой кучи в любой момент исполнения вашего приложения для просмотра текущих ссылок, и позволяет вам сравнить множество состояний, таким образом выявить момент утечки памяти.

    NETCF CLR Profiler - это инструмент подробно визуализирует сведения о распределении ресурсов, показывает стеки вызовов и помогает диагностировать трудности в управлении памятью.

    Утилита App Configuration Tool (NetCFcfg.exe) описывается авторами, как инструмент, который позволяет указать приложению, в какой версии среды .NET CF оно будет работать. Еще эта утилита выводит список установленных версий .NET CF и сведения об используемых библиотеках DLL. В справке к данной утилите сказано что, она устанавливается на мобильное устройство при первой же синхронизации в папку \Windows. Однако по факту это не всегда так, возможно вам в ручную придется её скопировать на ваше устройство, а её расположение следующее:

    C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\wce500\armv4i

    В вашем случае вместо: диска С напишите диск с папкой Windows, wce500 - тип вашей платформы (данная папка соответствует WM 6), armv4i - тип процессора вашего процессора.

    Утилита Remote Logging Configuration Tool позволяет настраивать параметры ведения журнала событий на целевом устройстве .NET CF, в том числе журналы загрузчика, взаимодействий, сети, ошибок и завершения программ. В рамках данной утилиты следует знать то, что необходимо указать, то в какой каталог должны размещаться файлы журналов.

    Утилита NETCF Network Log Viewer предназначена просмотра содержимого из журнала работы сетевых соединений в среде .NET CF.

    Так же необходимо указать, что Power Toys 3.5, имеет только английскую версию, и заработала корректно с эмуляторами Visual Studio 2008 только с английской Visual Studio 2008 SP1. Возможно, это ошибочное мнение, однако на 5 машинах устанавливалось все с нуля. И на четырех из пяти, устанавливались русские программные продукты Microsoft, на которых Power Toys 3.5 не обнаруживала эмуляторов Visual Studio 2008, а пятая английская заработала сразу.

    Данные инструменты легко применимы, те трудности, которые они могут вызваны, уже описаны. Так что далее опишем журналы, которые возможно включить в Remote Logging Configuration Tool.

    Журнал загрузчика

    Если немного упростить реальность, то в каждом случае, когда управляемое приложение создает объект, использует значимый тип, вызывает статический метод или делает что-то подобное, исполнительная среда должна найти сборку, которая содержит данный тип, и загрузить его. Каждый раз, когда это не получается, запускается исключение. В вопросе о том, следует ли его пропустить (поглотить или замаскировать другим исключением), может помочь журнал. Если исполнительная среда не нашла член типа (исключение Missing-MethodException или MissingFieldException ) или сам тип (исключение ТуpeLoadException ), вы сможете увидеть хронологию загрузки сборок вместе с той, которая привела к сбою, что в конечном счете и породило одно из упомянутых исключений времени выполнения. Информация о загрузке сборок включает информацию о маркерах открытых ключей, версиях и путях, по которым среда искала сборку. Другими словами, вы можете получить богатую информацию, которой больше нигде не найти. Если вы знакомы с журналом слияний для настольного компьютера - это почти то же самое.

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

    Задание второе

  • В проекте приложения для интеллектуального устройства сделайте ссылку на проект библиотеки классов интеллектуальных устройств. В обработчике события Click для кнопки создайте класс из библиотеки классов.
  • Разверните и отладьте проект на устройстве с помощью Visuai Studio. Получите файл журнала.
  • На устройстве перейдите в папку приложения и удалите DLL-файл. Запустите непосредственно ЕХЕ-файл, нажмите кнопку и понаблюдайте за аварийным завершением приложения. Получите файл журнала и обратите внимание па различия с полученным рапсе журналом.
  • Журнал взаимодействия с платформой

    Несмотря на то что в .NET Compact Framework версии 3.5 заполнены многие пробелы версии 2.0 и 1.0, разработчикам время от времени необходимо вызывать неуправляемые Windows-методы из DLL-файлов при помощи платформенных сервисов вызова (PInvoke-сервисов). Когда возникают проблемы с PInvokc-сервисом (или при взаимодействии с СОМ), может возникать множество исключений (например, DllNotFound-Exception, EntryPointNotFoundException ), в других случаях ошибки маршалинга могут просто привести к неверным результатам. Журнал взаимодействия с платформой помогает выявлять ошибки маршалипга, так как дает список всех методов взаимодействия в управляемом варианте и его неуправляемом эквиваленте. Иногда неуправляемый эквивалент может помочь разработчикам распознать неверное объявление.

    Задание третье

    Запустите па устройстве любое управляемое приложение, которое делает PInvoke-вызовы, и скопируйте файл журнала на настольный компьютер для изучения. Приложение, написанное в лабораторной работе "Применение платформы MS Synchronization Services при создании приложений без постоянного соединения" использовало PInvokc-вызовы.

    Посмотрите содержимое журнала взаимодействия сами.

    Сетевой журнал

    Сетевые журналы собирают богатую информацию о сетевой активности. В отличие от других журналов они содержат данные не только в формате ASCII, поэтому для декодирования имеющихся в них двоичных данных нужна программа - анализатор. Такая программа для .NET Compact Framework 3.5 имеется в пакете программ .NET Compact Framework Power Toys 3.5.

    Задание четвертое

    Скопируйте с устройства на персональный компьютер файл, который создает платформа в результате работы программы "Применение платформы MS Synchronization Services". Просмотрите его с помощью файла из лабораторной работы применение платформы MS Synchronization Services . Вы можете открыть с ее помощью файл сетевого журнала и изучить его содержимое, то есть пакеты, которые посылаются и принимаются.

    12.2. Подключение к отладчику

    В некоторых случаях требуется отладить приложение, которое выполняется на мобильном устройстве, но не было запущено из Visual Studio. В этом случае нужно подключиться к выполняемому па устройстве процессу из Visual Studio. Это возможно, по только при явном включении соответствующего режима, например, через реестр. При подключенном устройстве используйте удаленный редактор реестра для создания под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFraiuework\ ключа с названием Managed Debugger. Под этим ключом создайте значение AttachEnabled типа DWORD и присвойте ему 1.

    Затем в меню Debug в Visual Studio выберите пункт Attach To Process и в открывшемся диалоговом окне измените Transport на Smart Device, а в раскрывающемся списке Qualifier выберите ваше устройство. Далее в списке выберите ваш управляемый процесс и затем щелкните на кнопке Attach.

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

    Журнал ошибок

    Журнал ошибок можно создавать, только начиная с версии .NET Compact Framework 2.0 SP1 и в более поздних. Он был добавлен для помощи в отладке безмониторных устройств, но его, естественно, можно также использовать и для отладки устройств с дисплеями. Журнал ошибок - это просто текстовая версия этого диалогового окна "error list".

    12.3. Утилиты для создания программы установки в Visual Studio 2008

    В Visual Studio 2008 вводится новый шаблон проекта специально для создания программы установки в виде САВ-файла непосредственно из интегрированной среды разработки. Раньше можно было создать CAB-файл программы установки только однажды, а затем приходилось вручную изменять INF-файл для повторной генерации САВ-файла при любых изменениях параметров. При новом подходе, этот процесс больше напоминает создание программы установки для настольного проекта.

    12.4. Проект создания программы установки для мобильного устройства

    Чтобы создать новую программу установки для мобильно устройства, в меню File выберите пункт New Project. Перейдите но цепочке Other Project Types, затем Setup And Deployment и выберите проект Smart Device CAB Project. Выбрав проект в дереве решений, можно настроить множество параметров проекта. Например, свойства Manufacturer и ProductName используются вместе в качестве имени компонента в списке Remove Programs. Поэтому рекомендуется, чтобы общая длина составной строки имени компонента не превышала примерно 36 символов, так как на большинстве устройств с портретной ориентацией строка будет обрезана. В том редком случае, когда вы хотите запретить пользователю удалять ваше приложение, можете исключить приложение из списка Remove Programs путем установки свойства NoUninstall в значение True.

    Добавление файлов и настройка целевого устройства

    Файлы устанавливаются путем вставки их в редакторе файловой системы нашего проекта программы установки. Вы можете использовать множество констант стандартных папок, которые развертывают свое содержимое в нужной локализованной папке на устройстве. Вы можете также создавать новые каталоги и подкаталоги.

    Рассмотрим полученные данные на практическом примере, создания установочного cab-файла, на примере имеющегося проекта .

    (рис 12.2) Окно проекта для создания CAB файла

    Теперь в папке Program Files Folder создадим папку MySyncProgram и в нее следует добавить файлы, находящиеся в папке Bin\Release проекта, для которого создаем установочный файл. В папке Bin\Release, находится необходимый исполняемый файл и файл баз данных, их следует добавить в вашу папку, а dll файлы можно не добавлять. Так же общая рекомендация, если вы затрудняитесь в выборе добавляемых файлов, то выберите те файлы которые Visual Studio 2008, размещает в процессе Debug в папку приложения на эмуляторе.

    После этого увидим MySyncProgram в Solution Explorer проекта развертывания. В разделе Detected Dependencies (Обнаруженные зависимости) увидим, что Visual Studio опросил MyFirstSync.exe на предмет сборок, которых он зависит - в данном случае это два dll файла ( Microsoft.Synchronization.Data.DLL и Microsoft.Synchronization.Data.SqlServerCe.DLL ). Ваше приложение будет работать, только если на устройстве установлен .net Compact Framework 3.5 и Compact SQL 3.5. Таким образом их не следует включать.

    Далее следует нажать правой кнопкой мыши в области окна файловой системы и выбрать подменю ).

    Добавление ярлыков

    Ярлыки - это просто файлы, и в качестве таковых они также добавляются при помощи редактора файловой системы. Для создания ярлыка файла и проекте щелкните правой кнопкой мыши на файле и выберите команду Create Shortcut. Затем можете переименовать ярлык, чтобы присвоить ему удобочитаемое имя, и поместить его в нужную папку, например, в папку Start Menu Folder, если вы хотите, чтобы он присутствовал в подменю Programs меню Start.

    (рис 12.3) Добавление специальных папок

    12.5. Запись параметров реестра

    Так же как и в проектах программ установки настольных версий Windows, в проекте развертывания на устройстве есть встроенная поддержка записи параметров реестра. Выберите редактор реестра, чтобы увидеть дерево корневых ключей. Под ними можете создавать собственные ключи. В том случае, если на устройстве их еще нет, они будут созданы. Часто эти ключи создаются не инсталлятором, а самой программой, в процессе работы пользователя с ней. Однако наша программа не столько сложна и не требует записей в реестр.

    Теперь осуществим сборку ( F6 ), и необходимый вам cab файл будет расположен в папке DEBUG вашего CAB проекта.

    Выводы

    Вы познакомились с эффективными средствами диагностики и средствами управления состояния Windows Mobile на устройстве или эмуляторе Visual Studio 2008 и узнали как избежать типичных трудностях начинающих программистов в освоении данного инструментария.

    Вернуться к учебному плану