Android Framewoks
文章平均质量分 83
jiangxuqaz
专注Android开发
展开
-
深入理解Android事件分发机制
一、Android事件的入口(该文所引用的源码代码出自Android 5.1版本) 一直想搞清楚Android 事件分发的各个函数调用的关系,前几天突然想起Debug时会显示出线程函数调用的关系,于是,写了一个很简单的程序,在界面上显示一个Button,并且为这个Button注册onTouch事件,在里面打个断点:button.setOnTouchListener(new View.OnTouch原创 2015-07-12 22:17:46 · 2147 阅读 · 0 评论 -
Android 的消息机制
一、Handler机制的总结1、HandlerHandler对象是Message的接收者和处理者。用户使用Handler对象把Message添加到消息队列中;同时通过Handler的回调方法handleMessage()来对消息队列中的Message进行处理。Handler对象在构造时和某个Looper对象关联在一起(Handler构造函数中可以传入Looper实例,如果不传,Handler关联的L原创 2015-08-09 12:32:36 · 981 阅读 · 0 评论 -
Android动画学习--帧动画,补间动画,属性动画的基本用法
一、Drawable Animation(帧动画)帧动画主要是通过加载一系列的Drawable的资源来实现动画效果,每张图片设置一段展示的时间,相当于一帧,很多张图片连接起来,就是一段帧动画。一般帧动画通过在Drawable文件夹新建一个XML来实现,XML文件包含一个作为根节点,下面包含一系列子元素的节点,每个包含图片,和显示时间:<?xml version="1.0" encoding="utf原创 2015-08-19 22:59:22 · 1284 阅读 · 0 评论 -
深入学习Android异步任务-AsyncTask
一、AsyncTask的介绍与使用AsyncTask可以让程序进行异步工作,它在一个线程中执行某些操作,之后将结果返回给UI线程。使用AsyncTask类时,需要继承AsyncTask类并实现doInBackground()回调方法。要更新UI界面,需要实现onPostExecute(),并从doInBackground()方法中获得结果,最后,可以在UI线程中调用execute()方法来执行操作,原创 2015-08-19 22:40:18 · 674 阅读 · 0 评论 -
ubuntu 14.04 kylin 编译 android 5.0源码
因为工作中经常用到Android源码,同时,自己也想深入的学习一下Android Framework层的东西,于是,最近尝试学习编译源码,过程真可谓十分艰辛.最后终于成功.于是,我想很有必要记录过程中遇到的问题.原创 2015-05-02 10:56:44 · 4179 阅读 · 11 评论 -
MotionEvent 源码学习
在View被触摸时,会收到Framework传来的MotionEvent实例,封装了输入事件种类,坐标等信息,因此,要熟悉View事件的处理,首先要熟悉MotionEvent的一些常用方法和属性。输入事件的种类输入事件的种类比较多,一般常用的也就下面几种: ACTION_DOWN:按压动作的开始,是整个动作的开始 ACTION_UP:按压动作的结束,是整个动作的结束 ACTION_MOVE:手原创 2015-08-01 13:12:36 · 939 阅读 · 0 评论 -
Android View深入学习(二),View的布局(Layout)过程
View布局最开始是从DecorView开始的,在ViewRootImpl中的performTraversals方法中,调用了 performLayout(lp, desiredWindowWidth, desiredWindowHeight),开始对DecorView测量: private void performLayout(WindowManager.LayoutParams lp, int原创 2015-07-18 18:31:42 · 1099 阅读 · 0 评论 -
Android View深入学习(一),View的测量(Measure)过程
Android应用上面的View显示出来都必须经过测量,布局,和绘制这三个过程。我们知道PhoneWindow中的DecorView是界面最顶层的View,那么,最先绘制的View肯定是DecorView。在ViewRootImpl中的performTraversals方法中中,依次对DecorView进行测量,布局,和绘制: private void performTraversals() {原创 2015-07-18 11:55:28 · 1732 阅读 · 0 评论 -
Android View深入学习(三),View的绘制(Draw)过程
View绘制最开始是从最顶层DecorView开始的,在ViewRootImpl中的performTraversals方法中,调用了 performDraw,开始对DecorView进行绘制: private void performDraw() { if (mAttachInfo.mDisplayState == Display.STATE_OFF && !mReportNextD原创 2015-07-19 10:19:33 · 1714 阅读 · 0 评论 -
解析View中的MeasureSpec
MeasureSpec是View中的一个内部类,封装了父View传给子View的布局需求: public static class MeasureSpec { private static final int MODE_SHIFT = 30; private static final int MODE_MASK = 0x3 << MODE_SHIFT;原创 2015-07-19 23:29:55 · 1212 阅读 · 0 评论 -
Binder,Service,进程间通信学习总结
一、 本地Service与Binder的使用先继承Binder实现自己的Binder类,然后在Service中的onBind()中返回这个Binder的实例。在Activity中,通过onServiceConnected()获取Binder实例,Binder实例可以得到Service实例,从而可以调用Service里面的公共方法。 二、 通过Messenge原创 2015-04-10 19:12:57 · 1170 阅读 · 0 评论 -
源码分析Activity启动的流程
一般我们知道,Activity启动会依次调用Activity的onCreate,onStart,onResume方法,但是,我们心里肯定会有疑问,为什么会调用这些方法?,Activity实例是怎样获取的?要解开这些疑问,就必须分析Activity的源码。先来个总的流程图,然后再分析:一般,我们跳转Activity都会像下面这么写: Intent intent=new Intent();原创 2015-07-22 23:22:25 · 936 阅读 · 0 评论