又一开源项目爆火于GitHub,Android高级插件化强化实战

·  阅读 2434

前言

相信大家都知道安卓应用开发的大量难题,其实最后都需要插件技术去解决。

现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。

插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个dex函数不能超过65535的限制、动态更新升级、按需加载等等。

掌握好插件技术,需要如下的安卓基础和相关知识,例如:

  1. Android应用程序安装,加载过程

  2. Android应用运行机制,生命周期调用原理

  3. Android应用资源编译打包原理

  4. Android应用读取资源原理

  5. Android系统AMS、PMS、NMS等系统服务的运作原理

  6. 增量更新

  7. HOOK等技术

本文将从基础的插件化原理到Android插件化初探再到大厂架构演化实战应用,总结出了较为全面与完整的安卓插件技术与插件化对 Android开发的重要性。

插件化原理

1.类加载

2.双亲委托机制

3.资源加载

4.四大组件支持

5 ProxyActivity代理

6 hook方式

7 其他组件

8 Android动态加载框架DL的架构与基本原理解析

9 Android 插件化框架 DynamicLoadApk 源码分析

image

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 介绍

  • 宿主接入步骤

  • 插件接入步骤

  • 使用插架

image

6. 腾讯插件化框架 Shadow项目解析

  • 框架简单介绍

  • 框架结构分析

  • sample 示例代码 AndroidManifest.xml 分析

  • Activity 实现

  • 替换插件 Activity 的父类

  • Service 实现

  • BroadcastReceiver 实现

  • ContentProvider 实现

  • 框架自身动态化

  • 总结

总结:

插件化技术可以说是Android高级工程师所必须具备的技能之一,从2012年插件化概念的提出(Android版本),到2016年插件化的百花争艳,直至现在拆件化已成为Android开发必不可少的重点,可以说,插件化技术引领着Android技术的进步。

我相信一个高级程序员一定是勤奋的,可以快速地掌握大量 的新技术、新框架,不仅懂得原理,还能把新的技术落地到公司的产品中去。这是衡量程序员 工作能力的一个重要标准,那么怎样才能将技术运用自如呢?唯有实践。

如果你正好需要这份完整版Android高级插件化强化实战文档,只需你多多支持我这篇文章。

多多支持,即可免费获取资料

快速入手通道:(点这里)下载!诚意满满!!!

更多Android架构相关资料可以点此处免费获取。

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

分类:
Android
标签: