Мобильных телефонов - korshu.ru o_O
Главная
Поиск по ключевым словам:
Похожие работы
Мобильных телефонов - страница №1/27








Горнаков С. Г.

SYMBIAN OS

ПРОГРАММИРОВАНИЕ

МОБИЛЬНЫХ ТЕЛЕФОНОВ

НА C++ И JAVA 2 ME

Москва, 2005



УДК 004.438

ББК 32.973.26-018.2

Г26


Горнаков С. Г.

Г26 Symbian OS. Программирование мобильных телефонов на C++ и Java 2 ME. — М: ДМК Пресс, 2005. - 448 с: ил.



ISBN 5-94074-030-8

Создание мобильных приложений для операционной системы Symbian -сложная и трудоемкая задача. Эта книга познакомит вас с основами про­граммирования для Symbian OS на языке программирования C++, а одна из глав посвящена программированию Java 2 ME приложений. Темы, рас­сматриваемые в книге весьма разносторонние - это интегрированные среды программирования CodeWarrior for Symbian, C++ BuilderX Mobile Studio, инструментальные средства разработчика SDK от Symbian, Sony Ericsson и Nokia для платформ UIQ, серии 60, серии 80 и серии 90. Большой объем информации освящает вопросы, связанные с программной архитектурой операционной системы, основными идиомами программирования в Sym­bian OS, структурой и созданием GUI приложения, локализацией, работой с меню, элементами пользовательского интерфейса, графикой, изображе­ниями, созданием инсталляционного пакета.

Книга будет интересна широкому кругу читателей, желающим самосто­ятельно изучить программирование для операционной системы Symbian на языке C++.

УДК 004.438

ББК 32.973.26-018.2

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения вла­дельцев авторских прав.

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

© Горнаков С. Г., 2005


ISBN 5-94074-030-8 © Оформление, ДМК Пресс, 2005

Содержание

Предисловие 14

Структура книги 15

Что вы должны знать 16

Программное обеспечение 16

Исходные коды 16

Благодарности 17

Глава 1. Знакомство с Symbian OS 18


  1. Работа в Symbian OS 20

  2. Навигация 22

  3. Интернет 23

  4. Java-приложения 25

  5. Программы наС++ 27

  6. Обзор программ для Symbian OS 28




  1. Файловые менеджеры 29

  2. Веб-браузеры 29

  3. Мультимедиа 30

  4. Игры 32

Глава 2. Среда программирования IDE Metrowerks
CodeWarrior for Symbian OS - 33

  1. Установка CodeWarrior for Symbian Personal v2.8.3 35

  2. Знакомство с Metrowerks CodeWarrior for Symbian

Personal v2.8.3 38

  1. Меню File 40

  2. Меню Edit 40

  3. Меню View.. 41

  4. Меню Search 42

  5. Меню Project 43

  1. Меню Debug 44

  2. Меню Window 45

  3. Меню Help 46

  4. Панель инструментов 46




  1. Окно Workspace 47

  2. Текстовый редактор 49

2.3. Настройка Metrowerks CodeWarrior 51

  1. Группа General 52

  2. Группа Editor 56

  3. Группа Debugger 61




  1. Создание проекта 63

  2. Импорт проекта 65

  3. Компиляция проекта 67

  4. Создание установочного пакета 69

Глава 3. IDE C++ BuilderX Mobile Studio 72

  1. Установка IDEC++BuilderX Mobile Studio 73

  2. Изучаем C++BuilderX 75




  1. Меню File 76

  2. Меню Edit 77

  3. Меню Search 78

  4. Меню View 78

  5. Меню Project 79




  1. Меню Run 79

  2. Меню Team 80

  3. Меню Wizards 80

  4. Меню Tools 80

  5. Меню Window 80




  1. Меню Help 81

  2. Панель инструментов 81

  3. Панель Project 82




  1. Подключение SDK 83

  2. Создание проекта 84




  1. Импорт проекта 86

  2. Компиляция проекта 87

  3. Создание установочного пакета 88

Глава 4. Инструментальные средства разработчика 89

4.1. Программные средства компании Sony Ericsson 90

4.1.1. Установка SDK 91

4.1.2. Эмуляторы телефонов Sony Ericsson 94

4.2. Программные средства компании Nokia 95


  1. Серия 60 97

  2. Серия 80 98

  3. Серия 90 100

  4. Программа SISAR 102

Глава 5. Архитектура Symbian OS 105

  1. Аппаратная архитектура 106

  2. Системные библиотеки 107

  3. Программная архитектура 108




  1. Ядро и аппаратная часть системы 109

  2. Базовые сервисы 109

  3. Сервисы операционной системы 110

  4. Пользовательские сервисы 112

  5. Инфраструктура пользовательского интерфейса 113

5.4. Файловая система 113

  1. Диск Z 114

  2. Диск С 114

  3. Диски 115

  4. ДискЕ 115

  5. Оперативная память 116

Глава 6. Основы программирования в Symbian OS 117

6.1. Классы 118



  1. КлассыС 118

  2. Классы R 118

  3. КлассыТ 118

  4. КлассыМ 119

  5. Статические классы 119

6.2. Функции 119

  1. Уходящие функции 119

  2. Неуходящие функции 120

  3. Функции LC 120

  4. Функции Set 120

  5. Функции Get 120




  1. Структуры 120

  2. Макросы 121

  3. Имена переменных 121

  4. Простые типы данных 121

  5. Рекомендации 122

Глава 7. Структура приложений в Symbian OS 124

7.1. Системные классы 124



  1. ПлатформаиЮ 126

  2. Серия 60 126

7.2. Базовая составляющая приложения 127

  1. Класс Application 127

  2. Класс Document 128

  3. Класс AppUl 128

  4. Класс Арр View 128

7.3. Первая программа 129

  1. Работа системы 130

  2. Класс CTestApplication 131

  3. Класс CTestDocument 133

  4. Класс CTestAppUi 136

  5. Класс CTestAppView 140

  6. Oan\nTest_Main.cpp 144

  7. Файл Test.pan 145

  8. Файл Test.hrh 145

  9. Файл Test_Caption.rss 146




  1. Файл Test.rss 147

  2. Файл bld.inf 149

  3. Файл Test.mmp 149

  4. Файл Test.pkg 151

7.4. Уникальные идентификаторы UID 154

  1. Идентификатор UID1 155

  2. Идентификатор UID2 155

  3. Идентификатор UID3 155

7.4.5. Идентификаторы платформы 156

7.5. Добавляем иконку в приложение 157

7.5.1. Добавление AIF ресурсов в C++ BuilderX 162


  1. Сборка проекта компилятором 163

  2. Создание установочного пакета SIS 166

Глава 8. Интерфейс пользователя 167

8.1. Платформа UIQ 167



  1. Панель Application Picker 167

  2. Панель Menu bar 167

  3. Клиентская область экрана 168

  4. ПанельТоо1Ьаг 168

  5. Панель Status bar 168

8.2. Серия 60 168

  1. Панель Status Pane 168

  2. Панель Main Pane 169

  3. Панель Control Pane 169




  1. Ресурсы 169

  2. Меню 170

  3. Локализация 181

  4. Получение данных от пользователя 186

  5. Списки 187




  1. Вертикальный список 188

  2. Список Grid 192

  3. Список Setting 193

  4. Демонстрационный пример Setting List 199

Глава 9. Программирование графики 223

  1. Рисование линий 224

  2. Рисуем прямоугольник 230

  3. Рисуем эллипс 235

  4. Рисуем часть круга 238

  5. Текст и шрифт 242

  6. Работа с изображениями 251

Глава 10. Программирование Java приложений 255

10.1. Платформа Java 2 ME 255



  1. Конфигурация CLDC 256

  2. Профили MIDP 257

10.2. Мидлет 258

  1. Структура работы мидлета 259

  2. Экранная навигация 263

10.3. Высокоуровневый пользовательский интерфейс 265

  1. Класс TextBox 265

  2. Класс List 265

  3. Класс Alert 266

  4. Класс Form 266

  5. Класс ChoiceGroup 267

  6. Класс Stringltem 267

  7. Класс TextField 267

  8. Класс DateField 267

  9. Класс Spacer 268

10.3.10. Класс Imageltem 268

  1. Bluetooth Security Manager 296

  2. Bluetooth Service Discovery Agent 296

  3. Bluetooth Service Discovery Database 297

  4. Bluetooth Sockets 298

  5. Bluetooth Ul 300

  6. Calendar Conversion 301

  7. Certificate Manager 302

  8. Character Conversion 306

  9. Character Conversion Plug-In Provider 306

  10. Character Representation of Real Numbers 306

  11. Circular Buffers 307

  12. Client/Server 307

  13. Clipboard 307

  14. Clock 307

  15. Command Line Parsing 308

  16. CommDb 309

  17. Connection Management 310

  18. Contacts Model 311

  19. Contact Views 314

  20. Converter Architecture 315

  21. Cookies Support 316

  22. Critical Sections 317

  23. Data Application Model 317

  24. Date and Time Handling 319

  25. DBMS Columns, Column Sets and Keys 320

  26. DBMS Database Incremental Operations 321

  27. Interface to DBMS Databases 321

  28. DBMS Rowsets 322

  29. DBMS Sharing Databases 323

  30. Descriptor Arrays 323

  31. Descriptors 324

  32. Device drivers 326

  33. Dial 327

  34. Dynamically Loading Link Libraries 328

  35. Dynamic Arrays 328

  36. Dynamic Buffers 330

  37. ECom Plug-in Architecture 330

  38. Embedding 331

  39. Encrypted Streams and Stores 332

  40. Environment Change Notifier 332

  1. ETel Core 332

  2. Extended Notifier Framework 332

  3. Fax Client 333

  4. Fax Client MTM... 333

  5. Fax Header Line 334

  6. Fax Store 334

  7. File Logging 335

  8. File Server Client Side 335

  9. Writing a file system 337

  10. Filestores 339

  11. Fixed Size Arrays 339

  12. Fonts 340

  13. Fonts and Bitmaps 341

  14. Front End Processors 341

  15. FTP Engine 342

  16. Graphics 343

  17. Graphics Foundations 344

  18. Grid Foundations 345

  19. Grid 345

  20. Hardware Abstraction Layer (HAL) 346

  21. Handles 346

  22. Hardware Accelerator 347

  23. Help Model 349

  24. HTTP Client 350

  25. HTTP Message 353

  26. HTTP Transport Layer 353

  27. Image Converter 354

  28. Incremental Matcher 355

  29. Interface to Resource Files 355

  30. Internet Mail 356

  31. Internet Protocol Utility 360

  32. Interrupt architecture 364

  33. IPSec 364

  34. IrDA Sockets 365

  35. InfraRed Transfer Picture Protocol 365

  36. Lexical Analysis 366

  37. Literal Descriptors 366

  38. Locale Settings 367

  39. Log Engine 369

  40. Maths Services 370

  1. Media Server Common Classes 370

  2. Memory Streams 371

  3. Message Scheduled Sending 371

  4. Message Window 373

  5. MMS MTM Client 373

  6. MMS Utilities 374

  7. MultiMediaCard 376

  8. NetDial 379

  9. Notification Services 379

  10. Onboard Camera 379

  11. Open Font System 379

  12. Package Buffers 380

  13. PC Connect Device-side BAL 380

  14. PhoneBook Synchroniser 381

  15. Power management framework 381

  16. Print Framework 381

  17. Print Preview 382

  18. Printing 382

  19. Raw Memory 383

  20. Recognizers 383

  21. Reference counting objects 384

  22. Security 384

  23. Semaphores 385

  24. Serial Protocol Module 385

  25. SIM Application Toolkit 385

  26. SMS GSM Utilities 386

  27. SMS Utilities 388

  28. Sockets Client 389

  29. Sound Device 390

  30. Stores 391

  31. Store Streams 392

  32. System Agent 392

  33. System Sounds 393

  34. TCP/IP 393

  35. Test Console 395

  36. Text and Text Attributes 395

  37. Text Views 397

  38. Timers and Timing Services 399

  39. Transfer Buffer 399

  40. To-do List 399

  1. UID Manipulation 400

  2. Ul Control Framework 400

  3. Ul Graphics Utilities 403

  4. Uikon Core 404

  5. Uikon Resources 406

  6. USB Client 408

  7. WAP Messaging 410

  8. WAP SMS Protocol Module 411

  9. WAP Stack 411

  10. Window Server Client Side 412

Приложение 2. Техническая документация

телефонов Symbian OS 413

ArimaU300 413

BenQP30 414

FomaF880iES 414

FomaF900i 415

FomaF900it 415

FomaF901ic 416

FomaF2051 416

LenovoP930 417

Motorola A920 417

Motorola A925 418

Motorola A1000 418

Motorola A1010 419

Nokia N-Gage 419

Nokia N-Gage QD 420

Nokia 3230 420

Nokia 3650/3600 421

Nokia 3660/3620 421

Nokia 6260 422

Nokia 6600 422

Nokia 6620 423

Nokia 6630 423

Nokia 6670 424

Nokia 6680 424

Nokia 6681 425

Nokia 6682 425

Nokia 7610 426

Nokia 7650 426

Nokia 7710 427

Nokia 9210 427

Nokia 9290 428

Nokia 9300 428

Nokia 9500 429

Panasonic X700 429

Panasonic X800 430

SendoX 430

SendoX2 431

Siemens SX1 . 431

Sony Ericsson P800 432

Sony Ericsson P900 432

Sony Ericsson P900i 433

Nokia N70 -....433

Nokia N90 434

Nokia N91 434



Приложение З. Интернет ресурсы 435

Компания Symbian Ltd 435

Инструментальные средства разработчика 435

Интегрированные средства разработки приложений 436

Компании 436

Тематические сайты 437

Русскоязычные сайты 437

Приложение 4. Обзор компакт-диска 438

Список используемых источников 439

Предметный указатель 440

Предисловие

Человечество не стоит на месте и развивается, внедряя в жизнь все новые и новые технологии. Буквально три-четыре года назад мы радовались простенькому теле­фону с монохромным дисплеем, весом и размером далеким от своего названия — мобильный телефон. А сейчас удивить телефоном с цветным дисплеем и боль­шим разрешением экрана сложно, да и это уже не роскошь, а обычное средство для связи с другими людьми. Технологии развиваются быстрыми темпами и кро­ме своего прямого назначения, в мобильные телефоны встраиваются камеры, ра­дио-, видео- и МРЗ-проигрыватели, появилась возможность просмотра офисных документов. Словосочетание «мобильный офис», вошедшее в наш обиход, очень ярко и красочно рисует ситуацию, сложившуюся на мобильном рынке. Человек хочет одно небольшое по весу и размеру устройство, с хорошим разрешением эк­рана и с возможностями настольной компьютерной системы среднего уровня. Возможно ли это? Жизнь показывает, что да - ведущие компании мира, произво­дящие телефоны, придумывают различные дизайны, пытаясь какими-то неимо­верными способами совместить полноценную клавиатуру, большой экран и при этом оставить телефон действительно мобильным устройством. Кому-то удается сделать это лучше, кому-то хуже, но движение идет в этом направлении и именно такой вариант развития, скорее всего, и определит будущее мобильных технологий.

Все телефоны делятся на две категории - это устройства, работающие на основе прошивки и устройства, работающие под управлением операционной сис­темы. Телефоны с прошивкой несколько ограничены в своих дополнительных возможностях, но поддержка технологии Java 2 ME значительно улучшает обста­новку, делая возможной загрузку в телефон программ сторонних производите­лей, тем самым, дополняя устройство функциями, которые изначально в этом те­лефоне не были предусмотрены. Телефоны с операционной системой намного мощнее и имеют много встроенных программ с возможностью инсталляции на устройство дополнительных программ написанных на языках программирова­ния C++, Java 2 ME, OPL и даже Visual Basic.

На мировом рынке в сегменте операционных систем для мобильных уст­ройств сейчас два потенциальных конкурента - Windows Mobile и Symbian OS. Операционная система Windows Mobile менее распространенная и более доро­гая. Телефоны под управлением этой операционной системы стоят достаточно дорого и рассчитаны скорее на корпоративных клиентов, чем на рынок массового потребления. Но ситуация может резко измениться - рынок КПК (карманные персональные компьютеры) начинает медленно, но верно, сдавать свои позиции. Не даром даже такой монстр как компания Sony собрала свои вещички и ушла с рынка КПК. Компании, выпускающие КПК, со временем могут оказаться у раз­битого корыта и массовый переход к телефонам с функциями КПК не за горами,

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

Операционная система Symbian изначально создавалась для работы на теле­фонах, в отличие от Windows Mobile, которая оптимизирована под мобильные устройства. Компания с одноименным названием - Symbian Ltd. — является со­здателем этой операционной системы. Пакет акций Symbian Ltd. уже давно поде­лен между компаниями производящими основной поток мобильных телефонов. По сведениям на 1 января 2005 года процентное соотношение владением акций выглядит следующим образом:



  • Nokia-47,9%;

  • Ericsson- 15,6%;

  • Sony Ericsson - 13,1%;

  • Panasonic - 10,5%;

  • Siemens - 8,4%;

  • Samsung - 4,5%.

Мобильные устройства под управлением операционной системы Symbian де­лятся на два вида: коммуникаторы и смартфоны.

В самой Symbian OS телефоны делятся еще по платформам, представляю­щим определенный интерфейс пользователя, - это платформы UIQ, серия 60, се­рия 80 и серия 90. Все они имеют общий принцип работы, поэтому если вы знако­мы, скажем, с серией 60, то вы знаете где-то 80% возможностей платформы UIQ. Рассмотреть все платформы в одной книге невозможно, поэтому за основу взята серия 60, а это около 70-80% мобильных устройств в мире, но мы обязательно будем уделять внимание и другим платформам.



Структура книги

Глава 1. В этой главе содержатся основные сведения о работе с Symbian OS. Рассматриваются программы сторонних производителей, настройка системы, установка и удаление программ, пользование Интернетом и многое другое.

Глава 2 знакомит читателя со средой программирования CodeWarrior 2.8 for Symbian OS компании Metrowerks, предназначенной для программирования мо­бильных приложений на языке программирования C++.

Глава 3. Компания Borland имеет свою среду программирования C++ Buil-derX Mobile Studio, и в этой главе вы познакомитесь с основными принципами работы среды C++ BuilderX.

Глава 4. Для создания программ под Symbian OS необходимы инструмен­тальные средства разработчика SDK. Глава содержит описание SDK серий 60,80, 90 и UIQ, от компаний Symbian, Sony Ericsson и Nokia, которые вы так же можете найти на компакт-диске.

Глава 5. Операционная система Symbian построена на основе модульной ар­хитектуры, и эта глава содержит полную информацию о программной части сис­темы и возможностях аппаратной архитектуры мобильных устройств.

Глава 6 содержит основные понятия идиом программирования для мобиль­ных приложений на C++ в Symbian OS.

Глава 7. В течение всей главы будет создаваться каркас GUI-приложения, с подробным объяснением всех составляющих, на основе GUI-приложения стро­ятся все программы в Symbian OS.

Глава 8 познакомит вас с интерфейсом пользователя платформ UIQ и се­рии 60 и с реализацией основных методов при работе с пользовательским интер­фейсом. Так же рассматривается механизм локализации программ.

Глава 9. Большой вводный курс программирования графики для Symbian OS. Показана система работы с изображениями и методы рисования различных гео­метрических фигур на экране телефона.

Глава 10. Эта глава целиком посвящена технологии Java 2 ME, поддержка которой осуществляется Symbian OS на программном уровне.

Приложение 1. Справочник по наименованиям классов, интерфейсов и ти­пов в Symbian OS версии 7.0s.

Приложение 2. Техническая информация об имеющихся моделях телефонов под управлением разных версий операционной системы Symbian.

Приложение 3. Обзор Интернет ресурсов посвященных программированию под операционную систему Symbian.

Приложение 4. Обзор компакт-диска.

Приложение 5. Список используемых источников.

Что вы должны знать

Предполагается, что вы уже знакомы с минимальными основами языка про­граммирования C++, умеете работать с визуальными средствами программиро­вания и хотя бы в общих чертах понимаете принцип создания, компиляции и те­стирования программ.



Программное обеспечение

В течение всей книги для создания программ использовались среды програм­мирования CodeWarrior for Symbian OS от компании Metrowerks и C++ BuilderX Mobile Studio компании Borland. Но программы так же рассчитаны на работу с Visual Studio и командной строкой. Необходимые для создания приложений SDK находятся на компакт-диске к книге.



Исходные коды

Демонстрационные примеры, рассмотренные в книге, разбиты на проекты и находятся на компакт-диске в папке \Code. Каждый проект имеет понятное на­звание, и догадаться о сути разбираемого примера будет легко. Кроме того, при рассмотрении примера, в книге всегда дается ссылка на папку проекта, находя­щуюся на компакт-диске. Исходные коды поставляются в нейтральной конфигу­рации, что дает возможность их импорта в CodeWarrior for Symbian OS любой

версии, C++ BuilderX версий 1.0 и 1.5, Visual C++.6 и Visual Studio.NET, а также работу с командной строкой.

Благодарности

Особую благодарность хочу выразить издателю этой книги, Мовчану Дмит­рию Алексеевичу, за всестороннюю помощь и поддержку в период работы над книгой и потрясающую коллекцию SDK, представленную в комплекте с книгой.

Очень признателен моей жене за рисунки к книге.

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



Глава 1. Знакомство с Symbian OS

Операционная система Symbian создана компанией Symbian Ltd. За годы суще­ствования Symbian OS было выпущено восемь версий этой операционной систе­мы, и каждая новая версия вбирала в себя все самое лучшее из предыдущих выпусков. Первый выпуск Symbian OS (тогда она еще называлась EPOC 32) по­явилась в 1997 году. Эта версия операционной системы была основана на техни­ческих наработках компании Psion, которая на тот момент лидировала в произ­водстве персональных органайзеров. Большая серия устройств под названием Psion Series в девяностых годах имела огромную популярность у частных и кор­поративных клиентов. На базе подразделения Psion Software компаниями Psion, Nokia, Ericsson и Motorola была создана первая операционная система EPOC 32, в последствии переименованная в Symbian. С первого выпуска Symbian OS (для мобильных телефонов) является открытой системой, и ее использование произ­водителями телефонов на своих устройствах осуществляется на основе лицензи­рования, что и послужило столь широкому ее распространению.

Первые пять версий Symbian OS были выпущены в течение последующих трех лет от даты выхода EPOC 32. Все они были построены на 16-разрядной архитектуре, что на тот момент было весьма неплохо, но с течением времени мо­бильные устройства становились мощнее, и потребность в 32-разрядной плат­форме назрела естественным образом. Мобильные устройства стали действи­тельно мобильными и по размерам, и по своему техническому потенциалу. Такое развитие не осталось незамеченным компанией Symbian Ltd., и в 2000 году выш­ла шестая версия операционной системы Symbian с полноценной 32-разрядной архитектурой. Поддержка приложений, написанных под первые пять версий Symbian, в шестой и седьмой версиях отсутствует и это, прежде всего, объясняет­ся сменой множества программных интерфейсов. Библиотека API в шестой и седьмой версиях значительно изменилась как в техническом аспекте, так и про­сто в названиях интерфейсов, классов и функций. Год спустя, в 2001 году, вышел новый релиз шестой версии под названием Symbian OS 6.1, где происходит раз­деление операционной системы на две части, а именно: на ядро и графическую подсистему. Это был очень важный шаг компании Symbian Ltd. Благодаря тако­му разделению системы на подсистемы, у производителей мобильных устройств появилась возможность сопровождать свои телефоны оригинальным графичес­ким интерфейсом под стать своему фирменному стилю, а также адаптировать пользовательский интерфейс под конкретные устройства с различным разреше­нием экрана. Одна и та же версия Symbian OS может выглядеть по-разному на различных устройствах. Посмотрите на рис. 1.1, где представлены два пользова­тельских интерфейса смартфонов компании Nokia: N-Gage и N-Gage QD. Оба эти










Рис. 1.1. Смартфоны N-Gage и N-Gage QD

устройства работают под управлением Symbian OS 6.1, но взгляните, насколько отличаются их графические интерфейсы.

Интерфейсы, изображенные на рис. 1.1, - это и есть свои фирменные стили, которые преобразовываются под конкретную марку устройства, что дает разра­ботчикам массу новых возможностей. В число лицензиатов входят такие извест­ные компании, как:


  • Psion;

  • Nokia;

  • Motorola;

  • Sony Ericsson;

  • Siemens;

  • Samsung;

  • SUN;

  • Panasonic;

  • Sanyo;

  • BenQ;

  • Fujitsu;

  • Sendo;

  • Mitsubishi Electric;

  • Borland;

  • ARM;

  • Intel;

  • AppForge;
    G Metrowerks;

  • Vodafone;

  • Orange.

В 2005 году появилась последняя на сегодняшний день восьмая версия Sym­bian OS. Телефонов на платформе этой версии выпущено пока три модели - Nokia 6630, Nokia 6680 и Nokia 6681. Правда анонсировано еще несколько устройств, но их еще нет в продаже, поэтому в книге версия Symbian OS 8.0 не рассматривается. В итоге на сегодняшний день существуют версии Symbian OS 6.1 (7.0,7.0s, 8.0,8.0а).

По заявлениям Symbian Ltd. к концу 2005 года ожидается появление мобильных устройств на базе Symbian OS 9.0. Приложения, написанные под Symbian OS 6.1, совместимы для программ под Symbian OS 7.0 и выше, а вот обратной совместимо­сти нет. К сожалению, такая особенность представляет дополнительные трудно­сти программистам, тем более что телефонов, работающих на Symbian OS 6.1, сейчас на потребительском рынке порядка 50%.

Если вы знакомы с книгой «Программирование мобильных телефонов на Java 2 Micro Edition», то найдете некоторое сходство в написании приложений на Java под профили MIDP 1.0 и MIDP 2.0. Практически то же самое наблюдается в программах под Symbian OS 6.1 и Symbian OS 7.0. Это несколько усложняет нашу задачу, но, несмотря на это, Symbian OS - хорошо продуманная, многоза­дачная 32-разрядная операционная система, написанная на языке программиро­вания C++ в лучших традициях объектно-ориентированного программирования. Пожалуй, отличительными особенностями этой операционной системы являют­ся ее стабильность в работе и компактность. Так как на телефонах под управлени­ем Symbian OS переустановить операционную систему невозможно, то стабиль­ность в работе становится одним из определяющих факторов, поднявших эту операционную систему до таких высот.

1.1. Работа в Symbian OS





Прежде чем мы перейдем к созданию приложений, необходимо ознакомиться с основами работы в Symbian OS, то есть побывать в роли простого пользователя, чтобы осмыслить принцип работы программ, навигации в приложениях и рас­смотреть нюансы работы с этой операционной системой.

Количество телефонов, работающих под управлением Symbian OS, большое (в Приложении 2 вы найдете полный обзор телефонов на базе Symbian OS). Каж­дая модель телефона, как правило, имеет свой, присущий только этой модели, графический интерфейс. Каждый производитель придерживается своей системы расположения графических элементов, но общий принцип работы с приложени­ями для Symbian OS все же одинаков.


Рис. 1.2. Экран телефона Nokia N-Gage QD

Отображение информации сводится к по-экранному представлению данных, а переход с экрана на экран производится с помощью подэкранных клавиш телефона, джойстика или стилуса (телефоны с сенсорным экра­ном). На одном экране единовременно может отображаться только одно окно, исключения составляют лишь небольшие по размеру всплывающие диалоговые или информаци­онные окна, например, уведомляющие поль­зователя об ошибке, о получении SMS, вхо­дящего звонка, лицензионном соглашении при установке приложения, списков и так да-



лее. Такие окна, как правило, появляются лишь на некоторое время, после чего ис­чезают или требуют подтверждения, отмены каких-то действий. Экран телефона делится на области (см. рис. 1.2, где изображен экран телефона Nokia серии 60).

На панели состояния (Status panel) находится логотип оператора сотовой связи, индикаторы заряда батареи и сети, число, время (см. рис.1.2). Панель состо­яния при переходе с экрана на экран, то есть при перемещении по меню, остается жестко закрепленной. Меняются только графические элементы, отображаемые на этой панели. Есть исключение, когда панель состояния может не использоваться в связи с работой программы в полноэкранном режиме, например, в играх. Обыч­но это красочные окна со своим продуманным интерфейсом и средствами навига­ции, напоминающими компьютерные игры. Посмотрите на рис. 1.3, где показаны меню игр Red Faction и Splinter Sell.










Рис. 1.3. Меню игр Red Faction и Splinter Sell

Панель контроля (Control panel) содержит назначенные команды для двух по-дэкранных клавиш телефона. Набор команд может быть абсолютно разным и зависеть от решаемой задачи. В основном клавиша, находящая под левым ниж­ним углом экрана телефона, содержит команды: Продолжить, Принять, Функ­ции, Выбор и так далее, а клавиша, расположенная под правым нижним углом экрана, содержит команды отменяющего характера. Возможно и назначение обе­им клавишам выполнения функций меню. Посмотрите на рис. 1.4, где показаны варианты взаимодействия с панелью контроля.











Рис. 1.4. Панель контроля

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

1.2. Навигация

Рабочий стол в зависимости от производителя может использоваться по-раз­ному. Одни производители сразу отображают меню на рабочем столе в виде набо­ра иконок, как показано на рис. 1.1 (но и при переходе на рабочий стол сохраняет­ся панель контроля и панель состояния с графическими элементами, названием окна и так далее). Перемещение по командам меню происходит с помощью курсо­ра, который перемещается по экрану джойстиком или управляющими клавиша­ми: Up (Вверх), Down (Вниз), Left (Влево), Right (Вправо). Если одна из иконок или команда меню находится в фокусе курсора, то при нажатии клавиши выбора произойдет переход в программе в соответствии с выбранной командой. Посмот­рите на рис. 1.5, где показаны два окна Средства и Дополнительные функции телефона N-Gage.











Рис. 1.5. Окна Средства и Дополнительные функции

телефона N-Gage

При переходе фактически происходит простая смена экранов. В новом окне могут быть доступны еще ряд вложенных команд, а на панели контроля в этом случае располагаются команды возврата в родительское окно. К чему я все это объяснял: главное чтобы вы сейчас разобрались в схеме перехода с экрана на эк­ран, иначе говоря, в навигации, потому что подобные принципы перемещения ис­пользуются во всех программах под Symbian OS.

Но есть и еще один вид представления команд меню - это так называемые вкладки (см. рис. 1.6). Перемещаться по ним можно с помощью джойстика или клавиш Left и Right. Такой вид навигации достаточно часто используется в про­граммах и принадлежит к одному из видов диалога.

Набор команд в отдельно взятом устройстве зависит от функциональных возможностей самого телефона. В телефоне всегда имеются встроенные програм-












Рис. 1.6. Вкладка в Symbian OS

мы, поставляемые с Symbian OS. Это различный дополнительный софт, напри­мер, калькулятор, текстовый редактор, конвертер валют, диктофон, календарь, телефонная книга, композитор, просмотрщик изображений и многое другое. На­деюсь, вам стал понятен общий смысл экранной навигации в программах для Symbian OS.



1.3. Интернет

Операционная система Symbian дает возможность пользователю работать с сетью Интернет и просматривать WML- (язык разметки страниц для беспро­водных устройств), XHTML- и HTML-страницы. Встроенные возможности про­смотра стандартных HTML-страниц на некоторых устройствах по непонятным причинам не поддерживаются, но эту проблему весьма благополучно решают программы сторонних производителей, например мобильные Интернет-браузе­ры Opera, NetFront или Browser (о них вы узнаете дальше в этой главе из раздела Обзор программ).

Для доступа в Интернет можно использовать WAP (Wireless Application Protocol - протокол беспроводного соединения) или GPRS (General Racket Radio Services - служба пакетной передачи данных). С финансовой точки зрения выгодней работать через GPRS, оттого, что плата взимается за объем скаченных данных, а это приблизительно от 5 до 7 рублей за мегабайт (в зависимости от оператора сотовой связи). Некоторые операторы берут еще и посуточную або­нентскую плату, но есть операторы, которые поступают более гуманно.

Для выхода в Интернет необходимо создать точку доступа с заданными па­раметрами. Обычно используются следующие параметры:



  • имя соединения - это описательное имя для создаваемой точки доступа;

  • канал данных - если вы планируете использовать GPRS, укажите именно
    это значение;

  • имя точки доступа - этот параметр нужно узнать у своего поставщика
    услуги;

  • имя пользователя — так же предоставляется оператором связи;



  • пароль - предоставляет поставщик услуги;

  • домашняя страница - это домашняя страница
    вашего оператора сотовой связи;

О IP-адрес шлюза - адрес шлюза WAP используе­мого при подключении.

На рис. 1.7 показано определение точки доступа.

После определения точки доступа можно беспре­пятственно, конечно, при наличии денежных средств на счету, посещать интересующие Интернет- страницы.


Рис. 1.7. Определение точки доступа

Интернет-сайты, созданные при помощи языка WML, можно просматривать через GPRS-WAP. Для этого зай­дите в меню телефона Интернет и создайте новую за­кладку, после чего нажмите Выбрать. Появится неболь-

шое диалоговое окно с вопросом о подключении к серверу, как показано на рис. 1.8. Подтвердите свои намерения и ждите связи с сетью Интернет по каналу GPRS.













Рис. 1.8. Соединение с Интернет

Интернет-страницы, написанные с помощью языка WML, предназначены для отображения простой текстовой информации. Иногда это очень удобно, на­пример, сидя в автобусе, можно быстро просмотреть свою электронную почту. Так что слухи о смерти WAP несколько преувеличены. С другой стороны, сайты созданные с помощью XHTML и HTML, выглядят куда привлекательней. Не стоит забывать и о том, что при доступе к Интернет-ресурсам в формате HTML можно не только просматривать страницы, но еще и скачивать файлы, например, вложение к письму электронной почты. Учитывая тот факт, что за один мегабайт принятой информации по каналу GPRS необходимо заплатить несколько руб­лей, это совсем неплохо, и вы действительно имеете в руках мобильный офис. Конечно, присутствуют и некоторые неудобства, например, маленький размер экрана, затрудняющий работу, однако технологии постоянно развиваются. Ведь телевизоры тоже когда-то были громоздкими и черно-оелыми.



1.4. Java-приложения

Операционная система Symbian позволяет запускать программы, написан­ные на языке C++ и Java 2 ME. Телефоны на платформе Symbian OS располагают как минимум 3,4 мегабайтами пользовательской памяти (для хранения программ и пользовательских данных, не путать с оперативной памятью). Дополнительно возможно подключение карт памяти различных форматов (в зависимости от про­изводителя телефонов) размером 32, 64, 128 и 512 Мб. На подобный объем дополнительной памяти можно установить несколько десятков различных про­грамм и главное, размер программы написанной на Java 2 ME или C++ абсолют­но не ограничен в отличие от телефонов с поддержкой только Java 2 ME. В смар­тфонах под управлением Symbian OS при наличии карты памяти можно устанавливать программы, не заботясь об их размере. Поэтому при покупке кар­ты памяти к телефону не скупитесь - приобретите карту наибольшего размера. Единственное, что необходимо учесть при выборе, это ограничения размера кар­ты памяти, задекларированные производителем. Эту информацию можно найти в справочном руководстве телефона.

Программы, написанные на Java 2 ME или C++ можно приобрести, напри­мер, в Интернете, благо их стоимость невелика. Загружать программы можно прямо на телефон по каналу GPRS или на компьютер, а после передать их на телефон. Связь телефона с компьютером осуществляется через инфракрасный порт, Bluetooth или с помощью обычного кабеля, подключаемого к СОМ- или USB-порту компьютера. Для связи компьютера и телефона необходимо пользо­ваться программным обеспечением, поставляемым производителем телефона. Если у вас есть карта памяти и соединение с компьютером происходит через USB-кабель, то можно обойтись и без программного обеспечения. В этом слу­чае при подключении телефона к компьютеру карта памяти телефона опреде­лится операционной системой компьютера как дополнительный съемный нако­питель. Такой способ подключения напоминает работу с устройством USB Flash (флэш-карта): можно удалять или перемещать любые файлы и програм­мы на карте памяти вашего телефона. Но все же лучше для связи телефона и компьютера использовать программное обеспечение, которое находится на сай­те производителя телефонов. Для смартфонов на базе Symbian OS можно ис­пользовать неплохую программу под названием Oxygen Phone Manager 2.2.1 доступную на сайте http://www.opm-2.com/symbian. Программа имеет понят­ный интерфейс и работает с телефонами на платформе Symbian OS вне зависи­мости от производителя.

Программы, написанные на Java 2 ME, распространяются в заархивирован­ном виде в двух файлах с расширениями *.jad и *.jar. Файл *.jad - это дескриптор приложения, содержащий описательные характеристики для jar-файла. В свою очередь jar-файл - это и есть откомпилированная программа на Java 2 ME. За­грузив Java программу в смартфон, у вас есть два варианта установки. Один из способов - это использование файлового менеджера, вы узнаете о нем в этой гла­ве из раздела 1.6 (Обзор программ для Symbian OS). Другим способом является

применение стандартных средств, предусмотренных в Symbian OS. В платформу Symbian встроена специальная программа под названием Приложения. Для того чтобы воспользоваться этой программой разместите Java приложение в каталог С:\(модель телефона)\1пз1а1Ь, после этого программа Приложения увидит уста­новленные Java-файлы. Зайдите в Меню => Приложения и перейдите на вкладку Загружено. На вкладке Загружено в основной области окна будут перечислены все Java-программы, доступные для установки на телефон. Воспользуйтесь ко­мандами Функции => Установить в меню вашего телефона. Появится диалого­вое окно с вопросом о продолжении или отмене процесса установки. При поло­жительном ответе на экране телефона появится еще одно диалоговое окно для выбора каталога установки. Посмотрите на рис. 1.9, где на примере игры Call of Duty 1.0 показан процесс установки Java игры.












Рис. 1.9. Установка игры Call of Duty 1.0

При выборе каталога установки программы у вас есть два варианта это: па­мять телефона и карта памяти (если она установлена на телефоне). На рис. 1.9 видно, как в диалоговом окне при выборе директории отображается сначала раз­мер устанавливаемой программы в килобайтах, а затем свободное пространство на карте памяти и памяти устройства. Все приложения на Java и C++ лучше уста­навливать на карту памяти для экономии системных ресурсов телефона. Как уже было отмечено, пользовательская память смартфонов равна как минимум 3,4 Мб. Из них от 800 Кб до 1,5 Мб занято самой системой, поэтому к оставшимся мега­байтам лучше относиться бережно, применяя карту памяти, которая может умес­тить в себе не один десяток программ.

После выбора каталога установки продолжите процесс инсталляции прило­жения, нажав подэкранную клавишу Выбрать. После окончания процесса уста­новки зайдите в программу Приложения. Здесь вы увидите весь список установ­ленных Java программ. Запуск программы осуществляется с помощью команд Функции => Открыть. Удаление установленных программ нужно производить через программу Приложения. Выберите программу для удаления и воспользуй­тесь командами Функции => Удалить.


1.5. Программы на C++

Самым главным и очевидным достоинством Symbian OS является возмож­ность загрузки программ, написанных на языке программирования C++. Такие программы пишутся с помощью специализированных средств программирова­ния. Операционная система Symbian OS написана на C++, и этот язык програм­мирования считается для нее основным.

Огромная системная библиотека (API) компании Symbian Ltd., написанная на языке программирования C++, открывает потрясающие возможности для раз­работки мощных приложений.

Программы, написанные на C++, распространяются в файлах с расширением *.sis. Пакет с расширением *.sis создается в средах программирования (IDE), рас­сматриваемых в главах 2 и 3, с помощью специальной программы под названием SISAR или командной строки. Программа SISAR распространяется с инструмен­тальными средствами разработчика (SDK) от компании Nokia, о которых вы уз­наете из главы 4.

Процесс инсталляции С++-программ практически идентичен процессу уста­новки Java-приложений за исключением нескольких моментов. При установке





С++-программ также можно воспользоваться двумя способами: с помощью файлового менеджера или встро­енными средствами Symbian OS. Установку С++-про-грамм с помощью файлового менеджера мы рассмотрим в этой главе в разделе 1.6 (Обзор программ для Sym­bian OS). Встроенная программа под названием Дис­петчер производит установку и удаление программ с расширением *.sis. При инсталляции программы на C++ установочный пакет должен находиться либо в систем­ной памяти на диске С, либо в корневом каталоге диска Е (карта памяти), иначе Диспетчер не найдет устано-

вочный пакет. На рис. 1.10 изображена программа Дис- рис -/ -jq диспетчер


петчер со списком установленных программ. установки и удаления

В основной области окна находится выполненный программ

в виде таблицы список установленных программ. С ле­вой стороны от названия любой из программ можно увидеть размер программ в килобайтах, а с правой стороны значок, показывающий установлена программа или нет. Значок определения установки программы может быть разным и зави­сит от производителя. Устанавливаются sis-программы достаточно просто. На рис. 1.11 изображен пошаговый процесс установки программы Real One Player для воспроизведения видеофайлов на телефоне.

Выделив с помощью курсора название устанавливаемой программы, в меню программы Диспетчер выберите команды Функции => Установить. Появится диалоговое окно с подтверждением действий по установке. После выбора коман­ды ОК можно будет выбрать каталог для устанавливаемой программы. Програм­мы, написанные на C++, могут быть достаточно внушительных размеров и дости-


























Рис. 1.11. Установка программы Real One Player

гать 10-15 Мб. И, как правило, это шедевры игростроения! После завершения про­цесса установки в меню телефона появится красочно оформленная иконка установ­ленной программы (см. рис. 1.11) Real One Player.

Удаление установленных программ необходимо производить так же через программу Диспетчер. Выберите с помощью курсора программу, которую вы хо­тите удалить, и воспользуйтесь командами Функции => Удалить. Никогда не удаляйте установленные Java 2 ME- и С++-программы файловыми менеджера­ми! Эти действия не корректны и создают множество проблем, в главе 6 вы найде­те одну небольшую историю как раз на эту тему.

Используя программы на C++ от сторонних производителей, на своем теле­фоне можно организовать полноценный мобильный офис и быть в курсе всех последних событий. В следующем разделе представлен небольшой обзор про­грамм для Symbian OS.



1.6. Обзор программ для Symbian OS

На рынке программного обеспечения для Symbian OS сейчас имеются сотни всевозможных программ: системные, офисные, мультимедиа-, Интернет- про­граммы, игры. Множество компаний и просто программистов-одиночек со всего земного шара активно участвуют в создании программного обеспечения и тем

самым развивают Symbian OS. Программы, предлагаемые пользователю разра­ботчиками, могут распространяться как платно, так и бесплатно. Широко рас­пространена система так называемых программ trial version (ограниченная по времени версия), которые работают лишь ограниченное время, после чего пред­лагают себя купить. Цена на подобные программы действительно разумная, по­этому объем продаж достаточно высок. Именно пробные версии программ для Symbian OS являются распространенным способом продвижения программного обеспечения на рынке, что обязательно нужно учитывать при создании своих программ.

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



1.6.1. Файловые менеджеры

Наверно первое, что необходимо установить на свой смартфон - это файло­вый менеджер, без которого в принципе и «шага» нельзя сделать. Честно говоря, не понятно, почему до сих пор в стандартной поставке телефонов на базе той же серии 60, нет места файловому менеджеру. Здесь, правда, не берутся в расчет коммуникаторы - за деньги, которые они стоят, в комплекте не только файловый менеджер должен поставляться, но и палатка, надувная лодка и набор рыбацких снастей (кстати, было бы очень актуально в Финляндии).

Но вернемся к менеджерам. Количество таких программ исчисляется десят­ками. Наиболее известные это: FileMan, SeleQ и eFileManager. На рис. 1.12 эти программы изображены в рабочем состоянии, отображающие файловую систему смартфона Nokia N-Gage QD.

С помощью файлового менеджера, так же как и на компьютерных системах, можно выполнять операции по удалению, перемещению, копированию, сорти­ровке, поиску и переименованию файлов. Обходиться без такого вида программ сложно. Что касается рассмотрения процесса установки Java- и С++-программ с помощью файлового менеджера, то тут все достаточно просто. Установочный файл может находиться в любом месте файловой системы. С помощью файлово­го менеджера вы находите необходимый файл и даете команду Открыть. По­скольку программы, написанные на Java 2 ME и C++, поставляются в виде заар­хивированного установочного пакета, то Symbian OS расценит действие по открытию установочного файла как команду к инсталляции программы. В зави­симости от вида программы (Java 2 ME или C++) откроется соответствующий инсталлятор Приложения или Диспетчер. Процесс установки произойдет тра­диционным способом, который рассмотрен в разделах 1.5 и 1.6 этой главы.



1.6.2. Веб-браузеры

Не менее важным видом программ являются программы, обеспечивающие доступ в Интернет для просмотра веб-страниц. Таких программ очень много, но наслуху в основном такие «монстры», как Opera, NetFront и Browser. С помощью























Рис. 1.12. Файловые менеджеры FileMan, SeleQ и eFiieManager

этих программ можно просматривать веб-страницы в формате HTML. Экран те­лефона по размеру существенно отличается от монитора, но используемый алго­ритм для форматирования больших по размеру веб-страниц делает возможным их просмотр на телефоне. На рис. 1.13 изображен Интернет-браузер Opera, NetFront и Browser.

Мобильные Интернет-браузеры позволяют не только просматривать HTML страницы, но и загрузить необходимый файл по каналу GPRS. Загрузить файл из Интернета можно и с применением специализированных программ (например, fGet). С помощью этой программы по прямой ссылке можно загрузить любой файл и что самое главное, программа fGet поддерживает дозагрузку файлов при обрыве связи!

1.6.3. Мультимедиа

Набор программ в этом секторе рынка немалый: это и программы для про­смотра видео, МРЗ-плееры, программы для просмотра изображений, конверти-ровщики и так далее. В Symbian OS можно просматривать видео-файлы в формате *.3gp и *.nim, но качество их все же оставляет желать лучшего. Явным фаворитом здесь выглядит программа SmartMovie, воспроизводящая на телефоне видео в формате AVI очень приличного качества. Программа SmartMovie поставляется вместе с конвертировщиком, который устанавливается на компьютер и переко­дирует исходный видео-файл в формат AVI для телефона.


























Рис. 1.13. Интернет-браузер Opera, NetFront и Browser

В некоторых смартфонах воспроизведение МРЗ-файлов происходит аппа-ратно. Существует множество МРЗ-плееров для Symbian OS, поэтому выделить какую-то одну программу трудно. Все плееры обеспечивают качественное про­слушивание МРЗ-файлов, самый известный из них - UltraMP3. На рис. 1.14 изображены программы SmartMovie и UltraMP3.












Рис. 1.14. Программы Sm apt Movie и ШгаМРЗ

1.6.4. Игры

Этот раздел можно сделать бесконечно длинным - игровая индустрия мо­бильных игр развивается быстрыми темпами, огромный спрос пользователей стимулирует выход все новых и новых игр. На смену двухмерных игр пришли полноценные трехмерные игры с мощной графикой. Не зря компания Nokia со­здала линейку смартфонов под названием N-Gage, позиционирующихся как иг­ровой пульт. Кроме игр с расширением *.sis в N-Gage доступен специальный класс игр, поставляемых на картах памяти. Можно с уверенностью сказать, что мобильные игры, написанные как на Java 2 ME, так и на C++, будут завоевывать у пользователей все большую и большую популярность.

Помимо перечисленных видов программ существует множество всевозмож­ных программ, например, для работы с архивами, чтения книг, просмотра файлов Word, Excel и Power Point, которые мы просто не в силах рассмотреть. Для вас, как для программиста, открывается большое поле деятельности и, учитывая, что сроки создания программ для Symbian OS могут исчисляться всего неделями, интерес к этой сфере деятельности только увеличивается.

В следующих трех главах мы поговорим об инструментальных средствах раз­работки, служащих для написания программ на языке программирования C++ в Symbian OS.




следующая страница >>