Web與Android真正的結合
“紙飛機”,剛開始只是一個簡單的想法- “能從一個屏幕扔個紙飛機到另一個屏幕”
提出這個想法人的核心理念是利用網絡的力量(即時通訊)把到世界各地所有人連接到一起。在現代網絡技術,特別是JavaScript和WebGL的發展,可以讓紙飛機實現到每個屏幕上。
紙飛機最初是 2016年的在谷歌I / O大會上提出的,與會者和觀眾可以提前30分鐘連接。在2016年國際和平日公眾推出,谷歌開發者做一個Android的實驗,這也是谷歌特色的播放功能-具有原生的Android7.0的功能,譬如當飛機其他地方被收到后,能及時豐富的已通知升級呈現。
介紹
用戶可以創建并同時增加自己設計好填充的飛機。一個簡單的動作就可以把飛機投射到虛擬世界。用戶通過訪問Pc版網站就會看到飛機飛入畫面。
之后,用戶就可以查看,看看他們的飛機飛到世界各地。飛機上的每枚郵票讀起來就像一本護照,以及可以看到3D的地球中飛行路線和距離。
除了讓自己的飛機飛出去,用戶可以通過手勢就像一張網捕捉已撲捉其他地方飛來的飛機,并可以進入虛擬現實打開它,標明自己已參觀過飛機。然后可以添加自己郵票,并把飛機重飛到飛機群。
WebView
開發紙飛機必須跨設備,使用網絡技術最新技術從50英尺的谷歌桌面到移動設備,
-
WebGL
從程式化的多邊形地鐵表面,WebGL是用來渲染3D元素的技術。用自定義GLSL著色器 照亮地球,用可變形的坐標作實現用戶打開關閉紙張的動畫。
earth_wireframe.gif
WebSockets
當用戶“拋出飛機”,這時會發送消息到WebSockets,這樣消息就被傳遞到所有的臺式電腦,這樣可以看到可視化的飛機。
WebWorkers
主線程WebWorkers主要采用多線程來計算地球表面的每個WebGL呈現的元素。
為了創建跨平臺的偉大的工程,,谷歌開發者擴展了原生的Android代碼。這使他們能夠利用網頁中的Android,將已經存在的網頁代碼的應用應用到app中,同時加入和操作系統深度整合過的豐富的通知和后臺服務。
Notifications
Firebase 云服務(FCM)用于推送通知到Android應用程序。當用戶的飛機已經被用戶拿起來甩,就會很多城市,并且顯示已行駛的里程。并發控制的的通知管理器,以確保它們不會過于頻繁到推送到android設備。
后臺 Service
我們實現了每天一次檢查本地存儲的一個后臺服務,以確定當用戶在上次運行app訪問后。如果用戶在兩周內沒有訪問,應用程序將會發送通知,邀請用戶啟動并打開該應用的一個頁面。
通信網
應用服務器部署到谷歌云平臺的網絡上運行。將連接所有設備上,使用內置的地理編碼的頭以獲取IP(用戶唯一標識符)和Socket.IO 獲取大致地理位置。
用戶連接到服務器后,可以用任何設備查看該地區飛機記錄。
來自:http://www.jianshu.com/p/1c27ce09390d