阿里两轮面试都被问了组件化问题,你会嘛?

编程入门 行业动态 更新时间:2024-10-09 05:18:00

阿里两轮面试都被问了组件化问题,<a href=https://www.elefans.com/category/jswz/34/1768969.html style=你会嘛?"/>

阿里两轮面试都被问了组件化问题,你会嘛?

阿里4轮面试,两轮面试都被问到组件化问题,面试的点各不相同,有组件化架构设计、插件化框架设计、路由架构设计、热修复设计等问题,但是最终都是殊途同归,所有的问题都汇集在这,如何对手机淘宝组架构设计?

组件化如何实现,组件化与插件化的差别在 哪里,该怎么选型

**面试官:**组件化如何实现,组件化与插件化的差别在哪里,该怎么

选型
**心理分析:**面试官从架构层次 了解求职者是否用过 模块化 组件 化 和插件化,在过去经验有没有运用过这些技术到项目中,这道 题属于一个连环炮。求职者该格外小心

**求职者:**应该从 App 开发的需求来定义技术选型,分别说说模 块化,组件化 插件化的优势和区别

一、组件化

组件化,就是把 APP 拆分成不同功能模块,形成独立组件,让宿主调用。 组件 化不一定是插件化,组件化是一个更大的概念:把模块解耦,组件之间代码不依 赖,宿主可以依赖组件;而插件化则具体到了技术点上,宿主通过 动态加载 来 调用组件,宿主不依赖组件,达到 完全解耦 的目的(比如图片缓存就可以看成 一个组件被多个 App 共用)。

**适合于项目大 但是功能相对集中。**比如 一个金融类的 App 里面只包含金融的 功能,金融功能又会有 借贷,理财,线下交易,把这些模块抽成单独的组件 二、插件化 Android 程序每次更新都要下载一个完整的 apk,而很多时候软件只是更新了一 个小功能而已,这样的话,就显得很麻烦。如果把 android 程序做成主程序+插 件化的形式呢,这样才利于小功能的扩展(比如一般 App 的皮肤样式就可以看 成一个插件)。

二、插件化

Android 程序每次更新都要下载一个完整的 apk,而很多时候软件只是更新了一 个小功能而已,这样的话,就显得很麻烦。如果把 android 程序做成主程序+插 件化的形式呢,这样才利于小功能的扩展(比如一般 App 的皮肤样式就可以看 成一个插件)。

通过 gradle 配置的方式,将打 debug 包和 release 包分开。这 样会有一个好处,开发一个模块,在 debug 的时候,可以打成一 个 apk ,独立运行测试,可以完全独立于整个宿主 APP 的其他 所有组件;待到要打 release 包的时候,再把这个模块作为一个 library ,打成 aar ,作为整个宿主 APP 的一部分。而 debug 和 release 的切换都是通过 gradle 配置,可以做到无缝切换。至于 模块之间的跳转,可以用别名的方式,而不是用 Activity 和 Fragment 类名。这样所有的模块和宿主 APP 都是完全解耦的, 彻底解决了并行开发的可能造成的交叉依赖等问题

主要原理是:主要利用 Java ClassLoader 的原理,如 Android 的 DexClassLoader,可动态加载的内容包括 apk、dex、jar 等。如下

插件化的优势:

  • 适应并行开发,解耦各个模块,避免模块之间的交叉依赖,加快编译速度, 从而提高并行开发效率。
  • 满足产品随时上线的需求
  • 修复因为我们对自己要求不严格而写出来的 bug。
  • 插件化的结果:分为稳定的 release 版本和不稳定的 snapshot 版本,每 个模块都高度解耦,没有交叉依赖,不会出现一个模块依赖了另一个模块, 其中一个人改了这个模块的代码,对另一个模块造成影响。

淘宝的框架是用了 osgi 的 bundle 概念,整个应用框架生命周期完整。 **适合于项目超级大 但是功能相对不集中。**比如 一个支付宝 App 里面即包 含共享单车 也包含 电影票。这种与本业务完全不同的 可以做成插件的形式 插件化弊端: 每一个插件都是一个 apk,插件多的时候管理起来也麻烦。

更多推荐

阿里两轮面试都被问了组件化问题,你会嘛?

本文发布于:2024-02-25 17:58:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699831.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:你会   阿里   问了   两轮   组件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!