I. SDK. Слово "SDK" расшифровывается как Software Development Kit («Пакет для разработки приложений»). Это набор необходимых библиотек и утилит для разработки программ.
SDK следует качать с официального форуму Nokia. Для начала работы необходимо зарегистрироваться на форуме.
После регистрации перейдём на страницу закачки, где выложены все доступные SDK.
На этой странице находится таблица, в которой указаны аппараты на Series 60 и напротив каждого – подходящая к нему версия SDK.
Обратите внимание, что некоторые версии SDK представлены в двух вариантах – в названии присутствуют слова WINS или WINSCW. Первое предполагает, что будете использовать для разработки Visual Studio, а второе – что станете работать с CodeWarrior. Об этих программах позже.
Вот таблица, содержащая почти все известные на сегодняшний день модели и соответствующие им версии SDK:
|
Некоторые значения пока непонятны, но в будущем мы к ним вернёмся.
2 общих правила при выборе SDK:
1. Платформы S60 1st и 2nd несовместимы с S60 3rd. Для каждой требуется собственная версия SDK.
2. Для каждого телефона в таблице указана версия SDK, с ней и следует работать. Если использовать более раннюю версию, может оказаться, что некоторые функции аппарата нельзя будет задействовать.
Чтобы охватить все существующие телефоны на Series 60, понадобятся два SDK – версий 1.2 и 3.0. Если программа написана для Symbian 6 – она почти наверняка будет работать на телефонах S60 2nd (Symbian 7-8) и большая часть исходного кода безо всяких изменений перейдёт на S60 3rd (Symbian 9). Особенности каждой версии SDK указаны в release notes, которые доступны на странице закачки.
II. Среда разработки на С++ (IDE). Если SDK – внутренние органы языка программирования, то IDE – кости и мышцы, а также средства коммуникации с внешним миром. Без IDE пользователь не может писать программы, но с ней – получает доступ к удобному интерфейсу, компилятору, справке и другому. Nokia предлагает использовать одну из двух программ – Carbide.C или Metrowerks CodeWarrior for Series 60. О них пойдёт речь в следующей главе. Для работы с Symbian 6 используется Microsoft Visual Studio 6.x. Кроме того, есть ещё вариант использовать Visual Studio .NET 2003, для него потребуется скачать и установить Caride.C и особый пакет для поддержки Visual Studio под названием Carbide.VS.
Зачем же нужны все эти "студии", если можно использовать то, что Nokia рекомендует? Во-первых, не все программисты легко расстаются с удобными и привычными для них инструментами (потому как Visual Studio используется также и для программирования для Windows), ну а во-вторых – качество нокиевских инструментов пока не выдерживает никакой конкуренции с мировым лидером производства софта для ПК. Бесплатные версии Visual Studio не подходят для наших целей.
Итог: если вы начинающий, то ставьте всё, как советуют финны: Carbide.C или Metrowerks CodeWarrior for Series 60.
Рекомендуется установить обе IDE сразу, а потом разобраться, какая из них удобнее. Как для Carbide, так и для CodeWarrior инсталляционный комплект - общий для бесплатной и платных версий. Нужный вариант выбирается во время установки. Если была установлена платная версия – программа напомнит о необходимости оплаты по истечении пробного периода.
III. Perl. Perl подойдёт любой, более-менее современный, бесплатно скачать ActivePerl можно с сайта разработчика.
Работать напрямую с Perl не придётся, но он необходим для множества инструментов из SDK.
IV. Виртуальная машина Java. Java-машина на 100% необходима, если вы собираетесь устанавливать Carbide – версия 1.1 требует виртуальную машину не ниже 1.4.2.
На платформах S60 1st - 2nd JAVA-машина необязательна, без неё не будет работать только несколько необязательных утилит. Для Symbian 6 нужна древняя версия машины 1.3.1, которую разве что можно найти в архиве производителя, более поздние версии не подходят.
Для S60 3rd edition Java-машина обязательна. Но тут уж чем свежее – тем лучше. Брать по этой ссылке.
JAVA, которая нужна для наших целей, называется Runtime Environment, в названии установочного комплекта должны быть буквы RE, а размер установочного комплекта – примерно 20 Мб. Есть ещё установочные комплекты SDK – для разработчиков JAVA, для Symbian-программистов они не потребуются.
Ставить скачанные программы лучше всего в такой последовательности:
1. ActivePerl.
2. Виртуальная машина JAVA.
3. Среда разработки.
4. SDK.
НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ менять папку по умолчанию для SDK, а особенно называть её по-русски или задавать имя, содержащее пробелы! Самое лучшее место для SDK – папка C:\Symbian. Иначе вы рискуете встретиться с самыми неожиданными проблемами.
Первым делом заходим в папку, куда всё было установлено. Для Symbian 6 это папка C:\Symbian\6.1\Series60. Для более поздних – C:\Symbian\8.1a\S60_2nd_FP3, C:\Symbian\9.1\S60_3rd.
|
В каталоге каждой SDK пять папок:
|
Дальше в основном пути будут приводиться от корневой папки SDK.
Давайте протестируем, всё ли установилось правильно.
Запускаем в Windows командную строку (Пуск-Выполнить-cmd) и последовательно вводим 3 команды, нажимая после каждой ENTER:
bldmake
make
echo %EPOCROOT%
|
Если в консоли написано, что bldmake или make "не является внутренней или внешней командой, исполняемой программой или пакетным файлом", либо в ответ на echo %EPOCROOT% появился "%EPOCROOT%", а не путь к корневой папке SDK, без буквы диска – пробуйте перезагрузиться, зайти под администратором, выдать монитору оплеуху, потрясти бубном или переставить всё заново, можно вместе с виндой. Пока вы не увидите надписей, похожих на те, что на скриншоте, – ничего работать не будет.
Понятное дело, не терпится что-нибудь запустить. С горящими глазами пользователь забегает в папку с консольными примерами, открывает HelloWorld, и... Эх, в HelloWorld аж 10 файлов...
Ладно, не будем спешить. Заходить надо в Epoc32Ex\basics\helloworld. Там тоже HelloWorld, но поменьше, всего-то 3 файлика. Кто опытный программист – тот уже глянул файл cpp и обнаружил, что в нём несколько строчек кода.
Что дальше? Как увидеть два заветных слова на экране эмулятора?
Первым делом скомпилируйте пример с командной строки.
Меню "Пуск", пункт "Выполнить", вводим команду "cmd" . Далее переходим в нашу папку с помощью команды CD:
cd C:\Symbian\6.1\Series60\Epoc32Ex\basics\helloworld
Перейдя в папку, запускаем команду:
bldmake bldfiles
После выполнения этой команды в папке должен появиться файл ABLD.BAT.
И, наконец, запускаем команду
ABLD BUILD WINS UDEB
если была выбрана Visual Studio,
или
ABLD BUILD WINSCW UDEB
если был выбран CodeWarrior.
Всю эту последовательность видно на скриншоте:
|
Осталось только запустить пример. В папке Epoc32\Release\wins\udeb или Epoc32\Release\winscw\udeb, в зависимости от предыдущей команды, должен быть файл helloworld.exe. Нужно просто запустить его. На экране должно появиться окно эмулятора с первой консольной программой:
|
Чтобы увидеть пример на своём телефоне, необходимо в командной строке запустить другую команду:
ABLD BUILD THUMB UREL
– для Symbian 6-7-8
или
ABLD BUILD GCCE UREL
– для Symbian 9.
После этого получаем консольный HelloWorld, но уже для телефона. Он будет находиться в папке Epoc32\Release\thumb\urel или Epoc32\Release\gcce\urel.
Вы уже обратили внимание, что всё, собранное вами, находится в папке Epoc32\Release\, а дальше путь меняется в зависимости от последних двух параметров запущенной команды?
Дальше консольную программу можно отправить на телефон и запустить из файлового менеджера. Дополнительных действий – создания sis-пакетов, установки их на телефоне – не требуется.
Доводилось слышать высказывания вроде: "Я самостоятельно освоил Word и Excel, могу нарисовать красный кружочек в MS Paint – значит, я опытный пользователь. А что стоит опытному пользователю научиться писать программки для смартфона?!" При этом такой опытный пользователь хочет сделать сразу же что-то большое и красивое. Он просто не представляет себе тот объём информации, который предстоит освоить для написания чего-то большого и красивого!
Правила такие:
1. Начинать изучение C++ нужно, например, с книги "С++ для чайников", но не с Series 60.
2. Начинать обучение нужно с чего-то скучного, простого и уже вроде как умершего, с консольных программ MS DOS, например. Если при этом появляется мысль "а нафиг оно мне надо, это старьё?" – случай безнадёжный.
3. Если уж решили – "кровь из носу, но я начну с Series 60", смотрите в сторону консольных приложений под Series 60 и забудьте на время, что на смартфоне есть картинки, видео и SMS.
Пока слова "итерация", "множественное наследование", "динамический массив" для вас пустой звук и техническая документация на английском переводится с помощью Promt – вам незачем интересоваться окошечками и кнопочками. Не осилите.
Для запуска на эмуляторе графических примеров (из папки Series60Ex) используются те же самые команды, т.е.BLDMAKE BLDFILES и ABLD BUILD XXX UDEB, где XXX может быть WINS либо WINSCW. Однако в данном случае нужно перейти не в корень проекта, а в его подпапку group. Правило такое – запускать команды нужно из папки, где есть файл BLD.INF и файл с расширением MMP.
Запустим для примера графический HelloWorld:
1. Переходим в папку \Series60Ex\helloworld\group (на Symbian 9 HelloWorld называется helloworldbasic).
2. Выполняем:
BLDMAKE BLDFILES
ABLD BUILD XXX UDEB
В данном случае, чтобы увидеть пример в эмуляторе, нужно вначале запустить эмулятор. Поищите его в меню "Пуск-Программы". После запуска нужно в меню эмулятора перейти в папку "installed","apps" или как-то ещё. На Symbian 6 – иконка прямо в главном меню. Оттуда и нужно запускать пример.
|
Чтобы установить программу на телефон, первым делом необходимо скомпилировать файл APP. Это делается с помощью уже упоминавшихся команд:
ABLD BUILD THUMB UREL
– для Symbian 6-7-8
или
ABLD BUILD GCCE UREL
– для Symbian 9.
В папке с проектом helloworld есть подпапка sis, в которой есть файл с расширением PKG. В этой папке следует запустить команду:
makesis helloworld.pkg
Команда работает абсолютно на всех платформах. В результате выполнения команды вы получаете в той же папке файл helloworld.sis. На Symbian 6-7-8 этот файл можно сразу же отправить на телефон и установить. На Symbian 9 файл ещё необходимо подписать self-сертификатом, о чём будет рассказано позже. В ожидании следующей статьи рекомендуем поизучать примеры в эмуляторе и в качестве откомпилированного файла – на самом телефоне.
Иногда автор этих строк сталкивался со странной проблемой – после установки SDK в переменных окружения ничего нового не добавилось. Если в консоли пишется, что какой-то exe-шник не найден – скорее всего, это и есть та самая проблема. Ищем нужный exe-шник, затем щёлкаем правой кнопкой на иконке Мой компьютер -> Свойства->Дополнительно->Переменные среды. Находим в верхнем и нижнем списке переменную path. Вставляем в начало путь, после пути обязательно нужно ставить точку с запятой. Добавлять новый путь следует в нижний список.
|
В одной из версий SDK папка Tools помещалась в C:\Program files\Common Files. В результате в консоли появлялась ошибка "can't found С:\Program", и, естественно, ничего не работало. Необходимо скопировать куда-то эту папку так, чтобы пробелов в пути не было, и вписать новый путь в переменную path.
После манипуляций с переменной path необходимо либо перезагрузиться, либо перезапустить программы, в которых запускались команды.
Проблема Symbian 9 – эмулятор выдаёт белый экран, и сколько ни жди, ничего не меняется. Где это бывает и как его лечить, кроме полной переустановки Windows, – никто не знает, даже на форуме «Ноки». Был, помнится, совет – отключить модем или сетевую карту. Но помогло вроде только тому, кто об этом написал.
Примеры и документация находятся на сайте Nokia здесь.
Зачастую это единственная доступная документация по использованию некоторых функций, в то время как в SDK по этим самым функциям ничего нет.
Примеры на отправку и приём SMS не компилируются на Symbian 6-7 – это стандартный баг этих SDK. Чтобы исправить эту ошибку, читаем очень внимательно прилагаемый файл release_notes.txt. Не помогло? Читаем ещё внимательней! Там сказано, какие файлы из SDK нужно подправить.
Ну и, естественно, не забываем раздел Discussion Boards на нокиевском сайте, и там же Wiki-страницы. Русскоязычные Wiki-страницы пока ещё не сильно богаты полезной информацией, но ситуация может измениться.
Второй очень крупный сайт - http://newlc.com. Он тоже очень полезный, особенно форум и подборка статей. Если не найден ответ на вопрос на форуме Nokia – ищем там.
Не забываем также про сайт разработчика Symbian OS. Здесь иногда можно найти ответ на вопрос – "Как можно обойти известный разработчикам баг Symbian". В разделе tools – подборка полезных утилит. В разделе libraries – дополнительные библиотеки с полезными функциями, и в частности – бесценная для платформ S60 1st и 2nd библиотека mobinfo, позволяющая программно получить такую информацию, как собственный номер телефона, IMSI, информацию о заряде батареи и прочее, что невозможно с помощью стандартного SDK.
Есть ещё небольшой сайт финского программиста Miki Raento – здесь информации не очень много, но она весьма полезна.
Описания и ссылки на популярных средств разработки и примеры всегда можно найти в нашем архиве программ.