在前面的文章中我们成功的加载了外部的Dex(Apk)并执行了插件的Bean代码。这时我们会想,能不能加载并运行插件Apk的Activity。答案当然是能,否则后续我们的研究就没意义了,但是想实现Activity的插件运行,我们必须要解决一个问题——如何使用插件中的资源。本文我们就讲一下插件的资源加载机制,并讲述一下如何实现资源的插件。一、资源的加载机制Android的资源文件分为两类:第一类是
前言已经好久好久没有更新博客了,去年后半年太忙,没怎么抽出时间来写博客。以后给自己定个小目标,不管多忙,每周都要写一篇博客。闲话不多说,下面开始扯正题,最近有个同事问我“模块、组件插件还有热更新他们之间有什么关系和区别?“概述随着产品的业务不断的增加,我们的APP中代码就会越来越多,这时侯为了方便我们多个成员之间协同开发,所以就出现的根据业务,将我们代码分割为不同的模块(用户中心模块,首页
LeakCanary 与 鹅场Matrix ResourceCanary对比分析 Android插件已经出来好几年了,各大厂都出了各自方案,引用Wiki中VirtualAPK和其他开源框架的对比如下:  VirtualAPKVirtualAPK是滴滴出行自研的一款优秀的插件框架,主要有如下几个特性。功能完备支持几乎所有的Android特性;四大组件方面四大组件均不
前言对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于专科,原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个专科渣渣也奋斗了起来,面试百度、腾讯、网易、字节跳动、阿里等大厂,竟拿下了阿里P6岗。今天就分享一下大厂面试难点和面经,主要是希望能够激励到同样被学历所困扰的技术人,能够对职业生涯和技术规划有一个参考价值,感谢!Andro
0.  前言 在Android开发中,插件就是让我们的应用可以把一些功能和逻辑单独抽出来放在插件apk中,然后主apk做到按需调用,这样的好处是一来可以减少主apk的体积,二来可以做到热插拔,在不发布新版本的情况下实现更新某些模块,更加动态。网上有很多插件的解决方案和框架,但是它们都必须解决几个基础问题:插件类的加载,插件资源的加载和插件Activity的管理。1.&nb
转载 2023-08-29 20:09:08
125阅读
一、简介插件化开发是将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件的每个模块是个lib),最终打包的时候将宿主apk和插件apk分开或者联合打包。由宿主APP去加载以及运行插件APP。二、存在的意义宿主和插件分开编译并发开发动态更新插件按需下载模块解除单个dex函数不能超过65535的限制处境:开放出来的插件化开发框架比较多,他们各自都有自己的优势和和不
| 导语 插件技术最早从2012年诞生至今,已经走过了5个年头。从最初只支持Activity的动态加载发展到可以完全模拟app运行时的沙箱系统,各种开源项目层出不穷,在此挑选了几个代表性的框架,总结其中的技术原理。由于本人水平有限,插件框架又相当复杂,文中若有错误或者不准确的地方望高手指点。内容概要一、发展历史插件技术最初源于免安装运行apk的想法,这个免安装的apk可以理解为插件。支持插件
转载 2023-06-29 23:53:40
2348阅读
android 插件方案北京点豆科技http://www.apkplug.com/
原创 2023-02-15 13:05:27
99阅读
# Android插件方案 ## 引言 随着Android应用的复杂性不断增加,我们经常会面临一些常见的问题,比如应用安装包过大、模块化开发困难、动态更新等。为了解决这些问题,Android插件方案应运而生。本文将介绍什么是Android插件方案,为什么要使用插件方案以及如何实现一个简单的插件应用。 ## 什么是Android插件方案 Android插件方案是指一种将应用的功能模
原创 2023-09-28 06:35:05
132阅读
Android插件开发 —— 基础入门篇1. 插件开发的三个角色宿主App(PluginHost) 用户已经安装在手机上的应用,通过宿主可以加载插件,实现动态加载。插件(Plugin) 用户尚未安装的应用,通过宿主进行加载。插件接口(PluginSDK) 宿主和插件共用的接口。2. 如何加载未安装的apk?使用DexClassLoader可以加载一个未安装的apk中的类1. 关于PathCl
一、组件组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发。  组件架构示意图优点: 1.将APP业务模块分开开发和维护,有利于提高效率 2.一个业务分为一个组件,每个组件可以单独开发以实现并发开发,进一步提高效率 3
转载 2023-10-16 22:35:23
234阅读
来看看现有插件框架的对比。目录:MulitDex 引起的问题插件需要解决的问题与方案插件实现方案分析对比  1. MulitDex 引起的问题在应用安装到手机上的时候 dex 文件的安装是复杂的,有可能会因为第二个 dex 文件太大导致 ANR。使用了 mulitDex 的 App 有可能在 4.0(api level 14) 以前的机器上无法启动,因为 Dal
Android 插件,qihoo360插件方案  目录Android 插件,qihoo360插件方案  宿主App插件插件App插件配置:宿主调用插件App: 新建一个项目,开始配置 宿主插件配置:在项目的根目录build.gradle中配置classpath 'com.qihoo360.replugin:replugin-ho
文章目录插件历史插桩式实现插件插状是如何解决生命周期的插桩实现的缺点Hook式实现插件演进Hook技术绕开系统限制 实现无注册式跳转解决插件之间耦合性-LoadedApk商业插件之旅DroidPlugin插件基本原理特点缺点 插件历史2014 - 任玉刚推出新一代插件技术dynamic-load-apk2015 - 360公司推出插件技术DroidPlugin后面陆续推出 Smal
dynamic-load-apk源码分析Dynamic-Load-Apk源码解析 Android插件化学习之路(八)之DynamicLoadApk 源码解析(上)主要思想主要是通过代理来完成Activity,Service的相关操作 缺点不支持IntentService,不支持 Provider,静态广播; 插件编写规范上有一定的限制,比如无法直接使用this,需要继承指定的类 不支持Launch
一、什么是插件对比更形象,以组件化为对照组件化开发:将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk插件化开发:将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件的每个模块是个lib),最终打包的时候将宿主apk和插件apk分开
在经过上面铺垫后,我们可以尝试整体实现一下插件化了。这里我们先介绍一下最简单的实现插件方案。一、最简单的插件实现方案最简单的插件实现方案,对四大组件都是适用的,技术面涉及如下:1). 合并所有插件的Dex,来解决插件的类的加载问题。2). 预先在宿主的AndroidManifest.xml文件中声明插件的四大组件。(如果插件组件过多会很麻烦)3). 把插件中的所有资源一次性的合并到宿主的资
转载 2023-07-27 22:16:02
70阅读
  这是未来的倾向,很可能将会国内大厂提供这样的服务来引导插件升级流程。 对比一下普通组件架构和AAB的架构。 可以看出,AAB的架构比普通组件架构少了应用层,原来在应用层的逻辑被转移到基础层中了。 在基础层做dex加载,res加载,lib加载,以及Activity启动跳转分发等功能。之前我们说过AAB的架构非常适合做热修复热补丁的功能,是因为其包体细小,并且功
前言四大组件的插件插件技术的核心知识点,而Activity插件更是重中之重,Activity插件主要有三种实现方式,分别是反射实现、接口实现和Hook技术实现。反射实现会对性能有所影响,主流的插件框架没有采用此方式,关于接口实现可以阅读dynamic-load-apk的源码,这里不做介绍,目前Hook技术实现是主流,因此本篇文章主要介绍Hook技术实现。 Hook技术实现主要有两种解决
转载 2023-07-03 19:07:31
90阅读
前言android技术特别成熟了,热修复,组件…等框架已经层出不穷,如果还仅限于使用框架,技术永远很难得到成长,只有我们懂得他的原理,能够娓娓道来,能够自己动手的写出来,技术才会越来越好,与其想着未来怎么办,不如把握现在。这一篇文章教大家手写出插件框架,插件技术是Android工程师必备的技术之一,我们要懂其思想,知其原理。那么在 android中,什么是「 插件 」,顾名思义啊,就是把一
  • 1
  • 2
  • 3
  • 4
  • 5