程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(3)

【Android 插件化】插件化简介 ( 组件化与插件化 )

发布于2021-05-30 19:34     阅读(581)     评论(0)     点赞(10)     收藏(1)






一、组件化与插件化



组件化 是将应用分成若干 Module 模块 , 每个模块称为一个组件 ;

组件化 项目中 , 分为两种模式 , " 集成模式 " " 组件模式 " ;

在开发过程中的 " 组件模式 " 下这些组件可以 独立运行 , 在 " 集成模式 " 下 , 这些组件 相互依赖拼装成一个 APK 安装包 ;


组件化开发的弊端 :

多个模块必须是并发开发 , 模块之间相互依赖 , 如果修改了一个模块 , 那就必须重新打包 ;

插件化开发 , 解决了上述问题 ;


插件化 将应用拆分成若干模块 , 其中有 1 1 1" 宿主 " 模块 , 若干 " 插件 " 模块 ;

最终打包时 , 将 " 宿主 " 模块 和 " 插件 " 模块 分开进行打包 ;

" 宿主 " 模块" 插件 " 模块 都各自是一个单独 apk 安装文件 ;


插件化 中 , " 宿主 " 模块 和 " 插件 " 模块 可以分开进行编译 , 二者之间互不影响 , 各个模块可以并发进行开发 , " 宿主 " 模块 可以 动态更新插件 ,





二、插件化示例



如像 支付宝 等类似的特大型应用 , 内部提供了几百个小的应用模块 , 不可能在开发时就将其集成进去 , 这些软件的本体只有 100 MB 左右 , 不可能将所有的应用都纳入进去 ;

分辨原生组件与 Web 组件 : 在大型应用中 , 有些应用是使用 WebView 嵌入前端小程序 , 有些是远程组件 , 在 " 开发者选项 " 中 , 打开 " 显示布局边界 " 选项 , 如果是 WebView 就只有一个框 , 如果是原生组件 , 对应的 TextView , ImageView 等都有各自的边界 , 借助布局边界显示可分辨出该第三方小程序是 前端 WebView 界面还是原生应用 ;

打开 " 显示布局边界 " 选项 :

在这里插入图片描述

支付宝主界面效果 : 主界面是原生界面 ;

在这里插入图片描述

饿了么界面时 WebView 界面 , 主要内容是 前端小程序 开发的 ;

在这里插入图片描述

财富管理模块的股票模块 , 是原生应用 ;

在这里插入图片描述

支付宝的主体框架是 Android 原生应用 , 其中的第三方功能 , 小程序 , 基本都是 Web 前端页面 ;

目前这类应用的开发趋势是使用 Web 应用 替换 原生应用 ;


股票模块这类 原生应用 , 一般不会在支付宝开发时 , 打包在其中 , 而是通过 插件化 机制 , 动态部署其插件 apk ;

这类软件第一次打开时 , 需要下载该模块的 插件 apk , 并安装 , 此时会卡顿以下 , 之后可以流畅访问 ;





三、插件化标准引入



插件化 中 , " 宿主 " 模块 和 " 插件 " 模块 可以分开进行编译 , 二者之间互不影响 , 各个模块可以并发进行开发 , " 宿主 " 模块 可以 动态更新插件 ;

" 宿主 " 模块是当前运行的应用 , " 插件 " 模块是下载的插件模块编译后打包的 apk 文件 ;

在不安装 插件 apk 的情况下 , 调用该 插件中的功能 , 如 Activity , Service , 代码逻辑等 ;


不是任意 apk 文件都可以接入到 " 宿主 " 插件中 , 要接入的 apk 必须符合一定的标准 ;

在 apk 插件没有安装 , 因此不存在上下文 , 调用插件中的 Activity 界面时 , 需要将上下文传给插件的 Activity ,



所属网站分类: 技术文章 > 博客

作者:卡卡卡

链接:http://www.phpheidong.com/blog/article/86892/1b3fa3f2cf05f56f827d/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

10 0
收藏该文
已收藏

评论内容:(最多支持255个字符)