# android_framework **Repository Path**: imagg/android_framework ## Basic Information - **Project Name**: android_framework - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-15 - **Last Updated**: 2025-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### oneplus3(t)+lineageos16.0 编译 https://gitee.com/imagg/android_framework/blob/master/oneplus3/lineage-build-simple-manual.md ### android-framework-Canvas_cpp-drawText **android-framework监控 `Canvas::drawText`** atrace监控、 http://ui.perfetto.dev/ 看到 函数SkCanvas::drawTextBlob 调用 但 但不到入参文本 : [skia-canvas-trace-doing.md](https://gitee.com/imagg/android_framework/blob/master/oneplus3/skia-canvas-trace-doing.md) ### xxx Android中高级面试题笔记题知识大全(PDF免费下载): https://nav.vpssw.com/899.html ### WMS ##### 1 [Android+Framework精编内核解析(1).pdf #page=440](https://gitee.com/imagg/android_framework/raw/master/Android+Framework%E7%B2%BE%E7%BC%96%E5%86%85%E6%A0%B8%E8%A7%A3%E6%9E%90%EF%BC%881%EF%BC%89.pdf#page=440) WMS 是窗口的管理者,它负责窗口的启动、添加和删除,另外窗口的大小和层级也是由 WMS 进行管理的。窗口管理的核心成员有 DisplayContent、WindowToken 和WindowState。 ##### 2 [Android+Framework+开发揭秘.pdf #page=129](https://gitee.com/imagg/android_framework/raw/master/book2/Android+Framework+%E5%BC%80%E5%8F%91%E6%8F%AD%E7%A7%98.pdf#page=129) “Window”表明它是和窗口相关的,“窗口”是一个抽象的概念,从用户的角度来讲,它是一个“界面”;从 SurfaceFlinger的角度来看,它是一个Layer,承载着和界面有关的数据和属性;从WMS角度来看,它是一个 WIndowState,用于管理和界面有关的状态。 ##### 3 [Android2020+BAT面试题整合(含答案)+(2).pdf #page=99](https://gitee.com/imagg/android_framework/raw/master/book2/Android2020+BAT%E9%9D%A2%E8%AF%95%E9%A2%98%E6%95%B4%E5%90%88%EF%BC%88%E5%90%AB%E7%AD%94%E6%A1%88%EF%BC%89+(2).pdf#page=99) ViewTree: 窗口所承载的控件树。 ##### 4 [Android2020+BAT面试题整合(含答案)+(2).pdf #page=101](https://gitee.com/imagg/android_framework/raw/master/book2/Android2020+BAT%E9%9D%A2%E8%AF%95%E9%A2%98%E6%95%B4%E5%90%88%EF%BC%88%E5%90%AB%E7%AD%94%E6%A1%88%EF%BC%89+(2).pdf#page=101) ```java // 递归加载根View的所有子View rInflateChildren(parser, temp, attrs, true); ``` ##### 5 [Android面试题集2020整理二.pdf #page=78](https://gitee.com/imagg/android_framework/raw/master/book2/Android%E9%9D%A2%E8%AF%95%E9%A2%98%E9%9B%862020%E6%95%B4%E7%90%86%E4%BA%8C.pdf#page=78) 整个 View 的布局就是一棵树,...按照树形结构遍历...View ...绘制。 ViewRoot.java ... mView.draw(canvas),... View.java . draw 函数: 递归绘制整个窗口...步骤: 1. 绘制背景; 2. ... 3. 绘制 View 本身的内容,... View.onDraw(canvas) ... 绘制 线条 / 圆 / **文字** ... **允许自定义 View.onDraw(canvas),因此在该方法中 可能拿不到界面上的文字** **但 canvas只有一个 , 因此 理论上 监控canvas 可以获得界面上的文字?** [6.0.1_r10/SkiaCanvas.cpp::drawText](http://androidxref.com/6.0.1_r10/xref/frameworks/base/libs/hwui/SkiaCanvas.cpp#drawText) [自定义View.onDraw例子](https://blog.csdn.net/jb_home/article/details/110232566) ##### 6 [Android面试之百题经典.pdf #page=35](https://gitee.com/imagg/android_framework/raw/master/book2/Android%E9%9D%A2%E8%AF%95%E4%B9%8B%E7%99%BE%E9%A2%98%E7%BB%8F%E5%85%B8.pdf#page=35) OnDraw():绘制视图。ViewRoot创建一个Canvas对象,然后调用OnDraw()。 含六个步骤: - 绘制视图的背景; - 保存画布的图层(Layer); - **绘制View的内容**; - 绘制View子视图(如果没有就不用); - 还原图层(Layer); - 绘制滚动条 ##### 7 [可能是2020年最全最详细的Android面试题及答案解析(379页).pdf #page=350](https://gitee.com/imagg/android_framework/raw/master/book2/%E5%8F%AF%E8%83%BD%E6%98%AF2020%E5%B9%B4%E6%9C%80%E5%85%A8%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Android%E9%9D%A2%E8%AF%95%E9%A2%98%E5%8F%8A%E7%AD%94%E6%A1%88%E8%A7%A3%E6%9E%90%EF%BC%88379%E9%A1%B5%EF%BC%89.pdf#page=350) 二. android view 绘制机制和加载过程,请详细说下整个流程 1.ViewRootImpl ... performTraversals(), ... performMeasure() 、 performLayout 、 performDraw()。 2.performMeasure() ... 3.performLayout()... 4.performDraw()调用最外层ViewGroup 的 draw(): - background.draw()(绘制背景)、 - **onDraw()(绘制自己)**、 - dispatchDraw()(绘制子 View)、 - onDrawScrollBars()(绘制装饰)。 5.MeasureSpec ... 6.三种方式获取 measure()后的宽高: ... ### xxx 00.Android进阶资料/22.Android 源码分析实战 - 授权时拦截 QQ 用户名和密码(上) : https://pan.baidu.com/s/1ixvj4p_WQ7UiXmA1PA-g-A?pwd=6d4h#list/path=%2F [03. hook 拦截 PMS 与 AMS.wmv](https://gitee.com/imagg/android_framework/raw/master/doc/pic/hook-PMS-AMS-01.png) https://www.androidos.net.cn/android/9.0.0_r8/xref/frameworks/native/libs/binder/ProcessState.cpp ### 【80集框架源码解析,sdk28】 #### view绘制: - https://www.bilibili.com/video/BV1zb4y1b7by?t=372.2&p=111 , - `ViewRootImpl.java:performDraw()` https://www.bilibili.com/video/BV1zb4y1b7by?t=526.8&p=111 ### 【 Framework源码分析 】 #### view绘制 : - https://www.bilibili.com/video/BV1EE421N7zk?t=1522.9&p=56 : `ActivityThread.java:handleResumeActivity():wm.addView(decor,...);` #### Surface: - https://www.bilibili.com/video/BV1EE421N7zk?t=925.0&p=82 #### SkiaCanvas.cpp : - https://www.bilibili.com/video/BV1EE421N7zk?t=1220.2&p=83