基于HTML5技术的电力3D监控应用(三)
繼(一)和(二)之后不少,不少網友問我移動終端的使用問題,因為我們項目這次采用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:
最開始我們也考慮過用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-WebKit加HT組件的方式來實現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,就在地鐵上好好學習。
轉載于:https://www.cnblogs.com/xhload3d/p/3478361.html
總結
以上是生活随笔為你收集整理的基于HTML5技术的电力3D监控应用(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 下用 SecureCRT
- 下一篇: 文件内容的替换