基于HTML5技术的电力3D监控应用(三)
繼(一)和(二)之后不少,不少網(wǎng)友問我移動(dòng)終端的使用問題,因?yàn)槲覀冺?xiàng)目這次采用Android平板終端,所以我對(duì)這方面有點(diǎn)膚淺的研究,這篇分享些項(xiàng)目經(jīng)驗(yàn)總結(jié),希望對(duì)大家有所幫助。
電力3D項(xiàng)目去年底剛立項(xiàng)時(shí),需求僅僅是PC瀏覽器的3D展示要求,后來慢慢增加了要求也能在平板上運(yùn)行,因?yàn)槲覀兊南到y(tǒng)大部分是內(nèi)網(wǎng)的,不可能要求移動(dòng)終端得上app store去下載應(yīng)用程序,雖然apple也提供企業(yè)內(nèi)部發(fā)布的解決方案,但還是遠(yuǎn)不如android安裝app方便,對(duì)于企業(yè)應(yīng)用三天兩頭就需要改動(dòng)需求,我們的發(fā)布非常頻繁,所以最終移動(dòng)端選型采用Android的方案。?
還好Google挺給力今年初提供了Android瀏覽器WebGL的解決方案:Google finally makes it easy to enable WebGL support in latest Chrome for Android?當(dāng)然如今哪怕沒有Chrome,Firefox和Opera等眾多移動(dòng)瀏覽器也都支持WebGL了,而且Firefox和Opera都不需要設(shè)置開啟WebGL開關(guān)了,而且手機(jī)上的Chrome還得通過在URL輸入chrome:flags,然后開啟Enable WebGL才可以
?
手機(jī)我用的Nexus 5測試的,而平板我用Nexus 7第二代測試的,Nexus 7到手感覺還是很輕很好用,預(yù)裝的操作系統(tǒng)還不是最新的,不過已經(jīng)可以升級(jí)到Android 4.4.2 (KitKat)版本了,我更新了Chrome Android31速度還是明顯很快速。
Nexus手機(jī)直接可以傳送文件,平板則需要安裝Android File Transfer軟件,這沒什么最讓我震驚的是在這里,我調(diào)試時(shí)發(fā)現(xiàn)平板上沒有“Developer options”選型了,沒有這個(gè)選型我就沒法用通過PC進(jìn)行USB Debugging了,查了半天資料How to enable developer settings on Android 4.2,居然通過點(diǎn)擊“Build number”的欄目七次才會(huì)出現(xiàn),Google這些工程師真是Geek啊。
Here's how to get them back:
最開始我們也考慮過用WebView打包apk的方式,但遇到了不少麻煩大部分WebView和獨(dú)立安裝的Chrome app并不貢獻(xiàn)內(nèi)核,google走了兩條路,WebView有套自己的WebKit版本,外面的Chrome app走自己的WebKit版本,而且WebView的版本不用說肯定是相當(dāng)古老的,因此別說WebGL連Canvas的支持我們都遇到很多坑,這方面還好引擎已經(jīng)幫我們繞開了很多坑。
?
當(dāng)然Google不會(huì)止步不前,最新的KitKat已經(jīng)將WebView升級(jí)到了Chrome for Android的30版本,這個(gè)版本的HTML5功能對(duì)大部分應(yīng)用來說也算足夠了 ,當(dāng)然后續(xù)WebView要是也能自動(dòng)升級(jí)就好了,這個(gè)還得等...
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.
?
當(dāng)然我們的項(xiàng)目是不能等的,我們最終采用頁面的方式實(shí)施,不再考慮WebView的路線,當(dāng)然也不用折騰學(xué)習(xí)Android的Native開發(fā)了,早些年我還挺喜歡搗鼓各種新技術(shù),但現(xiàn)在感覺很多情況是浪費(fèi)精力,從早期的MFC和Qt,到Swing和SWT,到Flex和Silverlight,GUI的技術(shù)發(fā)展除了設(shè)計(jì)模式從MVC到MVP到MVVM有所創(chuàng)新外,組件的設(shè)計(jì)和使用的路線這些年大同小異,不同的平臺(tái)都要去學(xué)習(xí)他們的各種千奇百怪的API接口,都要從頭到尾學(xué)一套如何layout布局,如果使用button和menu小組件,再到tree和table這些大組件,已經(jīng)沒有什么新鮮玩意兒。
?
這地球上現(xiàn)在就沒幾家還在好好設(shè)計(jì)GUI組件的了,你看看Swing已經(jīng)被sun廢了,Oracle搞的JavaFx還是有點(diǎn)動(dòng)靜但也就他們自娛自樂的那個(gè)小圈子內(nèi),有興趣你可以關(guān)組這里http://fxexperience.com/,Flash跨平臺(tái)還不錯(cuò),但Flex儼然是Adobe的雞肋,他們考工具和FlashVM的游戲生態(tài)鏈活著,而Flex這個(gè)不帶來直接價(jià)值的企業(yè)應(yīng)用圈子似乎一直不是Adobe看中的,一個(gè)樹表AdvancedDataGrid從Flex3折騰到Flex4依然像玩具一樣的低效,我還看到Flex3實(shí)現(xiàn)者在blog上,嘲笑Flex4對(duì)AdvancedDataGrid的重新實(shí)現(xiàn)的團(tuán)隊(duì)設(shè)計(jì)上的不滿,Silverlight和WPF就不用多費(fèi)我口舌了,除了C#語言還是不錯(cuò)有創(chuàng)新外,SL和WPF整得那套MVVM我估計(jì)大部分用了多年SL和WPF的程序員也沒幾個(gè)能搞得明白Dependency Properties去獨(dú)立設(shè)計(jì)一個(gè)自己的小控件,MVVM被實(shí)現(xiàn)得如此難用也實(shí)屬罕見。?
所以我現(xiàn)在感覺自己也挺懶了,不再像以前每個(gè)新技術(shù)一出現(xiàn)就要馬上搞一堆書啃,Android的Native開發(fā)我一直沒去好好學(xué),iOS方面倒是對(duì)XCode的設(shè)計(jì)器的可視化挺感興趣,所以幾年前嘗嘗鮮研究過一陣,但現(xiàn)在我搞些小工具我還是用古老的Cocoa來開發(fā),我感覺Cocoa的binding和可視化的功能雖然一二十年沒變過,但也足以完勝如今的很多GUI框架,大部分情況我就基于HTML5的組件來用了,我有時(shí)候會(huì)用Node-WebKit加HT組件的方式來實(shí)現(xiàn)Native的小工具。
如今調(diào)試Android也非常方便了,看看Remote Debugging Chrome on Android?現(xiàn)在直接用PC就可以實(shí)時(shí)調(diào)試真機(jī),最重要的是你的眼睛可以盯著PC屏幕就行,選中操作和inspect element這些操作都接在PC屏幕上搞定,對(duì)我來說我最舒服的就是在用不用痛苦的手工在手機(jī)上輸入U(xiǎn)RL了,直接在PC上輸入即可。
至于WebGL的調(diào)試,其實(shí)和Native的OpenGL調(diào)試一樣,一直多年來都是世界難題,畢竟GPU多核的并非工作是很難采用傳統(tǒng)線程或者GUI這種單線程的方式那么容易Debug,這點(diǎn)上瀏覽器最近也是有不少改進(jìn)WebGL Debugging and Profiling Tools,當(dāng)然我不是WebGL專家我在HT再封裝了WebGL基礎(chǔ)上采用面對(duì)對(duì)象的方式操作JS,所以這種文章我也就過過眼癮罷了
?
最近項(xiàng)目快結(jié)束了,局方領(lǐng)導(dǎo)居然看我很爽,說我這大半年天天熬夜在現(xiàn)場,作為獎(jiǎng)勵(lì)把本用于上線實(shí)施的Nexus 7送給了我,我們商務(wù)大為羨慕我這小程序員居然能得打局方的賞賜,這大半年一直奔波于昌平和市區(qū)之間,北京的同學(xué)一定知道我有多痛苦,這個(gè)鳥都不來的昌平每天加班回家只能做黑地,以前在上地晚上沒趕上班車也得做黑地,但至少還能看到如百度大廈之類的IT人士也都和我們以前點(diǎn)著燈在加班,而在昌平是一片的漆黑,只有被拆遷的村民留下了的快倒塌的房子,每次路過我總在想如果有一間是我的政府陪我?guī)滋追窟@輩子也就解放了,現(xiàn)在我就不這么想了,每天抱著平板下班前先下載下離線的36kr和iFanr的文章,雖然現(xiàn)在搞to B,但也關(guān)注者移動(dòng)互聯(lián)網(wǎng)的發(fā)展,哥也不是高富帥,不再想以前在昌平線和13號(hào)線的閱讀USA Today和NYTimes文章裝逼給妹子看,哥就是程序員,哥玩的就是程序,哥沒房有Pad,就在地鐵上好好學(xué)習(xí)。
轉(zhuǎn)載于:https://www.cnblogs.com/xhload3d/p/3478361.html
總結(jié)
以上是生活随笔為你收集整理的基于HTML5技术的电力3D监控应用(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 下用 SecureCRT
- 下一篇: 文件内容的替换