
android源码解读
带你解读android源码,进入一个全新的android世界。
_江南一点雨
Java攻城狮
展开
-
WmS详解(一)之token到底是什么?基于Android7.0源码
做Android有些年头了,Framework层三大核心View系统,WmS、AmS最近在研究中,这三大块,每一块都够写一个小册子来介绍,其中View系统的介绍,我之前有一个系列的博客(不过由于时间原因,该系列尚未收尾),小伙伴们自行查找。WmS和AmS这两个也需要我们一个小块一个小块来啃,那么今天我们就先来看看WmS中涉及到的一个小小的变量token,这个东西到底是什么?缘起token这个东西有原创 2016-11-18 18:05:35 · 9294 阅读 · 2 评论 -
WmS详解(二)之如何理解Window和窗口的关系?基于Android7.0源码
上篇博客(WmS详解(一)之token到底是什么?基于Android7.0源码)中我们简要介绍了token的作用,这里涉及到的概念非常多,其中出现频率最高的要数Window和窗口这一对搭档了,那么我们今天就来看看到底我们该如何理解Android系统中的Window和窗口。窗口这个概念,从不同的角度来看它的含义不一样,如果我们从WmS(WindowManagerService)的角度来看窗口,那么这原创 2016-11-19 22:29:25 · 4823 阅读 · 0 评论 -
WmS简介(三)之Activity窗口是如何创建的?基于Android7.0源码
OK,在前面两篇博客中我们分别介绍了WmS中的token,同时也向小伙伴们区分了Window和窗口的区别,并且按照type值的不同将Android系统中的窗口分为了三大类,那么本篇博客我们就来看看应用窗口(即Activity所对应的窗口)到底是怎么创建出来的,如果小伙伴们尚不理解WmS中的token,或者不清楚Window和窗口的区别,可以先看看下面两篇博客,可以帮助你理解本文:1.WmS详解(一原创 2016-12-01 16:38:35 · 4011 阅读 · 1 评论 -
View绘制详解(四),谝一谝layout过程
上篇博客我们介绍了View的测量过程,这只是View显示过程的第一步,第二步就是layout了,这个我们一般译作布局,其实就是在View测量完成之后根据View的大小,将其一个一个摆放在ViewGroup中的过程。OK,那我们今天就来聊聊这个过程。在本文之前我已经有过三篇博客来介绍View的绘制过程,那三篇文章有助于你理解本文:1.View绘制详解,从LayoutInflater谈起 2.View原创 2016-10-05 12:18:42 · 3505 阅读 · 0 评论 -
View绘制详解(三),扒一扒View的测量过程
所有东西都是难者不会,会者不难,Android开发中有很多小伙伴觉得自定义View和事件分发或者Binder机制等是难点,其实不然,如果静下心来花点时间把这几个技术点都研究一遍,你会发现其实这些东西都很简单。OK,废话不多说,今天我们就来看看View的测量。View的测量纷繁复杂,不过如果能够做到提纲挈领,其实也不难。那么今天,我们就先从View的测量谈起。本文主要涉及如下知识点:1.View的测原创 2016-10-04 13:37:55 · 6624 阅读 · 0 评论 -
View绘制详解(二),从setContentView谈起
本来今天该介绍View的测量了,可是要说View的测量,那就要从setContentView谈起了,setContentView本身涉及到的东西也是挺多的,所以今天我们就先来看看这个setContentView到底做了什么事。上篇文章我们介绍了LayoutInflater加载一个布局文件的原理,如果小伙伴们还没看过,请移步这里View绘制详解,从LayoutInflater谈起。现在使用原创 2016-09-27 22:48:30 · 4267 阅读 · 0 评论 -
View绘制详解,从LayoutInflater谈起
自定义View算是Android开发中的重中之重了,很多小伙伴可能或多或少都玩过自定义View,对View的绘制流程也有一定的理解。那么现在我想通过几篇博客来详细介绍View的绘制流程,以便使我们更加深刻的理解自定义View。如果小伙伴们还没用过自定义View或者用的不多的话,那么建议通过以下几篇文章先来热个身:1.Android自定义View之ProgressBar出场记2.android自定义原创 2016-09-24 23:56:25 · 5603 阅读 · 3 评论 -
玩转Android之Picasso使用详详详详详详解,从入门到源码剖析!!!!
Picasso是Squareup公司出的一款图片加载框架,能够解决我们在Android开发中加载图片时遇到的诸多问题,比如OOM,图片错位等,问题主要集中在加载图片列表时,因为单张图片加载谁都会写。如果我们想在ListView或者GridView或者RecyclerView中加载图片墙,那么这个时候对原图片的二次处理就显得非常重要了,否则就会出现我们上文说的OOM或者图片错位等。不过,如果你使用了原创 2016-08-23 14:57:35 · 8645 阅读 · 9 评论 -
从源码角度理解android动画Interpolator类的使用
做过android动画的人对Interpolator应该不会陌生,这个类主要是用来控制android动画的执行速率,一般情况下,如果我们不设置,动画都不是匀速执行的,系统默认是先加速后减速这样一种动画执行速率。 android通过Interpolator类来让我们自己控制动画的执行速率,还记得上一篇博客中我们使用属性动画实现的旋转效果吗?在不设置Interpolator的情况下,这个动画是先加速后原创 2015-10-17 16:55:07 · 5697 阅读 · 0 评论 -
从源码角度深入理解Handler
为了获得良好的用户体验,Android不允许开发者在UI线程中调用耗时操作,否则会报ANR异常,很多时候,比如我们要去网络请求数据,或者遍历本地文件夹都需要我们在新线程中来完成,新线程中不能更新UI,一个常规的解决方法就是在主线程中实例化一个Handler,在新线程中将消息封装在一个Message中,发送到主线程中,然后主线程来更新界面。这些都很简单,我们就不多说了,今天我主要想通过阅读源码来理解H原创 2015-10-18 16:45:22 · 3348 阅读 · 0 评论 -
从源码角度深入理解LayoutInflater
关于LayoutInflater,在开发中经常会遇到,特别是在使用ListView的时候,这个几乎是必不可少。今天我们就一起来探讨LayoutInflater的工作原理。一般情况下,有两种方式获得一个LayoutInflater实例: LayoutInflater inflater1, inflater2; inflater1 = LayoutInflater.from原创 2015-10-21 23:38:32 · 3556 阅读 · 1 评论 -
从源码角度深入理解Toast
Toast这个东西我们在开发中经常用到,使用也很简单,一行代码就能搞定: 1: Toast.makeText(this, "333", Toast.LENGTH_LONG).show();但是我们经常会遇到这样一种情况,比如说我们有两个按钮,每次点击之后就会弹出一个Toast,但是如果这两个按钮快速点击,我们看到的效果是这样的: 但实际上我们想要的效果应该是这原创 2015-10-24 12:02:03 · 3798 阅读 · 1 评论