Android源码
文章平均质量分 91
洌冰
没有
展开
-
红橙Darren视频笔记 Behavior的工作原理源码分析
主要coordinatorlayout的代码来自coordinatorlayout-1.0.0-sources.jar本文从源码介绍 CoordinatorLayout 的 behavior 怎么工作的1 behavior的使用方法不管是自定义behavior还是使用Android自带的behavior, 放的都是全类名,且外面包含CoordinatorLayout ,behavior的所在xml节点必须是CoordinatorLayout 的直接子布局(不能隔层嵌套) Behavior 是layou原创 2021-01-05 00:24:21 · 323 阅读 · 0 评论 -
红橙Darren视频笔记 ViewGroup事件分发分析 基于API27
本节目标,通过案例,先看程序运行结果,然后跟踪源码,理解为什么会有这样的输出,继而理解view group的分发机制,感觉和证明题很像呢。考虑以下程序的运行结果:case1:public class MyView extends View { private static final String TAG = "MyView"; public MyView(Context context) { this(context, null); } publi原创 2020-12-24 00:48:58 · 186 阅读 · 1 评论 -
红橙Darren视频笔记 View事件分发源码分析 基于API29
首先Android的事件分发是基于责任链设计模式的 如果不理解责任链设计 可以参考:https://blog.csdn.net/u011109881/article/details/59631314提示:本文结合自己的代码实践更有助于理解一 几个典型案例public class MyView extends View { private static final String TAG = "MyView"; public MyView(Context context) {原创 2020-12-20 13:26:45 · 229 阅读 · 1 评论 -
红橙Darren视频笔记 view的绘制流程(下)基于API27
关于View的测量代码是如何执行到的以及performMeasure的具体流程可以参见上一篇笔记之前忘了说明 view的绘制流程里面用到的设计模式是模板设计模式 可以参考这篇文章https://blog.csdn.net/u011109881/article/details/82453771模板设计模式就是父类制定了操作流程(空方法)等着子类去实现(类似hook的用法)上一篇讲到ViewRootImpl的performTraversals 方法种执行了三个方法performMeasure(chil原创 2020-12-14 23:59:56 · 273 阅读 · 0 评论 -
红橙Darren视频笔记 view的绘制流程(上) onMeasure测量代码分析 基于API27
一.准备工作Activity的onCreate和onResume调用过程从ActivityThread的handleLaunchActivity开始进行代码跟踪 private void handleLaunchActivity(ActivityClientRecord r, Intent customIntent, String reason) { ... Activity a = performLaunchActivity(r, customIntent);/原创 2020-12-14 01:52:15 · 306 阅读 · 0 评论 -
红橙Darren视频笔记 面试题 为什么view获取宽高为0 onCreate onResume view.post源码浅析(继承activity api27)
面试题下面的输出分别为多少 为什么<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height原创 2020-12-13 00:49:20 · 186 阅读 · 1 评论 -
红橙Darren视频笔记setContentView源码分析 xml加载的过程
setContentView过程分析从继承Activity的类开始进行分析MainActivitysetContentView(R.layout.activity_main);Activity/*** Set the activity content from a layout resource. The resource will be* inflated, adding all top-level views to the activity.** @param layoutResID原创 2020-12-12 22:10:31 · 173 阅读 · 0 评论