基於HTML5技術的電力3D監控應用(三)

圖撲軟體發表於2013-12-17

(一)(二)之後不少,不少網友問移動終端的使用問題,因為我們專案這次採用Android平板終端,所以我對這方面有點膚淺的研究,這篇分享些專案經驗總結,希望對大家有所幫助。

 

電力3D專案去年底立項時僅僅是PC瀏覽器的3D展示要求,後來慢慢增加了要求也能在平板上執行,因為我們的系統大部分是內網的,不可能要求移動終端得上app store去下載應用程式,雖然apple也提供企業內部發布的解決方案,但還是遠不如android安裝app方便,對於企業應用三天兩頭就需要改動需求,我們的釋出非常頻繁,所以最終移動端選型採用Android的方案。

 

還好Google挺給力今年初提供了Android瀏覽器WebGL的解決方案:Google finally makes it easy to enable WebGL support in latest Chrome for Android 當然如今哪怕沒有Chrome,Firefox和Opera等眾多移動瀏覽器也都支援WebGL了,而且Firefox和Opera都不需要設定開啟WebGL開關了,而且手機上的Chrome還得通過在URL輸入chrome:flags,然後開啟Enable WebGL才可以


 

手機我用的Nexus 5測試的,而平板我用Nexus 7第二代測試的,Nexus 7到手感覺還是很輕很好用,預裝的作業系統還不是最新的,不過已經可以升級到Android 4.4.2 (KitKat)版本了,我更新了Chrome Android31速度還是明顯很快速。

 

Nexus手機直接可以傳送檔案,平板則需要安裝Android File Transfer軟體,這沒什麼最讓我震驚的是在這裡,我除錯時發現平板上沒有“Developer options”選型了,沒有這個選型我就沒法用通過PC進行USB Debugging了,查了半天資料How to enable developer settings on Android 4.2,居然通過點選“Build number”的欄目七次才會出現,Google這些工程師真是Geek啊。

Here's how to get them back:

  1. Go to the settings menu, and scroll down to "About phone." Tap it.
  2. Scroll down to the bottom again, where you see "Build number." (Your build number may vary from ours here.)
  3. Tap it seven (7) times. After the third tap, you'll see a playful dialog that says you're four taps away from being a developer. (If only it were that simple, eh?) Keep on tapping, and *poof*, you've got the developer settings back.

最開始我們也考慮過用WebView打包apk的方式,但遇到了不少麻煩大部分WebView和獨立安裝的Chrome app並不貢獻核心,google走了兩條路,WebView有套自己的WebKit版本,外面的Chrome app走自己的WebKit版本,而且WebView的版本不用說肯定是相當古老的,因此別說WebGL連Canvas的支援我們都遇到很多坑,這方面還好引擎已經幫我們繞開了很多坑。

 

當然Google不會止步不前,最新的KitKat已經將WebView升級到了Chrome for Android的30版本,這個版本的HTML5功能對大部分應用來說也算足夠了 ,當然後續WebView要是也能自動升級就好了,這個還得等...

What version of Chrome is it based on?

The WebView shipped with Android 4.4 (KitKat) is based on the same code as Chrome for Android version 30. The WebView does not have full feature parity with Chrome for Android and is currently given the version number 30.0.0.0.

Will the new WebView auto-update?

Evergreen browsers (like Chrome and Firefox) auto-update and keep their users up to date so they can view the web through a modern feature set. As a developer, this ensures your choices aren’t limited to a lowest-common denominator browser from years ago, but rather are keeping pace with the modern web. Your apps inside a WebView are just as important and deserve a runtime that keeps users up to date. There are large engineering and logistical challenges. We're not quite there yet, but we're working on it.

 

當然我們的專案是不能等的,我們最終採用頁面的方式實施,不再考慮WebView的路線,當然也不用折騰學習Android的Native開發了,早些年我還挺喜歡搗鼓各種新技術,但現在感覺很多情況是浪費精力,從早期的MFC和Qt,到Swing和SWT,到Flex和Silverlight,GUI的技術發展除了設計模式從MVC到MVP到MVVM有所創新外,元件的設計和使用的路線這些年大同小異,不同的平臺都要去學習他們的各種千奇百怪的API介面,都要從頭到尾學一套如何layout佈局,如果使用button和menu小元件,再到tree和table這些大元件,已經沒有什麼新鮮玩意兒。

 

這地球上現在就沒幾家還在好好設計GUI元件的了,你看看Swing已經被sun廢了,Oracle搞的JavaFx還是有點動靜但也就他們自娛自樂的那個小圈子內,有興趣你可以關組這裡http://fxexperience.com/,Flash跨平臺還不錯,但Flex儼然是Adobe的雞肋,他們考工具和FlashVM的遊戲生態鏈活著,而Flex這個不帶來直接價值的企業應用圈子似乎一直不是Adobe看中的,一個樹表AdvancedDataGrid從Flex3折騰到Flex4依然像玩具一樣的低效,我還看到Flex3實現者在blog上,嘲笑Flex4對AdvancedDataGrid的重新實現的團隊設計上的不滿,Silverlight和WPF就不用多費我口舌了,除了C#語言還是不錯有創新外,SL和WPF整得那套MVVM我估計大部分用了多年SL和WPF的程式設計師也沒幾個能搞得明白Dependency Properties去獨立設計一個自己的小控制元件,MVVM被實現得如此難用也實屬罕見。

 

所以我現在感覺自己也挺懶了,不再像以前每個新技術一出現就要馬上搞一堆書啃,Android的Native開發我一直沒去好好學,iOS方面倒是對XCode的設計器的視覺化挺感興趣,所以幾年前嚐嚐鮮研究過一陣,但現在我搞些小工具我還是用古老的Cocoa來開發,我感覺Cocoa的binding和視覺化的功能雖然一二十年沒變過,但也足以完勝如今的很多GUI框架,大部分情況我就基於HTML5的元件來用了,我有時候會用Node-WebKitHT元件的方式來實現Native的小工具。

 

如今除錯Android也非常方便了,看看Remote Debugging Chrome on Android 現在直接用PC就可以實時除錯真機,最重要的是你的眼睛可以盯著PC螢幕就行,選中操作和inspect element這些操作都接在PC螢幕上搞定,對我來說我最舒服的就是在用不用痛苦的手工在手機上輸入URL了,直接在PC上輸入即可。

 

至於WebGL的除錯,其實和Native的OpenGL除錯一樣,一直多年來都是世界難題,畢竟GPU多核的並非工作是很難採用傳統執行緒或者GUI這種單執行緒的方式那麼容易Debug,這點上瀏覽器最近也是有不少改進WebGL Debugging and Profiling Tools,當然我不是WebGL專家我在HT再封裝了WebGL基礎上採用面對物件的方式操作JS,所以這種文章我也就過過眼癮罷了



 

最近專案快結束了,局方領導居然看我很爽,說我這大半年天天熬夜在現場,作為獎勵把本用於上線實施的Nexus 7送給了我,我們商務大為羨慕我這小程式設計師居然能得打局方的賞賜,這大半年一直奔波於昌平和市區之間,北京的同學一定知道我有多痛苦,這個鳥都不來的昌平每天加班回家只能做黑地,以前在上地晚上沒趕上班車也得做黑地,但至少還能看到如百度大廈之類的IT人士也都和我們以前點著燈在加班,而在昌平是一片的漆黑,只有被拆遷的村民留下了的快倒塌的房子,每次路過我總在想如果有一間是我的政府陪我幾套房這輩子也就解放了,現在我就不這麼想了,每天抱著平板下班前先下載下離線的36kr和iFanr的文章,雖然現在搞to B,但也關注者移動網際網路的發展,哥也不是高富帥,不再想以前在昌平線和13號線的閱讀USA Today和NYTimes文章裝逼給妹子看,哥就是程式設計師,哥玩的就是程式,哥沒房有Pad,就在地鐵上好好學習。


相關文章