






摘要:文章基于PhoneGap和Titanium兩種框架的不同功能,通過共有的API進行設備訪問、性能等一系列的測試。由測試可知PhoneGap和Titanium在不同環境背景下各有優缺點,但Titanium具有更加優秀的性能和效率,而PhoneGap相對具有優勢的跨平臺性。
關鍵詞:移動應用;跨平臺框架;性能測試;PhoneGap;Titanium
Abstract: In this paper, we describe the different functions of PhoneGap and Titanium and introduce device access tests and performance tests through the common API of these applications. The tests show that PhoneGap and Titanium have advantages and disadvantages in different environments; however, Titanium generally performs more efficiently, but PhoneGap is better in across platforms.
Key words: mobile App; cross platform framework; performance test; PhoneGap; Titanium
2004年以來,移動終端由于其便攜性和多樣性,越來越多地受到人們的關注。對于移動開發者來說,要在不同平臺上進行移動終端開發,需要學習Python、Ruby、Java、Object-C等各種不同的開發語言,這使得他們耗費很多時間并難以投入更多的精力到更深層次的技術研究中。
混合應用則可以解決這個問題,它結合了Web應用和本地應用的優點,在本地客戶端中嵌入基于Web前端技術構造的頁面視圖。混合應用本地的部分相當于一個框架(或容器),并且以HTML、CSS及JavaScript為核心完成編程語言的統一。從用戶的角度來說,混合應用看起來像一個本地應用;而從開發者的角度來說,開發中除了要用HTML、CSS及JavaScript技術來編寫大部分應用程序之外,其余工作流程與本地應用是相似的。相對于Web應用,混合應用的優勢在于:本地化的框架只是作為頁面視圖的容器,在需要的時候,仍可提供硬件設備訪問控制及相關功能。技術細節方面,可以通過JavaScript經由本地應用框架,與硬件和操作系統進行通訊,例如控制攝像頭、重力感應等。
在最近幾年混合跨平臺移動應用發展中,Titanium和PhoneGap是使用率較高、比較有代表性的開發框架。文章將主要通過對Titanium和PhoneGap在主流移動平臺上的性能測試,詳細地對比介紹Titanium和PhoneGap之間的性能差異。
(1)Titanium
Titanium為Appcelerator推出的跨平臺應用程序開發解決方案,Titanium的開發語言為JavaScript以及HTML等網頁標準技術。Titanium使開發者利用JavaScript編寫移動應用程序,并編譯成本地代碼再部署,相當于用純JavaScript 應用程序編程接口(API)來創建本地代碼。
(2)PhoneGap
PhoneGap利用HTML 5標準編寫移動應用,同時提供JavaScript 軟件開發工具包(SDK)用來訪問移動設備的硬件功能。它是運行在本地Web瀏覽器視圖的Web應用程序,能夠利用HTML 5/CSS、JavaScript以及jQuery Mobile、Sencha等框架。PhoneGap支持更多平臺,因為它并不需要創建本地代碼,并且能夠在不同平臺上部署時并不改變代碼,具有更好的代碼可重用性。同時它的本地API集非常小,因而在不同環境中移植性較好。
1 測試方案
PhoneGap和Titanium的測試性能對比,主要通過兩種主流的平臺進行測試,即Android和iOS平臺。用PhoneGap和Titanium分別寫出相同的應用(要求實現的兩種代碼在語義上是完全等價的),這樣近似地比較PhoneGap和Titanium兩種框架在Android平臺和iOS平臺上的性能,測試出它們的跨平臺性、程序執行效率及性能差異。
(1)測試方法及指標
PhoneGap和Titanium調用它們各自的API來實現功能,主要表現在對移動設備的硬件訪問控制。本次測試通過兩個框架共有的功能,即對相同硬件設備的訪問速度、開啟時間以及讀寫文件時間等指標來測試它們之間的性能差異。具體指標包括:
·訪問硬件設備的功能所需時間;
·該功能運行時的CPU占用率(或CPU 時間);
·該功能運行時的電源消耗率。
由于iOS平臺的特殊性,并沒有合適的測試工具與Android上的測試指標相對應。故在iOS平臺上只測試CPU時間,在Android平臺上綜合測試CPU占用率和電源消耗率。
(2)測試機配置
·測試類型:真機測試;
·測試平臺:Android平臺或者iOS平臺;
·測試設備:客戶機1(小米1S(Android 4.0))、客戶機2(iTouch 4G ( iOS 6.0))。
(3)測試工具
由于Android平臺和iOS平臺的差異性,在測試時需要使用不同的測試工具。除了兩者在硬件設備訪問時通過編寫測試用例直接在系統后臺得出數據之外,Android平臺使用SSHDroid軟件通過遠程登錄移動設備,并通過top命令獲得測試中的CPU利用率,測試數據如圖1所示。
同時我們使用“電池優化衛士”軟件和“GSam Battery Monitor Pro”軟件作為后臺監測電源消耗率的測試工具。而iOS平臺使用Xcode里的“工具選項”測試得到CPU 時間。
2 測試結果
在上文提出的幾種測試指標中,硬件設備的訪問時間比較直觀、準確。相比而言CPU利用率和電源消耗率常受應用開啟時占用CPU和電源的影響,因而我們將訪問時間作為第一測試結果進行分析。
(1)訪問功能測試
編寫PhoneGap和Titanium各個測試用例,能夠具體地說明API調用之間的性能差異。對于相同的功能來說,在調用API的JS語句前后分別加上時間戳,并計算出時間戳的差值,可得出訪問時間。該過程的偽代碼如圖2所示。
通過對各個功能點連續測試10次并求取平均值可以得出結果柱形圖,如圖3所示。
通過圖4可以看出,在不同功能點的訪問中,Titanium有幾個硬件設備的訪問時間非常高,起伏較大,性能穩定性不足。但是兩者在大部分測試中顯示出正常的趨勢,并且Titanium普遍比PhoneGap的訪問時間短,顯示出較好的本地化性能。推測該情況的出現是因為Titanium擁有自己的預編譯過程,編譯成的本地代碼對于調用本地API更迅捷。
(2)CPU占用率和電源消耗率測試
Android中使用SSHDroid軟件獲得CPU占用率。打開設備的安全外殼協議(SSH)功能之后,設備就可以連接到PC的局域網,并在PC上使用SecureCRT連接到設備,連接成功后在SecureCRT的命令行中運行top命令,動態查看進程的CPU占用率。測試得到的結果柱形圖如圖5所示。
利用“GSam Battery Monitor Pro”軟件和“電池優化衛士”軟件作為后臺監測電源消耗率的測試工具,可以得到運行時進程當前的電源消耗率。測試中對每個功能點進行連續、等次、等間隔的測試,整理測試結果如圖6所示。
通過對Android平臺上CPU占用率和電源消耗率的對比可以看出:PhoneGap和Titanium在相同的功能中所占用的CPU差距不大,兩者以基本相同的趨勢變動,但總的來說Titanium在CPU利用率方面可以略勝一籌。
PhoneGap在電源消耗率的不同測試用例中起伏較大,并且普遍比Titanium所消耗電量大,在兩組用例中高出兩倍以上。這說明在Android平臺上,Titanium顯示出比PhoneGap更穩定的性能。
(3)CPU時間
iOS的CPU測試是使用Xcode里的instruments工具完成的,在此過程中會把每一個待測功能運行10次,以獲得平均CPU 時間,然后進行比較分析。測試得到的結果如圖7所示。
由圖7可看出,在iOS上Titanium所使用的CPU Time仍然比PhoneGap要少40-60%,但也不乏例外出現,比如在第一次測試中,Titanium打開攝像頭所占用的CPU 時間就比PhoneGap明顯要多。但是在大部分測試用例中,Titanium還是表現出非常優秀的性能。
3結束語
通過測試數據能夠反映出:如果平臺發生變化,PhoneGap性能會保持較好的穩定性,而Titanium性能則出現較大起伏。從CPU占用率來看,Titanium的執行效能較高,CPU占用率相對較低。PhoneGap的跨平臺性能較Titanium卓越,而Titanium的執行效率較PhoneGap較高一些。這些現象都會與Titanium將應用轉換成原生應用以及PhoneGap調用手機系統的API這些混合跨平臺解決方案的本身機制有關。總的來說,PhoneGap和Titanium在以上不同環境背景下各有優缺點,但Titanium具有更加優秀的性能和效率,而PhoneGap相對具有優勢的跨平臺性。
參考文獻
[1] Appcelerator Platform[EB/OL].http://www.appcelerator.com/
[2] PhoneGap Build is out of Beta [EB/OL].http://www.phonegap.com/
[3] Rhodes[EB/OL].http://www.motorola.com/Business/US-EN/RhoMobile+Suite/Rhodes
[4] appMobi[EB/OL]. http://www.appmobi.com
[5] 跨平臺移動開發工具:PhoneGap與Titanium全方位比拼(3)[EB/OL].
http://mobile.51cto.com/web-338270_2.html