一、组件化组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发。  组件化架构示意图优点: 1.将APP业务模块分开开发和维护,有利于提高效率 2.一个业务分为一个组件,每个组件可以单独开发以实现并发开发,进一步提高效率 3
转载 2023-10-16 22:35:23
234阅读
插件框架需要的功能有:插件的集成与发现,插件的安装、升级、卸载管理,获取插件的描述和功能信息,调用插件特定Activity以及方法,宿主和插件互通消息等。1.1.1 插件的集成与发现android下,默认的情况是,每个apk是相互独立的,基本上每个应用都是一个dalvik虚拟机,都有一个uid,再配合上linux本身的权限机制,使得apk互通很难直接进行。通过主程序和插件共用sharedUserI
转载 2023-07-05 10:34:36
61阅读
概述Activity 支持Hook ActivityManagerServiceHook Instrumentation启动插件ActivityService 支持ContentProvider 支持Receiver 支持小结 概述滴滴出行公司的首个对外开源项目 - VirtualAPK。地址:https://github.com/didi/VirtualAPK滴滴自行研发了这款插件框架,功能
DroidPluginTestDroidPlugin介绍它是360手机助手团队在Android系统上实现了一种插件机制。它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处。优点支持Androd 2.3以上系统 插件APK完全不需做任何修改,可以独立安装运行、也可以做插件运行。要以插件模式运行某个APK,你无需重新编译、无需知道其源码。 插件
转载 2023-08-17 11:56:50
49阅读
# Android 插件框架简介 在Android开发中,插件框架是指一种将功能模块化的设计模式,它允许开发者将应用的某些功能封装为独立的插件,从而实现动态加载和更新的功能。这样一来,开发团队可以更灵活地管理项目,提高代码的复用性和可维护性。 ## 插件框架的优势 1. **模块化**:将应用程序分割为多个独立的模块,便于管理和维护。 2. **动态加载**:可以在运行时加载和卸载插件,提高
原创 9月前
32阅读
文章目录一、概述为什么需要插件化?1.1 发展历史1.2 需要知识1.2.1 Binder1.2.2 App打包流程1.2.3 App安装流程1.2.4 App启动流程1.2.5 资源加载机制1.2.6 Gradle配置打包1.3 主流框架Dynamic-load-apk详解DroidPlugin详解Small框架详解参考文献 (4.6.29.1)插件化:Android中的动态加载技术(4.6.
0x00 前言:插件化的介绍阅读须知:阅读本文的童鞋最好是有过插件框架使用经历或者对插件框架有过了解的。前方高能,大牛绕道。最近一直在关注 Android 插件化方面,所以今天的主题就确定是 Android 中比较热门的“插件化”了。所谓的插件化就是下载 apk 到指定目录,不需要安装该 apk ,就能利用某个已安装的 apk (即“宿主”)调用起该未安装 apk 中的 Activity 、S
文章目录插件化历史插桩式实现插件化插状是如何解决生命周期的插桩化实现的缺点Hook式实现插件化演进Hook技术绕开系统限制 实现无注册式跳转解决插件之间耦合性-LoadedApk商业化插件之旅DroidPlugin插件化基本原理特点缺点 插件化历史2014 - 任玉刚推出新一代插件技术dynamic-load-apk2015 - 360公司推出插件技术DroidPlugin后面陆续推出 Smal
  这是未来的倾向,很可能将会国内大厂提供这样的服务来引导插件升级流程。 对比一下普通组件化架构和AAB的架构。 可以看出,AAB的架构比普通组件化架构少了应用层,原来在应用层的逻辑被转移到基础层中了。 在基础层做dex加载,res加载,lib加载,以及Activity启动跳转分发等功能。之前我们说过AAB的架构非常适合做热修复热补丁的功能,是因为其包体细小,并且功
1.什么是插件化开发首先我们先来看看通过插件化开发后的APP是什么样的效果。这里就用最典型的插件化APP 360手机卫士 来演示一下什么是插件化的APP。 可以看到,打开应用后在切换到工具箱中有很多功能,我的工具中先是有8个自带的功能,然后点击更多工具可以去添加,点添加后先是下载,下载完成就可以打开使用了。 我们再来首先看看APP的大小,才15.62M,是不是很惊讶啊。 在上面演示的图片中那些
转载 2023-11-22 16:41:13
146阅读
最近项目中,有些子功能需要按需加载,于是考虑使用插件化方案实现,看过几个插件化方案后,最终选择了360之前开源的DroidPlugin方案。在使用中,还是有一些心得体会,网上的源码分析,详细原理分析的文章一经很多(文末会有链接),本篇文章,主要从使用的角度入手,简单描述下DroidPlugin原理,也记录下使用中心得体会。基本原理阅读了部分DroidPlugin的源码,也看了部分网上的文章和and
转载 2023-08-31 18:14:58
66阅读
工作原理android 系统运行的基础是基于四大组件,那么插件框架工作过程也离不开四大组件相关的流程(生命周期等),而 DroidPlugin 是一种非侵入式的设计方案,即插件程序,可以完全按照正常的app开发方式,和宿主间几乎无耦合,同时,宿主启动apk的过程,完全按照android原生api的调用方式,进行启动。以Activity为例,简要描述下在安装插件app的情况下,启动一个插件中Act
转载 2023-07-27 11:00:00
135阅读
结合动态加载系列文章的分析,现在开始设计并开发一个 Android插件框架,命名为 Frontia。Frontia 有 “前端” 的意思,寓意着 Android 插件能像前端开发那样动态发版,同时,这一词出自 Macross 动画系列,有 “繁星” 的意思,“我们的征途是星辰大海 KIRA!!(基本信息Frontia 是一个 Android插件框架(基于 ClassLoader 的动态
Android插件开发 —— 基础入门篇1. 插件开发的三个角色宿主App(PluginHost) 用户已经安装在手机上的应用,通过宿主可以加载插件,实现动态加载。插件(Plugin) 用户尚未安装的应用,通过宿主进行加载。插件接口(PluginSDK) 宿主和插件共用的接口。2. 如何加载未安装的apk?使用DexClassLoader可以加载一个未安装的apk中的类1. 关于PathCl
1.   dynamic-load-apk/DL动态加载框架  是基于代理的方式实现插件框架,对 App 的表层做了处理,通过在 Manifest 中注册代理组件,当启动插件组件时,首先启动一个代理组件,然后通过这个代理组件来构建,启动插件组件。 需要按照一定的规则来开发插件 APK,插件中的组件需要实现经过改造后的 Activity、FragmentActivity
转载 2024-03-07 18:20:37
33阅读
写在前面;这几年移动开发业界兴起的「 插件化技术 」的旋风,各个大厂都推出了自己的插件框架,各种开源框架都评价自身功能优越性,令人目不暇接。随着公司业务快速发展,项目增多,开发资源却有限,如何能在有限资源内满足需求和项目的增长,同时又能快速响应问题和迭代新需求,这就是一个矛盾点。此时,插件化技术正好风生水起,去了解各个主流框架实现思路,看看能对目前工作是否有帮助,是很有必要的。主要分为以下几个部
框架是建立在 Dynamic-load-apk进行的上层封装。增加插件动态加载到libs目录和针对模块Service的注入。本文将以H5Core(Hybrid)为插件进行讲解。更新日志:> * 2016/7/6 commit -m “增加懒加载功能” hash: 2a335dc49654c80fb6779cacefdf3ed712c23a8插件框架简介插件化是将Apk中功能类似的模块封
一、Altas ( 阿里巴巴 )、二、DynamicAPK ( 携程 )、三、VirtualApp ( 罗迪 )、四、DroidPlugin ( 360 )、五、dynamic-load-apk ( 任玉刚 )、六、Shadow ( 腾讯 )、七、Phantom ( 满帮 )、八、RePlugin ( 360 )、九、Small、十、VirtualAPK ( 滴滴 )、
原创 2022-03-07 18:38:59
1661阅读
文章目录Android插件化原理解析及常见框架对比Dynamic-Load-ApkDroidPluginVirtualApkRePlugin总结 Android插件化原理解析及常见框架对比Android插件化原理解析 https://www.jianshu.com/p/d3231a15afee 示例 https://github.com/xch168/PluginDemoDynamic-Load
转载 2023-09-19 16:39:46
52阅读
插件框架需要的功能有:插件的集成与发现,插件的安装、升级、卸载管理,获取插件的描述和功能信息,调用插件特定Activity以及方法,宿主和插件互通消息等。1.1.1 插件的集成与发现android下,默认的情况是,每个apk是相互独立的,基本上每个应用都是一个dalvik虚拟机,都有一个uid,再配合上linux本身的权限机制,使得apk互通很难直接进行。通过主程序和插件共用sharedUserI
转载 2023-07-02 22:32:02
133阅读
  • 1
  • 2
  • 3
  • 4
  • 5