android 源码
_宏亮
如果你愿意,从现在开始一切都不晚
展开
-
android-Handler源码解析
首先提出问题handler与loop的关系,一个线程能否创建多个handlerloop一直循环为什么不会卡死handler的内存泄漏原因,继承handler不会发生内存泄漏查看Handler的api我们可以看到,Handler主要为我提供了两个大体的作用post相关方法,如post(Runnable) postAtTime(Runnable,long)等send相关方法,如sen...原创 2018-09-24 00:04:25 · 295 阅读 · 0 评论 -
View-view的measure过程
上一篇我们梳理了DecorView加载流程,其中涉及到measure、layout、draw方法,这一篇详细介绍view的measure过程。measure的过程主要用于测量一个View的大小,在层级嵌套的View中,View大小首先取决于父`View的设置大小的方式`,然后与`自身的需要大小`也有关。在这样的场景中Android将View的测量模式和模式下的大小封装成一个`MeasureSpec`对象 ,然后结合自身`LayoutParams`去设置一个View的大小原创 2019-07-27 15:04:31 · 256 阅读 · 0 评论 -
View-setContentView源码解析
我们经常编写的xml文件用于界面显示,但在我们设置了setContentView()后,你是否知道View是这么被解析,然后被绘制显示出来。这篇文章主要从setContentView切入,去查看DecorView加载、以及measure,layout等操作,如何分发到子View。相关源码来自`android Api 28`原创 2019-07-27 15:02:33 · 178 阅读 · 0 评论 -
view-Canvas
Canvas原创 2019-07-27 15:00:47 · 682 阅读 · 0 评论 -
view-View基础重认识
View基础重认识前言View的构造方法View的位置参数View的相关方法View与Activity的生命周期进入Activity点击Home键回到桌面重新进入App退出Activity前言android中的View形形色色,我们刚开始接触Android的时候就开始于它打交道了,但View以及与View相关的周边的知识点也是非常的繁多,并且从初级到高级我们都有很多可以学习的地方。我所知道的讲...原创 2019-07-27 14:59:17 · 487 阅读 · 0 评论 -
android-HandlerThread、IntentServer
我们知道Handler可以进行线程间切换,如果在子线程实现looper的创建与循环,那么就实现了子线程异步操作的消息处理机制,这也就是android 为我们提供的HandlerThread原创 2019-06-25 20:57:41 · 377 阅读 · 0 评论 -
android-更新UI的几种方式
在android中,为了避免在子线程中更新UI造成多线程安全问题(View中更新UI的方法大多不是同步方法),就将UI的更新切换到主线程更新,使用的就是android的Handler机制。在android中可以直接使用Handler进行更新UI,也可以使用Handler的实现进行更新UI,接下来我们盘点下android中更新UI的几种方法,也算是对Handler学习的使用原创 2019-06-25 20:50:37 · 1181 阅读 · 0 评论 -
android-重新理解Handler
Android中UI绘制方法大多是非线程按安全的,为了避免多线程下更新UI,造成UI绘制或显示异常,android为我们提供了Handler机制。Handler可以将子线程中的UI操作切换到主线程中执行,保证UI安全。在使用的过程中我们只关注Handler,但Handler机制的实现还需要Looper、Message和MessageQueue的协助,有这四个类才能构成android消息机制原创 2019-06-12 23:24:56 · 283 阅读 · 0 评论 -
android-App启动过程
APP启动流程涉及的类和调用的方法还是蛮多的,做为android应用开发其实知道整个流程和重要的调用方法就够了。但是在了解整个流程前,得先知道涉及的相关知识,这样才能更好理解后面整个流程。后面源码分析基于Android-2.2_r1。原创 2018-09-24 00:17:04 · 10510 阅读 · 1 评论 -
android-Android系统启动
平常我们使用手机的是不是一直在点击一个个的App图标,然后由系统帮我们打开App去使用。看起来很简单,其实系统底层帮我们做了很多事情。现在我们从App应用开发的角度带着问题去了解底层的部分实现。android系统是怎么启动的怎么看到的系统桌面android系统是怎么启动的当Android手机通电启动后,会有一个类似计算机系统的引导程序BootLoader,用于初始化硬件设备,建内存空间...原创 2018-09-24 00:09:55 · 309 阅读 · 0 评论 -
android-跨进程通信-AIDL解析
Aidl是什么Aidl支持哪些数据类型Aidl的使用Aidl生成文件的讲解Aidl(Android接口定义语言)是Android提供的一种ICP通信机制。首先学习Aidl我们心中要有Clien端和Server端的概念,并且在Clien和Server通信过程中涉及到Binder的相关知识。Aidl支持的数据类型一共有4种Java的基本数据类型List和map: ...原创 2018-09-24 00:07:26 · 273 阅读 · 0 评论 -
view-源码角度理解Android事件分发
对于Android的事件分发,很早之前是看的图解 Android 事件分发机制,其中的事件分发的U型图很好的解释了分发的过程。理解起来就类似领导给下属分发任务,任务从上到下分发,下属能完成就处理掉任务,不能处理然后返回给领导,让领导处理。原创 2019-07-27 15:06:04 · 203 阅读 · 0 评论