iOS之深入解析插件化架构

Posted Forever_wj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS之深入解析插件化架构相关的知识,希望对你有一定的参考价值。

一、前言

  • WWDC2014 苹果在 ios 上开放了动态库,这给了我们一个很大的想象空间。动态库即动态链接库,是 Cocoa/Cocoa Touch 程序中使用的一种资源打包方式,可以将代码文件、头文件、资源文件、说明文档等集中在一起,方便开发者使用。动态库在编译时并不会被拷贝到程序的可执行文件(也就是 mach-o)中,等到程序运行时,动态库才会被真正加载。
  • 动态库运行时才载入的特性,也可以让我们随时对库进行替换,而不需要重新编译代码。这样我们就可以做很多事情,比如应用插件化及动态更新:
    • 应用插件化:目前很多应用功能越做越多,软件显得越来越臃肿,如果软件的功能模块也能像懒加载那样按需加载,在用户想使用某个功能的时候让其从网络下载,然后手动加载动态库,实现功能的插件化,就再也不用担心功能点的无限增多了,这该是件多么美好的事。
    • 应用模块动态更新:当软件中的某个功能点出现了严重的 bug,或者想更新某个功能,这时候只需要在适当的时候从服务器上将新版本的动态库文件下载到本地,然后在用户重启应用的时候即可实现新功能的展现。
  • 那么,如何使用动态 Framework 的方式实现 App 的插件化及动态更新?

① 实现思路

  • 将 App 中的某个模块的内容独立成一个动态 Framework 的形式,在用户想使用某个功能的时候,根据配置列表从服务器上将对应的动态库文件下载到沙盒,然后加载动态库并由 principalClass 进入独立功能模块,实现功能的插件化动态

以上是关于iOS之深入解析插件化架构的主要内容,如果未能解决你的问题,请参考以下文章

滴滴插件化框架VirtualAPK原理解析之插件Activity管理

滴滴插件化VirtualAPK框架原理解析之Service 管理

前端插件化架构的探索和实践

iOS插件化架构探索

Android插件化原理解析——Hook机制之动态代理

Android架构设计之插件化组件化