[Android]Android插件化开发入门篇

Android 插件化 1.插件化 插件可以理解为免安装的Apk,而支持插件的app称为宿主。 在Android系统中,应用是以Apk的形式存在的,应用都需要安装才能使用。实际上Android系统安装应用的方式相当简单,就是把应用Apk拷贝到系统不同的目录下,然后把so解压出来而已。 常见的应用安装目录有: /system/app:系统应用 /system/priv-app:系统应用 /data/app:用户应用 一个Apk会包含如下几个部分: classes.dex:Java代码字节码 res:资源文件 . 阅读详情

1、什么是插件化开发

拿活跃用户量第一的微信来说,在第三个界面有个游戏,点开后可以选择很多的增植功能,这里腾讯只放了一些网页应用,那么如果未来想加入一个益智游戏,要怎么做?让用户重新安装吗,这就是插件化开发所解决的问题。

插件式开发通俗的讲就是把一个很大的app分成n多个比较小的app,其中有一个app是主app。基本上可以理解为让一个apk不安装也可以被运行。只不过这个运行是有很多限制的运行,所以才叫插件否则就叫病毒了。其实在目前淘宝、百度、腾讯、等都有成熟的动态加载框架,包括apkplug,但是它们都是不开源的。

2、Android插件化

  1. Android 插件化 —— 指将一个程序划分为不同的部分,比如一般 App 的皮肤样式就可以看成一个插件
  2. Android 组件化 —— 这个概念实际跟上面相差不那么明显,组件和插件较大的区别就是:组件是指通用及复用性较高的构件,比如图片缓存就可以看成一个组件被多个 App 共用
  3. Android 动态加载 —— 这个实际是更高层次的概念,也有叫法是热加载或 Android 动态部署,指容器(App)在运⾏状态下动态加载某个模块,从而新增功能或改变某⼀部分行为

3、优缺点:

优点:
- 模块解耦
- 解除单个dex函数不能超过 65535的限制
- 动态升级
- 高效开发(编译速度更快)

基于插件的开发列举两个比较突出的优点:

  1. 应用程序非常容易扩展,比如一个新的领域要加到旧的应用程序中,只需把这个新的领域做为一个插件,只开发这个小的app就可以了,旧的应用程序可能会原分不动,就连编译打包都不需要。
  2. 下载更新特别省流量,假如一个应用程序有10M把它分成两个的话可能每次更新只需要花费5M或者更少的流量就可以更新完。

追求完美本来就是一种性格缺陷,说在做软件方面没有近乎完美。基于插件开发当然不是插件越多越好能掌控好内聚和耦合度就更好了。插件增加了主应用程序中的逻辑难度。有优点的东西也是有缺点的这是必然。

缺点:
- 增加了主应用程序的逻辑难度
- 技术有难度,目前一些成熟的框架都是闭源的


参考资料:
1.android插件化及动态部署 - ATLAS–伯奎(阿里无线事业部无线技术专家)
http://club.alibabatech.org/resource_detail.htm?topicId=84
http://v.youku.com/v_show/id_XNTMzMjYzMzM2.html

2.怎么将 Android 程序做成插件化的形式?–知乎
http://www.zhihu.com/question/19981105/answer/30865268

3.Android 插件化 动态升级
http://www.trinea.cn/android/android-plugin/

4.apkplug框架
http://www.apkplug.com/

5.Android插件化开发,初入殿堂
http://my.oschina.net/kymjs/blog/327232

6.Android 插件框架 AtlasForAndroid(阿里使用框架)
https://github.com/bunnyblue/OpenAtlas

Simple Project
https://github.com/bunnyblue/OpenAtlasExtension

安卓之插件化开发使用DexClassLoader&AssetManager来更换皮肤 这篇文章主要使用DexClassLoader来实现插件化更换皮肤,即将皮肤独立出来做成一个皮肤插件apk,当用户想使用该皮肤时需下载(不需要安装)对应的皮肤插件apk 效果图【为方便测试,主要通过改变背景图来简单地展示皮肤更换】一、DexClassLoader 如果使用DexClassLoader来实现插件化皮肤更换,我们需要去下载(不需安装)我们的皮肤插件apk:DexClassLoader 阅读详情

相关推荐

Android 插件化开发(四)—— LoadApk方式插件化开发

插件化开发的第三种方法,其实是在第二种Hook式方法上继续改进,因为第二种hook式存在一个问题,那就是第三步中将多个apk插件进行加载,导致dexElements会很大,占用内存比较大,很有可能当插件很多时候,直接oom,因此产生了一种新的方法,就是讲LoadApk进行扩展,当加载插件时候,使用插件的LoadApk,这样就不会产生占很大内存的dexElements了。 下面是步骤: 1、绕过AMS检测,使用ProxyActivity替换PluginActivity 2、将ProxyActivity换回Pl

明天的增加的博客 1212

android 插件化全面解析

插件化,四大组件的工作流程,代理

weixin_43836998的博客 6580

全面解析Android插件化开发实战技巧

随着移动应用的不断增长和更新,传统的应用开发模式已难以应对快速迭代和灵活扩展的需求。在这种背景下,Android插件化开发应运而生,它允许应用开发者在不修改主应用的情况下,动态地添加、更新和管理应用的功能模块。插件化库在Android插件化开发中扮演着至关重要的角色,它们是抽象和封装了插件化机制底层细节的工具,使开发者能够更加聚焦于应用逻辑的实现,而不是处理繁琐的插件管理问题。插件化库可以大致分为三类:类加载器类库:负责处理插件Dex的加载,包括和。

weixin_42575505的博客 1202

Android原生插件开发-开发篇

uni-app原生开发开发篇

wax9092的博客 2264

高通QCOM Camera Pipeline 可视化工具:从XML到交互式图谱的工程实践

本文详细介绍了高通QCOM Camera Pipeline可视化工具的工程实践,旨在解决Camera驱动与算法工程师在解析复杂XML配置文件时的痛点。该工具能将静态的XML文件(如g_camx_usecase.xml)自动转换为交互式视觉图谱,通过分层布局算法清晰展示Pipeline、Node、Port和Link的拓扑关系,并支持悬停查看、拖动缩放等交互操作,极大提升了开发调试与架构理解的效率。

prometheus5watch的博客 554

HarmonyOS开发第一步:Dev Eco Studio4.0保姆级安装配置指南(含Node.js环境)

本文提供HarmonyOS开发环境搭建的保姆级教程,重点详解Dev Eco Studio 4.0的安装与配置,并攻克Node.js环境与Ohpm包管理器的关键设置难点。通过清晰的步骤指引,帮助开发者从零开始,高效完成开发环境部署,顺利迈出鸿蒙应用开发的第一步。

lake5的博客 569

安卓学习之插件化 - 自制简单插件化框架(一)

学习记录,写的不一定准确。在之前的插件开发中,大多数情况下都是使用别人创建好的轮子,比如奇虎的插件框架Replugin,使用轮子无疑给开发带来速度的提升。但是现在很多插件框架早就停止了维护,接入起来也是麻烦的很,甚至无法接入。今天就自学一下自制插件框架。首先我们知道,给主APP开发插件需要有一个插件的接入标准,所有插件APK皆按照这个接入标准进行开发,所以第一步就是写一个接入标准Library,不过在写之前还是捋一下大纲。

qq_14826519的博客 2080

基于MySQL的京东用户行为分析

对京东用户行为的分析,利用AARRR模型进行分析。

SelenaSelena的博客 1909

走进Android组件化和插件化开发

项目发展到一定程度,就必须进行模块的拆分。模块化是一种指导理念,其核心思想就是分而治之、降低耦合。而在 Android 工程实践,目前有两种途径,一个是组件化,一个是插件化。关于组件化方面的具体知识,可以扫描下方二维码免费领取!!

m0_56146626的博客 884

B站DRM视频解密流程实战解析:从密钥获取到播放全流程

本文详细解析了B站DRM视频的解密全流程,从识别加密视频、捕获关键网络请求(如playurl接口的widevine_pssh数据),到逆向分析DRM SDK的JavaScript执行逻辑,最终手动模拟EME流程获取解密密钥,并使用mp4decrypt和ffmpeg工具完成视频文件的解密与合并。文章为开发者提供了从密钥获取到播放的完整实战指南。

weixin_29290379的博客 838

Windows11 升级到24H2后,原本的protel99se软件的DDB图纸文件打不开解决办法

Windows11更新后无法打开DDB文件

xingchen2837的博客 413

Android组件化和插件化开发,安卓开发毕业设计题目

*要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。Android架构视频+BAT面试专题PDF+学习笔记即可获取!Android架构视频+BAT面试专题PDF+学习笔记即可获取!

m0_61549953的博客 953

结合MATLAB/Simulink和多体动力学仿真软件UM(Universal Mechanism),建立高速列车轴箱轴承的动力学模型,并通过联合仿真分析其正常运行特性和典型故障模式

高速列车是现代交通运输的重要组成部分,其运行速度高、载客量大,对安全性和可靠性提出了极高的要求。轴箱轴承作为高速列车的关键部件之一,承担着传递载荷和支撑车轴的重要作用。然而,由于长期运行在高速、重载和复杂工况下,轴箱轴承容易出现疲劳磨损、润滑失效和裂纹等故障,从而影响列车的安全性。本项目旨在结合MATLAB/Simulink和多体动力学仿真软件UM(Universal Mechanism),建立高速列车轴箱轴承的动力学模型,并通过联合仿真分析其正常运行特性和典型故障模式。

xiaoheshang_123的博客 329

Android组件化和插件化开发

由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。提升架构认知不是一蹴而就的,它离不开刻意学习和思考。**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。,第一时间获取最新知识点Android架构师之路很漫长,一起共勉吧!,第一时间获取最新知识点。

2401_86968119的博客 1314

基于STM32L4XX、HAL库的MCP4561数字电位器驱动程序设计

/ HAL库需要左移一位。* @param address: 设备地址(0x2C-0x2F)* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hi2c: I2C句柄。

zhusl6688的博客 340

【施磊】C++课程笔记目录

【C++编程】施磊老师C++笔记目录

GeniusAng的博客 4122

Android插件化开发指南——插件化技术简介

文章目录1. 为什么需要插件化技术2. 插件化技术的历史3. 其他 1. 为什么需要插件化技术 插件化技术最初源于将app中一些不常用的功能模块做成插件,主要有两个方面的好处: 减小了安装包的大小; 实现app功能的动态扩展; 但实际上现在插件化80%的使用场景都是为了修复线上BUG。当将一个项目的各个功能抽离为单独的可运行的模块的时候,也就是插件化的时候。如果项目的某个模块出现了问题,那么需要在短时间内修复这个问题,而重新打包发布Android版到各大应用市场却已经来不及了。而插件化就可以做到只需要重

梦否 4178

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

安卓插件化系列课程-一步步带你实现插件化

前言: 目前安卓领域,插件化十分的流行,本以为这一类的文章会有很多,但是百度一搜,基本上讲的插件化都是皮毛,没有涉及到核心。 所以就想写一系列的文章来一步一步深入的讲解插件化,通过实现逐渐增加难度的需求,最终实现插件化方案。 章节: 插件化系列文章主要包含以下几个篇章: 1.加载插件apk中的类 2.启动插件apk中的activity 3.使用插桩的方式启动apk中的activity 4.使用插件apk中的资源 5.使用插件apk中的so文件 6.插件化加载移动apk。 7.插件化目前所遇到的

分享+记录 2542

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android组件化和插件化开发简单介绍

Android组件化和插件化开发简单介绍什么是组件化和插件化?为什么要项目组件化组件化插件化 什么是组件化和插件化? 组件化开发: 就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发。 插件化开发和组件化开发略有不用,插件化开发时将整个app拆分成很多...

fjnu_se的博客 4232

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

安卓开发:组件化、模块化、插件化方案对比总结

本文对比分析了安卓开发的三种架构方案:组件化、模块化和插件化。组件化如乐高积木,强调独立开发和动态组装;模块化如分封制,注重业务逻辑的清晰划分;插件化则如变形金刚,支持动态加载和热更新。三种方案各具优势:组件化实现高复用,模块化降低复杂度,插件化提供灵活性。同时也面临不同挑战,如组件间通信、依赖管理和安全性问题。开发者应根据项目规模、团队结构和未来需求,灵活选择或组合这些方案,以构建更优秀、可维护的安卓应用。

qq_32890771的博客 1054

安卓插件(安卓应用插件化)

安卓应用插件化: 为了减小安卓应用单个包的大小,方便应用功能的动态更新、变动,需要对应用进行分解。 将一个功能众多的应用分解为: 一个主应用外壳 + n个功能插件 (1)主应用外壳提供给用户安装,在使用时可根据用户操作加载插件,执行特定功能。 (2)功能插件可在应用发布后,动态变动更新(而无需重装应用。留存用户、动态修改功能) 支付宝、微信等都是插件化的应用。 应用插件化示例:(扫码安...

暂无内容 5968

Android之插件化开发

个人认为: 2017年手淘Atlas插件化项目的开源标志着插件化的落幕, 2018年Android 9.0上私有API的限制几乎称得上是要退出历史主流。 如今的插件化技术朝两个方向发展: 其一,插件化的工程特性:模块化/解耦被抽离,逐渐演进为稳定、务实的的组件化方案; 其二,插件化的黑科技特性被进一步发掘,inline hook/method hook大行其道,走向双开,虚拟环境等等。 虽然...

LVXIANGAN的专栏 693

Android插件化,带领大家自己实现自己的简易插件化

Android插件化 本文带领大家自己实现自己的简易插件化 本文采用插桩的方式实现。

sunlifeall的博客 1429

Android中的插件化开发

Android中的插件化开发是一种高效、灵活的应用开发方式。它不仅能够提高开发效率,还能为用户提供更加个性化的体验。面对未来的发展,插件化开发需要不断技术创新、完善生态建设,以适应日益变化的移动应用市场。希望本文能够为广大开发者提供一定的参考和启示。

2501_92487853的博客 997

什么?现在还有不会插件化的Android开发?

在移动互联网高速发展的今天,应用程序的迭代速度越来越快,功能需求也越来越多样化。为了满足这种快速变化的需求,同时也为了提升开发效率和应用的灵活性,插件化技术应运而生于Android开发领域。然而,尽管插件化已经成为Android开发中的一项重要技能,仍有一些开发者对此知之甚少,甚至未曾涉足。

Android 开发架构 977

安卓漏洞学习(八):Android 插件化技术

android插件的基本原理和实现方法

beefreesky的博客 1116
上一篇: [计算机体系]操作系统
下一篇: [读书笔记]《APP研发录》之App图片缓存设计
陶程
博客等级 码龄12年 360粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值