自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于PhoneGap與Java開發(fā)的Android應用的性能對比

移動開發(fā) Android
此次的調(diào)研的重點是針對一個Android應用的基礎需求,用phonegap與Java實現(xiàn)的應用在性能及開發(fā)成本等方面的對比。本次選擇用phonegap和Java各自實現(xiàn)一個ListView的內(nèi)容展現(xiàn)功能的應用;同時引入另外一個常用組件GridView來實現(xiàn)圖片瀏覽的功能應用。
此次的調(diào)研的重點是針對一個Android應用的基礎需求,用phonegap與Java實現(xiàn)的應用在性能及開發(fā)成本等方面的對比。
開發(fā)一個應用的最基本需求應該是瀏覽性需求,而在Android開發(fā)中ListView比較常用的控件,廣泛被用于數(shù)據(jù)列表的展現(xiàn)上,而且也比較靈活。所以本次選擇用phonegap和Java各自實現(xiàn)一個ListView的內(nèi)容展現(xiàn)功能的應用;同時引入另外一個常用組件GridView來實現(xiàn)圖片瀏覽的功能應用。
Delicious書簽訂閱應用
一、應用功能描述
Delicious書簽訂閱應用。進入應用首先展現(xiàn)訂閱的書簽源列表,點擊書簽源項,進入書簽源書簽列表頁,共展現(xiàn)***的20條書簽。
數(shù)據(jù)來源由Delicious提供的JSON格式的數(shù)據(jù)。參考地址(http://www.delicious.com/help/json
二、應用界面截圖
1、PhoneGap delicious bookmark
2、Java delicious bookmark
三、功能測試對比
【測試機器為 Google Nexus One G5】

Android應用類型 Html5 (phonegap) Java
功能實現(xiàn) Html + jQuery基礎庫 ListView組件
文件大小 159KB 23KB(只用了系統(tǒng)的原生界面)
內(nèi)存占用 45.37MB(RSS) 27.02MB(RSS)
數(shù)據(jù)通信 Ajax Apache http Java功能包
啟動速度 打開相同訂閱源2.7秒 打開相同訂閱源2.3秒
操作響應速度 正常操作速度流暢,頻繁操作響應會變慢 操作速度流暢
Monkey注入5萬個事件測試結果 Events injected: 50000:Dropped: keys=17 pointers=43 trackballs=0 flips=0 ## Network stats: elapsed time=1108130ms (0ms mobile, 1099670ms wifi, 8460ms not connected)
// Monkey finished
Events injected: 50000:Dropped: keys=28 pointers=53 trackballs=0 flips=0 ## Network stats: elapsed time=1216977ms (0ms mobile, 1216977ms wifi, 0ms not connected)
// Monkey finished
穩(wěn)定性 在Monkey測試注入大約4萬個事件時,整個應用已經(jīng)處于空白無響應狀態(tài)。有連接超時情況發(fā)生。手動頻繁操作會引起,響應速度變慢,webkit的WebView不能很好釋放內(nèi)存,甚至會引起應用的crash。 能較好處理Activity切換延時等待。運行較為流暢。Monkey測試時書簽列表頁切換時有時候會出現(xiàn)黑色背景,然后再載入列表,比正常速度稍慢。能夠比較好的釋放內(nèi)存,沒有出現(xiàn)過應用crash的情況。
資源占用 對于頻繁操作時,內(nèi)存釋放不夠理想,導致內(nèi)存占用上升。 內(nèi)存占用相對比較穩(wěn)定。
開發(fā)成本 運用html + css + javascript開發(fā),適合前端人員開發(fā)。由于webkit在不同的終端機發(fā)行版本不一樣,所以需要針對不同的機型進行適配。同時對于不同屏幕大小在適配上也只能通過Javascript進行控制實現(xiàn)。 適合有Java開發(fā)經(jīng)驗的程序員,可以充分利用Android提供的組件進行開發(fā)。但是開發(fā)學習成本較高。
開發(fā)難度 目前phonegap只使用一個WebView,開發(fā)時需要使用OPOA(One Page, One Application)的模式,對代碼的組織方式及開發(fā)方式有較高要求。同時介于手機的資源有限,對如何管理和分配內(nèi)存提出了要求。目前phonegap可以在控制臺輸出簡單的JS調(diào)試日志,但是并不方便。 需要有Java開發(fā)經(jīng)驗,同時對Android開發(fā)體系有較深入的了解。
多人協(xié)作 OPOA模式并不利于多人協(xié)作并行開發(fā),只能通過基礎的javascript的設計模式來解決多人協(xié)作的問題。 比較方便支持多人協(xié)作并行開發(fā)。
其它問題 1、需要通過Javascript來管理操作的歷史記錄,并保證返回鍵能夠正常使用;同樣也包括選項鍵。2、不提供調(diào)用新的WebView,不能把現(xiàn)有的wap版的內(nèi)容直接包裝到應用當中。

#p#

空間圖片瀏覽應用
一、應用功能描述
在應用中創(chuàng)建一個gridview方式展示的圖片列表。 圖片總數(shù) 48, 16行3列。 原生app使用gridview布局和渲染。webapp使用了jquery和jquery.mobile(后者依賴前者)
二、應用界面截圖
1、PhoneGap mm100 photo viewer
2、Android Java mm100 photo viewer
三、功能測試對比
【測試機器為 Google Nexus One G5】

Android應用類型 Html5 (phonegap) Java
功能實現(xiàn) jQuery與jQuery Mobile基礎庫 GridView組件
文件大小 220KB 72KB
內(nèi)存占用 40.6MB(RSS) 29.9MB(RSS)
啟動速度 約7秒(js大小會直接影響速度) 約3秒
操作響應速度 在內(nèi)容比較多的時候,都不是很流暢。調(diào)用外部交互:彈窗提示為例,會比原生大約有1s的延遲。 在內(nèi)容比較多的時候,都不是很流暢。調(diào)用外部交互:原生app基本上瞬間響應。
Monkey注入5萬個事件測試結果 Events injected: 50000:Dropped: keys=20 pointers=72 trackballs=0 flips=0 ## Network stats: elapsed time=1460305ms (0ms mobile, 1440448ms wifi, 19857ms not connected)
// Monkey finished
Events injected: 30002:Dropped: keys=7 pointers=10 trackballs=0 flips=0 ## Network stats: elapsed time=230436ms (0ms mobile, 230436ms wifi, 0ms not connected)
** System appears to have crashed at event 30002 of 50000 using seed 0
穩(wěn)定性 由于交互深度較淺,所以整個Monkey測試過程較為流暢,但是還測試完畢后還是存在WebView內(nèi)存無法釋放的情況。 整個Monkey測試過程較流暢。
資源占用 Webapp占用內(nèi)存約40.6M,占用應該主要是由于webapp是基于瀏覽器的,并且加載了一個java庫所致。所以資源占用應該不是線性的。 占用內(nèi)存約29.9M,內(nèi)存占用相對比較穩(wěn)定。
開發(fā)難度 對于比較簡單的應用,在同樣具備完善基礎庫的條件下,兩者開發(fā)難度基本一致。
其它問題 1.內(nèi)存優(yōu)化:webapp因為是基于瀏覽器的,而瀏覽器自身是進行了相應的優(yōu)化的,所以在圖片顯示上很不錯。 原生app如果在一頁中顯示比較多的圖片的時候,必須比較細致完善的進行內(nèi)存優(yōu)化工作,否則極易出現(xiàn)因為圖片資源過大而引起的崩潰問題。
2.圖片縮放裁切 webapp一般情況下通過js和css來進行縮放裁切。在進行圖片動態(tài)縮放的時候,頁面顯示情況不是很正常(抖動,跳躍)。***的辦法是后端服務器對圖片處理后再發(fā)送給手機端。
原生app可以直接通過java來對圖片進行處理。
3.布局 原生app可以利用android提供的特殊技術方案,來自動適應多種分辨率的屏幕。如9png 和 多drawable目錄。 相當簡單方面。 但是在交互方面,原生app的開發(fā)量會比較大。
webapp就比較杯具一些了,需要開發(fā)者比較多的關注。 可以通過js來動態(tài)的獲取屏幕尺寸進行資源調(diào)整和加載(開發(fā)幾套不同的ui,然后根據(jù)分辨率js動態(tài)加載),這個會花費比較多的時間。
4.調(diào)試
webapp js調(diào)試不太方便,特別是調(diào)用外部應用的時候。如果是本應用內(nèi)部,可以通過firebug進行調(diào)試。

總結
此次對比主要集中在對大量數(shù)據(jù)通信下web app UI性能。通過與Java app相比較,web app的UI性能會比Java app的UI性能差。主要原因是依賴webkit瀏覽器內(nèi)核的渲染解析能力。同時在只有一個WebView的情況下,如何控制內(nèi)存的上漲速度以無法釋放內(nèi)存的情況無縫地重新啟動WebView從而不影響用戶體驗,是一個現(xiàn)實待解決問題。
在非大數(shù)據(jù)量且不需要頻繁更新UI的情況下,基于wekit瀏覽器phonegap模式還是可以滿足Android開發(fā)應用的需求。同時應用的實現(xiàn)的效率還依賴于OPOA開發(fā)模式的Javascript基礎架構是否強大和高效。
對于不同分辨率的屏幕,需要通過JS或者通過要集成的框架封裝來解決適配的問題。同時由于不同版本的Android所集成的webkit的版本不同,同樣也需要處理不同版本的在JavaScript和CSS支持上不同的兼容性問題。還有解決開發(fā)時多人協(xié)作及方便的調(diào)試工具集成,也是進行html5 app開發(fā)的重要前提條件。
此次對比主要集中在對大量數(shù)據(jù)通信下web app UI性能。通過與Java app相比較,web app的UI性能會比Java app的UI性能差。主要原因是依賴webkit瀏覽器內(nèi)核的渲染解析能力。同時在只有一個WebView的情況下,如何控制內(nèi)存的上漲速度以無法釋放內(nèi)存的情況無縫地重新啟動WebView從而不影響用戶體驗,是一個現(xiàn)實待解決問題。
在非大數(shù)據(jù)量且不需要頻繁更新UI的情況下,基于wekit瀏覽器phonegap模式還是可以滿足Android開發(fā)應用的需求。同時應用的實現(xiàn)的效率還依賴于OPOA開發(fā)模式的Javascript基礎架構是否強大和高效。
對于不同分辨率的屏幕,需要通過JS或者通過要集成的框架封裝來解決適配的問題。同時由于不同版本的Android所集成的webkit的版本不同,同樣也需要處理不同版本的在JavaScript和CSS支持上不同的兼容性問題。還有解決開發(fā)時多人協(xié)作及方便的調(diào)試工具集成,也是進行html5 app開發(fā)的重要前提條件。

【編輯推薦】

責任編輯:佚名 來源: 百度搜索研發(fā)部博客
相關推薦

2011-07-05 15:26:23

2011-08-25 17:29:40

LUAPHPWEB

2017-04-13 15:15:17

Netflix ZuuNginx性能

2017-11-21 15:50:09

FlinkStorm性能

2017-11-20 13:54:55

FlinkStorm框架

2025-02-27 07:47:09

Java開發(fā)CAS

2018-03-01 15:20:59

iOS開發(fā)多線程

2024-01-05 08:46:50

ReactVue

2012-08-16 13:24:58

Windows 8Windows 7對比

2022-12-05 17:01:20

MySQL數(shù)據(jù)庫Oracle

2024-10-07 08:40:56

Spring應用程序Java

2009-11-20 09:01:13

Ubuntu性能對比

2011-12-23 10:02:37

PhoneGapAndroid插件

2009-08-10 09:26:56

2009-07-24 13:17:43

世紀互聯(lián)至強CloudEx

2011-08-05 10:01:47

MySQL庫Pdo-MysqlMysqli

2011-09-13 13:36:17

PhoneGap

2021-07-26 09:45:24

Windows 11WSL2Linux

2013-12-23 09:37:16

Fedora開源Fedora 19

2011-12-15 09:45:21

PhoneGap
點贊
收藏

51CTO技術棧公眾號