Как писать программы для symbian
Операционная система 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 входят функции, позволяющие манипулировать системной информацией, а «права изготовителя» — предоставляют самый полный контроль над устройством.
Сейчас немало мобильных приложений пишутся с использованием HTML и Javascript. Оно и понятно — подобные приложения легче писать, легче переносить с одной мобильной платформы на другую, не нужно осваивать Java, Objective C и другие языки. Однако для большинства мобильных ОС все-таки требуется некая обертка. В самом простом случае необходимо написать небольшое приложение, которое будет представлять собой развернутое на максимум окошко встроенного веб-браузера. Для поддержки специальных возможностей (например, работы с контактами или файлами) нужно будет либо дописывать его для поддержки нужных функций, либо воспользоваться одним из фреймворков для написания мобильных приложений. В любом случае, вам понадобятся специальные инструменты, будь то компилятор или тот же фреймворк.
Однако в Symbian, начиная с Symbian S60 3rd Edition, появилась одна хорошая штука — Symbian Web Runtime (WRT). Она позволяет разрабатывать свои мобильные приложения с использованием HTML и Javascript, используя только стандартные средства практически любой десктопной операционки — текстовый редактор и ZIP-архиватор. По сути, это тоже мобильный фреймворк, но уже встроенный в систему, не требующий дополнительных инструментов или компиляции. Давайте посмотрим на него поближе?
Hello, world!
Будущее WRT-приложение (или правильнее, WRT-виджет) при первом рассмотрении представляет собой ZIP-архив с расширением .WGZ. В нем находится папка с файлами (если просто заархивировать файлы — работать не будет, только в папке). Внутри обязательно должен быть файл info.plist и основной HTML-файл. Также может быть файл icon.jpg с рекомендуемым размером 88x88 пикселей, который будет служить иконкой нашего виджета. Все остальное — на ваше усмотрение.
Формат файла info.plist почти точно такой же, как у Apple, и описан здесь. Вот пример:
Параметр | Тип | Использование | Описание |
DisplayName | Строка | Обязательный | Название вашего виджета. Будет отображаться в главном меню телефона. |
Identifier | Строка | Обязательный | Уникальный идентификатор виджета. |
MainHTML | Строка | Обязательный | Относительный путь к основному HTML-файлу. |
Version | Строка | Необязательный | Версия виджета. |
AllowNetworkAccess | Boolean | Необязательный | Дать виджету доступ к сети. По умолчанию false — доступ только к локальным данным. |
MiniViewEnabled | Boolean | Необязательный | Дать возможность добавлять виджет на рабочий стол. По умолчанию false. Если устройство не поддерживает виджеты рабочего стола, то этот параметр игнорируется. |
Если теперь создать файл index.html в той же папке, в нем написать что-то типа этого:
А затем сжать эту папку в ZIP-архив и поменять у него разрешение на .WGZ, то мы уже получим приложение для Symbian.
Вот для начала и все. Можете верстать странички, писать код на Javascript для них, тестировать в своем браузере, а потом легко и просто превращать их в мобильные приложения для Symbian. Стоит однако учесть, что для подключения CSS и Javascript файлов из интернета вам нужно будет включить параметр AllowNetworkAccess.
Локализация
Если вы желаете перевести свой виджет на множество языков, вам помогут встроенные средства локализации. Это довольно просто.
Для поддержки любого языка вам нужно создать внутри основной папки подпапку с названием <язык>.lproj (например, "en.lproj" или "fi.lproj"):
Если вы желаете перевести название вашего виджета, вам нужно создать файл infoplist.strings и поместить в него строчку примерно такого вида:
В остальном процесс локализации довольно прост. При загрузке файлов с каскадными таблицами стилей, скриптами, картинками или другими ресурсами WRT ищет их сначала в подпапке с локализацией, и только потом — в основной папке. Например:
Javascript
В результате для финского языка выведет финский флаг, для английского — английский, а для всех остальных — тот фиолетовый.
Web Runtime API
Отдельно стоит упомянуть об WRT API. Оно позволяет осуществлять взаимодействие с Symbian. В WRT 1.0 функций не особо много, но начиная с WRT 1.1 есть возможность работать со многими сервисами этой мобильной операционки. Об работе с сервисами — чуть ниже. Полную документацию вы можете найти на странице «Symbian Web Runtime API reference» официальной документации. Ниже я вкратце переведу часть этой документации. Некоторые моменты в документации просто не описаны или спорны, так что если заметите ошибку — пожалуйста, напишите о ней, и я ее исправлю.
- widget — базовые возможности WRT;
- menu — работа с меню приложения;
- MenuItem — класс для создания пункта меню;
- device — работа с сервисами Symbian; появилось в WRT 1.1.
widget
Вот пример из документации:
Javascript
- identifier — идентификатор виджета, объявленный в файле info.plist.
- onshow — обработчик события показа виджета. Вызывается при переходе виджета из фона в активное состояние.
- onhide — обработчик события скрытия виджета. Вызывается при переходе виджета в фоновое состояние.
- onexit — обработчик события закрытия виджета. Вызывается при закрытии виджета.
- isrotationsupported — если устройство поддерживает переключение между портретным и ландшафтным режимами, это свойство установлено в true. Если устройство поддерживает только один режим, то в false. Необходимо проверять значение этого свойства перед вызовами widget.setDisplayLandscape() и widget.setDisplayPortrait().
Доступен как window.menu или просто menu. При этом слово menu является в WRT зарезервированным и не должно использоваться как название переменной или функции.
При помощи этого объекта можно управлять меню приложения. Меню закреплено за левой программной кнопкой и не может быть переназначено на любую другую (например, на правую). Левая кнопка называется "Options" (или иначе в разных локализациях). Правая программная кнопка назвается "Exit" и завершает приложение. По умолчанию программные кнопки скрыты и показываются лишь тогда, когда пользователь нажимает одну из них (на клавиатуре устройства).
- append(MenuItem menuItem) — добавление в меню пункта menuItem.
- remove(MenuItem menuItem) — удаление из меню пункта menuItem.
- getMenuItemById(Integer id) — получение объекта MenuItem с кодом id. Если такой отсутствует, возвращается undefined.
- getMenuItemByName(String menuItemLabel) — получение объекта MenuItem с названием menuItemLabel. Если такой отсутствует, возвращается undefined. Что будет, если у двух пунктов совпадают названия, в документации не описано, но скорее всего вернет первый найденный.
- setLeftSoftkeyLabel(String label, Function callbackfunc) — установка названия левой программной кнопки. Если title — пустая строка, то будет установлено значение по умолчанию ("Options" или др. в зависимости от локализации). callbackfunc — функция, вызываемая при нажатии на кнопку (по умолчанию — показ меню). Если в callbackfunc передано null, возвращает кнопке функцию по умолчанию.
- setRightSoftkeyLabel(String label, Function callbackfunc) — установка названия правой программной кнопки. Если title — пустая строка, то будет установлено значение по умолчанию ("Exit" или др. в зависимости от локализации). callbackfunc — функция, вызываемая при нажатии на кнопку (по умолчанию — завершение приложения). Если в callbackfunc передано null, возвращает кнопке функцию по умолчанию.
- showSoftkeys() — показать программные кнопки.
- hideSoftkeys() — скрыть программные кнопки.
- clear() — очистить меню.
- onShow — обработчик события показа меню. Вызывается при показе меню.
MenuItem
- new MenuItem(String label, Integer id) — конструктор. Создает новый пункт экземпляр MenuItem с названием label и кодом id.
- append(MenuItem childMenuItem) — добавление в подменю пункта childMenuItem.
- remove(MenuItem childMenuItem) — удаление из подменю пункта childMenuItem.
- setDimmed(Boolean flag) — устанавливает, показывать или нет пункт меню. Если false, то пункт меню не показывается. Если true — пункт меню будет показан. По умолчанию true — показывать.
- onSelect — обработчик события выбора пункта меню. Вызывается при выборе пункта меню. В функцию-обработчик также может передаваться Integer id — код выбранного пункта меню.
Пример из документации:
device
Доступен как window.device или просто device. При этом слово device является в WRT зарезервированным и не должно использоваться как название переменной или функции.
Этот объект присутствует начиная с WRT 1.1 и открывает огромные возможности по работе с сервисами Symbian при помощи всего одной функции.
Плюсы и минусы
- легкость разработки;
- возможность разработки без устройства под рукой (в эмуляторе или веб-браузере);
- возможность использования множества сервисов Symbian;
- наличие документации и примеров;
- к сожалению, на большинстве устройств используется довольно старая версия WebKit, которая не поддерживает HTML 5 и CSS 3;
- также на части устройств до сих пор используется WRT 1.0, функциональность которого крайне мала;
- документация местами путана и противоречива, нет русского перевода.
Кстати говоря, на тех же Nokia N9 и Nokia N950, на базе ОС MeeGo с браузером Nokia Browser 8.5, HTML 5 вполне поддерживается — вы можете, к примеру, написать игру с использованием Canvas, с поддержкой жестов и акселерометра. Правда, там уже используется не WRT, а возможности HTML 5.
Спасибо за прочтение. Извиняюсь за возможные ошибки и буду рад полезным замечаниям.
Эмулятор требует регистрации, поэтому работает только 14 дней в триальном режиме. Для сброса триала я написал этот bat-ник. Под Windows 7 и выше запускать с правами администратора.
(Устанавливаем по желанию)
Проблема со значками
"\Symbian\Carbide\workspace\GUIDemo\group\BLD.INF" FATAL ERROR(S): \Symbian\Carbide\workspace\GUIDemo\group\BLD.INF(21) : \Symbian\Carbide\workspace\GUIDemo\group\ICONS_SCALABLE_DC.MK does not exist
В файле проекта group/bld.inf меняем строку:
Ошибки "undefined reference . "
Ошибки вида:
Решение:
Нужно подключить lib-файл. (В данном случае lbs.lib). Открываем mmp-файл и добавляем библиотеку во вкладке Libraries.
Не создаются sis/sisx файлы
Проблема:
При компиляции проекта не происходит сборка sis(x) пакета.
Решение:
Нужно зайти в Project → Properties → Carbide.c++ → Build configurations . Выбрать в Active Configuration в выпадающем списке значение Phone release (GCCE) . Во вкладке SIS Builder нажать кнопку Add . Выбрать PKG-файл, потом нажать Ok .
Включение пиктограммы в меню
Проблема:
При создании консольного приложения из шаблона Basic Console Application (EXE) не добавляется пиктограмма в меню приложений.
Решение: ToDo: почему-бы не создать bat-ник для автоматизации?
В папке data создать файл с именем
и следующим содержимым (здесь и далее выделенные жирным значения поменяйте на свои):
В mmp-файл добавить:
В pkg-файл добавить:
Приложение не совместимо с телефоном
Проблема:
При установке sis-пакета появляется ошибка "Приложение не совместимо с телефоном"
Причина:
В pkg файле должно быть прописано для каких платформ и/или отдельных моделей телефонов подходит данное ПО. Это предупреждение появляется если данный телефон не поддерживается, либо список в pkg вообще не указан (что, например, происходит при создании нового проекта из шаблона Basic console application (EXE) ).
Решение:
В файл sis/YourAppName.pkg нужно добавить список поддерживаемых продуктов (можно более одного) в виде строк:
- ProductUID - Уникальный идентификатор платформы/модели в виде 16-ричного числа (список будет приведён чуть ниже)
- VersionRange - Версия прошивки платформы (я всегда ставлю 0.0.0 , что значит любая прошивка)
- ProductName - Название платформы (насколько я понял, оно ни на что не влияет), обязательно в кавычках
Это значит, что программа предназначена для S60v3 и S60v5 (Symbian 9.1 и 9.4). (Пример PKG-файла целиком)
Имеется обратная совместимость (сверху вниз) версий 9.X. Другими словами, если программа предназначена, например, для Symbain 9.2, то она также должна работать и на 9.1.
Список идентификаторов основных платформ:
Платформа | ID |
---|---|
S60 3rd Edition (Symbian 9.1) | 0x101F7961 |
S60 3rd Edition FP1 (Symbian 9.2) | 0x102032BE |
S60 3rd Edition FP2 (Symbian 9.3) | 0x102752AE |
S60 5th Edition (Symbian 9.4) | 0x1028315F |
UIQ3 (Symbian 9.1) | 0x101F6300 |
UIQ3.1 (Symbain 9.2) | 0x101F63DF |
Более полный список можно найти в программе SISContents или на этом сайте.
Как узнать какие версии SDK установлены или заменить текущую?
В командной строке используйте команду devices . Доступные аргументы:
Если не находит команду, добавьте следующий путь в переменную среды PATH : C:\Program Files\Common Files\Symbian\Tools (или C:\Program Files (x86)\Common Files\Symbian\Tools ).
Для получения списка всех установленных на компьютере SDK выполните команду devices без аргументов:
Сделать SDK текущим можно опцией -setdefault (не забудьте указать префикс @ перед идентификатором SDK):
Особенности экспорта значков в формате SVG из InkScape
ToDo: добавить раздел и в англ. версию.
Нажимаем Сохранить как и выбираем формат Простой SVG . Затем преобразовываем получившийся файл в формат Tiny-SVG при помощи утилиты SVG2SVGT , входящей в комплект SDK.
2) Проблема с ломаными линиями
По умолчанию, когда InkScape сохраняет фигуру, содержащую прямые линии, он опускает команду L / l в атрибуте d (и действительно — по стандарту она не обязательна). Пример записи:
Symbian OS такие фигуры читать правильно не может, поэтому нужно явно прописывать команду L / l . Корректный пример:
Чтобы InkScape использовал полный формат, заходим в Правка > Параметры. > Ввод и вывод > Экспорт в SVG и включаем опцию Данные контура > Принудительно повторять команды .
3) Исчезают цвета в градиентах (выглядят чёрно-белыми)
В коде созданном InkScape можно увидеть, что используется два отдельных тега для каждого градиента (т.е. наследование градиентов).
Автор : Газетдинов Альберт (по ссылке и оригиналы статей с картинками)
Все статьи Альберта в другом формате можно взять здесь
Программная платформа Symbian Series 60 (или S60) — самая популярная в мире смартфонов и коммуникаторов, если судить по продажам мобильных устройств. Поэтому приложения именно для этой платформы актуальны как никогда. Создание программ — процесс увлекательный, и данная статья поможет всем желающим попробовать свои силы в этом деле.
Казалось бы, совсем недавно смартфоны стоили весьма прилично, да и на прилавках появлялись редко; программирование для «умников» было увлечением сложным и малоперспективным. Однако сейчас приобрести «умный телефон» можно за приемлемую цену, а создавать для него программы имеют возможность не только профессионалы и энтузиасты, но и обычные пользователи. Причина этого в том, что появились простые в освоении языки программирования для Symbian Series 60.
КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ
Есть два принципиально различных типа программ: самостоятельные приложения и исполняемые файлы, которые запускаются только при наличии установленной в устройстве специальной среды — интерпретатора.
В первом случае для «перевода» текста программы на язык, понятный какой-либо платформе (в нашем случае S60), необходим компилятор — специальное приложение, которое, как правило, входит в состав средств разработчика. Итак, пропускаем написанный код через компилятор и на выходе получаем самостоятельное приложение для совместимой платформы. Достаточно скопировать его на соответствующий аппарат и элементарно запустить. Поясним. В случае с Windows XP компилятор выдает EXE-файл. Все, что требуется от пользователя для запуска, — это двойной клик. Компилируемые языки программирования в освоении сложны, зато творческих возможностей предоставляют больше. C , например, — стандарт де-факто при разработке ПО, в том числе и для многих мобильных платформ.
Плюсы
максимальная скорость и минимально потребляемые ресурсы
для работы программы требуются только ее собственные файлы
удобное средство для создания коммерческих продуктов
Минусы
— сложные для освоения языки
— необходимость создания различных версий продукта для разных платформ
Интерпретатор занимается тем, что объясняет данному устройству, как следует выполнять код программы. Пожалуй, самый известный пример интерпретатора — виртуальная машина Java, которая, кстати, по умолчанию наличествует не только в смартфонах, но и практически в любых современных телефонах. Интерпретатор Java — универсален. Одна и та же Java-программа, как правило, выполняется и на Windows Mobile коммуникаторе, и на каком-нибудь музыкальном телефоне Sony Ericsson.
Минусы интерпретаторов — в относительно медленной скорости работы, а кроме того, они обладают изрядным аппетитом в плане потребления ресурсов. Зато такие языки просты для изучения. Помимо Java, к интерпретаторам можно отнести, например, «настольный» Basic, который преподается почти во всех школах.
Плюсы
в ряде случаев — возможность написания и отладка программ на самом устройстве
Минусы
— зависимость программы от интерпретатора
— медленная работа и большое потребление оперативной памяти
— трудность создания коммерческих продуктов
ПИТОН СЪЕЛ МЫШЬ
Как было сказано, интерпретаторы отлично подойдут для новичков и тех, кто хочет понять общие принципы написания программ Symbian Series 60. Здесь выбор будет лежать между двумя средами программирования: Python и mShell («Питон» и «Мышь» на жаргоне программистов).
После этого можно работать с файлами, имеющими расширение .py (содержат текст программы на языке Python), и писать программы прямо на смартфоне. Невидимая в Меню PythonInstaller поможет установить новые PY-файлы и библиотеки, а также создать на их основе программу со своим значком в Меню.
Плюсы
возможность использования сторонних библиотек
создание самостоятельных приложений на основе Python-программ
широкое распространение и наличие сообщества программистов
Минусы
— мало похож на популярные языки (Basic, Pascal, C)
высокая скорость работы, особенно с двухмерной графикой
имеется собственная среда разработчика с удобной помощью
Минусы
— запуск программ только из среды mShell
Итог: Python выглядит более привлекательным — он позволяет создавать приложения со своим значком в Меню, которые к тому же удастся упаковать в SIS-файлы. Однако mShell списывать со счетов не стоит — скорость работы и потребление ресурсов выгодно отличают его от других языков, к тому же разработчики обещали в будущем дополнить его компилятором (!).
ВЕЗДЕСУЩАЯ JAVA
1) Java 2 Standard Edition SDK — компиляторы и утилиты для создания Java-мидлетов;
2) J2ME Wireless Toolkit — эмуляторы и средства для отладки Java-мидлетов;
3) NetBeans IDE (для работы с J2ME необходим еще и NetBeans Mobility Pack) — среда разработчика.
Продуктом процесса разработки станут JAD- и JAR-файлы. Выбор технологии Java будет оптимальным, если хотите, чтобы ваш продукт охватил большое количество телефонов.
Реализация Java на смартфонах с версией Symbian 6-8 оставляет желать лучшего: долгая загрузка, медленная скорость работы, большое потребление оперативной памяти. Однако Symbian 9.2 преподнесла сюрпризы: загрузка мидлетов моментальная, да и с оперативной памятью дело обстоит не так плачевно. Таким образом, все последующие модели смартфонов от Nokia начнут адекватно работать с технологией Java. А уверенность в безоблачном будущем — то, что нужно любому разработчику!
Плюсы
большая популярность и легкость создания программ
поддержка практически в любом сотовом телефоне
богатая документация и наличие ресурсов данной тематики
Минусы
— не самая высокая скорость работы
— нет доступа ко всем телефонным возможностям
ШИЛО НА МЫЛО
Язык Java показался сложным? Тогда стоит использовать программы-посредники: «скармливайте» им программу, написанную на родственниках таких популярных языков, как Pascal и Basic, и на выходе получайте готовый Java-мидлет.
MobileBasic — такая же специализированная среда. Ее особенность — наличие сервисов по так называемой немедленной OVER-THE-AIR («по воздуху») установке написанных мидлетов на телефоны. Написав программу, программист в MobileBasic может сохранить ее в виде JAD- и JAR-файлов. Эти файлы с помощью MidletUploader выгружаются на сервер MobileBasic. Сервер создает WAP/WML-страницы, подключившись к которым с помощью WAP-браузера телефона можно установить мидлет. Кроме этого сервиса, в MobileBasic имеется графический редактор, редактор карт и плиточных изображений, а также редактор мелодий для телефонов Nokia.
Итог: OmegaBasic и MobileBasic — почти близнецы в плане подхода к написанию кода, к тому же обладают схожим функционалом. Недостатки: необходимость приобретать платную версию и устанавливать Java SDK. На этом фоне ярко выделяется MidletPascal — самый популярный, простой в установке, и главное — бесплатный!
ТЯЖЕЛАЯ АРТИЛЛЕРИЯ
C for Symbian — наилучший (и, по сути, единственный) язык для создания профессиональных и коммерческих приложений для смартфонов Symbian Series 60. Именно на нем пишется сама система и предустановленное программное обеспечение. Если вы полны решимости программировать на C for Symbian, то необходимо установить:
3) Java 2 Standard Edition;
4) Perl версии не ниже 5.003.07.
При создании программ на C for Symbian можно получить доступ ко всем возможностям смартфона, что не идет ни в какое сравнение с Java и прочими интерпретируемыми языками. Полученные продукты будут потреблять минимум ресурсов и работать с максимальной скоростью, так как между программой и системой не будет посредников-интерпретаторов.
При компиляции программного кода создается не только приложение, а также иконка и необходимые файлы ресурсов. Все это в конце концов упаковывается в установочный файл SIS. После его подписи (если необходимо) разработчик может распространять и продавать программу как готовый продукт.
* * *
Экскурс подошел к концу, а значит пора решаться на выбор средства программирования. Если хотите получить профессиональный продукт — необходимо использовать C for Symbian, популярная Java не так быстра и не поддерживает всех возможностей платформы S60, зато может запускаться и на обычных телефонах, причем не только от Nokia.
Python — отличный выбор для тех, кто собирается писать несложные, но полезные программы; возможность отлаживать программы прямо на смартфоне уникальна. Мы подготовили серию статей, обучающих программированию на мобильном Python, и приложили ряд примеров и любопытных программ, написанных специально для Mobi. В наших закромах также найдется материал по работе с MidletPascal.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Самая популярная платформа
Платформу Series 60 создала компания Nokia. Финны решили поделиться удачной разработкой — они не только сами выпускают огромное количество S60-смартфонов, но и предоставляют лицензии другим производителям. S60-аппараты есть в активе Samsung, Panasonic, LG и других. Samsung, к примеру, недавно представила свой первый S60-смартфон с GPS — Samsung i550.
Темная лошадка
Программирование для любой платформы невозможно без SDK — Software Development Kit (набор разработчика), обычно его можно получить бесплатно из интернета. Практически всегда только SDK содержит компилятор, эмулятор и другие приложения.
Вся работа с компилятором и другими утилитами идет в командной строке DOS, а сама программа и конфигурационные файлы набираются в любом текстовом редакторе.
Для удобной работы существует IDE (Integrated Development Environment) — среда разработчика, посредник между SDK и пользователем. IDE содержит текстовый редактор, функции для создания и управления проектом, а также средства, автоматизирующие работу. IDE укажет компилятору из SDK обработать программу, создаст необходимые файлы и выведет ошибки, если таковые имеются. За такие блага часто приходится платить наличными — в основном IDE разрабатываются сторонними фирмами.
Кстати, некоторые IDE, например MidletPascal, обладают встроенным компилятором, что позволяет обойтись без установки SDK. Мобильные же интерпретаторы сами по себе реализованы как среда разработчиков, и компиляторов не предполагают.
Язык в языке
На практике процесс ввода кода и запуска программы получился крайне неудобным. Тем не менее в последней версии разработчики обещают богатые возможности работы с вычислениями, графикой, файлами и интернетом.
Сертификация в Symbian 9
При написании коммерческого приложения для Symbian 9 (а это все новые смартфоны от Nokia) разработчик должен купить сертификат на право использования необходимых библиотек с нужными функциями, что стоит денег. Возможность доступа к функциям подтверждается соответствующей подписью установочного файла. Бесплатные приложения можно создать, но они буду иметь ограниченный функционал. Все это продвигается компанией Symbian и Nokia как новое слово в безопасности и борьбе с мобильными вирусами.
Отпишитесь в комментариях, если не трудно.
Да и если людей будет очень мало, то не вижу смысла.
P.S. У меня Nokia 5230, какая версия симбы - хз. Nokia 5228 симбиан S60 или 9.4 другими словами)
не забывайте что симбиан еще и на сониэриксонах
Шутки шутками, но если это кому-нибудь нужно из здесь присутствующих, то ты молодец, что делаешь доброе дело абсолютно безвозмездно! Я уже успел проебать свою нокию н97 и взять андроида, а приложение под симбу автор так еще и не сделал. Пиздобольством и кармадрочерством попахивает сидел на пикабу наверно с полгода. зарегистрировался только для этого коммента. Nokia N97, Symbian 9.4. Автор просто молодчина! плюс тебе nokia x6 v9.4 большое спасибо автору, если доведешь до финала!)) Симбиан 3 Бель. *написал просто по-русски* буду рад за приложение.Спасибо
Nokia N8
Нокиа 5230, хотелось бы с функцией автономной работы (без постоянного подключения к интернету)
P.S. Спасибо за то, что решил сделать данное приложение!
Я поражен тем, сколько людей сидят на Symbian. Меня это радует)
Завтра приступаю к проекту, но пока практически одинаковое кол-во людей отписали о том, что они сидят на Symbian 9.1 и Symbian Belle.
У меня самого Belle, я вот думаю, с чего всё-таки начинать.
Cударь, не будите ли вы столь любезны написать это дело на Qt, чтобы потом еще и под MeeGo собрать? Комментарий удален. Причина: данный аккаунт был удалён даешь прогу на симбу! пох что тебе говорят якобы твои руки из жопы растут, ты сделай а там посмотрим, я бы например не отказался позать с моего с5 06 такую прогу!Друзья, то что я отписываю сюда, видно? У вас приходит это уведомлением?
Если нет, то что сделать?
Нужна срочно программа чат commfort под symbian?если кто-то поможет отблагодарю денежно или килограммами халвы
или есть какие нибуть предложения пишите сюда или на почту Срочно требуется написание чата commfort под symbian?
За работу отблагодарю денежно или киллограммами халвы Я бы не доверил написание приложения программисту, говорящему ". версию вашего ОС".
Ютуб, иди на х*й! Со своей рекламой где орут, плачут, ноют и лезут с прочим скамом! Вонючие мошенники!
За*бали, попрошайки! Лучше бы вы это говно убрали, а не дизлайки!
Кто согласен: ставьте Лайк или Дизлайк! А веди на Пикабу уже тоже началось это говно со скрытием оценок: "Защита автора", когда оценки поста скрыты по началу.
Романтика vs реальность
Тут мои полномочия все
А говорили только толпой нападают
Неделю назад увидел на яндексе новость "ВОЗ рекомендовала использовать российскую тест-систему на коронавирус в качестве эталона".
И там много информационных ресурсов сразу транслировали ее.
Я подумал: "Ну наконец-то, наши что-то достойное соорудили, что признало мировое сообщество" и побежал постить новость об этом на пикабу.
Я начал вычитывать новость на разных порталах.
Сначала меня смутило, что источник всех новостей "пресс-служба ФМБА". Получается, ФМБА сообщила, что ФМБА делает эталонные тесты.
Поэтому я решил писать напрямую в ВОЗ.
И через 2 дня получил ответ
Что интересно. 23 ноября, когда новость вышла, она была и на оф. сайте ФМБА, но сейчас по ссылке на эту новость вот такая картинка:
Выкладывайте на пикабу только качественный материал)
Питерское
Однажды губернатору Петербурга приснился страшный сон: снегоуборочные машины с лязгом и грохотом гонялись за маленькими беззащитными петербуржцами и перемалывали их в кровавую муку. Петербуржцы корчили страшные гримасы и пищали, как лемминги. В диком ужасе губернатор час таращился на стену, после чего распорядился сжечь все снегоуборочные машины и оставить только одну. Выпускать машину было велено глубокой ночью всего на час и туда, где никто ее не увидит.
Так губернатор спас глупых петербуржцев от страшной смерти.
Четыре почти равные части России по численности населения
Мудрость
Вчера вечером младший что-то загрустил..
Я спрашиваю: что случилось?
- да ничего, все хорошо, просто мне как-то грустно..
- ну съешь чего-нибудь, вон печенье есть, мандарины купила..
- мам, не все проблемы решаются едой.
Вот это был удар ниже пояса.
Как я выявил наркомана на производстве
Работаю на производстве, проверяю правильность сборки, внешний вид и т д
Устроился парень лет 25, месяц работает, но уже прозвали его судрага. Дерганый как на шарнирах постоянно был.Позвал меня проверять, я смотрю а корпус помятый. Я на него смотрю и спрашиваю:
- Въебаный ?
Тот в лице изменился начал осматриваться по сторонам и говорит:
- Вы тоже хотите ?
Я не понял сначала, потом как дошло думаю ебанный свет )) поржал но нач производству сообщил конечно ибо ещё нариков не хватало. Вообщем спалился с потрохами. Не долго проработал в итоге после этого.
Ответ на пост «Мне нужен кран!»
Работал начальником цеха. Спал, сын взял телефон и написал смс мастеру смены: " Вам конец"
Утром ничего понять не могу, в цехе хрустальная чистота, все оборудование работает как часы. И встревоженный мастер подходит:
- Здравствуйте, у нас все хорошо, все поручения выполнены.
Стал телефон после этого на блокировку ставить)
Вальхалла
Баянометр ничего не показал, по мне так жизненно.
Каков подлец
Пикабушные куплеты
Что непонятно-то?
Ты думаешь мы тебя не переиграем, YouTube? Мы тебя переиграем!
Внимательней надо быть
Новосибирец Владимир Крюков, защитивший дом и семью, на 8 лет отправится в колонию
Жителя Новосибирска, который защитил семью и свой дом от компании нетрезвых агрессоров, оставили за решеткой. Сначала мужчине назначили наказание, не связанное с реальным лишением свободы, но вышестоящая инстанция пересмотрела это решение. Первого декабря кассационный суд в Кемерове оставил в силе суровый приговор – восемь лет колонии строгого режима.
Два года назад Дзержинский районный суд признал его виновным в превышении пределов необходимой обороны и назначил символическое наказание в виде ограничения свободы. Но это был еще не конец истории.
Сторона защиты обжаловала это решение в кассационной инстанции. Судьбоносное заседание состоялось 1 декабря в Кемерово. К слову, прокуратура, в свою очередь, хоть и согласилась с квалификацией облсуда: умышленное убийство, но при этом посчитала приговор излишне суровым, так как не были учтены смягчающие обстоятельства.
Гособвинитель просила смягчить наказание Крюкову. Адвокат настаивала на оправдании. В итоге кассационный суд отказал обеим сторонам. Приговор оставлен без изменений.
Супруга новосибирца надеялась до последнего, что ее мужа освободят, поэтому такой итог для нее стал настоящим ударом.
Читайте также: