
aosp
android 源码学习记录
gacmy
这个作者很懒,什么都没留下…
展开
-
XmlPullParser解析
XmlPullParser解析android 解析xml通过XmlPullParser接口解析的。它的解析顺序根据xml文档从上到下解析的XmlPullParser里面有几个属性:还是看代码琢磨吧 fun parseXml(){ var inputStream = assets.open("activity_main.xml") var xmlFactory = XmlPullParserFactory.newInstance() v原创 2020-12-16 22:27:27 · 870 阅读 · 0 评论 -
内核里面的数据结构链表,红黑树如何找到我们要的数据类型
最近看binder,发现里面的数据结构链表,红黑树结构体只有自己的节点类型,没有存放我们的数据,不像java,可以给链表一个泛型,传入数据类型结构。很好奇它怎么能根据节点找到我们要的数据。有了下面的demo,解释一下。#include <stdio.h>#include <stdlib.h>struct node{ struct node* next;};struct data{ struct node dnode; int type;};//java.原创 2020-12-03 22:28:54 · 164 阅读 · 0 评论 -
内部拦截法事件源码分析
子View重写dispatchTouchEvent方法 var mLastX = 0f var mLastY = 0f override fun dispatchTouchEvent(ev: MotionEvent): Boolean { val x = ev.x var y = ev.y when(ev?.action){ MotionEvent.ACTION_DOWN->{ .原创 2020-11-29 15:34:23 · 231 阅读 · 0 评论 -
滑动冲突外部拦截法源码分析
为了解决滑动冲突可以采用外部拦截法,就是重写父布局的onIntercepteTouchEvent方法:ACTION_DOWN 不拦截,ACTION_MOVE,达到父元素滑动条件就拦截,达不到就不拦截 override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean { var intercpted = false var x = ev?.x var y = ev?.y when(e.原创 2020-11-29 15:00:29 · 201 阅读 · 0 评论 -
View事件机制几点结论探究分析
当前布局(ViewGroup的子类)如果重写dispatchTouchEvent不调用父类的dispatchTouchEvent方法。不管这个dispatchTouchEvent方法返回true还是false,它的子View都将不会受到任何事件。原因:不调用父类ViewGroup的dispatchTouchEvent方法,不再有事件传递流程逻辑的进行.重写ViewGroup的dispatchTouchEvent,必须调用super.dispatchTouchevent()方法,否则事件无法传递下去.原创 2020-11-29 00:30:40 · 182 阅读 · 0 评论 -
android基础事件流程分析
建立嵌套的布局xml <com.g.grefresh.ViewGroup1 android:id="@+id/parent1" android:orientation="vertical" android:layout_width="300dp" android:background="@android:color/holo_orange_dark" android:layout_height="300dp">原创 2020-11-28 20:29:34 · 190 阅读 · 0 评论 -
Activity启动流程图(从Launcher启动)
原创 2020-11-24 20:21:14 · 324 阅读 · 0 评论