
Android框架层
泼墨成空
从零开始,每天进步一点点。
展开
-
FrameWork之View绘制过程
我们已经知道View的绘制过程包括计算视图大小(measure)、为视图分配位置(layout)以及把视图绘制到屏幕上(draw)三个步骤,下面详细了解如何完成这三个步骤。 我们假设WmS已经将窗口创建完毕,现在我们要在一个Activity的onCreate()方法中调用setContentView(R.layout.chat_mesg);来绘制一个Activity的界面。下面跟着源码原创 2014-12-21 12:55:58 · 684 阅读 · 0 评论 -
BindService详解
Service启动得两种方式分别为startService()、bindService(),但是他们的使用场景是不一样的。。。原创 2016-04-27 16:19:16 · 6804 阅读 · 2 评论 -
Launcher启动过程详解
Android的Home界面是如何启动的?原创 2016-05-03 15:40:35 · 650 阅读 · 0 评论 -
Binder详解
最近在阅读源码时屡屡被Binder给绕进去了,感觉这玩意好像特别的重要,所以就单独的抽出来仔细的研究下,本文主要是从java层面来分析,对于底层内核的Binder驱动就不做深入探讨了,由于本文是以AIDL的使用情景来分析的,所以对于不会使用AIDL的童鞋先看另一篇文章http://blog.youkuaiyun.com/u012481172/article/details/50925381。废话不多说。原创 2016-04-26 16:59:43 · 4650 阅读 · 0 评论 -
Activity启动过程详解
如何启动一个Activity?当我们调用startActivity()或startActivityForResult()后是如何启动Activity的?Activity的启动模式分析原创 2015-11-05 12:52:49 · 5374 阅读 · 0 评论 -
FrameWork之View绘制过程(上)
上一篇说了一部分,今天继续。 我们首先应该清楚一个概念,即我们常说的“视图大小”,视图大小指的什么呢?应用程序开发时,我们经常在xml文件中使用android:layout_height和android:layout_width;属性来设置宽和高,这指的是视图的大小码? 当然不是!事实上,View系统希望我们明白,一个View画布(Canvas)是没有边界的,即无原创 2014-12-22 10:25:50 · 692 阅读 · 0 评论 -
Handler的实现原理及其与Message、MessageQueue关系详解
在Android中为我们提供了一个主线程和子线程之间的通信机制,这种机制就是利用Handler、Message、Looper和MessageQueue来彼此联系起来的。那么为什么要提供这么一种机制呢?因为Android是单线程模式的,所谓单线程模式就是说,在app启动时就会创建一个对应的唯一的一个主线程(ActivityThread实例),这个实例维护着界面ui的更新、用户的各种响应事件等。这些更原创 2015-08-13 15:39:17 · 2332 阅读 · 0 评论 -
AsyncTask详解
上篇介绍了Handler实现主线程和子线程间的通信,在Android中还提供了一种更方便使用的AsyncTask来实现主线程和子线程通信.使用AsyncTask就不用自己去开启子线程创建Handler、重写handlerMessage()等操作了,我们只需要一个AsyncTask类即可搞定。但是在使用场合上,它适用于操作时间短的场合(最多几秒钟),如果是长时间的操作不建议使用AsyncTask,而原创 2015-08-16 19:13:48 · 507 阅读 · 0 评论 -
FrameWork之View的绘制过程(下)
上一篇说了View测量逻辑调用,以及父视图如何影响到View的测量等概念,这一篇测量在代码中是怎么具体实现的。 首先说ViewGroup类吧,因为该类是所有容器类的父类,所谓容器类就是布局类,比如LinearLayout、TableLayout等,用来容纳VIew控件的。 ViewGroup提供了三个类似的方法用于对子视图进行measure()操作:原创 2015-09-02 09:19:11 · 466 阅读 · 0 评论 -
Setting模块深入分析
Preference在Setting模块中的使用。。原创 2015-09-03 16:14:47 · 1071 阅读 · 1 评论