App孤岛战争

4,442 阅读6分钟

黑科技

上周Google上线了一个名为stream的功能,可以在搜索结果中直接将一个App呈现给用户,即使你并没有安装过这个App,也能正常使用它。这听起来确实很酷,目前Android L以上设备,Wifi环境下可用,且暂时只支持英语搜索结果,可以看看下面这个图感受下。


stream的技术来自于 Google 2014 年收购的一家名为 Agawi 的初创企业。“app 运行在 Google 云平台的虚拟机上。Google app 代理端将用户的触摸交互发送到云端。云平台处理完用户的触摸交互后,渲染好 App 发回给代理端。”Google App 索引团队的负责人 Rajan Patel 说道。换言之,手机只是充当这个虚拟机的触摸屏。

stream 需要开发者主动的支持。开发者在 app 内置 Google app 的索引 API,帮助 Google 理解某个页面的内容是什么,以及使用频率。Google 同时会将它的排名算法用于 app 内容的整合。

并非初战

其实这是Google在解决App内容孤岛问题上的又一次尝试,上一次是在两年前,推出了Google App Indexing, 不止是Google, Android, iOS, Bing, Facebook等各大公司团队都在为解决这个问题做出自己的努力,今天就给大家介绍下此次孤岛危机,为什么众多大佬前仆后继?大家各自的方案又是什么?

App孤岛危机

这个说法很形象,传统PC互联网时代,浏览器、搜索引擎是入口,用户习惯在浏览器里搜索访问各种网页内容,页面之间的跳转自然方便,信息流转顺畅;然而到了移动互联网时代,Native App逐渐发展壮大,优质内容往往都在一个个孤立的app里,App之间的信息传递尚且有一些办法,但搜索引擎可就没办法索引到这些优质内容,这可急坏了Google、Bing等传统搜索引擎厂商;与此同时,Andorid, iOS等移动操作系统厂商也开始思考,如何更好地改进搜索体验,牢固掌控用户入口。

Google App Indexing

如果你希望App的内容被Google索引,你需要支持它。
首先你得有一个与App对应的Web站点,然后将希望被索引的内容按照Google的要求在Web站点中配置,Google会将其收录,最终在搜索结果中呈现出来。
此时你点击一条支持了App Indexing的搜索结果,如果设备上安装了该App, 会直接跳转到App打开具体内容,如果没有安装,则直接打开Web页面,很多时候App的体验会明显好于Web, 这样做的好处不言而喻。

Bing App Linking

与Google App Indexing想解决的问题差不多,只是实现方案上有些差异而已。

Facebook Deep Linking

讲它之前先给大家介绍两个概念:

1. Deep Link

顾名思义,它只是个Link,用于在App之间传递更丰富的信息,比如:

  • http://www.example.com/ 这就是个Link, 但不是Deep Link。

  • http://www.example.com/page/1.html, 这就是Deep Link,

Deep其实是指代更为具体的丰富信息,很简单吧。

2. App Links

Deep Link本身只是个链接,它真正的价值在于信息交换,在App之间通过Deep Link来传递更为丰富的信息, 这就需要一套方案来达成目的,这就是App Links, App Links不只为Facebook服务,是一个的开放的跨平台解决方案,目的在于统一Deep Link在App之间的传递方式。官网是applinks.org,org域名彰显了逼格,也说明了它的理想,可惜理想与现实有差距,想要统一谈何容易。

给大家简单介绍下它的原理:

首先你得有一个与App对应的Web站点(是的你没看错,第二遍了),然后在希望支持Deep Link的页面上,加上如下meta标签:



    
    
    
    
    
    
    

Hello, world!

当这个页面被Facebook爬虫收录时,会解析其中的meta数据,找到Web Page与App Page之间的对应关系,在Facebook信息流里打开这样一条Link时,会先尝试跳转到Native App, App未安装可以选择跳转到Web Page, 或直接跳转到App download page(需单独设置)。

Android App Links

也许大家还记得它,2015年初Google I/O大会上Android M新支持的一个小功能,名字有些迷惑性, 我看到有科技媒体认为它与前面提到的Facebook App Links是一个概念,欢呼江湖一统了,其实不然,其目标与实现上都有差异,它的目的在于解决Android系统中令人厌烦的App选择弹出框,当点击一个链接的时候,原本是期望能打开Twitter客户端访问, 但却同时弹出了浏览器等多个App让你选择,如今在Android M上利用Android App Links可以解决这个问题,直接跳转到Twiiter客户端。

Android Deep Links

基本上与Facebook的Deep Linking是一个意思,实现方案也类似,只是爬取与展示Deep Link的平台换成了Google自家的。

iOS 9 Spotlight

iOS原本就支持Spotlight, 用于在iOS众多的App与内容中快速搜索到自己想要的,在iOS 9里,应用可以将自己希望被用户搜索展示的内容,提交上去,即可实现在Spotlight搜索推荐列表中,快速预览App内容的效果,从而提高应用被用户打开的频次,也增强了搜索体验。

国内同类产品

豌豆荚、百度、360很早就做了应用内搜索功能,我主要关注了一下豌豆荚,因为它在这块走得最远,甚至发布了自己的标准,其方案原理与Google App Indexing类似,并且兼容Google App Indexing等主流协议,特点是搜集的内容更多,因此可以在搜索结果中预览更丰富的内容,很多时候都不必要再打开APP了,然而他们并不满足于此,今年推出了一款名为“豌豆荚一览”的App, 你可以直接在这款产品中,直接访问其他App的丰富内容,原理没有公布,不过我猜是用爬虫直接爬取的内容。

各大厂商费心思做了那么多,归根结底是想要打破App内容孤岛的格局,让信息以更好更便捷的方式呈现给我们。有时候想想,如果web开发在移动互联网时代也能成为主流,也许就不需要费那么多劲吧,作为曾经的手机浏览器开发人员,面对这样的现实,也是感慨颇多,如果把这个过程比作一场战争,只希望和平早日到来吧。

参考资料:

http://applinks.org

http://developer.android.com/training/app-indexing/index.html

http://developer.android.com/training/app-links/index.html

https://developers.google.com/app-indexing/android/app

https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html

http://insidesearch.blogspot.com/2015/11/new-ways-to-find-and-stream-app-content.html

http://developer.wandoujia.com/search/

如果喜欢这篇文章,记得点赞与分享给好友。

如果你还想了解更多Android开发最佳实践、经验分享、最好用的工具与服务,请长按下方二维码搜索微信公众号:AndroidTrending关注我,我会继续保持精品。

长按二维码,关注我