前言
相信大家都知道安卓应用开发的大量难题,其实最后都需要插件技术去解决。
现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。
插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个dex函数不能超过65535的限制、动态更新升级、按需加载等等。
掌握好插件技术,需要如下的安卓基础和相关知识,例如:
Android应用程序安装,加载过程
Android应用运行机制,生命周期调用原理
Android应用资源编译打包原理
Android应用读取资源原理
Android系统AMS、PMS、NMS等系统服务的运作原理
增量更新
HOOK等技术
本文将从基础的插件化原理到Android插件化初探再到大厂架构演化实战应用,总结出了较为全面与完整的安卓插件技术与插件化对 Android开发的重要性。
插件化原理
1.类加载
2.双亲委托机制
3.资源加载
4.四大组件支持
5 ProxyActivity代理
6 hook方式
7 其他组件
8 Android动态加载框架DL的架构与基本原理解析
9 Android 插件化框架 DynamicLoadApk 源码分析
Android插件化初探
1.从零开始实现一个插件化框架(1)
概念
插件化解决的问题
各插件化框架对比
插件化实现
ClassLoader实现类
2.从零开始实现一个插件化框架(2)
Activity的启动流程
寻找Hook点
撸码阶段
代理对象
偷天换日,替换原来的Intent
ActivityThread
将代理的intent替换回来
注意
3.从零开始实现一个插件化框架(3)
插件资源加载
Android中资源加载流程
ActivityManager
ActivityThread
AppCompatActivity
总结
大厂架构演化
1.360插件开发之DroidPlugin
插件开发之360 DroidPlugin源码分析
Hook机制类图关系
Hook机制的时序图关系
Manifest权限申请
基类Hook做了什么?
ProxyHook
BaseHookHandle
HookedMethodHandler
ReplaceCallingPackageHookedMethodHandler
IO重定向
递归遍历
以IPackageManager为例
插件开发之360 DroidPlugin源码分析之Binder代理
2. 滴滴VirtualApk实战
配置
应用
原理
总结
问题
3.基于VirtualAPK Android重构之插件化
Plug-in Hello World
插件化框架的选择
插件化原理
引入插件化之痛
总结
4.爱奇艺插件化原理分析之 Neptune框架
插件化基础知识点
类加载
插件化中资源使用限制
Apk打包流程
四大组件的插件化
Neptune源码分析
插件Activity任务栈
处理插件中的广播
5. 360开源全面插件化框架RePlugin 实战
RePlugin 介绍
宿主接入步骤
插件接入步骤
使用插架
6. 腾讯插件化框架 Shadow项目解析
框架简单介绍
框架结构分析
sample 示例代码 AndroidManifest.xml 分析
Activity 实现
替换插件 Activity 的父类
Service 实现
BroadcastReceiver 实现
ContentProvider 实现
框架自身动态化
总结
总结:
插件化技术可以说是Android高级工程师所必须具备的技能之一,从2012年插件化概念的提出(Android版本),到2016年插件化的百花争艳,直至现在拆件化已成为Android开发必不可少的重点,可以说,插件化技术引领着Android技术的进步。
我相信一个高级程序员一定是勤奋的,可以快速地掌握大量 的新技术、新框架,不仅懂得原理,还能把新的技术落地到公司的产品中去。这是衡量程序员 工作能力的一个重要标准,那么怎样才能将技术运用自如呢?唯有实践。
如果你正好需要这份完整版Android高级插件化强化实战文档,只需你多多支持我这篇文章。
多多支持,即可免费获取资料——三连之后(承诺:100%免费)
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!