• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            stevenyao

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              22 隨筆 :: 1 文章 :: 67 評論 :: 0 Trackbacks
            Symbian的傳統(tǒng)UI已經(jīng)使用了10多年了,最底層的Symbian UI Framework叫做 CONE,僅是對 RWindow的簡單封裝,另外附帶一個CoeEnv作為App的運行環(huán)境。沒有控件系統(tǒng),沒有圖形效果,最早連透明都不支持。

            后來Symbian基于 CONE實現(xiàn)了 UiKon,擴(kuò)展了原來的CONE,并添加了簡單的控件,現(xiàn)在S60上的 StatusPane和Softkey也出現(xiàn)了,這基本奠定了鍵盤模式的S60手機(jī) Ui的基本框架。

            但是這仍然無法滿足產(chǎn)品的需求,產(chǎn)品需要更高級的控件支持,比如SettingPage, Toolbar, Query等等, 另外這些控件要支持多語言多種屏幕尺寸鍵盤布局,以及theme系統(tǒng)。
            于是 Avkon就產(chǎn)生了,Avkon其實和Symbian公司就沒什么關(guān)系了,Avkon完全是Nokia自己開發(fā)的,但是開發(fā)過程中由于種種原因,有些代碼就是直接復(fù)制Symbian的類然后在里面修改的。
            這就導(dǎo)致一個問題,Avkon并不獨立于Symbian UI,很多地方就高度耦合的,比如 Avkon 和 Eikcoctl都是控件庫,但是卻是互相鏈接的兩個 DLL,這種詭異的設(shè)計就好象是,Eik系統(tǒng)開發(fā)到一半發(fā)現(xiàn)DLL太大了,就另外創(chuàng)建一個avkon繼續(xù)開發(fā),但是原來的代碼一部分就留在Eik了,所以還需要保持互相的鏈接依賴。

            可見avkon的開發(fā)并不是一個開始就是有完善的計劃的framework,而是隨著產(chǎn)品的需求一步步走到現(xiàn)在的,這也就是avkon的API接口詭異,使用不方便的原因。
            作為UI framework來說,avkon的用戶非常多,這世界上恐怕只有 MFC和VCL才能和他相比,但是這樣一個重要的UI Framework設(shè)計質(zhì)量卻是非常差的。

            慶幸的是Nokia決定收購了TrollTech的Qt,這恐怕是Nokia 10年來最英明的收購了,Qt雖然是個只有200多人的小公司,年營收才幾千萬歐元,但是在軟件業(yè)界的影響力要大得多。
            Qt是 KDE的基礎(chǔ)庫,這就影響了Linux世界的一半的桌面系統(tǒng),Qt的Signal/Slot系統(tǒng)的設(shè)計思想也影響了后來很多的Framework。Qt也是目前唯一跨越了幾乎所有平臺的Framework,因為Gtk沒有Symbian。

            收購后的一年,Nokia主要所作的是把 Qt移植到Symbian,這個工作并不容易,因為Symbian不同于其他系統(tǒng),Linux/Unix/Windows都是支持POSIX的,而Symbian只是部分支持POSIX,移植Qt之前還要先完善Symbian上的OpenC。Symbian上的異常處理與眾不同,是Leave/TRAP,Symbian上是單heap結(jié)構(gòu),Symbian上的模擬器是用單進(jìn)程模擬多進(jìn)程所以不支持 WSD(Writable static data)。我相信Qt的工程師是克服了很多困難的,據(jù)說也有大量Symbian的工程師參與其中。

            Symbian單單有了Qt還不能說是有了新的UI系統(tǒng),因為只是Qt寫出來的UI就像Windows程序一樣,并不適合手機(jī)上的操作,還需要一套基于Qt之上的針對手機(jī)操作習(xí)慣的UI Framework,這就是Orbit。Orbit是一套基于Qt的GraphicView的UI 系統(tǒng),提供了應(yīng)用程序管理,控件系統(tǒng)(Widget),輸入法,圖形動畫效果,多語言支持,等等。

            尤其是圖形動畫效果,基本接近iPhone的水準(zhǔn)了(超越還談不上,也就是接近),這得益于Symbian的NGA,新一代圖形架構(gòu)。這是一次巨大的變革,Symbian把自己的圖形系統(tǒng)構(gòu)建在了OpenVG的基礎(chǔ)之上,充分利用了硬件加速效果,把窗口系統(tǒng)和圖形系統(tǒng)分離了,從而在應(yīng)用開發(fā)上,可以提供更炫的圖形動畫效果,并也可以有很好的性能。

            Orbit有一點是很強(qiáng)大的,也是因為借助了Qt的跨平臺特性O(shè)rbit也是跨平臺的,就是Orbit程序如果不涉及手機(jī)特性的開發(fā)是可以在Windows上完成的,可以不需要模擬器。就是說開發(fā)者可以在開發(fā)UI的時候?qū)慦indows程序,只有需要手機(jī)特有功能的時候比如電話短信,才需要到模擬器去調(diào)試。當(dāng)然也不只是Windows,你同樣可以在Linux/MacOS上寫Orbit程序,只要是Qt能去的地方Orbit都可以。所有在PC系統(tǒng)上的開發(fā)調(diào)試工具對于Orbit都是可以用的,你可以用VC開發(fā),也可以用那個Emacs、VI開發(fā),這將大大提高手機(jī)程序的開發(fā)效率比傳統(tǒng)的S60高10多倍,比現(xiàn)有的Android/iPhone也至少高一倍。

            比如,我們都知道在Qt上創(chuàng)建一個最簡單的程序只需要4行代碼,在Orbit上一樣也是4行,其實就是Qt程序的 QApplication QMainWindow類換個名字就好了。如果需要放個按鈕只要再寫兩行。只要這6行代碼,你的程序就可以到手機(jī)上運行了,可以看到一個只有一個按鈕的程序,是不是比任何手機(jī)系統(tǒng)的開發(fā)都容易呢。

            Orbit會成為未來S60手機(jī)上的應(yīng)用開發(fā)Framework,原來的Avkon系統(tǒng)很可能會被拋棄掉,Orbit繼承了Qt的幾乎所有東西,所以懂Qt的人可以很快掌握Orbit開發(fā)。這也解決了多年來Symbian開發(fā)學(xué)習(xí)曲線陡峭的問題,相信會有更多更好的開發(fā)人員投入到S60。從過去PC系統(tǒng)上20年來的歷史看,F(xiàn)ramework的興亡基本上是得開發(fā)者得天下。只有容易學(xué)習(xí)并且功能強(qiáng)大的系統(tǒng)才能贏得勝利,相信這一點在智能手機(jī)開發(fā)競爭中依然適用。
            posted on 2010-01-17 14:47 姚冬 閱讀(2914) 評論(4)  編輯 收藏 引用

            評論

            # re: Symbian 的自我救贖,新一代UI設(shè)計 Orbit 發(fā)布 2010-01-17 18:43 diverger
            我可以轉(zhuǎn)載么?  回復(fù)  更多評論
              

            # re: Symbian 的自我救贖,新一代UI設(shè)計 Orbit 發(fā)布 2010-01-17 21:56 Liang Qi
            純Qt通過Style也可以顯示出和系統(tǒng)原有控件相似的風(fēng)格
            Orbit不一定是必須的
              回復(fù)  更多評論
              

            # re: Symbian 的自我救贖,新一代UI設(shè)計 Orbit 發(fā)布 2010-01-26 11:40 忽悠
            說開發(fā)速度比android和iphone快是忽悠人吧  回復(fù)  更多評論
              

            # re: Symbian 的自我救贖,新一代UI設(shè)計 Orbit 發(fā)布 2010-03-09 10:11 凡客誠品
            很好1236456  回復(fù)  更多評論
              

            成人国内精品久久久久一区| 久久天天躁狠狠躁夜夜avapp| 国产精品九九久久免费视频 | 久久99精品国产99久久| 91视频国产91久久久| 国产叼嘿久久精品久久| 国产精品久久久久久久app| 久久水蜜桃亚洲av无码精品麻豆| 久久婷婷激情综合色综合俺也去| 69国产成人综合久久精品| 99精品久久精品| 久久九九久精品国产| 久久婷婷五月综合国产尤物app | 精品国产乱码久久久久久人妻 | 国产精品久久久久影视不卡| 久久精品亚洲中文字幕无码麻豆| 久久久久无码国产精品不卡| 嫩草伊人久久精品少妇AV| 亚洲国产香蕉人人爽成AV片久久| 亚洲精品无码久久一线| 狠狠色婷婷综合天天久久丁香| 99国内精品久久久久久久| 久久精品久久久久观看99水蜜桃| 99久久人妻无码精品系列蜜桃| 亚洲精品乱码久久久久久| 色青青草原桃花久久综合| 无码人妻久久一区二区三区蜜桃| 久久精品国产免费观看| 亚洲人成伊人成综合网久久久| 欧美色综合久久久久久| 影音先锋女人AV鲁色资源网久久 | 久久久国产亚洲精品| 2021久久国自产拍精品| 久久99国产精品久久99| 久久精品国产男包| 看全色黄大色大片免费久久久| 无码国内精品久久人妻蜜桃| 99国产精品久久| 久久久久亚洲av成人网人人软件| 国内精品久久久久影院薰衣草| 俺来也俺去啦久久综合网|