色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

手機(jī)跨平臺(tái)方案介紹

  引述

  現(xiàn)在手機(jī)平臺(tái)種類繁多,主流平臺(tái)有Symbian、iosAndroid、WM6.5、WP7以及中國山寨機(jī)所普遍使用的MTK,展訊, MSTAR。

  作為開發(fā)者來說,特別是學(xué)生,要做一款軟件支持如上平臺(tái),實(shí)在是一件遙不可及的事情。

  不同種類的應(yīng)用,成功的條件是不同的。有些應(yīng)用是以質(zhì)取勝的,有些應(yīng)用則在質(zhì)的同時(shí)必須要有足夠的用戶群(如LBS應(yīng)用相關(guān)),也就是量的優(yōu)勢(shì)。因此,不同應(yīng)用對(duì)于多平臺(tái)支持的需求是有差異的,這也是本文探討如何跨平臺(tái)開發(fā)的價(jià)值所在。

  跨平臺(tái)開發(fā)有許多種方式,在文獻(xiàn)中可查到有下列方式。

方案名稱

簡(jiǎn)述

特點(diǎn)

性能

方案開發(fā)難度

使用難度

使用成本

案例

動(dòng)態(tài)腳本

使用腳本語言進(jìn)行動(dòng)態(tài)載入或?qū)μ囟ǖ臄?shù)據(jù)格式進(jìn)行解析,類似于瀏覽器工作方式:

wml

Javascript

xml表單

私有數(shù)據(jù)格式

開發(fā)快,靈活配置。性能差,表現(xiàn)形式有限

30

40

30

40

msn/fetion/qq 內(nèi)置wap瀏覽器使用服務(wù)器把網(wǎng)頁轉(zhuǎn)換成wml,客戶端進(jìn)行解析展示。

移動(dòng)MM使用xml進(jìn)行界面定義

微軟oneapp 使用 Java script進(jìn)行服務(wù)武器編寫,客戶端進(jìn)行展示和交互

很多電子閱讀軟件都使用自有的格式在服務(wù)器端進(jìn)行編寫,客戶端進(jìn)行展示

私有跨平臺(tái)

公司內(nèi)部使用,進(jìn)行很"粗略"的封裝

使用范圍受限

90

120

70

60

不公開的內(nèi)部引擎,比如Gameloft的游戲引擎

很多公司的UI引擎

針對(duì)特殊的領(lǐng)域,比如Poc(按鍵通話對(duì)講機(jī))引擎

抽象中間件

有自己的編程標(biāo)準(zhǔn),完善的文檔和規(guī)范化的接口

學(xué)習(xí)成本高,使用平臺(tái)所限,在不損失性能得前提下解決特定的問題

85

300

100~150

50

Nokia的Qt

沃勤的 mtk中間件

Brew 開發(fā)接口

虛擬機(jī)

使用字節(jié)碼解析執(zhí)行

開發(fā)容易,跨平臺(tái)性好,但性能差,擴(kuò)展難,維護(hù)成本高

50

開源方案,自己開發(fā)成本很高

60

60

標(biāo)準(zhǔn)的j2me虛擬機(jī)

開源的llvm, eve, flash最新版使用llvm

私有的,掌上明珠自己開發(fā)了虛擬機(jī)用于開發(fā)游戲

代碼轉(zhuǎn)換

使用Java轉(zhuǎn)換成c代碼,再編譯執(zhí)行

使用標(biāo)準(zhǔn)j2me接口開發(fā),一份代碼,好維護(hù),但目前還沒官方公開版

84

300

60

70

棱鏡方案

Fetion 3.0

正在開發(fā)的聯(lián)通應(yīng)用商店

目前都還是公司內(nèi)部使用

  備注:

  性能:我們以純本地代碼開發(fā)出來的程序性能為100做基數(shù),其他使用相對(duì)百分比。

  難度:我們以純本地代碼開發(fā)的難度100做基數(shù),其他使用相對(duì)百分比。

  棱鏡方案由北京創(chuàng)世互動(dòng)總經(jīng)理張盛毅介紹,目前僅在北京創(chuàng)世互動(dòng)公司內(nèi)部使用,期待盡快與眾多開發(fā)者見面。

  (1)

  我們可以看到,使用動(dòng)態(tài)腳本、虛擬機(jī)及代碼轉(zhuǎn)換等方式是比較廉價(jià)的跨平臺(tái)開發(fā)方式。接下來本文將會(huì)介紹幾種跨平臺(tái)方式下進(jìn)行跨平臺(tái)開發(fā)的方案。

  動(dòng)態(tài)腳本

  現(xiàn)在比較火的使用動(dòng)態(tài)腳本的跨平臺(tái)開發(fā)方案大部分是即基于HTML5的。事實(shí)上即對(duì)傳統(tǒng)瀏覽器的一種擴(kuò)展,提供了離線瀏覽功能、對(duì)本地設(shè)備的訪問功能等。但由于大部分編碼是使用腳本語言,因此性能較低。如果做圖片處理等應(yīng)用,則缺少相應(yīng)成熟庫支持。

  RhoMobile - one codebase, everysmartphone

  基于HTML5及Ruby構(gòu)建跨平臺(tái)應(yīng)用的工具,號(hào)稱支持iPhone, Windows Mobile,RIM, Symbian and Android。同時(shí)提供開發(fā)、同步、源碼管理等全方位產(chǎn)品。具有IDE。

  然而,當(dāng)仔細(xì)看開發(fā)文檔的時(shí)候,發(fā)現(xiàn)對(duì)Symbian提都不提了,實(shí)在是一件讓我的N95傷心的事情(http://docs.rhomobile.com/rhodes/introduction)。況且作者對(duì)Ruby了解甚少,也就沒有進(jìn)一步嘗試。

  Appcelerator

  Appcelerator的Titanium是使用HTML、JavaScript及CSS等Web技術(shù)構(gòu)建移動(dòng)(iPhone、Android及iPad)與桌面(Windows、OS X及Linux)應(yīng)用的平臺(tái)。此外,還可以使用Pythonphp及Ruby構(gòu)建Titanium的桌面應(yīng)用。這些應(yīng)用還可以交叉編譯到所有的目標(biāo)平臺(tái)上。 

  (2)

  PhoneGap

  PhoneGap是一款開源手機(jī)應(yīng)用開發(fā)平臺(tái),它僅僅只用HTML和JavaScript語言就可以制作出能在多個(gè)移動(dòng)設(shè)備上運(yùn)行的應(yīng)用。PhoneGap將移動(dòng)設(shè)備本身提供的復(fù)雜的API進(jìn)行了抽象和簡(jiǎn)化,提供了一系列豐富的API供開發(fā)者調(diào)用,只要你會(huì)HTML和Javascript或者Java語言,就可以利用PhoneGap提供的API去調(diào)用各種功能,PhoneGap就能讓你可以制作出在各種手機(jī)平臺(tái)上運(yùn)行的應(yīng)用,這對(duì)移動(dòng)應(yīng)用開發(fā)者來說無疑是個(gè)福音。

   (3)

  這個(gè)對(duì)Symbian的支持也很不好,官方的Symbian demo在我的N95上無法跑。

  代碼轉(zhuǎn)換

  由于代碼轉(zhuǎn)換直接生成目標(biāo)平臺(tái)的應(yīng)用程序,因此效率比較高。然而如引文中提到的,大部分項(xiàng)目都是私有的。

  MoSync

  MoSync是一個(gè)開源的C/C++的集成開發(fā)環(huán)境。可以簡(jiǎn)化移動(dòng)開發(fā)程序的開發(fā)難度,并且能夠大大提高移動(dòng)程序開發(fā)人員的工作效率。其主要優(yōu)點(diǎn):開源,跨平臺(tái)Android, j2me, Symbian等,易于移植。

   (4)

  官方的DEMO很成功的在我的手機(jī)上跑了起來,還有幾個(gè)是OPENGL的。不過極其不爽的是,對(duì)中文的支持性很糟糕。MoSync所提供的UI系統(tǒng)壓根沒考慮對(duì)中文的支持,有國人問如何顯示中文,MoSync的回復(fù)讓我感到很雷,要制作一個(gè)一個(gè)byte的中文字符字體。難道他們以為漢字是拼音么。

  不過MoSync正在做native ui的相關(guān)工作,不過,恐怕還需要相當(dāng)長的時(shí)間來發(fā)展。

  虛擬機(jī)

  我認(rèn)為虛擬機(jī)其實(shí)是很尷尬的,對(duì)多平臺(tái)的支持遠(yuǎn)不如上文提到的幾個(gè)強(qiáng)悍,編碼過程中要考慮的也比較多。

  J2ME

  iPhone壓根不支持。Android則自己搞了套,估計(jì)合理利用設(shè)計(jì)模式,改動(dòng)也不需要太大。Symbian還是對(duì)這個(gè)很友好的,WM6.5要裝虛擬機(jī),WP7未知。

  在編碼過程中,由于J2ME也沒有為多種設(shè)備提供一個(gè)十分統(tǒng)一的訪問方式(如加速度傳感器等),所以需要考慮的事情也比較多。

  Silverlight、MonoDroid、 MonoTouch

  這個(gè)就壓根談不上跨平臺(tái)了,UI都是要各自寫一套,而且后兩者也特別臃腫。

  值得一提的是,有個(gè)基于C#的游戲引擎delta engine,可以在PC、WP7、Android及iPhone上跑。

  Skyengine

  這里介紹一下這個(gè),其實(shí)也是最近斯凱的老大宋濤來我們天大才聽說的。之前對(duì)山寨機(jī)一直沒有關(guān)注過。

  斯凱SDK處理了MTK、展訊、MSTAR平臺(tái)的差異性,封裝了統(tǒng)一、易用、功能強(qiáng)大的API。功能涵蓋了圖形文字處理,聲音,文件IO,網(wǎng)絡(luò)通信等;同時(shí)完美支持THUMB指令,插件機(jī)制,圖形加速等高級(jí)特性。斯凱SDK將使你輕松開發(fā)出優(yōu)秀的OTA應(yīng)用

  開完會(huì)后過去聊,說已經(jīng)放出Android的來了,但是后來在斯凱的網(wǎng)站找也沒找到。估計(jì)還在內(nèi)部測(cè)試,不過如果要做山寨機(jī)的平臺(tái)的話,可能用這個(gè)會(huì)速度好多。

  小結(jié)

  扯這么多,最后也沒扯出個(gè)真正的Write once,run anywhere的巨無霸。開發(fā)過程中,應(yīng)該有機(jī)的選擇幾種跨平臺(tái)技術(shù),覆蓋自己所關(guān)注的平臺(tái)。

  我們的團(tuán)隊(duì)近期在做一些個(gè)項(xiàng)目,也還在討論跨平臺(tái)的方案。我們還是比較關(guān)注手機(jī)程序的Native特性的。譬如Symbian用戶更喜歡sis,而不喜歡jar。

  總而言之,跨平臺(tái)遠(yuǎn)沒想象中的那樣靠譜。

  引用作品

  1. 一塵. 手機(jī)跨平臺(tái)開發(fā)五大方案對(duì)比. 博客園. [鏈接] http://www.cnblogs.com/wmj/archive/2010/11/29/1891086.html.

  2. InfoQ. Aptana被Appcelerator收購. [鏈接] http://www.infoq.com/cn/news/2011/01/aptana-appcelerator.

  3. 跨平臺(tái)開發(fā):初探PhoneGap移動(dòng)開發(fā)框架. [鏈接] http://mobile.51cto.com/Android-229213.htm.

  4. liuhuigx. MoSync: 跨多平臺(tái)Android, j2me, Symbian, wm的開發(fā)工具。. [鏈接] http://www.iteye.com/topic/600808.

  作者:馬昊伯

  出處:http://loning.cnblogs.com/

  個(gè)人網(wǎng)站http://loning.wiisio.com/

  本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,否則保留追究法律責(zé)任的權(quán)利。

it知識(shí)庫手機(jī)跨平臺(tái)方案介紹,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 贡觉县| 通化县| 姜堰市| 丰城市| 澳门| 昌邑市| 清流县| 三亚市| 武安市| 抚宁县| 方正县| 松溪县| 会泽县| 海丰县| 巴彦淖尔市| 古丈县| 建始县| 安仁县| 宜城市| 罗源县| 呼玛县| 九龙城区| 晋州市| 米脂县| 山东省| 博乐市| 庆云县| 霍城县| 舒兰市| 夹江县| 达尔| 句容市| 营山县| 大安市| 寿宁县| 商洛市| 安新县| 深水埗区| 长葛市| 满城县| 太保市|