iOS App Extension 学习笔记(一)----Extension的基本概念
本文的目的
- 了解App Extension的基本概念
- 了解App Extension的种类
- 了解每种App Extension能够实现的功能
- 了解每种App Extension是如何实现的
- 了解App Extension之间如何进行数据通讯
- 了解App Extension的运行原理
App Extension的基本概念
根据iOS - App Extension 整体总结一文描述,有关App Extension有三个关键词:
- Extension Point
这个译为扩展点,通俗来讲就是在iOS 系统运行的过程中,可以开放一些可扩展的地方给iOS开发者来处理进行一些扩展。如在调起系统分享框时可以出发 Share Extension 、在唤醒Siri并且说了一段话之后,可能会调起Intent Extension。
iOS系统会根据Extension的注册情况,来确定需要唤起哪个Extension。 - Containing App
这里译为容器App。苹果是不允许Extension Point单独存在的,必须依附于某个App存在,否则不便于管理每一个Extension Point,可能会使得用户无法管理Extension(这个原因是笔者猜测的)。当Containing App安装上了之后,这个App携带的Extension Point也会注册到iOS系统中,App卸载时Extension Point程序也会卸载。 - Host App
这里可以译为宿主App。需要用到Extension Point的时候,往往并不是由Containing App来启动的,因为当前Containing App的进程可能还并没有运行。因此Extension Point是由另一个App来唤醒的,这个App就叫做Host App。比如唤醒Share Extension的进程的可能是Safari浏览器中的分享按钮、换气Intent Extension的可能是Siri或者是快捷指令App,这里的Siri、Safari和快捷指令,甚至是系统进程,就是Host App。
另外Extension Point的应用程序也有它自己的生命周期,和App的生命周期不同。
- 用户通过 Host App 选择需要启动的 Extension 应用程序
- iOS系统启动Extension应用程序
- 用户与Extension程序进行交互
- Extension程序任务完成,系统将进程杀死
如下图所示:
参考文献
- https://www.cnblogs.com/junhuawang/p/8178276.html
- https://www.jianshu.com/p/8cf08db29356