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

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

  • Какво прави S60, каква е нуждата от платформа, когато вече съществува основна операционна система Symbian?
  • Ако пиша приложения на Symbian C++ или Java ME за Symbian OS или платформата S60?
  • Мога ли директно да пиша приложения за Symbian OS, заобикаляйки слоя S60.

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


Отговори (2)


S60 по същество е UI рамка и колекция от компоненти на междинен софтуер върху Symbian OS. В исторически план Symbian предоставя основната операционна система (напр. ядро, комуникации, мултимедийни услуги, основни машини за приложения, референтен потребителски интерфейс) и производителите на устройства добавят собствен код върху нея, за да се разграничат от конкуренцията и да оптимизират устройствата си за определена цел.

S60 е една от тези добавки, първоначално разработена за телефони, предназначени за използване с една ръка с клавиатура. Има и други UI рамки върху Symbian OS, например Series 80 и < на Nokia a href="http://en.wikipedia.org/wiki/Series_90" rel="noreferrer">Серия 90, UIQ и MOAP(S).

Сега, когато Symbian преминава към режим на работа Symbian Foundation, S60 и Symbian OS по същество са обединени в една платформа Symbian Foundation. Другите UI рамки са преустановени. Но устройствата, които в момента са на пазара, все още имат разликата между Symbian OS и S60.

  • Ако пиша приложения на Symbian C++ или Java ME за Symbian OS или платформата S60?
  • Мога ли директно да пиша приложения за Symbian OS, заобикаляйки слоя S60.

Зависи кои API използвате.

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

Във всеки случай писането на C++ приложения, така че един и същи двоичен файл да може да се изпълнява на всички устройства, базирани на Symbian OS, е практически невъзможно. В Java „напиши веднъж, стартирай навсякъде“ работи на теория, но на практика е по-скоро „напиши веднъж, тествай навсякъде и се опитай да заобиколиш разликите между устройствата“.

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

На теория S60 е UI рамка (Avkon) и колекция от приложения, където като Symbian OS предоставя основните услуги на OS. На практика е по-сложно, тъй като S60 също така включва мидълуер и други услуги, които не се ограничават до чисти елементи на потребителския интерфейс.

Symbian разполага с обща UI рамка, наречена UIKON, но не мисля, че се използва много често. Освен това светът на Symbian е доминиран от S60 извън Япония (която има собствена среда, наречена MOAP).

Не съм сигурен относно въпроса за Java.

Зависи какво прави вашето приложение дали заобикаля S60. Можете да пишете много прости приложения и услуги на ниво ОС без зависимости от S60.

person tonylo    schedule 13.09.2009