
Android源码
Android源码
demokiller
只是一个程序猿
展开
-
offsetDescendantRectToMyCoords和offsetRectIntoDescendantCoords源码剖析
日常工作中经常需要对坐标系作转换,那么我们应该对这2个方法不会感到陌生。首先我们可以看一下这2个方法的源码。可以看到都调用了同一个offsetRectBetweenParentAndChild方法。然后我们看一下offsetRectBetweenParentAndChild方法。5916行是一个while循环,主要起到一个从子View一直回溯到this的作用。根据源码可以发现,方法一其实就...原创 2018-10-16 18:47:39 · 1501 阅读 · 0 评论 -
Android源码剖析:FocusFinder
由于工作研究,需要优化一下焦点寻找逻辑,所以首先研究一下Android原生逻辑。从源文件,我们可以看到,FocusFInder类大概1000行左右的代码量,并不多。我们可以发现FucusFInlde使用了单例模式,不过由于使用了ThreadLocal,所以每一个线程都会拥有一个副本。有2个方法可以寻找焦点,一种通过view,另外一种通过view的rec。我们可以看到上述...原创 2018-10-15 20:27:01 · 1230 阅读 · 1 评论 -
读取通知栏消息
android4.4以后的版本出现了一个NotificationListenerService(通知监听服务类),因此,我们只需要继承这个服务,然后在Manifest.xml中注册即可。package com.example.demo;import android.app.Notification;import android.app.Notification.Action;im...原创 2016-06-06 11:22:26 · 3275 阅读 · 0 评论 -
ViewGroup 拦截TouchEvent 源码分析
#ViewGroup#dispatchTouchEvent摘要// Handle an initial down.if (actionMasked == MotionEvent.ACTION_DOWN) { // Throw away all previous state when starting a new touch gesture. // The framework m...原创 2019-03-06 21:46:35 · 179 阅读 · 0 评论