前言
相信大家都知道安卓应用开发的大量难题,其实最后都需要插件技术去解决。
现今插件技术的使用非常普遍,比如微信、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高级插件化强化实战文档,只需你多多支持我这篇文章。
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!
来源:oschina
链接:https://my.oschina.net/u/4385225/blog/4890035