Android特性
Android是Google公司基于Linux內(nèi)核的開(kāi)源操作系統(tǒng),主要用于移動(dòng)設(shè)備,目前在智能手機(jī)市場(chǎng)占有重要份額。Android應(yīng)用層使用Java語(yǔ)言開(kāi)發(fā),運(yùn)行于Dalvik虛擬機(jī),每個(gè)Android應(yīng)用運(yùn)行在獨(dú)立的虛擬機(jī)中,這保證了各應(yīng)用間資源的保護(hù)和線程安全。Android架構(gòu)簡(jiǎn)圖

Android編程方式:Java,NDK,HTML
通常使用Java語(yǔ)言開(kāi)發(fā)Android應(yīng)用,但也可借助其他語(yǔ)言,如Android NDK(Native Development Kit)開(kāi)發(fā)模式,可用Java調(diào)用C語(yǔ)言庫(kù),此外HTML也可以包裝成Android應(yīng)用。三種方式都有各自的特點(diǎn),Java為Android原生支持的語(yǔ)言,便于開(kāi)發(fā)本地應(yīng)用,隨著Android系統(tǒng)的不斷優(yōu)化,其效率也在不斷提升,TWaver Android就使用Java開(kāi)發(fā);Android NDK開(kāi)發(fā)相對(duì)復(fù)雜,但可借助C語(yǔ)言的性能優(yōu)勢(shì),改善程序效率,并且C語(yǔ)言也具有很好的跨平臺(tái)性,在游戲領(lǐng)域應(yīng)用普遍;而Html方式也逐漸成為趨勢(shì),Web App可用于實(shí)現(xiàn)跨瀏覽器,跨平臺(tái)的應(yīng)用。
Android性能測(cè)試
Android設(shè)備很豐富,系統(tǒng)升級(jí)也很頻繁,Google對(duì)Dalvik虛擬機(jī)的優(yōu)化和Android應(yīng)用架構(gòu)的改善有長(zhǎng)足的進(jìn)步,如Android 2.1升級(jí)到2.2時(shí)引入了JIT(just in time)機(jī)制,使應(yīng)用效率提升了2-4倍,而Android 4.1黃油計(jì)劃對(duì)UI流暢度也有作出了貢獻(xiàn),Google的努力值得贊揚(yáng),但一方面也說(shuō)明此前Android效率的低下,而未來(lái)進(jìn)步的空間還有多少?我們用數(shù)據(jù)來(lái)說(shuō)話。下面我們將分別在Android平板與電腦下對(duì)Android Java與Sun Java作對(duì)比測(cè)試,以了解兩者的性能差異和各自適用的場(chǎng)景。Dalvik VM與Sun Java VM的性能差異
測(cè)試設(shè)備分別為:MacBook Pro(2.26 GHz Intel Core 2 Duo),Google Nexus 7(1.3GHz四核Tegra 3)軟件環(huán)境:Java 1.6.0_37和Android 4.2.1
測(cè)試內(nèi)容:包括數(shù)學(xué)運(yùn)算,集合操作(List和Map操作)等基本API
因?yàn)橥瑸閖ava語(yǔ)言,測(cè)試代碼基本一致,詳見(jiàn)TWaver Android Demo中的PerformanceDemo.java,這里只列出結(jié)果:
Android 4.2.1耗時(shí)是Java 6的12 - 50倍,此外其他語(yǔ)言(Flex,JavaScript)在電腦上的運(yùn)行效率也大大優(yōu)于Nexus 7平板。
另外看看HTML的情況,Chrome瀏覽器移動(dòng)版與桌面版有四倍的差距,這基本上反映了硬件的真實(shí)水平,Android中JavaScript語(yǔ)言相比原生的Java性能更優(yōu),至少對(duì)于Chrome瀏覽器是如此,當(dāng)然這個(gè)測(cè)試只是反映語(yǔ)言的基本性能,從開(kāi)發(fā)的便易上看,Java還是最佳選擇。
測(cè)試的結(jié)果表明相比PC,android設(shè)備在性能上尚有明顯差距,而Dalvik VM尚不能充分發(fā)揮硬件的性能,在開(kāi)發(fā)應(yīng)用時(shí)需要意識(shí)到這點(diǎn),以達(dá)到用戶體驗(yàn)與功能上的平衡。
編程語(yǔ)言各平臺(tái)下的性能差異

TWaver Android的定位
TWaver圖形組件在桌面上有很多開(kāi)發(fā)語(yǔ)言可選擇,獨(dú)移動(dòng)平臺(tái)上空缺,雖然TWaver Html5也能運(yùn)行在Android和iOS之上,但要達(dá)到本地應(yīng)用的體驗(yàn)絕非易事,TWaver Android定位于移動(dòng)平臺(tái),用于圖形化的數(shù)據(jù)展示,采用了全新設(shè)計(jì)架構(gòu),提升了UI效率,以應(yīng)對(duì)移動(dòng)設(shè)備自身性能的不足,全新的多點(diǎn)觸控交互模式,漫游操作,實(shí)現(xiàn)流暢的交互體驗(yàn)。TWaver Android的數(shù)量級(jí)支持
相比TWaver其他版本,TWaver Android架構(gòu)做了變化,數(shù)據(jù)模型上提高了數(shù)倍效率,解決了Link, Group的性能問(wèn)題,UI呈現(xiàn)上優(yōu)化了延遲無(wú)效機(jī)制,交互上完全適應(yīng)觸控操作,綜合測(cè)試,對(duì)于Node,Link,Group混合使用的場(chǎng)景,一千數(shù)量級(jí)在Nexus 7平板上可以流暢的操作,考慮到平板硬件差異和Android虛擬機(jī)的效率問(wèn)題,這樣的結(jié)果還是讓人滿意的,可以有廣泛的應(yīng)用場(chǎng)景。Nexus 7中,不同網(wǎng)元數(shù)量級(jí)下拓?fù)鋱D的加載時(shí)間對(duì)比

TWaver Android推薦平臺(tái)
考慮到更佳的展示效果,大屏幕或許更便于數(shù)據(jù)的圖形化展示,所以TWaver推薦使用平板,支持Android 3.0+以上版本(該版本支持Drag and Drop),實(shí)際上TWaver Android內(nèi)部主要使用Nexus 7 / 10以及三星平板作開(kāi)發(fā)測(cè)試與調(diào)優(yōu)。當(dāng)然這并不意味著TWaver Android不能用于手機(jī)或者低版本的Android設(shè)備,TWaver Android Demo在Google Nexus S手機(jī)上也可以流暢的運(yùn)行,如果需要兼容Android 2.*較低版本設(shè)備,你可以申請(qǐng)TWaver Android的精簡(jiǎn)版本。TWaver Android Demo運(yùn)行于Nexus 7 和Nexus S
