首页 文章详情

这份字节跳动总监的Framework开发笔记在知乎上火了!

Carson带你学习Android | 433 2021-04-12 17:18 0 0 0
UniSMS (合一短信)

 

1

为什么要学Android Framework?

 

想要成为一名优秀的Android开发,就需要有一个完备的知识体系,Android Framework 的知识是很重要的一个组成部分,他广泛的应用在各个领域。


像掉帧监控,函数插装,慢函数检测,ANR 监控,启动监控,都需要对 Framework 有比较深入的了解。只有这样才能知道怎么去做监控,利用什么机制监控,函数插桩插到哪里,反射调用该反射哪个类哪个方法哪个属性


另外 Framework 作为 Android 框架层,为 App 提供了众多 API 去调用 ,但是很多机制都是 Framework 包装好了给 App 来用的,如果不知道这些机制的原理,那么很难去在这基础上做优化。

 

2

举个栗子

 

如果你了解 Android App 的启动机制,优化启动速度的时候会更得心应手:

定制什么样的 StartingWindow;

什么时候可以拿到图片的宽高;

DelayLoad 怎么做才会更合适;

Service 什么时候启动可以不影响启动速度;

Activity onResume 回调的时候真的可见了么?

Redex 为什么会加快应用启动速度?

再比如我们经常说的 Handler,MessageQueue,Looper。看源码你就可以更好的理解那些概念:ThreadLocal 做什么的;Thread 和 Handler 的关系;为什么不能在子线程更新 UI?


还有很多栗子,这里就不一一论述学习Android Framework的重要性了。

 

3

如何学习Android Framework?

 

Framework 的重要性不容置疑,那我们该如何学习呢?


关于如何学习Android Framework开发知识,最近小编有幸在字节跳动总监手里扒到这份Android framework高级开发笔记,部分知识章节发布到了在知乎上已经收获了1000+的点赞量,今天在这里拿出来分享给大家。


本笔记主要讲解了Framework的常问常用的一些模块:

 

第一章:深入解析Binder


Binder机制作为进程间通信的一种手段,基本上贯穿了andorid框架层的全部。所以首先必须要搞懂的Android Binder的基本通信机制。  


本章知识点

  • Binder 系列—开篇

  • Binder Driver 初探

    Binder 驱动概述

    Binder 核心方法

    ……

  • Binder Driver 再探

    Binder 通信简述

    Binder 通信协议

    场景总结

    Binder 内存机制

    ……


  • Binder 启动 ServiceManager

    启动过程

    核心工作

    ……


  • 获取 ServiceManager

    获取 ProcessState 对象

    获取 BpBinder 对象

    获取 BpServiceManager

    ……


  • 注册服务(addService)

    ProcessState

    服务注册

    Binder Driver

    ServiceManager

    ……

  • 获取服务(getService)

  • Framework 层分析

    Binder 架构

    Binder 类图

    Binder 类分层

    初始化

    注册服务

    获取服务

    ……


  • 如何使用 Binder

  • 如何使用 AIDL

  • Binder 总结

  • Binder 面试题全解析


第二章:深入解析Handler


相信大家都有这样的感受:网上分析 Handler 机制原理的文章那么多, 为啥还要画蛇添足整理这份笔记呢?不是说前人们写的文章不好,我就是觉得他们写的不细, 有些点不讲清楚,逻辑很难通顺的,每次我学个什么东西时遇到这种情况都贼难受。


本章先宏观理论分析与 Message 源码分析,再到MessageQueue 的源码分析,Looper 的源码分析,handler 的源码分析,Handler 机制实现原理总结。最后还整理Handler 所有面试题大全解析。


Handler这章内容很长,但思路是循序渐进的,如果你能坚持读完我相信肯定不会让你失望。



第三章:Dalvik VM 进程系统


Andorid系统启动、init 进程、Zygote、SystemServer启动流程、 应用程序的创建使用,Activity的创建、销毁 Handler和Looper。



第四章 深入解析 WMS


窗口管理框架 系统动画框架 View的工作原理。



第五块 PackagerManagerService


包管理服务。资源管理相关类

 


由于篇幅原因,这份纯手写笔记已经被整理成了PDF文档,有需要AndroidFramework开发笔记完整文档的朋友可以扫描下方二维码找我领取!

 

4

资料获取

 

文中资料免费赠给参加训练营的学员
加薇薇老师微信报名训练营
立即领取
(如遇扫码频繁受限,点击左下角的阅读原文


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter