
android 源码分析
文章平均质量分 93
qinxue24
冠捷科技(AOC)、融云即时通讯(RongCloud)、滴滴出行、抖音
展开
-
Android中View绘制过程(一) decorView绘制
Activity的显示是在onResume()之后这一点大家都知道,代码在ActivityThread中,还是不去管Activity的启动过程,只去看一下在没有setContentView的时候decorView这里是怎么添加的并且第一调用performTraversals()的。原创 2017-06-14 18:59:26 · 611 阅读 · 0 评论 -
Android 线程池(一) FixedThreadPool、CachedThreadPool、SingleThreadPool 分析
目录线程池代码分析一、ThreadPoolExecutor1、构造方法2、测试代码3、源码分析新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowch...原创 2019-05-30 21:15:23 · 1724 阅读 · 0 评论 -
Android 中的 Handler 同步分割栏
Handler异步实现控制Message的处理的,异步线程可以在Handler中设置异步卡子,设置好了以后,当前Handler的同步Message都不再执行,直到异步线程将卡子去掉。一、postSyncBarrier 设置同步卡方法是隐藏的需要反射获取API版本<23方法位于Looper中,API版本>23位于 MessageQueue中作用是为Handler设置卡子...转载 2018-05-21 19:06:47 · 731 阅读 · 0 评论 -
andorid状态机StateMachine
状态机的代码android并没有开放使用,在源码的frameworks/base/core/java/com/android/internal/util里StateMachine.java 、State.java 、IState.java,就这三个文件,看过源码后表示设计很精妙,必须记录下来。一、状态机我的理解是是可以更根据当前的状态和外界的的信息输入,采取不同的对应和状态的切换。androi原创 2017-09-05 15:48:28 · 450 阅读 · 0 评论 -
四大组件之BroadcastReceiver
四大组件之BroadcastReceiver,进程间通信的一种方式原创 2017-06-25 17:29:10 · 277 阅读 · 0 评论 -
四大组件之Service
四大组件第二重要的就是Service了,有两种方式来启动,startService和BindService原创 2017-06-25 17:27:34 · 248 阅读 · 0 评论 -
四大组件之Activity
四大组件之首Activity,联系图形界面和用户的交互,分下一下启动初始化的过程。先将调用栈打印出来:在onCreate里执行Log.d(TAG,Log.getStackTraceString(new Throwable()));打印出如下的Log,从Lanunch启动Activity。06-25 13:15:56.485 22075-22075/com.xue.qin.demo.原创 2017-06-25 13:17:17 · 243 阅读 · 0 评论 -
android 缓存机制之 LruCache
LruCache将数据缓存在内存中,虽然app的内存有限但是缓存一些必要的小一些的资源还是很有必要的,新建如下cache。 LruCache mMemoryCache = new LruCache(cacheSize) { @Override protected int sizeOf(String key, Bitmap bitmap) {原创 2017-07-13 14:54:31 · 555 阅读 · 0 评论 -
Andorid 中TouchEvent理解(四)滑动冲突的解决
理解了TouchEvent之后,就是为了更好的解决滑动冲突。转载 2017-06-24 10:22:28 · 406 阅读 · 0 评论 -
Andorid 中TouchEvent理解(三) TouchEvent分发机制(onInterceptTouchEvent()回调返回值区别)
上一篇中整体的事件分发流程,分成两步 第一步确定TargtView,第二步传递事件。在第一步原创 2017-06-20 15:20:10 · 536 阅读 · 0 评论 -
Andorid 中TouchEvent理解(二) TouchEvent分发机制(onTouchEvent()回调返回值区别)
接上篇由底层传来的TouchEvent被ViewPostImeInputStage这个责任链节点来处理,使用DecorView的的dispatchTouchEvent。需要知道的是ViewGroup和View中的方法。ViewGroup:dispatchTouchEvent(),onInterceptTouchEvent() 没有重写onTouchEventView :dispatch原创 2017-06-19 16:06:46 · 1981 阅读 · 0 评论 -
Android中View绘制过程(六) performDraw
performTraversals()中执行了performmeasure确定了每一个View的width,和height, 就会调用performLayout,确定这些View在屏幕的位置,调用performDraw()在每一个View将图像画在屏幕上自己layout确定的位置上就可以了。原创 2017-06-19 11:28:20 · 1171 阅读 · 0 评论 -
Android中View绘制过程(五) performlayout
performTraversals()中执行了performmeasure确定了每一个View的width,和height,就会调用performLayout,确定这些View在屏幕的位置。layout方法也是由decorView自上而下的递归调用,知道调用到叶子节点。就将所有的View位置确定好了,在performlayout()中开始Decor调用layout,代码如下原创 2017-06-19 08:50:35 · 846 阅读 · 0 评论 -
Android中View绘制过程(四) performMeasure
performTraversals()功能和名字一致,开始遍历。 方法中首先开始测量,原创 2017-06-18 17:03:33 · 473 阅读 · 0 评论 -
Android中View绘制过程(三) setContentView()到performTraversals()
Android中View绘制过程(三) setContentView()到performTraversals()原创 2017-06-18 15:48:50 · 623 阅读 · 0 评论 -
Android中View绘制过程(二) Activity的decorView , Window ,ViewRooImpl 分别什么时候创建
源码读起来老是容易忘掉,备忘一下记号。decorView , Window 是通过ViewRooImp来建立联系的,那么他们分别的创建时间点是在哪?看了这个忘了那个。。。。ActivityThread.java 中performLaunchActivity() 创建Activity()activity = mInstrumentation.newActivity(原创 2017-06-16 20:26:02 · 1252 阅读 · 1 评论 -
Google JetPack 之 DataBinding
DataBindingDataBinding 是以声明的方式,将布局中组件与应用程序源数据绑定在一起的框架库。作用:1.将布局组件与源数据绑定,使源数据变化的同时布局组件及时同步更新。2.减少Activity中View的定义(private View view)与初始化(findViewById),让Activity代码更专注于界面的逻辑更新。3.可自定义适配器,实现扩展组件的属性功能。...原创 2019-06-05 10:46:59 · 421 阅读 · 0 评论