Android插件框架的两个做用

首先谈谈咱们理解的Android插件框架有什么做用,省得你们同咱们交流时不在一个频道。框架

咱们理解的插件框架有两个做用:一是“自解耦”,二是“免安装”。网站

自解耦指的是一个应用本来由一份代码编译而成,但愿改为将其中的一些功能单独编译,像插件同样动态插在主应用上。这样一来但是使主应用体积变小,下载安装更方便。二来能够是比较独立的功能能够单独开发调试,甚至单独更新版本。因此这个“自解耦”的需求并非在Android平台上出现的,早在PC开发时代就普遍存在了。插件

免安装指的一个应用本来须要安装过程才能启动运行,但愿改成无需安装便可从一个已经安装运行的App中启动起来。这一需求的主要目的是提升流量复用的能力。好比在一个用户量已经很是大的应用中推荐安装另外一新应用,用户点击入口后若是等待下载而后弹出了安装界面,这就会流失很是多的用户。由于用户总会以为安装有成本,不那么愿意安装新应用。即便你有信心用户一旦安装了你的应用就会留下来,也极可能会由于这个安装过程而流失掉。免安装这个场景实际上是Shadow服务于咱们自身业务时的主要场景。版本控制

“像Web同样开发App”则是一个咱们后期达成的目标,这大概是“自解耦”和“免安装”的组合形式。单纯的免安装方式去运行一个本来须要安装才能运行的App,不可避免的须要用户等待这个App的安装包下载到本地才能运行。而咱们知道Web通常是不用这样的,打开哪一个页面就去下载哪一个页面的资源,不用把整个网站都下载到本地才能打开第一个页面。所以,咱们在业务中也实践了“自解耦”,将咱们的业务插件拆解成了十几个插件。由此达到下载一部分启动一部分的能力。Shadow目前开源的代码已经支持这一能力了,不过Shadow目前开源的代码中没有演示此场景的Sample,咱们会尽快补充上的。调试

自解耦和免安装还在版本控制上有必定区别,通常自解耦的插件不太可能单独运行,极可能依赖了宿主程序或者其余插件。免安装的App因为自己就能够安装运行,因此一般不存在这种依赖关系。存在依赖关系带来的问题就是不容易单独更新。若是对其余部分(宿主或其余插件)只有接口层面的依赖,咱们能够更新插件的实现。若是对其余部分有实现层面的依赖,通常来讲很难单独更新插件了。接口

因此很是欢迎你们同咱们交流插件框架的使用,在交流时咱们也会先关心你的业务场景是“自解耦”的仍是“免安装”的,亦或是两者结合的。由于这关系到一些版本控制、哪部分能更新哪部分不能更新的问题。资源

相关文章
相关标签/搜索