Бормотухи.НЕТ

Вернуться   Бормотухи.НЕТ > Компьютеры > Программирование
Расширенный поиск

Программирование Все о программировании ....

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2008, 17:17 Вверх   #1
Профессиональный DJ
 
Аватар для SETRA
SETRA вне форума
Доп. информация
По умолчанию Пишем под Symbian OS

Операционная система Symbian — одно из наиболее интересных явлений в мире ОС за последние годы. Успешно противостоя натиску Microsoft на мобильном рынке, эта система сегодня стала едва ли не самой распространенной в смартфонах и коммуникаторах.

Symbian — далекий потомок операционной системы EPOC, изначально создававшейся для карманных компьютеров Psion. Компактная, быстрая и надежная ОС пережила несколько инкарнаций, в конце концов превратившись в современную Symbian. Платформа Symbian — уникальный пример системы, совместившей в себе как академические традиции с их тщательностью проработки базовых концепций, так и прагматичность, свойственную коммерческим проектам.

Работа над Symbian OS началась в октябре 1994 г., в то время в команде специалистов, работавшей над проектом Psion, окончательно сформировалось решение использовать Си++ как основу для ОС. К этому времени был накоплен достаточный опыт в области объектного программирования (в процессе разработки ПО и ГИП для EPOC16), и, по воспоминаниям авторов, первые два года ушли на тщательную проработку концепции. Во многом благодаря этому удалось создать действительно эффективную ОС, адаптированную к ограниченным ресурсам мобильных устройств. Первая версия ОС (тогда еще под названием EPOC) появилась на рынке в 1996 г., когда был выпущен КПК Psion Series 5. Версия EPOC Release 5, представленная в марте 1999 г., — это переработанная редакция со множеством дополнительных функций (преимущественно прикладных). В 2002 г. появился первый смартфон на базе этой ОС (Nokia 7650), затем — первый коммуникатор (Sony Ericsson P800), и, что называется, «процесс пошел». Впрочем, история развития Symbian — предмет отдельного разговора, здесь же ограничимся лишь упоминанием актуальных на момент написания этой статьи версий. Прежде всего это Symbian OS v7.0s (в вариантах Series 60 2nd Edition Feature Pack 1, 2 и 3; Nokia N70, N90), Symbian OS v9.1 (Series 60 3rd Edition; Nokia 3250, N71, N80, N91, N92, E60, E61, E70), а также редакции, используемые компанией Sony Ericsson: UIQ 1.1 (Symbian OS v6.1), UIQ 2.1 (Symbian OS v7.0), UIQ 3 (Symbian OS v9).

Ядро
Symbian OS — едва ли не единственный пример распространенной и отработанной микроядерной (если говорить о версии ядра EKA2, то и наноядерной) операционной системы. Получается, что в реальной жизни ОС, основанные на прогрессивной концепции микроядра, с неизбежностью «обрастают костылями», нарушающими идеологическую стройность, но способствующими решению прикладных задач (например, перенос графической подсистемы в ядро при разработке Windows NT 4.0). Но создателям Symbian OS удалось совместить эффективность и концептуальную стройность, несмотря на то что современные версии этой системы предоставляют исключительно обширные возможности, в том числе средства для работы с потоковыми данными, стеками протоколов, критичными к латентности ядра, графикой и видео высокого разрешения). Более того, если говорить о ядре, то одной из основных особенностей версии Symbian 9.0 стал переход на технологию «наноядра» (ЕКА 2, EPOC Kernel Architecture 2). EKA2 — многопоточное ядро с высоким уровнем реентерабельности и атомарности операций (например, допускается вызов обработчика прерывания даже во время процедуры переключения контекста). Оно также обеспечивает возможность работы в режиме реального времени (изначально это делалось, чтобы разработчики аппаратных средств могли отказаться от GSM-модулей, функционирующих под управлением специализированных ОС, переложив эту задачу на центральный процессор).

Будучи микроядерной операционной системой, Symbian «выносит» практически все прикладные (т. е. выходящие за пределы компетенции ядра) задачи в модули-серверы, функционирующие в пользовательском адресном пространстве. Это, правда, не избавляет от регулярных сбоев в смартфонах с этой ОС, но позволяет предотвратить потерю пользовательских данных.

Основные API
Возможности Symbian OS весьма обширны — это вам не виртуальная машина J2ME с многочисленными ограничениями и не Palm OS, а действительно современная, мощная и функциональная операционная система. К ним относятся стандартные средства (планирование процессов и управление ресурсами, запуск программ и связывание динамических библиотек, вывод графики и работа с сетью), а также инструментарий для трехмерной графики (даже акселерированной посредством Open GS ES), работы с мультимедийными потоками в реальном времени (это не только музыка, но и VoIP), Location API (для подключения источников географической информации) и пр.

Все возможности Symbian OS распределены по компонентам, независимым от остальной системы (при этом допускается удаление одного из них без ущерба для всего комплекса). Назначение базового API (модуль Base) очевидно, стоит только отметить, что вместо многих стандартных решений, таких, как, скажем, стандартная библиотека Си++, используются собственные решения, более эффективные в рамках идеологии этой ОС. Подсистема безопасности отвечает за реализацию криптографических алгоритмов, управление сертификатами, инсталляцию ПО и пр. Графический модуль содержит API для отрисовки графики и текста, управления шрифтами, вставки картинок и др. В него также входит клиентский API Window Server и подсистема анимации.

Подсистема «прикладных каркасов» (application framework) — решение, специфичное для Symbian OS. Идеология Symbian OS предполагает разнесение прикладной логики программы и пользовательского интерфейса. Базовые структуры и принципы работы (например, предположение о том, что у всякой программы-редактора есть документ, с которым она работает) или средства обработки клавиатурного ввода заложены и частично реализованы в «каркасе». Фактически именно эта подсистема предоставляет реальным прикладным программам универсальный механизм для решения типовых задач. ГИП может отличаться от устройства к устройству, но принципы его работы неизменны.

Программные «движки» (engines) инкапсулируют логику прикладных программ. Они независимы от ГИП и при необходимости их можно использовать напрямую (скажем, при доступе к данным календаря для его «движка» не важно, чей вызов обслуживается: собственного пользовательского интерфейса или сторонней программы). На этом же уровне функционируют подсистемы обработки мультимедиа и сервисные библиотеки. Наконец, стек протоколов содержит сетевые и коммуникационные компоненты, а также средства синхронизации и телефонии (подсистема расширяема, процесс подключения модулей, реализующих новые стандарты, прост).

Подсистема безопасности (начиная с Symbian v9.x) предполагает предотвращение доступа к структуре каталогов (для «неподписанных» программ, например, запрещен доступ к каталогам других утилит, системному каталогу), доступ к некоторым данным возможен в режиме «только чтение». Самое же неприятное — так называемая «модель возможностей» (capabilities), определяющая доступность тех или иных API. Открытые API составляют около 60% от всех функций ОС, «базовые» включают в себя коммуникационные подсистемы (Интернет, Bluetooth, сотовая связь и др.) и PIM. Они тоже доступны, но попытка вызвать, скажем, функцию отсылки SMS со стороны несертифицированной программы приводит к появлению запроса на разрешение этого действия, тогда как сертифицированная сможет сделать это прозрачно и незаметно для пользователя. В «расширенные» API входят функции, позволяющие манипулировать системной информацией, а «права изготовителя» — предоставляют самый полный контроль над устройством.
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Старый 13.01.2008, 17:18 Вверх   #2
Профессиональный DJ
 
Аватар для SETRA
SETRA вне форума
Доп. информация
По умолчанию

Попробуем.

Series 60 SDK построены на основе специальной версии Symbian OS C++ SDK, распространяемой Symbian. SDK включает в себя множество инструментов, API, библиотеки и документацию, что позволяет создавать приложения на основе типовых шаблонов.
Как разработчику, вам может понадобиться несколько SDK для работы с разными версиями Series 60. Очень важно правильно подобрать SDK для выбранного вами Series 60 устройства.

О возможности использования нескольких SDK
Очень просто использовать один Symbian OS SDK, поскольку сразу после инсталляции все готово к работе. Однако разработчикам часто требуется
работать с SDK конкретной версии Series 60 или даже с SDK конкретной платформы интерфейса пользователя (UI).

Скачать SDK 2.0

Кроме того, SDK бывают для различных систем разработки: WINSCW - для CodeWarrior Development Studio, WINS - основной, его можно использовать вместе с Visual Studioи из командной строки (также есть версии с поддержкой среды Borland C++ BuilderX Mobile Edition). Выбирай версию с поддержкой Visual Studio. Для работы SDK необходим ActivePerl 5.18 (СКАЧАТЬ). Везде в требованиях будет указано, что еще необходима Java2 RunTime 1.3.1. Распакуй архив с SDK и установи его. Обязательно устанавливай на тот же диск, где будут лежать исходные тексты твоих проектов, иначе возможны различные глюки.

Также есть несколько примеров готовых программ. Рассмотрим на примере Series 60 SDK 1.2. Двигай сюда:
Symbian6.1Series60Series60Ex. Войди в пример HelloWorld. Программа поделена на каталоги group (здесь лежат файлы проекта bld.inf и helloworld.mmp, а также файл ресурсов helloworld.rss), inc (подключаемые файлы заголовков), sis (здесь helloworld.pkg - для создания готового пакета с программой helloworld.sis) и src (сами исходные тексты программы). В больших программах файлы с ресурсами обычно помещают в каталог data, а также добавляют каталог aif с информацией о программе и иконками. Для компилирования примера надо войти в каталог с файлом bld.inf и из командной строки вдолбить следующие команды:
bldmake bldfiles. Пути в Path должны были прописаться при установке, после выполнения в этом каталоге появится файл abld.bat.abld build wins udeb
Происходит компиляция программы. epoc Запускается эмулятор. Обычный экран телефона - как всегда, новое приложение ты можешь увидеть самым последним пунктом в меню. Если же ты хочешь сделать приложение для телефона, то вместо второй команды делай так:
abld build thumb urel
Затем переходи в каталог с .pkg-файлом, и выполняй (с правильным именем файла, конечно):
makesis helloworld.pkg
Появится файл helloworld.sis, который можно переслать на телефон и свободно установить.
  Ответить с цитированием
Cказали cпасибо:
Старый 13.01.2008, 17:19 Вверх   #3
Профессиональный DJ
 
Аватар для SETRA
SETRA вне форума
Доп. информация
По умолчанию

HelloWorld приложение
Оно может работать на любом Symbian OS устройстве. Проект Symbian OS приложения состоит из нескольких файлов: собственно исходников (.cpp и .h), файлов описания проекта (.mmp) и файлов описания компонент (bld.inf). Могут потребоваться и другие файлы.

Файл описания проекта необходим для корректной работы утилиты bldmake. Имя файла проекта должно соответствовать имени приложения. Другими словами, если мы разрабатываем программу HelloWorld.exe, файл описания проекта должен называться HelloWorld.mmp.

Цитата: // HelloWorld.mmp
TARGET HelloWorld.exe
TARGETTYPE exe
UID 0
SOURCEPATH .
SOURCE HelloWorld.cpp
USERINCLUDE .
SYSTEMINCLUDE \Epoc32\include
LIBRARY euser.lib bafl.lib efsrv.lib


В отличие от файла описания проекта, файл описания компонент всегда называется одинаково: bld.inf. В этом файле указывается список проектных файлов:

Цитата: // файл bld.inf
PRJ_MMPFILES

HelloWorld.mmp

Создадим простейшее консольное приложение. Пусть оно выводит на экран строку "Hello world!", дожидается нажатия клавиши и закрывается.

Цитата: Листинг исходного кода HelloWorld.cpp
#include <e32base.h>
#include <e32cons.h>

_LIT(KTxtEPOC32EX,"EPOC32EX");
_LIT(KTxtExampleCode,"E32 SDK Example Code");
_LIT(KFormatFailed,"failed: panic code=%d");
_LIT(KTxtOK,"ok");
_LIT(KTxtPressAnyKey," [press any key]");

LOCAL_D CConsoleBase* console; // запишите сюда свое сообщение
LOCAL_C void doExampleL(); // именно это функция будет выполнять требуемые нам действия

//*********************************************//
// функция, осуществляющая печать //
//*********************************************//
LOCAL_C void doExampleL()
{
_LIT(KHelloWorldText,"Hello world!\n");

// создаем консольный объект
console=Console::NewL(KTxtExampleCode,TSize(KConsFullScreen,KConsFullScreen));
CleanupStack::PushL(console);
// печатаем строку "Hello world"
console->Printf(KHelloWorldText);
// печатаем строку "press any key"
console->Printf(KTxtPressAnyKey);
// дожидаемся, пока пользователь нажмет кнопку
console->Getch();
CleanupStack::PopAndDestroy(); // закрываем консоль
}

//************************//
//* главная функция *//
//************************//
TInt E32Main()
{
__UHEAP_MARK;
CTrapCleanup* cleanup=CTrapCleanup::New(); // получаем чистый стек
TRAPD(error,doExampleL()); // завершаем инициализацию и выполняем пример
__ASSERT_ALWAYS(!error,User::Panic(KFormatFailed,error));
delete cleanup; // удаляем стек
__UHEAP_MARKEND;

return 0;
}


Компиляция
Существует два пути сборки Symbian OS приложения. Первый - использование утилит командной строки. С помощью этого метода вы можете собрать приложение для любого целевого устройства, поддерживаемого SDK (ARM4 и THUMB поддерживаются не всеми SDK). Второй путь - использовать Microsoft Visual Studio [Прим. переводчика: или любую другую IDE. В рамках статьи рассматривается только Microsoft Visual Studio.]. Этот метод кажется мне более предпочтительным, поскольку текстовый редактор и компилятор встроены в удобную графическую среду, что значительно упрощает процесс разработки и отладки приложения. Для отладки приложения Microsoft Visual Studio использует собственную WINS платформу. При переносе программы на целевую платформу (например, на armi или thumb), Вам все равно придется пользоваться командной строкой.

Для того чтобы собрать приложение с помощью командной строки надо:

Перейти в папку, содержащую .mmp файл проекта. Убедиться, что в этой же папке лежит файл bld.inf.
Выполните команду bldmake bldfiles. В результате ее выполнения будет создан файл abld.bat, который содержит информацию, полученную из .mmp файла проекта. (Обратите внимание, что после изменения .mmp файла нужно снова выполнять команду bldmake.)
Выполните команду abld build wins udeb. Она создает версию приложения с отладочной информацией для WINS платформы.
Выполните команду abld build armi urel. Она создает релиз версию приложения для целевого устройства.
После создания exe файла, его нужно скопировать в папку Epoc32\release\wins\udeb\.

Рассмотрим создание проекта и сборку приложения с помощью Microsoft Visual C++.

Перейти в папку, содержащую .mmp файл проекта. Убедиться, что в этой же папке лежит файл bld.inf.
Выполните команду bldmake bldfiles. В результате ее выполнения будет создан файл abld.bat, который содержит информацию, полученную из .mmp файла проекта. (Обратите внимание, что после изменения .mmp файла нужно снова выполнять команду bldmake.)
Выполните команду abld makefile vc6. В результате будет создан файл проекта и файл рабочей среды ( .dsp и .dsw ). Эти файлы можно использовать в Visual C++ 6.0.
Запустите Microsoft Visual C++ 6.0 и выберите команду Open Workspace из меню File.
Выберите файл с расширением .dsw в папке WINS\ вашего проекта.
Выберите команду Build или Rebuild All из меню Build. Будет выполнена сборка приложения.

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

Существует два способа запуска приложения на эмуляторе: можно запустить приложения из командной строки или из IDE (в данном случае из Microsoft Visual C++ 6.0).

В случае запуска из командной строки, скопируйте созданный файл helloworld.exe в папку Epoc32\release\wins\udeb\, затем перейдите в эту папку и запустите файл helloworld.exe. Для запуска приложения из Microsoft Visual C++ 6.0 нужно выполнить команду Execute HELLOWORLD.exe из меню Build. Оба этих способа приводят к одному результату: через несколько секунд запустится окно эмулятора, и Вы увидите картинку:


Статья собрана при помощи: Forum Nokia
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Старый 11.02.2009, 21:58 Вверх   #4
Опытный пользователь
 
Аватар для eko
eko вне форума
Доп. информация
По умолчанию

Спасибо !!!!Полезная статейка!
  Ответить с цитированием
Cказали cпасибо:
Старый 15.06.2009, 21:14 Вверх   #5
Грамотный форумчанин
 
Аватар для Pamel
Pamel вне форума
Доп. информация
По умолчанию

спасибо! от бы еще и игры писать........ммммм..............))
  Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Инструкция] Автоматический взлом Symbian. Для всех платформ Symbian - 9.1, 9.2, 9.3, 9.4, S^3 Stalker Nokia 14 17.09.2011 17:25
Эмулятор Symbian OS!! Kustukturoff Nokia 11 03.04.2010 12:05
Symbian 9.4 CraSTIX Nokia 2 03.10.2009 02:29
[Статья] Вирусы symbian Yerdna Nokia 6 19.04.2009 09:49
Нужна помощь!! Пишем сюда свои вопросы Amber Флейм 7 05.02.2009 12:06


Текущее время: 11:50. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
 

Время генерации страницы 0.18284 секунды с 14 запросами