iOS App Extension 学习笔记(一)----Extension的基本概念

时间:2024-05-22 16:02:59

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的生命周期不同。

  1. 用户通过 Host App 选择需要启动的 Extension 应用程序
  2. iOS系统启动Extension应用程序
  3. 用户与Extension程序进行交互
  4. Extension程序任务完成,系统将进程杀死

如下图所示:iOS App Extension 学习笔记(一)----Extension的基本概念

参考文献

  • https://www.cnblogs.com/junhuawang/p/8178276.html
  • https://www.jianshu.com/p/8cf08db29356