成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我為什么從PhoneGap中逃離

開發 前端
我是一名移動應用的開發者,從JAVA為主的Android到以Objective-C為主的iOS最后到以HTML5為主的跨平臺開發,我已經走過了五年多的時光,而我也從一個底層的碼農成長為項目負責人。

每一位程序員都有自己的技術信仰,我也不例外。但當技術信仰遇到實際工作中的問題時,你又要怎么做呢?還記得剛剛接觸HTML5做跨平臺開發的時候這樣的問題就擺在了我面前。

當初公司決定選擇PhoneGap作為核心框架,不過在之后的工作中就慢慢覺得PhoneGap并不像人們說的那么好,至少在我的項目中的表現不是那么***。

從項目研發到整體的UI體驗,隨之而來的各種問題都有待解決。你可以嘲笑我,也可以說我根本不懂,不過在應用開發的過程中任何的問題都不可忽視。

項目研發

在項目研發中主要是開發環境與應用實現,不過PhoneGap在終端平臺的支持與應用打包上也出現了些問題。

1.支持終端平臺

表面上來看,PhoneGap支持的平臺數量最多。但是在實際開發過程中,不管用什么平臺開發,除去平臺封裝的擴展對象,完全遵循W3C標準,也不可能完全運行在多個平臺上,所以說跨多個平臺是不現實的,還是需要針對不同的平臺進行實現。

2.開發環境

在應用開發的過程中,開發環境至關重要,但是PhoneGap沒有自己的IDE開發環境,官方推薦一些公開的第三方html編輯軟件(第三方編輯器不可能將PhoneGap所做的JS擴展表現出來)。

對開發者來講,用PhoneGap開發并不是單純的html + css + javascript的開發,要進行PhoneGap開發,開發者必須要下載以上7個平臺廠商所提供的開發環境,IDE等(這個PhoneGap官網有描述),環境搭建完成后方可進行模擬調試,對于沒有接觸過手機開發的web開發者而言,還需要學習很新的東西,入門門檻太高,開發難度無疑要加大。

3.打包部署

做過應用開發的人都知道,基于開發環境必須針對不同的SDK進行開發,所以打包部部署步驟比較繁瑣,而且每個平臺要在不同的環境下操作。最近推出在線打包,但是需要付費購買使用的。

4.應用的實現

當進行應用實現的時候,使用PhoneGap開發應用必須在網頁當中引用一個JS包,才能使用本地擴展對象。過多過大(例如再引用JQ)的JS包引用將加重引擎的負擔,從而影響應用性能和用戶體驗,所有UI完全依靠html和css完成。

不僅如此,手機上的webkit存在IFrame不支持height屬性,css樣式不支持z-index,position,overflow等屬性的硬傷,也就是頁面的區域滾動在正常網頁布局下是無法做到的,只能依賴JS或者native UI。不幸的是PhoneGap把這個問題留給了我們開發者,開發者只能選擇JS。在頁面滾動上用JS效率是相當低的,尤其在android的中低端手機上表現更為明顯。

用戶體驗

用戶體驗是每一個應用是否能夠立足生存,被用戶所接受并長期使用的原因,所以導致PhoneGap在用戶體驗上有一定的差距,這里我主要是對PhoneGap引擎問題的分析:

1. 平臺穩定性差

從PhoneGap公布的源代碼和一些用PhoneGap開發出來的應用體驗上來看,PhoneGap是沒有經過完整而系統的測試的,或者還沒有進行過機型的適配,還存在很多的BUG,許多應用有手機平臺版本的限制等等。

并且因為開源,不斷有開發者往上提交代碼,各平臺的兼容和同一平臺不同版本之間的兼容問題在PhoneGap開發上會越來越大。UI上最明顯的問題就是頁面被放大。Android平臺的webkit會根據手機設備屏幕的分辨率,密度,大小等條件來對網頁進行0.75~ 1.5倍的縮放,以適應屏幕。這意味著在不更改webkit縮放比例的情況下,若網頁當中寫了類似width:10px; 時,實際上可能變成了10 * 1.5。同時,在帶有輸入框的頁面當中,一旦選中輸入框,頁面立即會出現再被放大的效果,并且放大后無法縮回,導致用戶看到的UI效果跟開發者想要的想要的效果相差較大。

2. 對國內廠商終端的適配差

PhoneGap現有功能上有多處存在不完善。比如定位功能,在關閉GPS,GPRS,WIFI、系統基于網絡定位設置的情況下(此時連接了WIFI),是無法獲取到地理位置的,國內手機廠商的手機經常崩潰或運行錯誤,所以用戶體驗差。

3. 不支持多窗口與動畫卡頓

在整體UI上,PhoneGap開發過程中自始至終只存在一個窗口,也就是所有的網頁都運行在這個窗口當中的,比如窗口的切換,過度等的動畫效果,使用JS和CSS3可以實現一些動畫效果,效率是很低的,并且只局限于當前網頁內,至少在現階段部分設備硬件配備還沒跟上之前是這樣的,而且除IOS以外的終端設備,廠商繁多,參差不齊,更難確保做出來的應用能夠良好的運行在各個平臺,所以用戶體驗不好。

4. UI延遲效果差,易崩潰

從PhoneGap開源出來的代碼架構來看,PhoneGap本身的機制會導致UI上有一定的延遲,在不改現有架構的基礎上這個問題是不可避免的。比如傳感器的速度明顯過慢,照相機打開拍照后回調時間過長等,這些都是在非常簡單的網頁下的表現效果。由于PhoneGap本身基于開源策略架構(利于開發者往上擴充功能)和在JS層面做了大量工作的原因,PhoneGap開發無論在iPhone還是在Android上都并沒有走本身平臺所特有的JS擴展方式,而是采取了線程休眠,暫停瀏覽器timer等方式來獲取回調,直接導致延遲。另外,如照相機接口,PhoneGap返回給用戶的并不是類似于文件存儲地址的字符串,而是將相片轉為了二進制發給用戶,導致這個操作非常耗資源,并且時間消耗很長,在圖片大的情況下,還有可能因為OutOfMemorySize異常而引起應用直接崩潰。

也許這些問題在你的團隊中稱不上什么問題,但是在一個資源不是那么豐富的團隊中這些問題就顯得尤為突出。而且,在應用開發的過程中各種細節問題都不可忽略,追求***的應用要從細節做起。雖然PhoneGap可以實現很多跨平臺應用的開發,但開發者尤其是項目統籌人員在選擇框架的時候一定要三思而后行。

 

責任編輯:彭凡 來源: 51CTO
相關推薦

2019-05-14 11:15:51

微軟員工上市公司

2021-08-23 08:19:48

辭職Google工程師

2010-03-09 13:16:11

LinuxWindows

2019-11-20 09:00:52

Linux 開發操作系統

2010-10-09 09:20:08

.NET

2013-04-25 10:14:39

Facebook開發者開發

2016-05-18 10:15:25

PythonNode.js

2012-02-28 09:11:51

語言Lua

2020-07-17 14:06:36

Scrum敏捷團隊

2012-04-04 22:07:12

Android

2025-03-21 10:33:22

2022-04-21 08:20:33

CPU換蓋CPU

2024-03-12 00:00:00

RocketMQ服務端磁盤

2014-01-09 09:24:40

2013-10-22 15:18:19

2015-03-02 15:13:52

Apple Watch

2012-06-18 14:51:09

Python

2014-01-17 14:39:18

12306 搶票

2014-09-22 10:06:07

2015-06-04 11:22:22

前端程序員
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清视频一区二区 | 欧美日韩成人影院 | 日韩一区二区在线视频 | 亚洲一区二区在线视频 | 欧美日韩不卡在线 | 精品一区二区三区免费视频 | av片在线观看网站 | 久久久激情视频 | 91美女在线观看 | 福利视频1000 | 亚洲va欧美va天堂v国产综合 | 青青草在线视频免费观看 | 九九热热九九 | 亚洲成人精品在线观看 | 成人免费观看视频 | 中文字幕视频在线观看 | 久久成人在线视频 | 欧美寡妇偷汉性猛交 | 日韩手机在线视频 | 欧美精品二区 | 香蕉婷婷 | 久草网址 | 免费成人高清在线视频 | 国产精品网址 | 色噜噜亚洲男人的天堂 | 久久亚洲一区二区 | 午夜一区二区三区在线观看 | 免费观看av | 成人av网站在线观看 | 欧美激情久久久 | 国产精品成人一区二区 | 色999视频| 一区二区三区亚洲 | 免费观看一级毛片 | 亚洲国产一区二区视频 | 久久久久国产一区二区 | 欧美精品一区二区三区在线 | 在线男人天堂 | 亚洲电影免费 | 韩国av一区二区 | 亚洲精品久 |