
源码阅读
文章平均质量分 88
xingzhong128
这个作者很懒,什么都没留下…
展开
-
CursorLoader代码阅读
前言Loader是Android3.0之后自带的异步请求框架,集成到了Activity和Fragment中,实现和Activity生命周期联动效果,而且它还可以监听数据源,如果数据源发生了变化能够接收到通知。除此之外Loader还能够缓存后台请求到的数据,等到界面切换到前台再更新界面,避免重复的网路请求。Loader源码先看Loader里定义的成员变量,主要有id,context、原创 2018-01-15 09:42:09 · 246 阅读 · 0 评论 -
AppCompatActivity内部生成AppCompatView源码阅读
前言AppCompatActivity中定义的控件可以很容易的支持各种新的特性,但是在源代码中使用的依然是普通的View对象,这里其实是AppCompatActivity在生成控件的过程中做了替换操作将普通的View替换成了CompatView类型。这种技术在很多换肤功能实现中经常会使用到,这里就通过代码阅读来了解具体的实现过程。代码分析AppCompatActivity继承自Fr...原创 2018-08-09 16:40:40 · 763 阅读 · 0 评论 -
Activity展示流程源码阅读
前言前面查看了Activity启动的整体流程,现在来看一看Activity里定义的视图树是如何展示到手机屏幕上的。首先开发者通常都会在onCreate里定义setContentView(布局文件ID),再运行Activity就能够将布局文件中的视图展示出来,在底层实际做做展示以及与用户交互都是有WindowManagerService(简称WMS)服务来进行的,与WMS做交互的主要是Windo...原创 2018-08-03 18:14:31 · 519 阅读 · 0 评论 -
Android BaseDexClassLoader源码阅读
前言Java的类加载使用父类加载机制,Android开发采用的同样是Java语言,不过它并没有采用JVM实现的ClassLoader类,Android内部使用的是BaseDexClassLoader、PathClassLoader、DexClassLoader三个类加载器实现从DEX文件中读取类数据,其中PathClassLoader和DexClassLoader都是继承自BaseDexCla...原创 2018-05-27 17:15:46 · 4345 阅读 · 0 评论 -
Android事件派发源码阅读
前言Android事件派发最开始从Activity派发给Window,Window又派发给了内部的DecorView也就是视图树,在视图树内部事件派发主要就是ViewGroup和View内部流转,这些执行流程在前面的示例初探中已经讲过,现在通过ViewGorup和View的实现源码来查看视图树内部的事件派发逻辑。源码分析事件序列最开始从ACTION_DOWN开始,由Activity...原创 2018-04-27 14:07:49 · 221 阅读 · 0 评论 -
Service启动过程源码阅读
前言Service作为四大组件中较常用的组件,通常和各种需要后台执行的业务相关连。Service有两种启动方法startService/bindService,对应的停止操作也分成两种stopService/unbindService,现在来阅读下Android的实现源码深入理解Service的工作原理过程。startService/StopService分析startServic...原创 2018-04-21 09:26:11 · 841 阅读 · 0 评论 -
Activity启动过程源码阅读
前言Activity是Android应用程序的脸面,几乎所有的UI元素都要放到它上面展示。开发者想要开发出高质量的应用程序,掌握Activity工作原理就非常有必要了。这里通过应用中常用的startActivity方法作起点,查看启动一个新的Activity执行的代码逻辑。代码分析查看最简单的startActivity(intent);方法实现,它实际上调用了startActivi...原创 2018-04-20 22:54:53 · 251 阅读 · 0 评论 -
Android消息机制源码阅读
前言Android客户端开发和消息机制最常见的就是网络请求数据更新到UI线程,用户在子线程中通过网络请求获取数据,由于Android不支持直接在子线程中修改UI控件,需要把数据转交到UI线程中再更新控件界面。这个过程通常要借助Handler类调用post/sendMessage系列方法将操作提交到消息队列中,主线程不断取消息队列里的消息并执行回调。为了更好地理解整个通信过程,这里查看底层的实现...原创 2018-04-20 15:29:26 · 199 阅读 · 0 评论 -
Android过渡动画源码阅读
前言Android新引入的过渡动画主要使用TransitionManager来实现,主要的实现接口就是go和beginDelayedTransition两个方法。为了能够更好的理解过渡动画的实现机制,现在来分析一下它的实现代码,现在先从go方法开始查看内部的实现。代码分析找到TransitionManager.go的实现代码,它又调用了changeScene方法,并且传递进了sDe...原创 2018-04-11 21:16:49 · 497 阅读 · 0 评论 -
属性动画源码阅读
前言属性动画是Android3.0之后开发的主流动画框架,开发者除了能够熟练使用它做动画效果之外,还需要近一步了解属性动画的实现原理,这里就来简单的分析一下属性动画的代码实现。代码分析补间动画的偏移缩放等操作都可以通过属性动画ObjectAnimator来实现,通常实现的代码如下所示:public static ObjectAnimator ofFloat(Object t...原创 2018-04-10 19:44:20 · 219 阅读 · 0 评论 -
Android补间动画源码阅读
前言Android补间动画是一项相对古老的动画框架,补间动画通过在Canvas上做绘制操作实现动画效果,相对于后来的属性动画效率要高,如果有些动画只是展示效果,那么补间动画是一种不错的选择。系统内置了alpha、translate、scale和rotate四种动画效果,现在通过这四种简单的动画来看一下补间动画的实现原理。内置效果补间动画可以使用xml来定义也可以使用源代码的方式定义...原创 2018-03-26 21:27:15 · 481 阅读 · 0 评论 -
LoaderManager源码阅读
前言前面已经学习了CursorLoader的代码实现,但是对于它如何集成到Activity/Fragment中还是有些迷惑的,好在Android提供了LoaderManager的代码实现,通过阅读LoaderManager实现可以更好的理解Loader的整体工作机制。LoaderManager抽象类LoaderManager首先定义的是一个回调接口,这个接口专门用来给使用Loade原创 2018-01-15 09:43:16 · 242 阅读 · 0 评论 -
CoordinatorLayout及Behavior实现源码阅读
前言MD设计风格引入了CoordinatorLayout布局,它能够协调子控件之间的操作,使得子控件相互能够做一些复杂的交互操作,这些交互主要通过Behavior对象来实现,这里就来查看一下Behavior和CoordinatorLayout布局实现源代码。代码分析首先查看Behavior的源码,它是CoordinatorLayout的一个内部抽象类,主要的接口可以大致上分成三组:...原创 2018-08-01 19:48:10 · 321 阅读 · 0 评论