Deeplink 的前世今生
Deeplink 的前世今生
从 Voicfy 这篇论文说起
为了方便之后的介绍我们这里简要概括一下这篇论文
这篇论文的主要工作包括

图一、上下文数据的提取之一 静态分析
为了给执行操作提供上下文数据使用静态+动态的方式
1.在 app 应用数据中获取 Manifest.xml 之后静态分析获取 Intent object 从中提取出目标组件和动作
2.来自设备屏幕的动态数据,以识别屏幕上的 UI 元素并执行交互
对获取的数据进行存储

图二、命令分析器的训练和一个推断示例
根据自定义的上下文无关文法 和指定数据集 训练出一个指令分析器
接下来就是实施了,这篇论文的话使用的是一个自定义的 Dialogue manager,完成语音到文字再到 action 的实施,再通过 action 生成 intent 对象 从而生成一个动作目标 ( action intent ) 队列进而一步一步的执行

图三、与应用有关的 Action 的传统运作方式
现在大家应该已经对这篇论文有了初步的了解了,本文的创新点就在于与传统的语音助手相比大大提高了覆盖范围,简单来说就是 更多的 app 能用语音助手调用 并且能干更多的事情了
现在可以回到正题了,所以到底什么是 Deeplink 呢。
在图一可以发现根据静态文档的分析咱们实际上是生成了两种 Intent 对象 ,分别是~~~~~
它们在经过一系列处理后实际上的操作就如下图所示 一个是拆分……另一个则是一步到位避开了繁杂的交互
显然后者无论是在效率和用户体验上都做的更好
In-app shortcuts helped users to achieve Task 1 in Section 6 with ==only one-third of the time taken without direct invocation, as well as receiving very positive feedback from user responses.== Not only users who are unable to perform physical touch on the screen will be rewarded by the feature, but also users who can physically control the smartphone using their hands will use this feature to accelerate their tasks.

图四、两种唤醒方式
目前咱们可以将 Deeplink 简单理解成一站式的页面直达,在语音交互领域有着高效率,少交互的优点
除了在语音助手上的使用之外,它还能干嘛呢
Deeplink 的发展
在安卓开发文档上是这么描述的:
深层链接是指将用户直接转到应用中的特定内容的网址。在 Android 中,您可以通过添加 intent 过滤器以及从传入的 intent 提取数据来设置深层链接,以便将用户吸引到正确的 Activity。
创建 Android 应用链接的一般步骤如下:
创建指向应用中特定内容的深层链接:在您的应用清单中,为网站 URI 创建 intent 过滤器,并将应用配置为使用来自相关 intent 的数据,以便将用户引导至应用中的正确内容。如需了解详情,请参阅创建指向应用内容的深层链接。
为深层链接添加验证要求:将应用配置为要求验证应用链接。然后,在您的网站上发布 Digital Asset Links JSON 文件,以通过 Google Search Console 验证所有权。如需了解详情,请参阅验证应用链接。
太长不看 本质上就是通过 web 调用原生 App,依赖 URL 实现
URL Scheme 的协议样式如下:
Scheme://host:port/path?query

图五、voicfyapp 内部提取的 deeplink
在这个过程中需要满足的前提条件是:
社交平台或浏览器:必须支持打开目标 App,需要经过一些处理才能实现。比如京东 App 可以从微信上直接打开,淘宝 App 却不可以,这也是由于平台的选择性开放和限制。
App 本身:必须能够获取参数,并且设置好唤醒地址,才能解析参数,定位到具体位置
在此基础上发展出来了上中下三层应用
在 APP 时代,搜索公司无法索引到 APP 内部的数据,因此搜索公司希望能够建立 Web 和 APP 之间的关系的索引,因此它对于 Deep Link 是一个拥抱的态度。谷歌/百度/苹果都提供技术和接口,让 APP 开发者提交 Web 和 APP 直接的映射关系,对于有映射的 WEB 结果,用户有机会直接打开 APP,提高用户体验


图六、Deep Link 技术产品栈
Challenges&&Chances
Challenges
虽然如上面所讲 deeplink 有着很多好处,但是作为早在 Android 6 之前就发布的技术,其实它现在主要的用处也就是在广告上。(下载某 app……)
1、最直观的问题就是高昂的开发费用,即使有了如此多的协助开发工具,它的开发费用还是无法被忽视的,只有较大型的 app 开发商才有条件对其进行针对性适配。
Among the top 200 mobile apps only 22 percent are using “deep links” from their websites into their mobile apps. This is according to an analysis by URX. Deep links are those that send a user from a website to a relevant page, piece of content or search result within a mobile app as opposed。
by Marketing Land 2014
2、其次就是 Intent 的局限性导致的 deeplink 的局限性,基于 intent 的消息传递机制不能覆盖所有的 app 尤其是对那些采用公共对象传递的 app 无法到达指定界面(类比 post get…. 以及需要用户参与时的
图七、一个依赖用户动作的
示例
3、安全性和隐私性,url 的方式虽然方便简单,但是越多的 link 代表着越多的暴露危险,必须采取一定措施预防….
Chances
相关论文中也对上面的问题进行了讨论这里简单介绍一下
主要针对问题 2

图八、Ulink 示例
Ma, Yun, et al. “DroidLink: Automated generation of deep links for Android apps.” arXiv preprint arXiv:1605.06928 (2016).
Yun Ma, Ziniu Hu, Yunxin Liu, Tao Xie, and Xuanzhe Liu. 2018. Aladdin: Automating Release of Deep-Link APIs on Android. In Proceedings of the 2018 World Wide Web Conference (WWW ’18). International World Wide Web Conferences Steering Committee, Republic and Canton of Geneva, Switzerland, 1469–1478.
针对问题一 都是讲的自动化(应该是阿里做的

图八、发现应用程序链接和提取新应用程序链接的方法比较
Elix adopts a novel, path-selective ==taint analysis== that leverages symbolic execution to reason about path constraints and abandon infeasible paths
Ideas
结合以上论文和语音助手目前的困境自然而然地想到可以实现一个自给自足的 deeplink–control 系统,在效率和交互方面能有很大提升
在数据挖掘方面可以针对 Deeplink 的使用构造一个数据集???
利用 deeplink 与无障碍结合~~
总结
首先!要注意某些功能的冷门用途,deeplink 在业界其实是很少用在语音助手上的
其次!要多多关注安卓开发的新特性,比如Grammar Gender 运用在交互上
