android與native整合

來源:互聯網
上載者:User

現在各大平台群雄逐鹿,推出各種讓人炫目的feature,基於HTML5開發最大的弊病就是無法享受最新最炫的native feature和效能問題,而Phonegap的價值就在於此,它就是為了讓你既能基於HTML5享受跨平台的便利,又能享受native的feature。因此,這裡就通過對phonegap的分析,來看看如何能更好地讓HTML5長在native上。

分析完phonegap在三大平台上的源碼(phonegap源碼分析(一)------ android,phonegap源碼分析(二)------
Windows Phone和phonegap源碼分析(三)------ IOS),會發現phonegap就是基於各大平台上的webview,把它作為跨平台的虛擬機器,把HTML5作為位元組碼,以此打造Mobile上的Java。它那些所謂整合native的plugin實際上是苦力活,把各大平台共有的特性都封裝了一遍,所以,它的未來寄希望於兩點,一是各mobile平台能大力發展HTML5,提升其效能和功能。二是,能緊跟各平台的最新發行,儘快地把最新特性以plugin的方式include進來。因此phonegap不是一個什麼很絕妙的架構,它是基於一個很簡單的構想,但要做得儘可能的完善和細節,並且更新速度要快。

我前面也提到過,不是所有的應用都適合用phonegap來做,如何評估,關鍵要看這個webview是否能很好承載你的應用。這塊我研究不多,但從網上的一些文章來看,webview的效能是存在問題的,很多人做過測試,拿同樣的頁面在webview和browser上跑,webview的效能是低於browser的,並且就算是不亞於browser,browser和原生應用也是沒法比的,撇開JS的最佳化(這是一個很大的主題)不談,phonegap相關的效能損耗主要是以下幾點:

  • JS與Native的互調
  • HTML UI與native UI的差距
  • 效能與跨平台間的平衡

對於第一點,其實這是最可以忽視的點,通過對phonegap源碼的分析,損耗在JS與Native的互調上的代價其實並不大,除了Android取調用結果之外,其他都是直接的本地方法調用,並且JS與Native的互調並不是發生在每時每刻。

而對於HTML UI與native UI的差距,這個是效能問題體現得最為明顯的地方。在案頭平台上尚且如此,更別提在mobile上,因此對UI互動要求很高的應用,得重點考察一下是否能容忍這塊的差距。對於如何提升UI效能和流暢性,我還沒來得及做很深入的研究,就目前的學習情況來看,可以朝以下幾個方面來做:

  • 通過template技術,把HTML打散,避免一個html太大,http://floatlearning.com/2011/05/how-well-does-phonegap-scale/,這篇文章介紹一些template solution
  • 選擇最合適的UI架構,就目前來看Jquery mobile在效能上我是不滿意的,以後我會重點考察一下JQTouch
  • 最佳化dom render,比如減少reflow的cost,http://floatlearning.com/2011/06/the-cost-of-reflows-on-a-web-app/
  • 效能提升小tips,http://floatlearning.com/2011/03/developing-better-phonegap-apps/,這篇文章介紹了幾個很關鍵的tips

對於效能與跨平台間的平衡,就是要考慮哪些點是需要通過plugin放在native端來做的,JS的執行效能雖然近年來有了明顯的提升,但還是沒法和native比的,所以如果存在cpu密集型的運算時,得考慮是否有必要犧牲跨平台性在native端來做塊,不過,phonegap就是好在給了我們這個平衡的選擇性,起碼我們還是有路可走。

效能最佳化的工作對於跨平台mobile開發來說是非常關鍵的,絕不能以犧牲使用者體驗的代價來方便自己,雖然,不太可能做到與native app不相上下,但不斷提升效能是我們不能忽視的工作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.