Alibaba架构师首发,Android组件化与插件化学习笔记,技术与实战齐飞

  • 微信Android架构历史

  • 为何再次重构微信

  • 重塑模块化

  • 取舍和选择

  • 代码之外,架构之内

4.蘑菇街 App

  • 蘑菇街 App 的组件化之路

  • 实现方式

  • 组件生命周期管理

  • 壳工程

  • 遇到的问题

  • 持续集成

  • 周边设施

  • 小结

蘑菇街 App 的组件化之路·续

  • 统一的调用实现

  • 通过 Category 来统一组件对外暴露的接口

  • 更明确的表述

  • 注册这个组件关心的 URL

  • 注册这个组件能够被调用方法/属性

  • 在 App 生命周期的不同阶段做不同的响应

  • 针对casatwy的一些回应

  • 小结

5 爱奇艺 App

  • 关于组件化

  • 基于Service的IPC通信

  • 组件化跨进程通信的核心诉求

  • Andromeda

  • 架构分析

6.美团 App

  • 外卖客户端容器化架构的演进

  • 背景

  • 美团外卖业务介绍

  • 美团外卖移动端历史架构概述

美团外卖容器化架构全景图

  • 什么是容器化架构

  • 容器化架构的优势

  • 外卖容器化架构全景图

  • 容器化的挑战

  • 外卖跨端容器建设

  • MRN容器

  • Titans容器

外卖页面容器建设

  • 页面容器化设计思路

  • 业务构建模块标准化

  • 小结

外卖容器化架构的衡量指标

  • 容器化架构衡量指标的特点

  • 链路指标

  • 关键指标

  • 外卖容器化架构的监控运维

  • 外卖容器化架构的发布能力

  • 容器化架构发布体系

  • 跟版本发布流程

  • bundle资源发布

  • 多种发布能力综合使用

7. 美团Android组件化方案及组件消息总线modular-event实战

  • 背景

  • 组件化之前的状态

  • 组件化方案调研

  • 美团其他团队组件化方案调研

  • 组件化方案

  • 组件化消息总线框架modular-event

  • 组件消息总线modular-event的实现

  • 消息总线modular-event的结构

  • 使用动态代理实现运行时调用

  • 订阅和发送的模式

8. 美团Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

  • 背景

  • 发布/订阅模式

  • RxBus的出现

  • 引入LiveDataBus的想法

  • 为什么使用LiveData构建数据通信总线LiveDataBus

  • LiveDataBus的设计和架构

  • LiveDataBus最终实现

  • 9.WMRouter:美团外卖Android开源路由框架

  • 10.美团猫眼android模块化实战-可能是最详细的模块化实战

11.携程App(篇幅过长,无法展示全部)

12.支付宝 App

再谈插件化:


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

现今插件技术的使用非常普遍,比如微信、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)

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

  • 插件化框架的选择

  • 插件化原理

最后我想说

为什么很多程序员做不了架构师?
1、良好健康的职业规划很重要,但大多数人都忽略了
2、学习的习惯很重要,持之以恒才是正解。
3、编程思维没能提升一个台阶,局限在了编码,业务,没考虑过选型、扩展
4、身边没有好的架构师引导、培养。所处的圈子对程序员的成长影响巨大。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

3.基于VirtualAPK Android重构之插件

  • Plug-in Hello World

  • 插件化框架的选择

  • 插件化原理

最后我想说

为什么很多程序员做不了架构师?
1、良好健康的职业规划很重要,但大多数人都忽略了
2、学习的习惯很重要,持之以恒才是正解。
3、编程思维没能提升一个台阶,局限在了编码,业务,没考虑过选型、扩展
4、身边没有好的架构师引导、培养。所处的圈子对程序员的成长影响巨大。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-5QUHAVVx-1643518036304)]

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...