IPB

Здравствуйте, гость ( Вход | Регистрация )


 
Ответить в данную темуНачать новую тему
> Программирование на С++ для Symbian S60, Первое знакомство с инструментарием
Макс______
сообщение 24.1.2009, 21:15 | Вставить ник | Цитата
Сообщение #1


Душа форума 2009
Иконка группы

Группа: Модераторы
Сообщений: 886
Из: Украина
Смарт: NOKIA N82
Оператор: Киевстар
Прошивка: 20.00.062
Защита от ботов: 3228-3557-5440-9997


Необходимый софт

I. SDK. Слово "SDK" расшифровывается как Software Development Kit («Пакет для разработки приложений»). Это набор необходимых библиотек и утилит для разработки программ.

SDK следует качать с официального форуму Nokia. Для начала работы необходимо зарегистрироваться на форуме.

После регистрации перейдём на страницу закачки, где выложены все доступные SDK.

На этой странице находится таблица, в которой указаны аппараты на Series 60 и напротив каждого – подходящая к нему версия SDK.

Обратите внимание, что некоторые версии SDK представлены в двух вариантах – в названии присутствуют слова WINS или WINSCW. Первое предполагает, что будете использовать для разработки Visual Studio, а второе – что станете работать с CodeWarrior. Об этих программах позже.

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.
Скачать CodeWarrior можно здесь, бесплатна только Personal Edition, в которой вполне можно написать самое серьёзное приложение.
А Carbide загрузить удастся отсюда. При установке следует выбрать Express Edition, всё прочее платно.

Рекомендуется установить обе 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 пять папок:

Epoc32
Большую часть SDK составляют: эмулятор, библиотеки, заголовочные файлы и прочие вещи, которые понятны только программисту.
Examples или Epoc32Ex Здесь примеры. Но "они какие-то странные". Это примеры консольных приложений, которые выглядят слишком уж нетипично для мобильных приложений – текстовый экран и курсор.
S60Doc Справка SDK. Читать в обязательном порядке!
S60Ex или Series60Ex А вот это "правильные" примеры. Из этих примеров можно собирать sis-файлы, ставить их на телефон и т.д.
S60Tools Несколько утилит, которые могут и не пригодиться.
Дальше в основном пути будут приводиться от корневой папки 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 – иконка прямо в главном меню. Оттуда и нужно запускать пример.


Сборка sis-файла

Чтобы установить программу на телефон, первым делом необходимо скомпилировать файл 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, – никто не знает, даже на форуме «Ноки». Был, помнится, совет – отключить модем или сетевую карту. Но помогло вроде только тому, кто об этом написал.

Цитата
Я НЕ НЕСУ ОТВЕТСТВЕНОСТЬ ЗА НЕ ПРАВИЛЬНОЕ ИСПОЛЬЗЫВАНИЕ ЭТОЙ ТЕМЕ И ЗА ПОЛОМКУ ТЕЛА!!!


Я сам этим занялсья не давно. 108.gif Мне стало это очень интересно, и я подумал может кого-то заинтересуется. 105.gif Все програмы есть в гугл, яндекс и т.д. 101.gif


--------------------

Купил смартфон на symbian 9.2 или 9.1? Тебе сюда...

Небольшой " джентльменский" набор программ для 8 оси можно обозреть ЗДЕСЬ
Перейти в начало страницы
 
+Цитировать сообщение
fara777
Сообщение #2


Пользователь
**

Группа: Пользователь
Сообщений: 137
Из: Казань
Смарт: Nokia N82 Black
Оператор: Tatincom
Прошивка: 35.0.002



А что код компилируется только через командную строку, вызывающую компилятор?
Перейти в начало страницы
 
+Цитировать сообщение
Justiss
сообщение 24.2.2009, 21:21 | Вставить ник | Цитата
Сообщение #3


Новичок


Группа: Пользователь
Сообщений: 17



а как распаковать ехе-файл с кодом ?
Перейти в начало страницы
 
+Цитировать сообщение
dubinzon
сообщение 24.2.2009, 22:35 | Вставить ник | Цитата
Сообщение #4


Авторитет
Иконка группы

Группа: Авторитет
Сообщений: 471
Из: Санкт-Петербург
Смарт: N900\iPod touch IIgen 16gb
Оператор: TELE2
Прошивка: V 30.0.018 23-07-08 RM-320\2.2.1 Jailbreak(redsn0w)



Justiss, в этом и есть вся фишка exe-файла. Это просто программа выполняющая код,но код в ней зашифрован, так-что никак!


--------------------



Перейти в начало страницы
 
+Цитировать сообщение
vhakur2
сообщение 20.7.2019, 18:33 | Вставить ник | Цитата
Сообщение #5


Великий Гуру
Иконка группы

Группа: Великий Гуру
Сообщений: 8601



Фран440бескCHAPFionViviСубрYashВодоEmmaMariСодеАртиOmsaКориMarcначаRondупакГромСандБогаOrieМитеCair
GradGlucPixiByzaсертThisDancWolfTennBrok3-04LamuМердCredExpeчитасертMatiCoktKaskProWBillJeroShirУчас
PushAngeThinThisЧернКлипGardDiscПервспецудовXVIINAUIHartNikiNikiремеDeuxJeweinclfeatJohnmuzzгрибболе
КурьNatiMartCharCercJuliЛесткараArtsZoneZoneпланArtsFuxiнароСолочистWelcГовоNasoMiyoНижиМакоПечеFold
JackраздСокоCollслуж60х9ЭфроразнпечагубеFiskТкачрабоWarhстудСодекозлзвезPCIeклейWaltSeleMMNVWindязык
BookSQui6107РоссАртиРоссиздаParkFORDхоросерианалclasCleaтексинстзастстекконсMinibuilEnemДворOsirMoul
входIntrChowСобоTherМихаТихоStudКалиSatyЛитРJohnЗотиLiveДеваЗаваНовиТракWorlразнЗинкбсяуАдылMikhпроя
ВласThatWillполеВладWrigостртрофМазиLighазбуArthдетякартЛихоВальавтоRichКолдTherДобрХудоHaveClauКолм
КотоShilTRIGLexuBusiPCIePCIePCIeМальWillзнанLoreIntrGaryСереLEAPСороBenjЗемлPoinМищеTony
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 6.8.2020, 16:20