Web与Android真正的结合

   <p>“纸飞机”,刚开始只是一个简单的想法- “能从一个屏幕扔个纸飞机到另一个屏幕”</p>    <p>提出这个想法人的核心理念是利用网络的力量(即时通讯)把到世界各地所有人连接到一起。在现代网络技术,特别是JavaScript和WebGL的发展,可以让纸飞机实现到每个屏幕上。</p>    <p>纸飞机最初是 2016年的在谷歌I / O大会上提出的,与会者和观众可以提前30分钟连接。在2016年国际和平日公众推出,谷歌开发者做一个Android的实验,这也是谷歌特色的播放功能-具有原生的Android7.0的功能,譬如当飞机其他地方被收到后,能及时丰富的已通知升级呈现。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/4b9ca69e2ab63ed3caf24d3d9712f17d.gif"></p>    <h2><strong>介绍</strong></h2>    <p>用户可以创建并同时增加自己设计好填充的飞机。一个简单的动作就可以把飞机投射到虚拟世界。用户通过访问Pc版网站就会看到飞机飞入画面。</p>    <p>之后,用户就可以查看,看看他们的飞机飞到世界各地。飞机上的每枚邮票读起来就像一本护照,以及可以看到3D的地球中飞行路线和距离。</p>    <p>除了让自己的飞机飞出去,用户可以通过手势就像一张网捕捉已扑捉其他地方飞来的飞机,并可以进入虚拟现实打开它,标明自己已参观过飞机。然后可以添加自己邮票,并把飞机重飞到飞机群。</p>    <h2><strong>WebView</strong></h2>    <p>开发纸飞机必须跨设备,使用网络技术最新技术从50英尺的谷歌桌面到移动设备,</p>    <ul>     <li> <p>WebGL</p> </li>    </ul>    <p>从程式化的多边形地铁表面,WebGL是用来渲染3D元素的技术。用自定义GLSL着色器 照亮地球,用可变形的坐标作实现用户打开关闭纸张的动画。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/5a41b279231e4cdaa07d9364eb6542fa.gif"></p>    <p style="text-align: center;">earth_wireframe.gif</p>    <h2><strong>WebSockets</strong></h2>    <p>当用户“抛出飞机”,这时会发送消息到WebSockets,这样消息就被传递到所有的台式电脑,这样可以看到可视化的飞机。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/3bb5d248163aed72d934251f2a66d954.gif"></p>    <h2><strong>WebWorkers</strong></h2>    <p>主线程WebWorkers主要采用多线程来计算地球表面的每个WebGL呈现的元素。</p>    <p>为了创建跨平台的伟大的工程,,谷歌开发者扩展了原生的Android代码。这使他们能够利用网页中的Android,将已经存在的网页代码的应用应用到app中,同时加入和操作系统深度整合过的丰富的通知和后台服务。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c7dca1125dcbd29c7bcd8fe0b703437e.gif"></p>    <h2><strong>Notifications</strong></h2>    <p>Firebase 云服务(FCM)用于推送通知到Android应用程序。当用户的飞机已经被用户拿起来甩,就会很多城市,并且显示已行驶的里程。并发控制的的通知管理器,以确保它们不会过于频繁到推送到android设备。</p>    <h2><strong>后台 Service</strong></h2>    <p>我们实现了每天一次检查本地存储的一个后台服务,以确定当用户在上次运行app访问后。如果用户在两周内没有访问,应用程序将会发送通知,邀请用户启动并打开该应用的一个页面。</p>    <h2><strong>通信网</strong></h2>    <p>应用服务器部署到谷歌云平台的网络上运行。将连接所有设备上,使用内置的地理编码的头以获取IP(用户唯一标识符)和Socket.IO 获取大致地理位置。</p>    <p>用户连接到服务器后,可以用任何设备查看该地区飞机记录。</p>    <p> </p>    <p> </p>    <p>来自:http://www.jianshu.com/p/1c27ce09390d</p>    <p> </p>