![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
文章平均质量分 79
a2923790861
这个作者很懒,什么都没留下…
展开
-
Android Studio断点调试时行号对应不上问题解决
有时候我们debug 的时候会发现程序真正断点的位置和我们打断点的位置不对应,例如:工程compileSdkVersion为28,但程序运行在29的设备上时。 但是当你把compileSdkVersion 修改为29以后,运行在29的设备上时,还是会发现真正断点的位置和我们打断点的位置不对应。 问题产生的原因是因为我们使用了真机调试,国内的手机android系统基本上都是定制过了,源码很可能被改过了所以行号发生了变化。...原创 2021-08-20 10:29:07 · 946 阅读 · 0 评论 -
RecyclerView源码分析(三)--布局流程
在上一篇文章中分析了RecyclerView的Measure过程。在Measure过程中的自动化Measure中,应用过布局流程的,得到Child的边界值,但是当时我们略过了,那么今天接着分析RecyclerView的布局过程。PS:源码版本为androidx1.0.0版本,如果下面与你的源码有出入,请核实版本是否相同。RecyclerView的Layout过程首先贴一下源码,不同版本的RecyclerView源码会不同,如果你也打开了源码,请确定源码版本是否一致。 protec转载 2020-11-23 17:44:21 · 208 阅读 · 0 评论 -
RecyclerView源码分析(二)--测量流程
RecyclerView是一个ViewGroup,那么也就是一个View。那么View的绘制过程是measure到layout到draw的一个顺序。然而一个ViewGroup的目的是盛放其它View的,那么最主要的还是其measure和layout过程。那么我们今天就来看看RecyclerView的measure过程。PS:源码版本为androidx1.0.0版本,如果下面与你的源码有出入,请核实版本是否相同。RecyclerView的Measure过程如果你这个时候也打开了源码,你应该会发转载 2020-11-23 17:07:27 · 337 阅读 · 0 评论 -
RecyclerView源码分析(一)--整体设计
扯淡的导语好像自从RecyclerView这个控件一出现,对这个控件使用方法的文章就层出不穷。我是一只都在使用这个控件,但是从来没有过深入的研究它。对于这样一个人人吹捧的控件,怎能不去研究一下。本想找找现成的分析源码的文章,结果并没有如愿。以前都是指望老罗,现在要亲自动手了。我是一个坚持写干货的人,这一段你就当没看到。RecyclerView这个控件出来已经有一段时间了,如果看这篇文章的你,还没有使用过这个控件。那请先去学习怎样使用。不然看也白看。这里奉上一些关于介绍RecyclerView使用.转载 2020-11-23 16:42:59 · 182 阅读 · 0 评论 -
ViewPager源码解析
想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。PagerAdapter 介绍 ViwePager 缓存策略 ViewPager 布局处理 ViewPager 事件处理 相关内容PagerAdapter 介绍ViewPager使用非常简单,看下面代码片段viewPager.setAdapter(new Adapter());private class Adapter extends PagerAdapter {.原创 2020-11-23 16:37:57 · 1013 阅读 · 0 评论 -
Android系统源码分析--Activity的finish过程
上一篇我们分析了Activity的启动流程,由于代码量很大,还是没有分析的很详细,但是基本流程都出来了,更详细的东西还是要去看源码。这一章来分析Activity的finish过程,分析一下finish的过程到底做了哪些处理,最后对Activity的整个启动过程以及finish过程绘制流程图,以方便我们记忆。finish代码分析// /frameworks/base/core/java/android/app/Activity.java /** * Call this .原创 2020-10-10 14:15:06 · 1959 阅读 · 1 评论 -
ViewRootImpl与View和WindowManager
在https://blog.csdn.net/a2923790861/article/details/108400833中,我们讲到了无论是Activity、PopupWindow、Dialog,它们最后都是调用windowManager.addView(decorView),进而调用了ViewRootImpl.setView方法来完成布局展示,那么这个ViewRootImpl到底是什么。ViewRootImpl看到ViewRootImpl想到可能会有ViewRoot类,但是看了源码才知道,Vi..原创 2020-09-27 16:49:27 · 326 阅读 · 0 评论 -
Android Touch事件派发过程详解
Android事件投递(主要以触摸事件为主)的工作流程分为4个部分,如图所示:(1) 采集即对“硬件源”所产生的原始信息进行收集的过程。它需要Linux内核驱动的支持,Android系统则是通过/dev/input/下的节点来访问当前发生的事件。(2) 前期处理上一步采集到的信息为“原始数据”,这其中一部分内容对应程序而言并不是“必须”的,而且格式上也相对烦琐,所以需要先经过前期的提炼和转化。(3)WMS分配WindowManagerService是窗口的大主管,同时也是Inpu...原创 2020-09-04 18:28:37 · 958 阅读 · 0 评论 -
Activity、PopupWindow、Dialog布局加载屏幕源码分析
Activity的setContentView首先查看Activity的setContentView的方法: public void setContentView(@LayoutRes int layoutResID) { //getWindow()获取activity内部对象mWindow(PhoneWindow类型)并调用它的setContentView方法 getWindow().setContentView(layoutResID); .原创 2020-09-25 15:02:26 · 262 阅读 · 0 评论 -
源码解析——LiveData & Lifecycles 完整体系详解
LiveData 作为 Jetpack 的一部分,扛着 “告知界面视图发生数据变化” 的责任,常与 Lifecycles 联合使用用于数据层驱动视图层作出变化的手段。随着项目迭代,我们的项目 MVP 架构中 rxjava 驱动更新视图演化成 MVVM 架构中 rxjava + LiveData + Lifecycles 组合,rxjava 仅仅作为数据源产生-处理的手段,最后输出到 LiveData 由其根据 Lifecycles 的生命感知作出对 UI 调整。 当然,rxjava + LiveData .转载 2020-08-14 17:11:23 · 412 阅读 · 0 评论 -
android TabLayout+ViewPager滑动ViewPager、选中Tab源码追踪
TabLayout+ViewPager+Fragment的用法public class TabLayoutActivity extends AppCompatActivity implements{ TabLayout tabLayout; ViewPager viewPager; List<Fragment> fragments = new ArrayList<>(); List<String> titles = new原创 2020-07-30 10:30:01 · 512 阅读 · 0 评论 -
Recycleview之setAdapter源码分析
public void setAdapter(@Nullable Adapter adapter) { // bail out if layout is frozen // 如果布局被冻结的话,重新激活布局 setLayoutFrozen(false); //真正设置适配器的方法. setAdapterInternal(adapter, false, true); //设置数据集将要完全改变 ...原创 2020-07-23 15:53:46 · 870 阅读 · 0 评论 -
Android View体系之Touch事件传递源码解析(8.0)
技术背景从 View 体系中认识 Touch 事件传递,暂时留一条线索:" View 最原始的事件从哪里来? ”从 WindowCallbacKWrapper开始的。那么,我们开始吧!tip:阅读源码前,建议读懂Android View体系之基础常识及技巧。千里之行,始于Activity从window层开始下发事件后,Activity开始处理事件,会调用ViewGroup#dispatchTouchEvent Activity.java ...转载 2020-06-24 10:22:15 · 585 阅读 · 0 评论 -
源码解析 之 xml布局是如何生成view
这篇文章主要解决一个疑惑 “layout目录下XML文件是如何转化为View对象”。源码阅读不应该是味如嚼蜡,带着问题去刨根问底可能会发现不同的世界。整篇文章较长,总共分为5个小结,如果你能完整地阅读完这5节并仔细琢磨其细节,相信必定会有很大收获。如有错误之处,望指出XML to View之日常 读懂LayoutInflater并不难 寻找XML解析入口是关键 递归解析子节点 反射标签View初现你的任何问题,都可以在源码中得到答案,只是你愿不愿意而已。XML to Vieww之日转载 2020-06-24 10:11:53 · 694 阅读 · 0 评论