Платформа Symbian OS S60

Из здесь я прочитал, что S60 в настоящее время входит в число ведущих платформ для смартфонов в мире.
Однако я не могу понять:

  • Что делает S60, зачем нужна платформа, когда уже существует базовая ОС Symbian?
  • Если я пишу приложения на Symbian C ++ или Java ME, это для Symbian OS или платформы S60?
  • Могу ли я писать приложения для ОС Symbian напрямую, минуя уровень S60.

person Kevin Boyd    schedule 12.09.2009    source источник


Ответы (2)


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

S60 - одно из таких дополнений, изначально разработанных для телефонов, предназначенных для использования одной рукой с клавиатурой. Были и другие инфраструктуры пользовательского интерфейса поверх Symbian OS, например Series 80 и Series 90, UIQ и MOAP (S).

Теперь, когда Symbian переходит в режим работы Symbian Foundation, S60 и Symbian OS по существу объединены в одну платформу Symbian Foundation. Остальные UI-фреймворки больше не поддерживаются. Но устройства, представленные в настоящее время на рынке, по-прежнему различаются между Symbian OS и S60.

  • Если я пишу приложения на Symbian C ++ или Java ME, это для Symbian OS или платформы S60?
  • Могу ли я писать приложения для ОС Symbian напрямую, минуя уровень S60.

Зависит от того, какие API вы используете.

С Java ME проще писать приложения, которые не полагаются на надстройки для S60. В C ++ вполне вероятно, что вам понадобится какой-то пользовательский интерфейс для своего приложения и, следовательно, придется использовать пользовательский интерфейс S60 Avkon. Однако, если вам нужен более независимый от платформы пользовательский интерфейс для вашего приложения на C ++, обратите внимание на Qt для S60.

В любом случае писать приложения на C ++ так, чтобы один и тот же двоичный файл можно было запускать на всех устройствах на базе ОС Symbian, практически невозможно. В Java «напиши один раз, запусти везде» работает в теории, но на практике это больше похоже на «напиши один раз, протестируй везде и постарайся обойти различия между устройствами».

person laalto    schedule 13.09.2009
comment
Написание приложений на C ++ так, чтобы один и тот же двоичный файл мог быть запущен на всех устройствах на базе ОС Symbian, практически невозможно ... Почему так? - person Kevin Boyd; 13.09.2009
comment
@Kevin Boyd: бинарная совместимость между Symbian OS 9.1 и pre-9.1 нарушается; различные структуры пользовательского интерфейса и т. д. Если вы нацеливаетесь на подмножество устройств с ОС Symbian, таких как устройства S60 3rd Edition, то двоичная совместимость достижима. - person laalto; 13.09.2009
comment
По-прежнему существуют случаи, когда нарушается совместимость между 3-м и FP1 или FP2 устройствами. Мне на ум приходят настройки SyncML и Bluetooth. - person Riho; 28.09.2009
comment
@ Рихо: Да, конечно. Но там неработающих API BC относительно мало. Необязательно использовать их в каждом проекте. Если вы их используете, вы можете инкапсулировать использование API, например. в DLL адаптера, которую вы загружаете условно. - person laalto; 28.09.2009

Теоретически S60 - это UI-фреймворк (Avkon) и набор приложений, тогда как Symbian OS предоставляет основные сервисы ОС. На практике это более сложно, потому что S60 также включает промежуточное программное обеспечение и другие службы, не ограничиваясь чистыми элементами пользовательского интерфейса.

В Symbian есть универсальный UI-фреймворк под названием UIKON, но я не думаю, что он используется очень часто. Кроме того, в мире Symbian за пределами Японии в значительной степени доминирует S60 (у которого есть собственная среда под названием MOAP).

Не уверен в вопросе о Java.

Это зависит от того, что делает ваше приложение, обходит ли оно S60. Вы можете писать очень простые приложения и сервисы на уровне ОС, не зависящие от S60.

person tonylo    schedule 13.09.2009